论文《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好要看实际业务场景,不同场景应用可能结果不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值