推荐系统是AI应用最成熟的领域之一,行为序列的表征学习是其中非常重要的一环。过去序列表征学习依赖于物品ID,难以迁移到新的推荐场景或平台中,使得不同场景下的推荐系统彼此隔离,数据孤岛问题严重。
最近,来自人民大学和阿里巴巴的几位研究者提出对物品的文本描述进行建模,从而可以学习可迁移的通用表征。他们的主要思路是:1)基于参数白化和混合专家增强适配器,学习通用物品表示;2)基于多域负样本构建的对比预训练任务,学习通用序列表征。实验中该方法在很多场景下取得了不错的效果,被数据挖掘顶级大会 KDD 2022 收录。
论文地址:https://arxiv.org/pdf/2206.05941.pdf
论文源码:https://github.com/RUCAIBox/UniSRec
概述
在序列推荐中,大多数序列表征学习方法依赖于显式的物品信息,这使得训练学习到的模型比较专有化,很难迁移到新的推荐场景或平台。此外,现有的序列表征学习方法往往很难处理交互很少的冷启动物品。
那么如何解决呢?
可以构建这样一个数据形式。给定按交互时间排列的序列,每个元素关联唯一的物品ID和描述文本。描述文本包含了若干共享词汇表里的词汇。这里,每个序列包括用户在某一特定场景下的所有交互行为,且一个用户可以在不同场景或平台有多个行为序列。多个序列之间独立而不混合在一起。
之后,研究者们提出了UniSRec模型以适配这种数据形式,其整体结构如下图所示:
通用表征
01
通用物品表征
预训练模型编码物品文本特征:给定物品i和对应文本t,基于BERT学习文本特征表示:
参数白化实现语义转换:由BERT学习到的特征表示会存在各向异性的问题,作者提出对原始BERT表征进行简单线性转换:
MoE实现域融合和自适应:不同场景之间存在一些差异,需要进行特定的融合。基于MoE结构,研究者引入G个白化转换模块作为专家知识, 然后构建MoE增强适配器融合多个场景下的表征:
其中
是第k个白化转换模块的输出,
是通过门控路由学习到的权重。值得注意的是,门控路由模块中,研究者们使用原始BERT的表征作为输入,这是因为原始表征包含场景里的特定语义信息。
02
通用序列表征
自注意力序列编码:给定一个通用物品表征序列,研究者利用自注意力结构,即Transformer,编码输入的物品表征序列:
其中
是第l层中序列中n个物品表征的拼接表征,pj表示第j位置的绝对位置向量。
多域序列表征预训练:给定多个域的交互序列,研究者提出两个对比预训练任务学习通用序列表征。
序列-物品对比任务:旨在建模序列上下文和下一个物品的内在。给定一个batch 训练样本,研究者定义如下“序列-物品”对比损失函数:
这里同一batch内的元素看作负样本,因此负样本中会包括其他域的物品,即跨域负样本。
序列-序列对比任务:旨在从多域序列中辨别增强表征。作者采用两种常用的增强方式:1)元素丢弃 ,堆积丢掉序列中固定比例的物品;2)word dropout,堆积丢掉物品文本描述中的单词。
同样,这里的负样本也是同一batch内的其他样本,也会包括其他域的序列。
多任务学习:在预训练阶段,作者使用多任务学习策略联合优化两个对比损失函数:
03
参数高效的微调
由于模型可以学习到通用的序列表征,作者提出固定模型的大部分参数,只对MoE增强适配器部分进行参数微调。
归纳式:考虑推荐来自全新未见域的新物品,无法获知物品ID。给定目标域的训练序列,首先将序列上下文和候选物品编码到通用表征,下一个物品的预测概率定义为:
直推式:利用物品ID表征和文本表征,定义预测概率为:
实验
该工作的研究者们在多个公开数据集上进行了实验,并对比了多个SOTA模型,整体实验结果如下:
从上表可见,通用的表征学习可以利用大规模数据做预训练以提升整体效果。
研究者们还验证了模型对长尾物品推荐效果的提升。如下图所示,柱状图表示测试数据中,每组实验的交互数量,折线图表示模型相较于SASRec模型的提升比:
总结
该研究工作提出了一种面向序列推荐的通用序列表征学习方法,UniSRec,其利用BERT技术,对物品的文本描述信息进行表示学习,通过Transformer结构编码序列信息。研究者们使用两个对比学习预训练任务,进行模型优化和通用序列表征的学习。
初步看,研究者所用到的技术基本都是已有技术,包括BERT、参数白化、Transformer和对比学习等。但研究者们能够将这些现有技术进行整合,与场景进行适配,解决了推荐系统场景下一个棘手的问题。