​SIGIR 2023 | 用于序列推荐的多兴趣预训练框架

news2024/11/21 11:02:54

482169d19d6c7864073af66d90dcb111.gif

©PaperWeekly 原创 · 作者 | 唐作立

单位 | 武汉大学硕士生

研究方向 | 推荐系统

40c8106398a0fe70fc6b36d6beff147e.png

引言

在推荐系统中,由于用户具备多种兴趣的特点,使用多兴趣学习(Multi-interest Learning)对用户进行建模能够带来显著的性能提升,在序列推荐中是一种流行的方法。最近,基于语言模型的预训练推荐方法利用语言构建不同领域间的信息桥梁,在跨领域数据集上进行预训练序列建模模型,在没有利用多兴趣学习的下获得了较大的性能提升。

然而,跨领域构建多兴趣预训练推荐方法并不是一件简单的事情,不同领域用户的兴趣点并不相同,用户兴趣数也是不尽相同的。因此本文提出了一个名为 MiracleMulti-Interest Pretraining with Sparse Capsule Network,基于稀疏胶囊网络的多兴趣预训练)的新方法,其中包含基于文本表征的商品编码器模块与基于稀疏胶囊激活的多兴趣学习模块,其中商品编码器模块使用商品文本信息获取商品表征,基于稀疏胶囊激活的多兴趣学习模块能够动态的判断用户序列中的兴趣数目并聚合用户兴趣。

论文标题:

Towards Multi-Interest Pre-training with Sparse Capsule Network

论文作者:

唐作立,王琳,邹立新,张晓露,周俊,李晨亮

作者单位:

武汉大学,蚂蚁集团

论文链接:

https://dl.acm.org/doi/10.1145/3539618.3591778

代码链接:

https://github.com/WHUIR/Miracle

9657e50f249047056d3010f23b620d24.png

方法

032611c75a8e792fad02bc590aa97b1a.png

2.1 问题定义

在序列推荐系统中,存在用户集 与商品集 ,针对用户集 中的任意用户 ,可以将其交互序列按照交互的时间先后组织成有序序列 ,其中 代表了用户 的第 个交互商品。每个商品 都会关联一段文本信息 ,包括商品名称,商品描述等。推荐模型形式化的被定义为一个打分函数 ,其计算商品 与用户 的相似度分数,因此序列推荐系统的目标是根据用户 与不同商品之间的分数,生成 Top-k 推荐列表。

更多的,在预训练推荐系统中,存在两种类型的数据集: 和 ,分别代表预训练数据集与下游微调数据集。推荐模型的参数首先在预训练数据集 上使用预训练目标 预热,然后在下游数据集上使用微调目标 微调并验证模型性能。通常来说, 是一个资源丰富的数据集,而 只有少量数据。

2.2 基于文本的商品表征

我们的目标是进行推荐系统的预训练,考虑到商品 ID 在跨领域时无语义信息以及文本信息天然具备的可迁移性,我们首先利用预训练语言模型(如 BERT)将商品的关联文本编码至固定维度的表征。然后为了能够从不同的领域中抽取信息,我们采用了 MoE 结构来区分不同领域的知识,并将其映射到统一的语义空间。然后我们使用双向 Transformer 作为序列编码器来构建深度上下文化的商品潜入。

2.2.1 基于预训练语言模型的文本编码器

我们使用 Bert-base 来提取商品的描述文本中的语义信息。与一般使用 BERT 进行语义抽取的方法类似,我们在 前放置一个 符号,然后将组成的句子输入到 BERT 中,最后取 [CLS] 位置在最后一层 Transformer 的输出作为的  语义表征:

9a049ec36de09f2ab3561ee845169628.png

2.2.2 基于混合专家网络的适配器

为了获得一个数据丰富的预训练数据集,并将来自不同领域的知识与项目的文本表示共享,我们将多个领域数据集混合形成预训练数据集 。然而,正是由于商品来源于不同领域,所以其描述文本经过 BERT 后的语义空间相差较大(称为领域偏差),直接将其输入到后续的序列编码器中并不合理,需要将不同领域的文本嵌入转换同一语义空间。因此我们借鉴 [1] 的做法,使用 MoE 结构来消除领域偏差:

5203224925e57a8a60717b7047af4cf2.png

其中 是第 个专家网络的门控权重。门控 与专家网络表示如下:

42333f468e0375f4a964195c974eec02.png

