Bootstrap

Multi-Interest Network with Dynamic Routing for Recommendation at Tmall(学习)

Multi-Interest Network with Dynamic Routing for Recommendation at Tmall(学习)

目的

在RS排序阶段更好的检索用户感兴趣的项目(即召回)

此前方法的局限:Youtube-DNN在多兴趣召回上有bottlenect;DIN使用注意力机制(计算量巨大),只能用在精排(即ranking阶段)

问题分析

根据tuple ( I u , P u , F i ) (I_u,P_u,F_i) (Iu,Pu,Fi)得出用户多兴趣的表示
V u = f u s e r ( I u , P u ) , V = ( v u 1 , . . . . v u k ) V_u = f_{user}(I_u,P_u),V = (v^{1}_u,....v^{k}_u) Vu=fuser(Iu,Pu),V=(vu1,....vuk)
其中I是用户行为序列,P是用户个人信息,F是项目的特征值;此外再得到,项目的表示
e i = f i t e m ( F i ) e_i =f_{item}(F_i) ei=fitem(Fi)
最终得到评分函数

f s c o r e ( V u , e i ) = m a x 1 < k < K ( e i ∗ v u ) f_{score}(V_u,e_i) = max_{1<k<K}(e_i*v_u) fscore(Vu,ei)=max1<k<K(eivu)

模型结构

(training)多兴趣提取器+attention层+sample_softmax

模型

Embedding & Pooling Layer

用户(user pofile)的信息做embedding: P u P_u Pu
item的feature做embedding后concat再pooling得到item_label_embedding:
e i e_i ei

交互序列做embedding得到:
e j e_j ej

重点

Multi-Interest Extractor Layer

B2I Dynamic Routing

重点是使用新的胶囊神经网络,使用动态路由来更新
b i j b_{ij} bij
籍此来得出用户的多兴趣表示
在这里插入图片描述

其中K由,跟随用户序列变化而变化,或自定超参数

以下为原理公式
在这里插入图片描述

Label-aware Attention Layer

将项目label_embedding和用户多兴趣向量做attention(softmax中做p次幂),得到用户最终兴趣

这里讨论三种情况:

  • p=0,即什么都不做,所有兴趣都会被注意到
  • p>=1,乘积越大的兴趣被注意力就越大
  • p趋于无穷,实际上对某一兴趣乘1,其他均为零
    在这里插入图片描述

LOSS

training部分简单做一个放缩;

在这里插入图片描述

在这里插入图片描述

serving部分不做attention,直接把多兴趣用户向量做召回

实验部分

  • 使用高斯分布对 b i j b_{ij} bij 进行初始化,不影响结果

  • 在这里插入图片描述

  • 多兴趣的数量,k值3~5是表现最好

在这里插入图片描述
在这里插入图片描述

;