作者 | 上杉翔二

悠闲会 · 信息检索

整理 | NewBeeNLP

在我们之前分享的『对比学习+推荐』的文章中曾经提到,自监督学习被引入推荐系统领域主要有以下优势:

  • 舒缓数据稀疏。一般来说推荐系统的数据集,有点击的监督数据不便于收集,非常少,而且高度稀疏化,因此通过自监督学习是可以对数据进行增强和扩增的;

  • 舒缓噪音干扰。不但数据集稀疏,而且比如点击数据存在误点错点击等等的现象,因此解决噪音干扰也是自监督学习可以提供的优势。

  • 舒缓长尾分布。另外长尾问题甚至冷启动问题也基本是一直伴随着这个领域,所以一些冷门商品和用户的学习在这种情况下会更加的不充分,因此用自监督进行增强也是不错的选择。

今天分享一篇自监督学习用于推荐系统的综述,更为全面地整理Self-Supervised Recommender(SSR)的各方面。先上link:

  • title:Self-Supervised Learning for Recommender Systems: A Survey

  • paper:https://arxiv.org/abs/2203.15876

  • code:https://github.com/Coder-Yu/SELFRec

自监督推荐系统SSR的基本特征

  1. 通过半自动化的方式获取更多的监督信号。

  2. 通过一个辅助任务利用增强的数据来微调推荐系统。

  3. 辅助任务(Pretext task)协助推荐系统任务(Primary task)来完成更高性能的推荐模型。

其中,第一点确定了SSR的基本范围,第二点确定了SSR区别于推荐系统其他领域的问题设置,而第三点阐述了与推荐主任务与辅助任务的关系。

自监督推荐系统SSR的方法分类

  • Contrastive。对比式方法主要思想是通过数据增强任务来拉进两个相近实例的表示,拉远两个不相近实例的距离。

  • Generative。生成式方法主要思想是利用数据当中的一部分来预测另一部分,其是受自然语言处理领域带掩码的语言模型的启发。

  • Predictive。预测式方法与生成式方法类似,其都拥有预测任务。主要思想是利用半监督学习技术来预测富有信息量的新样本或者伪标签。

  • Hybrid。混合式方法主要思想是集成上述提及的任务一种或者多种辅助任务,并利用不同的权重将其整合起来。


自监督推荐系统SSR的训练方式

  • Joint Learning。联合训练模式主要框架是通过一个共享的编码器来同时优化主任务与辅助任务。

  • Pre-train and Fine-tune。预训练训练模式主要框架是首先在辅助任务上预训练,然后在推荐主任务上进行微调操作。

  • Integrated Learning。综合训练模式通过将主任务与辅助任务进行对齐进而利用整体的损失函数进行优化。

自监督推荐系统SSR的数据增强

  • Sequence-based。主要可以被分为Item Mask,Item Cropping,Item Reordering,Item Substitution与Item Insertion,具体如下图所示的一些操作。

  • Graph-based。主要可以被分为Edge/Node Dropout,Graph Diffusion与Subgraph Sampling

  • Feature-based。主要可以被分为Feature Dropout,Feature Shuffing,Feature Clustering与Feature Mixing。


开源工具包SELFREC

其包括了多个基准数据集以及评价指标,另外还实现了超10种SSR算法。

简单贴一下示例code

from SELFRec import SELFRec
from util.conf import ModelConfif __name__ == '__main__':#Register your model heregraph_models = ['SGL','SimGCL']#,'BUIR','SelfCF','SEPT','MHCN']sequential_models = []dnn_models = []print('='*80)print('   SELFRec: A library for self-supervised recommendation.   ')print('='*80)print('Graph-based Models:')print('   '.join(graph_models))print('='*80)model = input('Please enter the model you want to run:')import times = time.time()if model in graph_models or model in sequential_models or model in dnn_models:conf = ModelConf('./conf/' + model + '.conf')else:print('Wrong model name!')exit(-1)rec = SELFRec(conf)rec.execute()e = time.time()print("Running time: %f s" % (e - s))

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