2.2.3 上下文编码器

经过 MoE 网络后,可以得到商品序列的文本表征 ,我们使用 层双向 Transformer 作为商品的上下文编码器:

a8fe97d8f882c0f41504907c7bdefa19.png

其中  为 Position Embedding,(Feed Forward Network)和 (Multi-Head Attention)是 Transformer 的组成部分。我们称第 层 Transformer 的输出的商品表征为 。

2.3 稀疏兴趣胶囊网络

在获得有上下文信息的商品表征后,我们设计了一个稀疏的兴趣胶囊网络来提取用户在交互序列中的多个兴趣。需要注意的是在胶囊网络中表征与胶囊的含义是相同的。与之前的基于胶囊网络的多兴趣学习方法 [2, 3] 相比,我们为胶囊网络设计了稀疏兴趣胶囊激活机制,在动态路由阶段前其能够动态的确认用户序列含有的兴趣数量以及有效初始化胶囊之间的耦合系数。

2.3.1 稀疏兴趣胶囊激活

在训练时,我们首先随机初始化一个兴趣胶囊嵌入池 ,其包含个 个兴趣胶囊, 是维度。对于一个特定的用户交互序列,兴趣胶囊池中仅有一部分胶囊会根据商品的上下文嵌入与未激活的兴趣胶囊的相似度 被激活:

d6aa9ebb1b8dc143b210e03bb085ab1c.png

其中 分别代表了交互序列中第 个商品和兴趣胶囊池中的第 个胶囊。 为内积。 为高斯噪音。因此,在获得序列商品与兴趣胶囊的相似度矩阵 后,我们为每个商品激活一个兴趣胶囊,同时生成胶囊激活向量:

cba6c13ea18548d6a82ac06b4f0521c4.png

需要注意的是,每个商品仅会激活一个兴趣胶囊,而一个兴趣胶囊可以被多个商品激活。在胶囊激活向量 中, 代表第 个胶囊会被商品序列激活。

2.3.2 位置相关的胶囊网络

在以往的基于胶囊网络的多兴趣学习方法中 [2, 3],其主要强调如何获取多兴趣表征,从而忽略了兴趣序列中的序列信息,序列推荐的一个基本共识是,交互时间越相近的商品其相关性就会越高。因此,我们利用注意力机制来动态的计算不同位置上商品的重要性:

7b54414e318d11e21d339e3f6679c94b.png

其中 是另一个为多兴趣学习而设置的 Position Embedding。

2.3.3 多兴趣提取网络

我们使用动态路由作为多兴趣提取网络,动态路由的目标是在给定商品胶囊的情况下迭代的计算兴趣胶囊值,其可以自适应的将类似的商品聚合为兴趣。我们首先使用含有残差连接的全连接网络以及 LayerNorm 将语义空间从商品转化为兴趣:

971f5b17f5522a06b1aeb997f443a594.png

然后,我们获取第 个兴趣胶囊的表征,其是所有商品胶囊的权重和:

0a5d0793ec6985c107dbd0cf3b0ac443.png

其中 是第 个商品胶囊与第 兴趣胶囊之间的耦合系数。 代表了第 个商品的重要性。耦合系数是在激活过的兴趣胶囊上经过  归一化得到:

e3e25c504999884f921964e69aadf8ab.png

其中 是第 个商品胶囊与第 个兴趣胶囊之间的相似度。在以往工作基于胶囊网络的多兴趣工作中, 通常是全零初始化或随机初始化,这可能会导致不同兴趣之间的混合,因此我们使用在稀疏兴趣胶囊激活中已经计算好的相似度 来初始化第一轮的兴趣相似度。然后使用非线性压缩函数将 的模长压缩到 之间,从而得到用户第 个兴趣胶囊的表征 :

9c043c5104bb278468c3e2ade2445526.png

然后,基于得到的兴趣胶囊,可以更新商品胶囊与兴趣胶囊之间的相似度:

2a938a5bbca3c60856254f74eca6e113.jpeg

我们重复上述过程次来获得更准确的用户兴趣, 代表了用户的兴趣表征且 。

2.4 模型训练与部署

2.4.1 兴趣级预训练

