多视角多行为推荐对比学习

同时在建模的时候,有多种方式,比如基于序列建模的,基于graph建模的;前者能够很好的学习用户的局部视角信息,后者则能够更好的关注全局视角信息 。
总的来说,既要考虑用户不同行为之间的粗粒度共性,还有考虑不同行为之间的细粒度个性,同时还有不同视角下信息 。
为了解决上诉问题,本次介绍的这篇paper是通过三个对比学习loss实现的并且开源了代码,具体来看看吧~
论文链接:
代码链接:
方法
模型的总框架如下所示:
?(1)特征表征
从上面图可以看到,输入的数据有两种,一种是代表用户个性视角的序列性,一种是全局视角的graph形式,序列编码和图编码可以采取任何已有的算法,其中论文中采用的是,采用的是 。
Multi- 是对用户多种行为的交互编码,具体的是讲所有行为emb过两层MLP,注意这里具体的应该是有两种Multi- 即一种是序列视角下的,一种是graph视角下的 。Multi-view 是对上述两种视角下的Multi- 再进行一次交互,具体的也是MLP层 。
总结一下就是:Multi-view 最后实际上能够得到两个的编码即user和item的 。其中每个user在每个视角下都有Multi- 多行为编码,而item在每个视角下也都有自己的编码,只不过在graph下有聚合得到的编码而在序列视角下就是其自身 。
(2)loss
loss这里从大的方面看是四个,一个是单纯的行为预测以及三个对比学习loss 。重点看后面三个对比loss 。
(a) 第一个loss比较容易想到,假设当前建模是预测用户的购买行为,那正样本就是具有购买行为的user-item pair,负样本就是随机抽样的pair,然后依据上述的的user和item的编码直接计算loss.

多视角多行为推荐对比学习

文章插图
(b) 多行为对比学习loss:假设在序列视角下,同一个用户具有不同的行为,可以先验的知道同一用户的不同行为表示之间应当要比另一个用户的行为表示更加接近,看到没?对比学习loss是不是已经出来了?
(c) 多视角对比学习loss:这里的核心是同一用户不同视角下的行为表示应当比另一个用户的更为接近
(d) 这里的对比学习就更细粒度了,假设在电子商务场景有购买和点击行为,我们的最后目标其实是想要预测购买行为,那也就是说行为之间是有优先级的,假设在一个batch内,对于同一个用户来说,其user和购买的item距离是要小于其user和点击的item的距离的,其次再小于其user和随机抽取的item距离的 。
看到这里,大家可以再仔细看看(d)和(a) 的不同,(a)是对具体某一个行为的预测建模,而(d)是对不同行为的预测loss进行排序建模 。
最终的loss就是将上面所有的loss求和
实验
讲完了idea,下面我们来看看实际实验效果~
(1)数据集
作者这里使用了两个数据集Tmall和 EComm AI 。每个数据集的都是user和item之间的交互,具体有三种行为:点击、加购物车和购买 。
具体的,经过处理,Tmall包含22014个users和27155个items,83778 个购买行为, 44717加购物车行为和 个点击行为 。EComm AI包含23032个users和25054个items,个购买行为, 38347 个加购物车行为和点击行为 。
(2)VS
作者这里对比了多个基线模型(MMCLR是本文提出的模型),可以看到具有提高
(3)idea的消融实验
?将多行为对比学习、多视角对比学习和多行为细粒度对比学习分别命名为BCL、VCL、DCL
从上面可以看到都有效果,最后的MMCLR就是seq+graph+BCL+VCL+DCL
(4) 冷启动
同时作者实验了MMCLR在冷启动用户上的表现,可以看到都是有效果的