查看原文
其他

RecSys 2023 | ReSeq: 双边序列推荐

郑博文 RUC AI Box 2023-08-04

© 作者|郑博文

机构|中国人民大学

研究方向|推荐系统

引言:本文介绍了本小组发表于RecSys 2023的论文ReSeq,其将双边推荐定义为一个独特的序列匹配任务,旨在利用双方用户的动态行为序列完成更加精准的相互推荐。文章也同步发布在 AI Box 知乎专栏(知乎搜索 AI Box 专栏),欢迎大家在知乎专栏的文章下方评论留言,交流探讨!

论文题目:Reciprocal Sequential Recommendation

论文链接:https://arxiv.org/abs/2306.14712

论文代码:https://github.com/RUCAIBox/ReSeq

一. 前言

双边推荐系统(Reciprocal Recommender System,RRS,也称为互惠推荐系统)需要平衡两方用户之间的意向与需求,建模双视角的用户匹配关系,已广泛应用于在线约会和求职招聘等平台。现有的RRS方法主要分为基于内容的(content-based)方法和基于协同过滤的(collaborative filtering-based)方法。前者的重点在于用户基本信息的内容匹配,后者则更注重对历史用户交互行为进行建模。然而,但两者往往都将用户的建模归结为一个静态表示,这种对用户长期兴趣的建模忽略了用户偏好随周围环境与时间的不断变化。尽管动态用户建模在传统序列推荐系统中得到了很好的研究,但现有的解决方案仍是以面向单侧用户的方式开发的。因此,使序列推荐算法适应双边推荐并非易事。

在本文中,我们将RRS定义为一个独特的序列匹配任务,进而提出了一种新颖的RRS方法——ReSeq(Reciprocal Sequential recommendation)。具体来说,我们首先从主动与被动双视角对用户行为序列进行建模,然后通过细粒度的序列交互来进行双边匹配。同时,为了缓解细粒度交互带来的时间成本增长,我们进一步考虑采用自蒸馏技术(通常用于模型压缩)来提高模型效率。在多个真实世界数据集上进行的大量实验证明了我们所提出方法的有效性和高效性。

二. 问题定义

在传统的推荐系统中,推荐算法的目标通常是预测用户对物品的兴趣(电影、书籍、衣服等),这些推荐系统本质上是面向用户的物品推荐。作为对比,RRS针对两侧用户进行推荐,需要平衡双方用户的需求和兴趣,其中任何一方都可以选择另一方的目标或候选者。例如,女性和男性之间的在线约会推荐,求职者与招聘者之间的工作推荐以及各种社交平台上的好友推荐。

形式上,我们将双边推荐中的双方用户分别表示为  (第一方)和  (第二方)。此问题设置中,我们没有明确使用“物品(item)”一词,因为每一方用户都可以扮演“users”(主动选择交互的人)和“items”(像传统推荐中物品一样被动接受选择的角色)。

在双边推荐场景下,成功的匹配不在仅仅取决于一方,而是意味着:(1)作为主动选择一方,用户  现出对用户  的正面兴趣;(2)作为被动接受的一方,用户  达到了用户  的要求。这个过程可以视为一个双视角的主动选择过程,RRS 的目标通常是学习联合函数  用于建模这种双视角偏好。在本文中,我们的双边序列推荐任务也基于上述范式,但也与之前的设置有所不同。

更具体地说,实际推荐场景中,在每个时刻,用户们都拥有一个截止到当前时间T的历史行为序列,我们将其记为  或  。其中  和  是交互时间,且满足  和  。我们的目标是构造一个双视角的动态序列匹配函数,通过对双方用户的动态历史行为序列进行推荐预测:

  

三. ReSeq: 双边序列推荐

1. 双视角动态行为序列建模

我们的方法将双边推荐建模为一个独特的序列匹配任务,整体架构如图1所示。

双边用户表示

对于双边推荐场景中的双方用户来说,存在两种不同的角色:一种是作为主动选择者,展示自己对对方的偏好;另一种是作为被动候选者,展示自己的被选择特征 。因此对于一侧的用户  ,我们维护两个独立的嵌入矩阵   和  ,分别代表用户主动嵌入表示和被动嵌入表示。同样,也有两个嵌入矩阵  和  分别代表另一侧用户  的主动嵌入表示和被动嵌入表示。