在这一节中,我们设计了一个兴趣级的对比学习任务来增强序列编码器以及多兴趣提取网络的性能以及鲁棒性。具体来说,我们使用特殊的 符号 随机掩盖序列中的商品得到增广序列,在原序列中使用 表示该商品所激活的兴趣胶囊所代表的兴趣,在增广序列中使用 表示被掩盖商品激活的兴趣胶囊所代表的兴趣,我们将   与 视为正样本,Batch 内其它序列被掩盖的商品所激活的兴趣胶囊所代表的兴趣视为负样本。

然而,由于序列所激活的兴趣受到稀疏胶囊激活机制的控制,增广序列所激活的兴趣可能与原序列并不一致,即 与 对应的不是同一个兴趣。因此,我们强迫增广序列的胶囊激活向量 与原序列的胶囊激活向量  一致从而使得增广序列与原序列所激活的兴趣是一致的,对比损失计算如下:

94e40062ef51cb057bdcdf4e29448dca.png

其中, 代表了 Batch 内被掩盖的商品总数。

2.4.2 下一项预测

基于兴趣级对比损失外,在预训练阶段我们还有常规的推荐损失。负样本采样策略为基于流行度的负采样,其使用将 Batch 内其它样本作为负样本来实现,使用交叉熵作为损失函数:

d5ca5a3c0d64d15e629e565411c743c9.png

其中 是第 个用户与第 个商品的推荐得分:

08f759e265f13f2930db18be61aac959.png

2.4.3 胶囊正则化

在极端情况下,兴趣胶囊池 内所有的兴趣胶囊含义相同,或所有的商品激活同样的兴趣胶囊,这会使得多兴趣提取网络无法提取多兴趣信息,因此有必要保证兴趣之间的正交性以及兴趣胶囊间的均衡分配。我们首先通过如下的损失强迫兴趣胶囊池  内的兴趣胶囊满足正交性:

5bd8556f6241a06519c060086f0218ea.png

其次,我们通过如下的损失来增强胶囊间的均衡分配:

9ca8a56a3c1ee70b0ab77609df985120.png

预训练:最终的预训练损失是上述四个损失的线性相加:

03fe0375deab20c3d6bf1ed5b1331b41.png

其中 是超参数。

2.4.4 微调

在下游数据集微调阶段,我们固定序列编码器的所有参数,同时保持其它网络参数可训练。我们使用交叉熵作为损失函数。需要注意的是,在微调时商品 ID 是可以使用的,因此我们为下游数据的商品创建了一个嵌入表 。对于商品 ,我们将其文本表征 与对应的 ID 嵌入 相加作为商品表征。微调时的推荐损失以及最终损失如下:

3d716e88f0ab1039ebd65291738fd826.png

b2c2892291cd33737d5fcba165c67145.png

实验

3.1 实验设置

  • 预训练数据集:由 Amazon Review 下的 Food,CDs,Kindle,Movies,Home 五个数据集混合组成

  • 下游微调数据集:与预训练同平台跨领域的 Scientific, Pantry, Instruments, Arts, Office 以及跨平台的 Online Retail

  • 在预训练时将五个领域的数据混合训练,在测试时在六个数据集上分别微调测试。采用 5-core 的数据清洗方法,采用 leave-one-out 的训练集,验证集与测试集的划分方法,在验证集上验证,采用 Early-stop 策略

  • 采用 Recall 与 NDCG 作为评价指标

3.2 实验结果

c802a3b29174739d9026087ab0364ea2.png

上图展示了在六个下游数据集中我们与基线方法对应的结果,从实验结果中我们可以发现 Miracle 相对于基线方法获得了稳定的性能提升。

3.3 预训练效果验证

Inductive Recommendation:在下游微调时,我们使用了商品的 ID 嵌入,考虑到冷启动商品可能不具备较好的 ID 嵌入,我们在微调时按照预训练的方式,仅仅使用商品文本表征表示商品,称为 Inductive setting,我们选取了 SASRec,FDSA 以及 UniSRec 作为对比,由于 SASRec 与 FDSA 必须要使用 ID 代表商品,所以其不满足 Inductive 设定,而 UniSRec 在 Inductive Setting 条件下评估,实验结果如下图:

e651adc246671ff2ea88cb486f06683b.png

Zero-shot Recommendation:考虑到文本的通用性,我们测试了在不进行下游微调时模型的推荐性能,即满足 Zero-Shot 情况下进行推荐。我们选取 Random,Popularity Based,UniSRec 方法作为对比。Random 代表了模型的推荐的下限,而 Popularity Based 方法是一个最简单的有训练数据的方法,实验结果如下图:

