• 论文《Controllable Multi-Interest Framework for Recommendation》


    阿里ComiRec

    论文地址:https://dl.acm.org/doi/pdf/10.1145/3394486.3403344
    git地址:https://github.com/THUDM/ComiRec/

    阿里的ComiRec是对多兴趣召回的一个阶段性总结。

    多兴趣抽取模块总结了2种方法:一个是之前应用到MIND的Capsule Network,一个是Self-Attention
    在这里插入图片描述
    对于Self-Attention方法,给定用户行为序列Embedding H ∈ R d × n \mathbf H \in R^{d \times n} HRd×n d d d是兴趣向量维度, n n n是用户的序列长度(sequence-length),attention的权重向量计算如下

    a \mathbf a a = softmax( w 2 T \mathbf w_2^T w2Ttanh( W 1 H \mathbf W_1 \mathbf H W1H)) ∈ R n \in R^n Rn
    W 1 ∈ R d a × d \mathbf W_1 \in R^{d_a \times d} W1Rda×d , w 2 ∈ R d a × 1 \mathbf w_2 \in R^{d_a \times 1} w2Rda×1
    权重求出来后,应用到用户序列Embedding上面,就得到用户的Embedding
    v u = H a ∈ R n \mathbf v_u = \mathbf H \mathbf a \in R^{n} vu=HaRn
    为了表示多个用户兴趣,将 w 2 \mathbf w_2 w2的维度扩展 K K K倍,变成矩阵 W 2 ∈ R d a × K \mathbf W_2 \in R^{d_a \times K} W2Rda×K
    注意力权重向量变成了注意力权重矩阵
    A \mathbf A A = softmax ( W 2 t a n h ( W 1 H ) ) (\mathbf W_2tanh( \mathbf W_1 \mathbf H)) (W2tanh(W1H)) ∈ R n × K \in R^{n \times K} Rn×K
    V u = H A \mathbf V_u = \mathbf H \mathbf A Vu=HA ∈ R n × d \in R^{n \times d} Rn×d

    模型训练

    计算出用户的多个兴趣Embedding之后,根据目标item的Embedding e i \mathbf e_i ei,使用 a r g m a x argmax argmax操作来确定最终的用户Embedding
    v u = V u [ : , a r g m a x ( V u T e i ) ] \mathbf v_u = \mathbf V_u[:,argmax(\mathbf V_u^T \mathbf e_i)] vu=Vu[:,argmax(VuTei)]
    损失函数
    l o s s = ∑ u ∈ U ∑ i ∈ I u − log ⁡ P θ ( i ∣ u ) loss = \sum_{u \in \mathbf U} \sum_{i \in \mathbf I_u} - \log P_{\theta} (i | u) loss=uUiIulogPθ(iu)
    P θ ( i ∣ u ) = e x p ( v u T e i ) ∑ i ∈ I u e x p ( v u T e i ) P_{\theta}(i|u) = \frac {exp(\mathbf v_u^T \mathbf e_i)} {\sum_{i \in I_u} exp(\mathbf v_u^T \mathbf e_i) } Pθ(iu)=iIuexp(vuTei)exp(vuTei)

    合并策略

    每个兴趣Embedding都可以检索出topN个最相关的候选物料,如何合并 K K K个兴趣Embedding的结果,一种简单的做法是对于同时出现在多个兴趣Embedding相似结果的物料,其最终打分可以用max/sum等策略来解决,max策略比较强调某一个兴趣的单一相似度,sum强调多个兴趣总的相似度。论文基于max策略结合类目多样性限制提出了一个新的合并策略。
    首先max分数结果如下, v u ( k ) \mathbf v_u^{(k)} vu(k)是是第k个用户兴趣向量
    f ( u , i ) = max ⁡ x ∈ S ( e i T v u ( k ) ) f(u,i) = \underset{x\in S} \max (\mathbf e_i^T \mathbf v_u^{(k)}) f(u,i)=xSmax(eiTvu(k))
    S S S K K K个兴趣Embedding检索到的候选集去重后的数量, Q ( u , S ) Q(u,S) Q(u,S)表示结合max策略和类目多样性的打分结果
    Q ( u , S ) = f ( u , i ) + λ ∑ i ∈ S ∑ j ∈ S g ( i , j ) Q(u,S) = f(u,i) + \lambda \sum_{i \in S} \sum_{j \in S} g(i,j) Q(u,S)=f(u,i)+λiSjSg(i,j)
    其中 g ( i , j ) = δ ( C A T E ( i ) ≠ C A T E ( j ) ) g(i,j)=\delta(CATE(i) \neq CATE(j)) g(i,j)=δ(CATE(i)=CATE(j))表示类目多样性, λ = 0 \lambda=0 λ=0表示只要准确性,不要多样性, λ = ∞ \lambda=\infty λ=表示要推荐最多样化类目的候选给用户

    评估指标

    I ^ u , N \hat I_{u,N} I^u,N表示topN候选结果集合, I u I_u Iu表示测试集用户 u u u真实的交互物料集合
    Recall 表示每个用户的平均准确率

    Recall@N = 1 ∣ U ∣ ∑ u ∈ U ∣ I ^ u , N ⋂ I u ∣ ∣ I u ∣ =\frac {1} {\vert U \vert } \sum_{u \in U} \frac {\vert \hat I_{u,N} \bigcap I_u \vert } {\vert I_u \vert} =U1uUIuI^u,NIu
    Hit Rate表示topN推荐结果中至少包含一个测试集用户 u u u真实交互物料的比例
    HR@N= 1 ∣ U ∣ ∑ u ∈ U δ ( ∣ I ^ u , N ⋂ I u ∣ > 0 ) \frac {1} {\vert U \vert } \sum_{u \in U} \delta(\vert \hat I_{u,N} \bigcap I_u \vert > 0) U1uUδ(I^u,NIu>0)
    NDCG考虑了推荐结果的位置
    NDCG@N= 1 Z \frac{1}{Z} Z1NCG@N= 1 Z 1 ∣ U ∣ ∑ u ∈ U ∑ k = 1 K δ ( i ^ u , k ∈ I u ) log ⁡ 2 ( k + 1 ) \frac{1}{Z} \frac {1}{\vert U \vert }\sum_{u \in U} \sum_{k=1}^K \frac {\delta(\hat i_{u,k} \in I_u)} { \log_2(k+1)} Z1U1uUk=1Klog2(k+1)δ(i^u,kIu)

    兴趣提取模块究竟是capsule还是self-attention好要看实际业务场景,不同场景应用可能结果不同

  • 相关阅读:
    java.lang.Float类下toString()方法具有什么功能呢?
    猫头虎解析:深入浅出cURL命令和HTTP请求
    Linux安全加固:保护你的服务器
    【笔试题】华为研发工程师编程题
    Apache Hudi 使用文件聚类功能 (Clustering) 解决小文件过多的问题
    15-Groovy-日期和时间
    Jacoco—代码增量覆盖率踩过的坑
    手动导出URL 证书
    在物理计算机上安装Linux的方法,台式机安装CentOS时报错dracut-initqueue timeout解决办法
    【云原生生态圈】:服务快速上云--Docker部署SpringBoot案例详解
  • 原文地址:https://blog.csdn.net/whgyxy/article/details/126083055