关注我们,一起学习
标题:Text Is All You Need: Learning Language Representations for Sequential Recommendation
地址:https://arxiv.org/pdf/2305.13731.pdf
会议:KDD 2023
公司:amazon
本文是针对序列推荐所提出的相关方法,以往的方法都是依赖用户交互的商品ID序列来反映用户偏好,但是遇到冷启动问题的时候会难以应对。本文用自然语言的方式对用户偏好和商品特征进行建模。
- 将商品表示为“句子”(单词序列),从而使用户的商品序列变成句子序列。
- 提出Recformer方法来理解“句子”序列并检索下一个“句子”。
- 为了对商品序列进行编码,设计一个类似于Longformer模型的双向Transformer。
- 提出新的预训练和微调方法将语言任务和推荐任务结合
2.1 问题定义
商品集合表示为,用户的交互序列为,序列推荐的目标是基于现有交互序列去估计下一个交互的item。
在以往的方法中,序列中的i一般都是商品ID,在本文中i对应商品的属性字典,其中是kv形式的,这是一个i对应的属性集合,k是属性名,v是属性值,键值对都用自然语言的形式表示,比如颜色:黑色等,对序列截断为长度c后最后的包含kv的词表示为,如图2所示,将商品属性字典输入语言模型,将键值对表示为序列的形式这样我们就可以得到一个商品的输入句子。
2.2 Recformer
如图所示是Recformer的模型结构。
2.2.1 输入
输入以商品属性键值对构成的句子,其中k和v对应的词汇为。那么为了编码用户的交互序列,即句子序列。作者先转置交互序列为,因为最近交互的商品对于预测下一个交互商品是更加重要的,转置后即使因为序列长度有截断也可以保留最近交互的商品。然后在序列中加入特殊符号
2.2.2 Embedding层
Recformer的目标是从自然语言和序列模式来理解模型输入X, 其中的关键思想是将来自语言模型和自注意力序列推荐的embedding层结合起来 。Recformer包含以下四种embedding:
- Token Embedding(A):来表征对应的token,即商品属性中的文字token对应的embedding。以往的方法要用到商品ID,因此对于新来的ID会不认识,但是对于这种token的方式,即使是新来的商品,他也会有比如颜色,品牌等描述。
- Token Position Embedding(B):表征token在序列中的位置
- Token type Embedding(C):表征这个token的类型,有三种分别是CLS,key和value。不同的类型对最终过的推荐有不同的作用。
- Item Position Embedding(D):表征当前商品在序列中的位置
那么对于给定序列中的一个word w,其表征可以表示为:
则序列表征表示为:
2.2.3 item或序列表征
对进行编码,采用双向Transformer结构的Longformer,因为X通常是一个长序列,Longformer中的局部窗口注意力可以有效地编码。作为Longformer中用于文档理解的标准设置,token[CLS]具有全局注意力,但其他token使用局部窗口注意力。因此,Recformer计算d维单词表征方式如下:
在Recformer中,对于每个项目i,构造它的商品“句子” 然后以作为模型输入获得序列表征和商品表征。
2.2.4 预测
根据用户交互序列之间的余弦相似性来预测下一个商品。表示如下,为序列表征,为商品表征
2.3 学习框架
2.3.1 预训练
在Recformer中需要同时考虑语言理解和推荐,因此预训练包含两个任务:MLM和item-item的对比学习任务。 添加MLM作为辅助任务将防止语言模型在与其他特定任务联合训练时忘记单词语义。对于推荐任务,MLM还可以消除一般语言语料库和商品文本之间的语言领域差距。基于BERT,训练数据生成器随机选择15%的token位置进行预测。如果选择了token,则(1)80%的概率将token替换为[MASK];(2) 10%的概率替换为随机token;(3)10%的概率不改变token。MLM损失计算如下:
Recformer的另一个预训练任务是item-item对比学习(IIC)任务。使用真实的下一个交互item作为正样本。对于负样本,采用当前batch中其他序列对应的真实的下一个交互item,这有可能引入false negative样本,但是样本量够大的话,上述影响应该较小,并且比监督学习效率更高。对比损失如下:
因此预训练的损失函数为
2.3.2 两阶段微调
作者采用两阶段微调在小数据集上进行微调,算法如图所示。其关键思想是保持一个商品特征矩阵。与商品embedding表不同的是,特征矩阵I是不可学习的,所有商品特征都是从Recformer中编码的。在阶段1中,每个epoch都会更新矩阵这里的更新是指把所有item进行encode而不是更新参数,在阶段2中,冻结特征矩阵仅更新模型中的参数。 基本思想是,尽管模型已经进行了预训练,但在下游数据集上进一步训练,仍然可以改进来自预训练模型的商品表征。对每个batch中的所有商品重新编码是昂贵的,因此作者对每个epoch中的所有商品重新编码来更新(第4行),并将其用于对比学习(第5行)。在获得最优商品表征后,用相应的参数重新初始化模型(第12行),并开始第2阶段。固定特征矩阵只更新模型参数。
总的来说就是:第一阶段更新商品特征矩阵和模型参数,第二阶段固定特征矩阵,只更新模型参数。两个阶段都采用对比学习。 公式如下:
image.png
image.png
交流群:点击“联系 作者”--备注“研究方向-公司或学校”
欢迎|论文宣传|合作交流
往期推荐
SIGIR'23「人大」EulerNet:基于欧拉公式的CTR预测自适应特征交互学习
「人大,腾讯」InstructRec | 按指令推荐:基于LLM的推荐方法
长按关注,更多精彩
点个在看你最好看