此外,双边推荐中的成功匹配意味着双方用户主动兴趣和被动吸引力的双视角匹配或对齐。这意味着双方用户的嵌入表示矩阵应具有适当的双视角空间对齐关系,即用户  的主动表示  应与用户  的被动表示  ,处于相似的向量空间,同理  与  也存在这种对齐关系。为了反映这种双视角对齐关系,我们对用户嵌入矩阵进行分解,并且将部分分解矩阵在双视角之间共享:

  

双视角用户行为序列编码

在获得上述分解和共享的双视角用户嵌入后,接下我们基于两种不同的Transformer网络对用户行为序列进行编码。典型的Transformer网络包含掩码多头自注意力层(Masked-MHAttn(·))和逐点前馈网络(FFN(·)),计算过程可以表示为:

  

我们在用户行为序列中加入用于聚合表示的CLS token后作为模型输入,  是第  层的输入,  为注意力掩码权重矩阵,用于调节序列中每个部分的注意力目标。

主动视角:当用户承担主动方角色时,行为序列中的每个历史匹配用户都充当被动方(与传统推荐中类似)。因此,我们根据行为序列中历史匹配用户的被动表示对用户的主动动态表示进行编码,即从  中获取序列的初始被动嵌入表示  作为模型输入。

此外,为了对时间敏感的主动动态行为进行编码,如图1左侧所示,我们在此使用单向注意力掩码权重矩阵,它使得模型更多地关注最近的用户行为,这是因为用户最近喜欢的目标往往更能代表其当前偏好。最终,Transformer网络的输出会被分为宏观和微观两个尺度用于后续多尺度序列匹配:

  

其中  是CLS对应的输出,  代表用户的宏观主动动态表示,  代表用户的微观主动动态表示。

被动视角:当用户作为被动角色时,行为序列中的每个历史匹配用户都充当主动方。RRS中匹配成功意味着当前用户的特征符合主动选择者的偏好和要求,也就是说历史匹配的偏好信息可以丰富当前用户的用户画像。因此,我们根据行为序列中历史匹配用户的主动表示对用户的被动动态表示进行编码,即从  中获取序列的初始被动嵌入表示  作为模型输入。

此外,与用户主动动态行为的时间敏感性不同,当用户作为被动个体时,他的属性和特征往往随着时间的推移保持相对稳定(人的身高、外貌、学历等)。因此,如图1右侧所示,我们通过双向注意力掩码矩阵对被动动态表示进行编码,这使得模型能够从全局序列表示中捕获基本用户特征。同理,被动编码也被分为宏观和微观两个尺度  和  ,而另一侧用户  的编码过程与上述过程类似,可以得到  ,  和  ,  。

2. 多尺度序列匹配

宏观匹配:使用两个简单的点积计算完成两个视角的匹配分数预测,这也是传统用户-物品推荐中的常用计算方式: 

微观匹配:如图1 “Time-Sensitive Micro-Level Matching” 部分,我们设计了一个时间敏感的细粒度匹配方式进行微观预测,希望通过双方用户之间更详细、更细粒度的微观交互来获得更具辨别力和更精确的推荐。以单个视角为例,整体的计算过程如下:

首先我们计算两用户之间的细粒度匹配矩阵,之后通过主动和被动两个维度的注意力来聚合匹配度矩阵。其中  是用户  的原始主动嵌入表示,  是用户  的原始被动嵌入表示,而  则来自一个从行为序列末尾开始的可学习相对时间权重  。对于实际长度为  (无填充长度)的用户行为序列,  。

3. 基于自蒸馏的效率优化

宏观尺度匹配仅需要两个简单高效的点积运算,而微观尺度匹配虽然提供了更细粒度的双边交互,但其过于复杂的注意力以及矩阵运算也带来了模型推理时长的大幅增长。受到模型压缩领域蒸馏技术的启发,我们通过微观到宏观的自蒸馏提高模型效率。如图1 “Micro-to-Macro Self-Distillation” 部分,训练过程中使用自蒸馏技术将知识从更细粒度的微观匹配转移到更高效、更简单的宏观匹配。而在验证、测试和实际应用过程中仅使用宏观尺度的匹配,以实现高效、精准的推荐。

作为一种排序任务,双边推荐与常见的分类问题不同,它更关注正例和负例之间的相对分数差距,而不是绝对类别分布。因此,我们采用Margin-MSE作为损失函数: 

 其中  为batch size,  ,  和  ,  分别是微观尺度和宏观尺度的正例和负例得分集合。

