如何将用户行为和属性用于推荐系统?
Posted NewBeeNLP
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将用户行为和属性用于推荐系统?相关的知识,希望对你有一定的参考价值。
NewBeeNLP原创出品
悠闲会 · 信息检索
传统结合行为、基础属性、高级属性等等的side Information的方法会分连续型或离散型嵌入,然后当作一个分factor输入到推荐系统其他的部分中用于加强推荐的效果。
最近看到SIGIR20'有两篇针对行为和属性的方法,且都用了Graph来做为解决方案,效果不错。主要是Graph的方法,涉及到图的更新和嵌入知识博主以往的文章已经更新过了,不做赘述。也可以点击文章上方图网络专栏查看相关内容。
MBGCN
论文:Multi-behavior Recommendation with Graph Convolutional Networks 地址:https://dl.acm.org/doi/10.1145/3397271.3401072 也可以在公众号后台回复『0038』直接获取
这篇文章主要是针对「多行为」对推荐的重要性。开篇作者就指出:传统的推荐模型仅仅利用一种用户-物品的交互数据,如购买行为,但是在这种单一的购买行为中,一个新用户可能没有任何购买行为的发生,就会产生严重的数据稀疏和冷启动的问题,这时平台可以收集用户的其他容易发生的行为,如浏览、点击和收藏等,这些行为总会有反映用户兴趣的。
换句话说,推荐系统应该有能力利用其他类型的行为、辅助行为来帮助预测用户对目标行为的未来交互,即多行为推荐。
研究多行为推荐主要需要克服两点:
-
多行为的重要性差别。1放入购物车肯定比点击某商品信号要强,所以多行为的重要性不一样。2辅助行为并不比目标行为弱,意思是虽然预测的是点击,但其他行为与其的关系肯定是能增强的。 -
行为数据中隐含语义之间的关联。某些商品是相似的,某些商品是互补的,用户的行为下是能够发掘的(比如需要买互补的,或者比较类似的)。特别是当没有项目的侧信息如类别或品牌时,项目与项目的关系可以作为揭示协作推荐任务语义的解决方案。
所以作者提出了一个异构图的MBGCN(Multi-Behavior Graph Convolutional Network),模型图如上图,其中的异构是指边表示不同的行为,这些不同的行为连接这user和item。分为4个部分:
-
User Embedding Propagation,用户嵌入特征的学习由产生过不同行为的items聚合。 -
Item Embedding Propagation,项目嵌入特征的学习由产生过不同行为的users聚合。 -
Item-Relevance Aware Item-Item propagation,学习同一行为下特定的items之间的关系。 -
Joint Prediction。得到多层传播后的表示。
User Embedding Propagation
用户embedding由不同行为对用户的影响决定,先算不同行为对用户的相应权重:
其中n{ut}是用户u和行为t的行为总数,N_r是行为种类数,不同行为的权重w_t是自适应学习的(值得注意的是,这个行为的权重是固有关系,博主的理解是不同行为之间的权重是固定的)。然后利用这个权重,对有过交互的item进行聚合:
具体过程看上面的图就能很快明白了,不同行为的item先分组聚合,然后按行为权重加权了之后进一步聚合得到用户embedding p。
上图的下半部分是item embedding,它与user不同的是,item应该是静态的,不受用户行为的影响,所以直接mean聚合:
Item-Relevance Aware Item-Item propagation
但是前面提到了,需要解决的第二个问题是捕捉items之间的关系,所以item还需要进行一次传播,得到额外的一个在不同行为下的item表示。即被同一个用户都交互了的物品之间存在有特殊的连接。然后同样根据行为的不同重要性,分别计算每个行为下的相关embedding:
这个操作也可以参考上图,即t1行为之间进行聚合,t2行为之间进行聚合就行。
Joint Prediction
得到各层的表示直接拼接就行:
然后可以做两个预测任务User-based CF Scoring和Item-based CF Scoring。
-
「User-based CF Scoring」,根据所得到的用户和物品的embedding,做简单的内积。
-
「Item-based CF Scoring」,计算与用户u交互的所有物品们与目标物品i的相关性分数(两个item之间被某用户有相同的行为如都购买了会影响到分数)。
最后两者一起作为预测分数:
所以其实对应开头的两个问题,模型要做的事情就是user-item传播层学习行为影响力度,item-item传播层去捕获行为语义,然后两者一起结合预测分数,果然很有何老师写作风格。
AGCN
论文:Joint Item Recommendation and Attribute Inference: An Adaptive Graph Convolutional Network Approach 地址:https://arxiv.org/abs/2005.12021https://dl.acm.org/doi/10.1145/3397271.3401072 也可以在公众号后台回复『0039』直接获取
接下来的这一篇是联合推荐和属性推理的自适应图卷积网络。
-
项目冷启动,需要属性的结合。同时用户对项目的行为可以很好地反映用户和项目属性。 -
属性值往往是不完整的,大多数属性增强推荐算法将推断的属性值作为项目推荐的输入。
由于两者都很稀疏,所以联合建模可以相互增强。接下来我们看看作者是怎么做相互增强的。
Embedding Fusion Layer
该层主要是融合自由嵌入矩阵(捕获用户or项目的协作潜在表示)+属性嵌入(会循环更新),直接拼接就好:
Embedding Propagation Layers
然后开始传播,直接使用GCN以捕获用户和项目之间的高阶邻近性。值得注意的是User-item是一起传播的(把u和i拼成对角其他为0的大矩阵,然后一起GCN)
利用这个A一起GCN就行,不做赘述。
Attribute Update Part
传播完再补充属性,如模型图中的红色部分,先得到预测值用于评分
然后更新属性向量,即用推断的结果自适应地更新缺失的属性值,可用的属性值将保持不变:
一起交流
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)
- END -
以上是关于如何将用户行为和属性用于推荐系统?的主要内容,如果未能解决你的问题,请参考以下文章