个人公众号,欢迎关注
YouChouNoBB

介绍一篇很有意思的论文,DUMN,论文的亮点在于将item侧的行为序列也加入建模,通过计算user to user 的相似度,来表达target user与target item之间的相似度.
1.主要介绍其中的4个模块
1)Embedding Layer
2)User Representation Layer
3)User Match Layer
4)Output Layer
2.Embedding Layer,主要介绍一些向量的定义
1)User Behavior:
,其中i为itemid
2)Item Behavior:其中为userid,并附带一个用户行为序列
![]()
3) : User profile vector,用户基础画像向量
4) : Target item vector,目标item向量
5) : Context vector,上下午场景向量
6) : 用户行为向量,由一系列item的向量组成
![]()
7) : item行为向量,由一系列用户的行为向量
和画像向量
组成
![]()
3. User Representation Layer

1)主要由用户行为向量,用户画像向量
,Target item向量
进行attention计算得到


其中,为用户交互的item向量,
为bias,
为模型学习的参数矩阵,
是激活函数sigmoid
为每个item计算得到的权重,进行归一化为
再将乘回item的向量
得到新的item向量
将新的item向量进行sum pooling得到用户的兴趣表达向量
最终将兴趣表达向量和画像向量concat得到用户的表达向量 ![]()
4.User Match Layer

这一层主要是通过当前用户与交互过target item的用户向量,来计算用户与用户之间的相关性,从而可以得到当前用户与target item 之间的相关性表达 ,其中的用户向量都是由上一节的user representation layer计算得到
这里有一个值得讨论的地方
1)交互过target item的用户很多,应该怎么选取论文没有讲清楚,只说了取30个比较合适,在实际应用中,我们是否需要选取一些活跃的用户?
2)用交互过target item的用户来计算target user与target item之间的相似度,是否一定需要用这样的模型结构来解决,直接加item侧对应的特征是否能满足需求?
4.1 Relevance Unit
该模块用来衡量用户与用户之间的相似度,计算方式比较简单,使用余弦相似度

其中 表示用户
在上一节计算得到的向量表达,不止target user可以通过这个模块计算,所有user都能通过这个模块计算得到用户向量
通过这种方式,我们可以计算target user和target item交互过的所有user的相似度
![]()
这样我们就能用相似度乘上用户表达向量,sum pooling之后得到一个匹配表达向量

同时,我们还可以将所有相似度求和,得到target user与target item的一个匹配度

这个时候再回过来看User Match Layer是不是简单很多了

5.Output Layer

最后输出层就很简单了,匹配表达向量,用户表达向量
,匹配度
,target item 向量
和上下文向量
进行concat,然后经过2层全连接,最后sigmoid输出

个人公众号,欢迎关注
YouChouNoBB
143