a561fa2e4f2915225e5032e7b1e4af92.png

可以看到在 Scientific 与 Arts 数据集上,我们的方法超过了 Popularity Based 方法与 UniSRec,但是在跨平台数据集 Online Retail 上并没有取得很好的结果,一个可能的原因是不同平台的文本数据结构并不一致,导致文本表征的分布偏差较大,所以效果不佳,但是其仍然获得了远超 Random 的效果,是能够执行有效推荐的。

3.4 消融实验

我们设置了以下三种消融实验:

  1. 没有稀疏胶囊激活模块(w/o SS)

  2. 没有位置相关模块(w/o PW)

  3. 没有兴趣级对比学习模块 (w/o IC)

255c2da843e666b06f3a6d9d7148fd1a.png

实验结果如上图所示,可以发现所有的模块对性能的提升都是有用的。

4e46faf169c0ab097205832d1df2f4ef.png

总结

在本文中,我们提出了一种新的用于序列推荐的多兴趣预训练框架。我们分别利用 MoE 结构和双向 Transformer 来融合跨领域知识和模型上下文信息。此外,我们解决了以前的多兴趣学习方法中用户兴趣计数的数量应该预先定义的限制,并对动态路由中的时序信息进行了建模。在几个跨领域数据集和一个跨平台数据集上的经验结果表明,我们的模型比最先进的基线表现更好。

outside_default.png

参考文献

outside_default.png

[1] Yupeng Hou, Shanlei Mu, Wayne Xin Zhao, Yaliang Li, Bolin Ding, and Ji-Rong Wen. 2022. Towards Universal Sequence Representation Learning for Recommender Systems. In Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining. 585–593 

[2] Chao Li, Zhiyuan Liu, Mengmeng Wu, Yuchi Xu, Huan Zhao, Pipei Huang, Guoliang Kang, Qiwei Chen, Wei Li, and Dik Lun Lee. 2019. Multi-interest network with dynamic routing for recommendation at Tmall. In Proceedings of the 28th ACM International Conference on Information and Knowledge Management. 2615–2623. 

[3] Controllable multi-interest framework for recommendation. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2942–2951.

更多阅读

0c17794e697c4d1b8c5265fde6df7ea9.png

c9d68d5fdeeb79bc36ce9da1020a7897.png

fcaf8cc6a31213c8f8ce7cb3c4adce8c.png

9653f34c537655c0cd3da932ec1e66e8.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

d3e92ace9afc56662b59b443119ef583.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

bcbb30d763cf9bd63888b4d2ba022ccf.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/971087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2023集创赛】加速科技杯二等奖作品:基于ATE的电源芯片测试设计与性能分析

本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)加速科技杯二等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼…

自然语言处理 微调大模型ChatGLM-6B

自然语言处理 微调大模型ChatGLM-6B 1、GLM设计原理2、大模型微调原理1、P-tuning v2方案2、LORA方案 1、GLM设计原理 bert的主要任务是随机的去除掉某个单词,使用上下文将其预测出来(相当于完形填空任务); GPT的主要任务是根据前…

idea配置gitLab

前言:网上有很多类似的文章,但描述不够详细 步骤1:安装git 如果安装成功再次点击TEST按钮展示如下:git版本 步骤2:idea配置gitlab 查看当前项目管理的 远程仓库再git的地址,该地址可是gitLab的&#xff0…

基于sonar 的C#静态代码扫描使用总结

1.原理简介 C#语言接入Sonar代码静态扫描相较于Java、Python来说,相对麻烦一些。Sonar检测C#代码时需要预先编译,而且C#代码必须用MSbuid进行编译,如果需要使用SonarQube对C#进行代码质量分析,则需要Sonar-Scanner-MSBuild和MSBu…

WorldCoin 运营数据,业务安全分析

WorldCoin 运营数据,业务安全分析 Worldcoin 的白皮书中声明,Worldcoin 旨在构建一个连接全球人类的新型数字经济系统,由 OpenAI 创始人 Sam Altman 于 2020 年发起。通过区块链技术在 Web3 世界中实现更加公平、开放和包容的经济体系&#…

PHP 影院售票管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页代码

一、源码特点 PHP 影院售票管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 https://download.csdn.net/download/qq_41221322/88297676 PHP 影院售票管理系统Dr…

OpenCV(十九):模板匹配