综述!推荐系统中的自监督学习相关推荐

  1. 何向南教授团队最新综述:对话推荐系统中的进展与未来挑战

    ©作者|高崇铭.雷文强等 来源|社媒派SMP 背景介绍 推荐系统为工业界带来了巨大的收益.大多数推荐系统都是以静态的方式工作,即从用户历史的交互中来推测用户的兴趣爱好从而做出推荐.然而,这样的方式有缺 ...

  2. 区块链在个性化推荐系统中的应用研究综述

    区块链在个性化推荐系统中的应用研究综述 许小颖, 陈熙, 陈源, 谢永靖 华南理工大学工商管理学院 摘要:区块链作为一种新兴技术,以其去中心化.难以篡改.匿名性和可追溯性等特点,为个性化推荐系统的改进 ...

  3. 【推荐实践】腾讯推荐系统中的深度匹配模型

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年6月热门报告合集从零开始了解推荐系统全貌机器学习在B站推荐系统中的应用实践微信视频号实时推 ...

  4. 「构建企业级推荐系统系列」深度学习在推荐系统中的应用

    点击上方"数据与智能","星标或置顶公众号" 第一时间获取好内容 作者 | gongyouliu 编辑 | auroral-L 2016年DeepMind开发的 ...

  5. 深度学习在推荐系统中的应用

    作者丨gongyouliu 编辑丨zandy 这是作者的第20篇文章,约2.4万字,阅读需180分钟 2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全 ...

  6. 从原理到应用落地,一文读懂推荐系统中的深度学习技术

    作者丨gongyouliu.zandy 来源丨大数据与人工智能(ID:ai-big-data) 2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全球的重 ...

  7. 搜索和推荐系统中的深度匹配模型

    文章作者:辛俊波 腾讯 高级研究员 编辑整理:DataFunTalk 导读:推荐系统和搜索应该是机器学习乃至深度学习在工业界落地应用最多也最容易变现的场景.而无论是搜索还是推荐,本质其实都是匹配,搜索 ...

  8. 【推荐实践】腾讯-推荐系统中的深度匹配模型

    导读:推荐系统和搜索应该是机器学习乃至深度学习在工业界落地应用最多也最容易变现的场景.而无论是搜索还是推荐,本质其实都是匹配,搜索的本质是给定 query,匹配 doc:推荐的本质是给定 user,推 ...

  9. AutoML 在推荐系统中的应用

    AutoML 在推荐系统中的应用 http://blog.sina.com.cn/s/blog_cfa68e330102zfe3.html 今天,推荐系统的模型和应用已经相当成熟,然而部署一套全新的推 ...

  10. 联邦学习怎样应用在推荐系统中?

    来源:知乎丨羊老头 说起联邦学习,大家再熟悉不过了,由于其能在数据不移动的前提下协同训练一个全局共享的模型,迅速成为了人工智能安全领域的一个研究热点.推荐系统作为人工智能领域最振奋人心的应用之一,与联 ...

最新文章

  1. linux常用ogg脚本,ogg基本监控脚本
  2. 牛客网Java刷题知识点之字节缓冲区练习之从A处复制文本文件到B处(BufferedReader、BufferedWriter)、复制文本文件的原理图解...
  3. Android Prefence 总结
  4. Redis 的应用场景
  5. Linux系统启动流程(4)制作自定义linux之一
  6. python输出字母金字塔可以输入字母和行数的_python实现输入任意一个大写字母生成金字塔的示例...
  7. 【java笔记】线程间通信(1):等待唤醒机制
  8. 商务办公软件应用与实践【4】
  9. 使用python 生成二维码 中间带logo
  10. Python GUI案例之看图猜成语开发(第一篇)
  11. dqo变换_基于dqO变换的电压暂降检测方法研究
  12. 2022保密教育线上培训考试 01
  13. PLUPLOAD插件 ━━ 上传总结(分片上传,php后端处理)
  14. 巨头争云存储祭免费旗 或重演视频业消耗战
  15. windows下red5配置
  16. kafka报错Error while fetching metadata with correlation
  17. 谈《西游记》和泛项目
  18. 使用Lambda表达式对中文拼音排序(按中文字典排序)
  19. linux下mysql(rpm)安装使用手册
  20. 使用node+vue.js实现SPA应用,解决了SPA应用的最大缺点SEO

热门文章

  1. Flutter中StatefulWidget生命周期小记
  2. 初探Matplotlib
  3. 小程序即时配送配置指南
  4. 金融量化分析基础(二)—— 套利
  5. 计算机网络技术在实践中应用,计算机网络技术及在实践中的具体应用
  6. ubuntu16.04Django环境的搭建
  7. 网页信息抓取-如何获取延迟加载的网页数据
  8. c语言程序烧写步骤,单片机烧写程序步骤
  9. JavaWeb(Request、BeanUtils)
  10. 发布一个水管接通游戏的源代码