4.  损失函数

预测过程中,ReSeq使用了来自两个用户的四个元素来计算最终的匹配得分,在实际推荐场景中,任意元素的不适配都意味着匹配的失败。基于这种思想,将相应元素替换为负例,我们可以得到宏观和微观两个尺度的多个负例分数,我们将它们表示为两个负例分数集合,  和  ,每个负例分数集合包含四种类型的负例分数。之后通过BPR损失进行排名优化:

 此外,基于上述的多个负例分数,自蒸馏损失也可以被扩展为关于四个不同负例分数的组合:

  

最终损失函数为:

  

四. 实验分析

1. 主实验

我们在两个场景(在线招聘中求职者和招聘者相互匹配,问答场景下提问者与回答者相互匹配)的五个数据集上验证了我们方法的有效性。我们的基线主要有:协同过滤模型(BPR、LFRR、NeuMF、LightGCN)、序列推荐模型(SASRec、SSE-PT、BERT4Rec、FMLP-Rec)和人岗匹配模型(PJFNN、BPJFNN、IPJF、PJFFF、DPGNN)。其中,人岗匹配模型仅适用于用户拥有全面文本信息的在线招聘场景。实验结果如下表所示:


2. 消融实验

我们考虑ReSeq的以下四种变体进行消融实验:

  • ReSeq w/o DS:去掉嵌入矩阵的分解和共享操作,直接为用户学习了四个嵌入矩阵。

  • ReSeq w/o MASK:用相同的双向掩码矩阵替换用于从主动与被动视角编码用户行为序列的不同掩码矩阵。

  • ReSeq w/o TSA:在微观匹配过程中,将时间敏感注意力聚合操作转换为均值聚合。

  • ReSeq w/o SD:直接去除自蒸馏损失。

3. 分析实验

超参数探究

为了评估ReSeq模型的鲁棒性,我们对两个关键的损失函数系数进行了全面分析。如下图所示,对于每个损失系数,我们分别展示双方用户视角的NDCG@5指标,并计算两个视角的平均值来反映整体趋势。

对于微观尺度的教师网络损失系数  ,我们可以看到随着系数  的增加,模型的性能逐渐提升。在值为5时,ReSeq 达到最佳性能,  的进一步增加不会导致性能显着下降。而对于自蒸馏损失系数  ,我们可以看到,自蒸馏损失系数过小会使模型不能有效地在微观和宏观尺度之间传递知识,而损失系数过大则可能导致模型忽视推荐排名的优化。

文本增强

最后,由于招聘场景中存在丰富的文本信息,我们还进行了一个简单的文本增强实验。具体来说,我们直接将来双塔BERT的文本匹配预测分数结合到宏观匹配中,结果如上图所示。可以看出,在结合简单的文本增强后,我们的方法在三个数据集上的两个用户视角基本上都获得了性能提升。特别是,ReSeq在Technology数据集上受益更多,这可能是由于Technology相比于其他两个数据集拥有更高的文本质量和更大的数据规模。

上述结果说明我们的方法可以通过结合一些补充信息得到改进。当然,这种简单的文本增强方法可能会带来一些局限性,未来我们会考虑更合理的方法来合并文本或其他辅助信息。

五. 总结

本文提出了一种双边序列推荐方法ReSeq。为了对双方的动态用户兴趣进行建模,我们将双边推荐定义为一个独特的序列匹配任务。具体来说,我们用不同的模块设计从主动和被动两个视角对用户行为序列进行编码。随后,通过多尺度序列匹配,在宏观和微观层面上进行了全面和细粒度的序列交互。此外,为了缓解细粒度交互导致的时间消耗增加,我们通过微观到宏观的自蒸馏提高了模型部署效率。在真实世界数据集上进行的大量实验表明我们的方法兼具有效性和高效性。未来,我们将考虑将多个辅助序列特征(如文本信息和类别)纳入我们的框架。此外,我们希望在训练双边序列模型时进一步缓解稀疏性问题,如基于预训练、数据扩充和自监督学习技术。

多推荐


大模型综述升级啦


RS meets Generative AI | 推荐系统与生成式AI相结合的研究进展


刨根问底——大模型时代对话式推荐系统的新型评测方式

点击下方“阅读原文”前往知乎专栏

↓↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存