论文《Controllable Multi-Interest Framework for Recommendation》

103 阅读2分钟

阿里ComiRec

论文地址:dl.acm.org/doi/pdf/10.… git地址:github.com/THUDM/ComiR…

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

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

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

模型训练

计算出用户的多个兴趣Embedding之后,根据目标item的Embedding ei\mathbf e_i,使用argmaxargmax操作来确定最终的用户Embedding vu=Vu[:,argmax(VuTei)]\mathbf v_u = \mathbf V_u[:,argmax(\mathbf V_u^T \mathbf e_i)] 损失函数 loss=uUiIulogPθ(iu)loss = \sum_{u \in \mathbf U} \sum_{i \in \mathbf I_u} - \log P_{\theta} (i | u) Pθ(iu)=exp(vuTei)iIuexp(vuTei)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) }

合并策略

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

评估指标

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

Recall@N=1UuUI^u,NIuIu=\frac {1} {\vert U \vert } \sum_{u \in U} \frac {\vert \hat I_{u,N} \bigcap I_u \vert } {\vert I_u \vert} Hit Rate表示topN推荐结果中至少包含一个测试集用户uu真实交互物料的比例 HR@N=1UuUδ(I^u,NIu>0)\frac {1} {\vert U \vert } \sum_{u \in U} \delta(\vert \hat I_{u,N} \bigcap I_u \vert > 0) NDCG考虑了推荐结果的位置 NDCG@N=1Z\frac{1}{Z}NCG@N=1Z1UuUk=1Kδ(i^u,kIu)log2(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)}

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