1.模板匹配: OpenCV提供了一个模板匹配函数,用于在图像中寻找给定模板的匹配位置。 2.图像模板匹配函数matchTemplate void matchTemplate( InputArray image, InputArray templ, OutputArray result, int method, InputArray mask noArray() ); image…

小程序上传文件

wx.chooseImage({success (res) {const tempFilePaths res.tempFilePathswx.uploadFile({url: https://example.weixin.qq.com/upload, //仅为示例,非真实的接口地址filePath: tempFilePaths[0],name: file,formData: {user: test},success (res){const data res.…

GEE:空气污染指数 (API)计算

作者:CSDN @ _养乐多_ 本文记录了基于以下公式计算的空气污染指数代码: API = 0:7(NO2)+ 0:15(SO2)+ 0:1(O3)+ 0:05(CO) 计算空气污染指数 (API)。 文章目录 一、完整代码二、完整连接一、完整代码 var roi = table;var dataset_NO2 = ee.ImageCollection(

Python读取xls文件

Python读取xls文件 1、这里面有个问题在读取xlsx的时候有点问题,汇报异常,要把文件名字改成xls import xlrd import os def getdata():file_path os.path.dirname(os.path.abspath(__file__))base_path os.path.join(file_path, 1.xls)book xlrd.op…

Yolov5改进算法之添加Res2Net模块

目录 1. Res2Net介绍 1.1 Res2Net的背景和动机 1.2 Res2Net的基本概念 2. YOLOV5添加Res2Net模块 Res2Net(Residual Resolution Network)是一种用于图像处理和计算机视觉任务的深度卷积神经网络架构。它旨在解决传统的ResNet(Residual Ne…

在职博士|中国社科院-英国斯特灵创新与领导力管理博士之中方课程《变革领导力》

在职博士|中国社科院-英国斯特灵创新与领导力管理博士之中方课程《变革领导力》 在职博士|中国社科院-英国斯特灵创新与领导力管理博士之中方课程《变革领导力》 本次课程的主讲老师是现任中国社会科学院人口与劳动经济研究所研究员、人力资源研究室主任,中国社会科…

虹科产线实时数采检测方案——高速采集助力智能化升级

01 产线数采检测相关技术背景 1.1 典型场景 对于产线数采检测,让我们从典型的工厂场景开始介绍。 每个工位都有上位机监控下方的PLC控制器。指令、执行单元和作用对象的状态通过内置传感器进行采集和测量,反馈给PLC实现闭环控制。 工业4.0和智能制…

快速学会git版本管理——上传gitee仓库

首先在gitee右上角有一个新建仓库 创建之后打开自己想要上传的文件 右键打开 Git Bash Here 接下来会弹出git的窗口 首先先初始化仓库 用git命令 git init 然后用git add . 上传所有文件上传到暂存区(上一篇文章说过add是单个文件,add . 是所有文件) 没有显示错误 …

内存泄漏分析

一、什么是内存泄漏? 内存泄漏是指在程序运行过程中,分配给程序的内存空间在不需要时没有被正确释放或回收的情况。 二、Java层内存泄漏。 Android应用程序中Java层常见的内存泄漏情况: Context引用泄漏:Android中的Context是…

【Flutter】Flutter 使用 flutter_rating_bar 实现评分条指示器

【Flutter】Flutter 使用 flutter_rating_bar 实现评分条指示器 文章目录 一、前言二、简介三、安装和基本使用四、实际业务中的用法五、完整示例六、总结 一、前言 大家好,我是小雨青年,很高兴与大家分享 Flutter 中的一个非常实用的组件:f…

马斯克谈 Facebook 不开源算法

导读虽然马斯克与扎克伯格的 “八角笼中” 之约没有达成,但很显然,马斯克并不打算就此罢休。既然没能在线下大战一场,那自然不会错过在线上 “出招” 的机会。 他转发了一则推文,并说道:“在地球上,Facebo…

STM32调试时卡在B 0x20000000

分析原因,发现sw下,硬件接reset管脚,所以需要设置debug reset 选择 hw reset

Excel中将文本格式的数值转换为数字

在使用excel时,有时需要对数字列进行各种计算,比如求平均值,我们都知道应该使用AVERAGE()函数,但是很多时候结果却“不尽如人意”。 1 问题: 使用AVERAGE函数: 结果: 可以看到单元格左上角有个…

2023年9月重庆/上海/深圳NPDP产品经理国际认证火热招生

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…