作者 | 上杉翔二 悠闲会 · 信息检索 整理 | NewBeeNLP
自监督学习在CV和NLP已经用的很多了,那很自然也会被迅速引进并占坑到推荐系统领域咯。而发掘推荐数据上的自监督信号,其实也是十分有利于推荐系统的,主要有以下优势:
同时也有一些论文提过某些设计良好的自监督任务可以完成跨域推荐,比如可以通过自监督学习融合多个域的信息来增强网络的表达能力。
关于自监督的一些方法不会科普,现在主要用的最多的就是对比学习,可以考虑参考博主以往的整理:
现在直接来看看几篇有代表力的文章。
来自Google,想要解决的问题是数据稀疏+长尾。主要提出了一个针对大规模商品推荐的自监督学习(SSL)框架,模型框架如上图,基本思路就是想在双塔结构上做数据增强来更好地学习特征之间的潜在联系。
有两种方式:Masking和Dropout,其中masking是随机掩掉一些输入特征,dropout就是简单的随机丢失一些输入特征,以增加自监督任务学习的难度。
值得注意的是,这里的masking源自于BERT的mask方法,但由于特征之间不存在顺序关系,所以作者额外提出了Correlated Feature Masking (CFM)方法,通过挖掘特征之间的关联来设计更难一点的masking pattern。
具体做法是计算不同特征之间的互信息,再根据特征关联来进行特征的分割。即在masking的过程中,每次都选取互信息最大的几个特征进行mask,这样就能充分加大学习难度。
增强完数据之后就可以学习了,学习框架如上图,正常的数据和增强的数据都会过双塔的架构,其中三个粉色塔是shared的。然后分别算两个loss,即普通的Supervised loss和自监督的self-supervised loss。自监督的loss使用对比学习,文中所用的公式和SimCLR很像:
即希望模型能够将同一个物品的特征表示尽可能相同,不同的物品的特征表示尽可能不同。
来自CIKM20',任务是序列推荐,解决的问题是数据稀疏影响交互学习。这篇文章比较重要的贡献就是提供了4个自监督任务来分别学习商品-属性、序列-商品、序列-属性和序列-子序列。
首先Base Model比较常见,就是embedding之后+自注意力感知上下文,然后实现序列预测。然后基于这样的base完成四个任务。
来自SIGIR2021,还是得看何向南组的文章。这篇文章把自监督学习做到Graph中,解决的问题也和开篇整理的问题类似:数据稀疏、数据长尾和存在噪声。
主要的贡献应该集中在提供了集中在Graph上的数据增强方式以得到多个视角:node dropout, edge dropout 和 random walk。
然后用对比学习的方式,来最大化不同节点表示的差距。这样的数据增强和预训练方式能够从原始的图数据中发掘出更多的监督信号,使得图神经网络能够更好的学习到节点表示。
来自AAAI 2021,任务是会话推荐,主要通过双通道超图卷积网络DHCN来学习,dual channel指超图Hyper Graph和线超图 Line Graph。
超图是直接拿session来构,而线图则是一个基于session相似度来构建的完全图。模型图如下,构完图之后会先过超图卷积进行图学习,然后才是利用自监督学习来增强embedding表示,理由是会话数据的稀疏性可能会阻碍超图建模。
然后其实具体做法挺简明的。其实item embedding经过两个通道即Hyper Graph和 Line Graph的学习之后,就可以被视为标签的增广了。所以直接最大化超图通道的表示与线超图通道的表示之间的互信息即可,即如果两个会话Embedding在两个视图中都表示同一个会话,就将这一对标记为正例,否则为负例。
[1]
对比学习: https://blog.csdn.net/qq_39388410/article/details/108941999
[2]
InfoNCE: https://blog.csdn.net/qq_39388410/article/details/108941999