多视角多行为推荐对比学习
前言
今天给大家介绍一篇基于多视角多行为对比学习的文章,我们知道在推荐系统,经常会使用用户的行为序列来训练模型进而来预估用户诸如ctr之类的指标,那其实用户在一个产品上的行为是多种多样的,比如点击、收藏、购买甚至是负反馈,如果我们能够把这种多行为联合建模,那是不是会带来更多的增益呢?
同时在建模的时候,有多种方式,比如基于序列建模的,基于graph建模的;前者能够很好的学习用户的局部视角信息,后者则能够更好的关注全局视角信息。
总的来说,既要考虑用户不同行为之间的粗粒度共性,还有考虑不同行为之间的细粒度个性,同时还有不同视角下信息。
为了解决上诉问题,本次介绍的这篇paper是通过三个对比学习loss实现的并且开源了代码,具体来看看吧~
论文链接:https://arxiv.org/pdf/2203.10576.pdf
代码链接:https://github.com/wyqing20/MMCLR
方法
模型的总框架如下所示:
(1)特征表征
从上面图可以看到,输入的数据有两种,一种是代表用户个性视角的序列性,一种是全局视角的graph形式,序列编码SeqEnc和图编码GraphEnc可以采取任何已有的算法,其中论文中SeqEnc采用的是Bert4rec,GraphEnc采用的是lightGCN。
Multi-behavior Fusion是对用户多种行为的交互编码,具体的是讲所有行为emb过两层MLP,注意这里具体的应该是有两种Multi-behavior Fusion即一种是序列视角下的,一种是graph视角下的。Multi-view Fusion是对上述两种视角下的Multi-behavior Fusion再进行一次交互,具体的也是MLP层。
总结一下就是:Multi-view Fusion最后实际上能够得到两个Fusion的编码即user和item的。其中每个user在每个视角下都有Multi-behavior Fusion多行为编码,而item在每个视角下也都有自己的编码,只不过在graph下有聚合得到的编码而在序列视角下就是其自身。
(2)loss
loss这里从大的方面看是四个,一个是单纯的行为预测以及三个对比学习loss。重点看后面三个对比loss。
(a) 第一个loss比较容易想到,假设当前建模是预测用户的购买行为,那正样本就是具有购买行为的user-item pair,负样本就是随机抽样的pair,然后依据上述的Fusion的user和item的编码直接计算loss.
(b) 多行为对比学习loss:假设在序列视角下,同一个用户具有不同的行为,可以先验的知道同一用户的不同行为表示之间应当要比另一个用户的行为表示更加接近,看到没?对比学习loss是不是已经出来了?
(c) 多视角对比学习loss:这里的核心是同一用户不同视角下的行为表示应当比另一个用户的更为接近
(d) 这里的对比学习就更细粒度了,假设在电子商务场景有购买和点击行为,我们的最后目标其实是想要预测购买行为,那也就是说行为之间是有优先级的,假设在一个batch内,对于同一个用户来说,其user和购买的item距离是要小于其user和点击的item的距离的,其次再小于其user和随机抽取的item距离的。
看到这里,大家可以再仔细看看(d)和(a) 的不同,(a)是对具体某一个行为的预测建模,而(d)是对不同行为的预测loss进行排序建模。
最终的loss就是将上面所有的loss求和
实验
讲完了idea,下面我们来看看实际实验效果~
(1)数据集
作者这里使用了两个数据集Tmall和CIKM2019 EComm AI。每个数据集的都是user和item之间的交互,具体有三种行为:点击、加购物车和购买。
具体的,经过处理,Tmall包含22014个users和27155个items,83778 个购买行为, 44717加购物车行为和485483 个点击行为。CIKM2019 EComm AI包含23032个users和25054个items,100529 个购买行为, 38347 个加购物车行为和276750点击行为。
(2)VS baseline
作者这里对比了多个基线模型(MMCLR是本文提出的模型),可以看到具有提高
(3)idea的消融实验
将多行为对比学习、多视角对比学习和多行为细粒度对比学习分别命名为BCL、VCL、DCL
从上面可以看到都有效果,最后的MMCLR就是seq+graph+BCL+VCL+DCL
(4) 冷启动
同时作者实验了MMCLR在冷启动用户上的表现,可以看到都是有效果的
(5)不同的超参
作者这里进一步实验了不同的超参对结果的印象,weight这里是指对那四个不同loss融合的权重,可以看到当(a)loss的权重为1、其他几个对比学习权重分别是0.2, 0.2, 0.2, 0.05时取得最好的结果。
同时作者也对不同维度进行了探究,可以看到越到越好,不过当大到256时,有所下降,可能是过拟合造成的,所以太大的维度也不必要
总结
(1)同端的不同行为甚至是多端行为的利用是有可能带来收益的
(2)不同视角这个想法也不错~
关注
欢迎关注,下期再见啦~
欢迎关注笔者微信公众号:
github:
Mryangkaitong · GitHubhttps://github.com/Mryangkaitong
知乎:
小小梦想 - 知乎
多视角多行为推荐对比学习相关推荐
- 对比学习视角:重新审视推荐系统的召回粗排模型
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 对比学习在快手推荐系统中的应用实践 机器学习在B站推荐系统中的应用实践 小红书推荐系统中台应用实践 微信视频号实 ...
- 谈推荐场景下的对比学习
前言 最近对比学习(Contrastive Learning, CL)火得一塌糊涂,被Bengio 和 LeCun 这二位巨头在 ICLR 2020 上点名是 AI 的未来.作为普通打工人,对比学习能 ...
- 张俊林:从对比学习视角,重新审视推荐系统的召回粗排模型
分享嘉宾:张俊林博士 新浪微博 编辑整理:王岩 出品平台:DataFunTalk 导读:今天分享的主题是从对比学习的视角,即从一个不同的角度来看看推荐系统里面的召回和粗排模型.对比学习从去年年中开始比 ...
- 对比学习视角重新审视推荐系统
目录 1 什么是对比学习 1.1 对比学习的渊源和谱系 1.2 什么是对比学习系统 1.3 对比学习的典型例子 SimCLR给出的解决办法 1.4 什么是不好的对比学习系统 1.5 什么是好的对比学习 ...
- 购物篮推荐场景太复杂?没有商品相关性标签?看作者运用对比学习统统解决...
©PaperWeekly 原创 · 作者 | Yuqi Qin 学校 | 北京邮电大学 研究方向 | 推荐系统 本文关注的是对购物篮去噪.目的是:从历史购物篮序列中挑选出真正可信赖的相关商品,来对每个 ...
- CIKM'21 | 谷歌:推荐中的自监督对比学习
作者 | Chilia 哥伦比亚大学 nlp搜索推荐 整理 | NewBeeNLP 1.对比学习到底是啥 对于最近很火的"对比学习",许多人把它和我们之前经常用的向量化召回混为一谈 ...
- #今日论文推荐#ACL 2022 | 引入角度margin构建对比学习目标,增强文本语义判别能力
#今日论文推荐#ACL 2022 | 引入角度margin构建对比学习目标,增强文本语义判别能力 聚焦的问题:近年来基于对比学习的句子表示学习研究取得了较大的进展,但是大多数方法都只关注如何挑选对比学 ...
- NeurIPS 2022|探明图对比学习的“游戏规则”:谱图理论视角
©作者 | 刘念, 王啸 单位 | 北邮 GAMMA Lab 研究方向 | 图神经网络 论文标题: Revisiting Graph Contrastive Learning from the Per ...
- 推荐五篇论文| 轻量级的Transformer; 对比学习;ResNeSt;Shortcut Learning等
本文介绍了最近比较有意思的五篇文章: 轻量级的transformer 监督式的对比学习 shortcur learning ResNeSt Attention模块的分析 Lite Transforme ...
最新文章
- linux系统分析命令,Linux操作系统基础解析之(四)——Linux基本命令剖析(2)
- AI新作品:照片迅速被画成艺术画
- ADS1.2安装教程
- CXF客户端配置请求超时限制-SocketTimeoutException(Spring配置文件中配置和通过代码进行配置)
- 阿里云开发大会——体验云效智能代码补全
- 3d立体相册特效html网页代码_新闻类网页正文通用抽取器
- springboot3.x 集成持久层框架
- api laravel 统一返回方法_你写的API接口代码真的烂,难道不能对返回格式统一处理一下吗?...
- Japan树状数组求逆序数
- 使用串口打印系统时间
- Python 打包的EXE文件反编译1|EXE文件反编译为pyc文件
- 计算机键盘无法使用的原因,电脑键盘失灵的原因及解决方法
- 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem F. Judging Time Prediction 优先队列...
- Cadence 16.6 Allegro中如何设置多层板的每一层的单端信号的线宽以保证50Ω阻抗?
- 基于python OpenCV多边形图像识别的实现
- 穷养儿富养女 很多人都不知道这句话的真正含义
- EVE-NG模拟器社区版网络模拟环境搭建教程
- hive查看一张表的分区字段_Hive常规操作(查看和操作分区,字段,注释)
- MAE同期工作!MSRA新作SimMIM收录CVPR 2022!高达87.1%准确率!掩码图像建模新框架...
- java static void_java中static关键字
热门文章
- C/C++ 求某个月有多少天
- 自动化工具PyAutoGUI :键盘操作
- 女人要富养,打扮得漂漂亮亮
- 男孩看了会领悟,女孩看了会感动!!
- 责任链模式(职责链模式)
- 如何开发一个像Instagram的app?
- 扎克伯格和他背后的“战士”们
- c# 利用 GZipStream 压缩解压缩文件(所有类型的文档)
- linux中 fopen函数,详解C语言中的fopen()函数和fdopen()函数
- 领域建模之数据模型设计方法论