综述 | 推荐系统里预训练模型(一)

简介: 综述 | 推荐系统里预训练模型(一)

大家好,我是对白。


在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。


当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。


01. UPRec: User-Aware Pre-training for Recommender Systems [submitted to TKDE]



先前的推荐系统里的预训练模型都只是专注于利用用户行为序列里面的通用序列模式,但是他们忽视了使用用户的信息来捕获个性化的兴趣。


在这篇文章里作者提出一个用异构用户信息来增强预训练模型,叫做 User-aware Pre-training for Recommendation (UPRec). UPRec利用用户属性和结构化的社交图来构建预训练阶段的自监督目标函数并提出两个用户感知的预训练任务。


与NLP领域的预训练的区别:NLP里面的预训练专注于学习通用的语言知识,而推荐系统不仅应该利用通用的序列模式,而且应该捕获每个用户的个性化的兴趣。因此在预训练的时候利用用户信息还是很有必要的。


b8eba8d9303ee001b9430e97ec957c24.png


这里主要定义了三个目标函数:


  • Masked Item Prediction

680ffe093bcb76b2f90afe90fdcc8c73.png


  • User Attribute Prediction


270612b5f8c3c397844e8c298e4d79ea.png


其中 是数值型特征的集合, 是离散型特征的集合。


  • Social Relation Detection


cda9f26a865d54bd2ae6e6e6e7c480ae.png


这里就是用的对比学习范式,目的是想让query用户的表示和其朋友的表示相似度接近,和负样本的表示原理。


467bc38943f245fd7969eef8dbd42dc8.png


UPRec包含两步,首先通过上面的L来预训练encoder,而在微调阶段使用预训练好的参数来初始化encoder的参数来进行下游任务。对于序列化推荐的任务,首先将序列里最后一个一个物品给masked掉并采用masked target的negative log-likelihood来优化模型。对于用户属性预测的任务,我们使用 [CLS] 的hidden vector来表示用户,然后对于数值型特征用回归的目标函数,对离散型特征用分类的目标函数(这里设置和预训练阶段一样)。


02. U-BERT: Pre-training User Representations for Improved Recommendation [AAAI 21]



用户表示通常是从行为数据(点击、评论内容)里面学习。


但是,对于不那么流行的域,行为数据不足以让模型充分地学习到精确的用户表示。


为了解决这个问题,一个自然的想法就是用内容丰富的域来补全用户表示。


受最近NLP领域的Bert的启发,我们提出了一个新颖的预训练和微调为基础的方法U-BERT。不同于BERT,U-BERT是专门为推荐系统定制的。


在预训练阶段,U-BERT专注于内容丰富的域并引进一个用户编码器和评论编码器来建模用户的行为。两个预训练策略也被提出来学习通用的用户表示;


在微调阶段,U-BERT专注于目标内容不丰富的域,出了预训练阶段的两个编码器,U-BERT进一步引入了物品编码器来建模物品表示。


此外,一个review co-matching layer也被提出去从用户和物品的评论里面学习语义更丰富的交互。最终,U-BERT结合用户表示,物品表示和评论交互信息去提高推荐系统性能。


e76cd074cfeda9b05bcd3ffbf920a082.png


Review Encoder就是用一个Bert来学习评论的表示


User Encoder的表示学习如下


9e88187c4ac83eddf256c047c0e81f8b.pnge3f83e0cd2dd4d6f845b51e72b282883.png51ac197633c4f3454da639a23a5450de.png






这里就是先将ID embedding和domain embedding相结合,得到一个新的用户embedding,然后将其和学习到的评论的表示做ATTN操作,做后再融合到一起。


预训练阶段两个任务:


任务一:Masked Opinion Token Prediction



与BERT相比做的修改:1)当预测masked word的时候,除了句子内容的表示,我们还添加了用户的表示来学习用户本质上的评论偏好;2)我们选择观点类的单词掩掉而不是随机掩单词,因为观点类的单词是不同域的评论共用的。


6366853e02435f4322b9270bbaa29209.png


任务二:Opinion Rating Prediction



这里使用融合了文本观点信息和通用的用户偏好信息来作为最终的用户embedding来预测评分。


7d217171b5cd99d644d7eed3f27f2aa7.png


预训练


1df4797575c9b6bca24eac7d8fe8be2e.png


微调U-BERT来进行评分预测任务


e3eb71a7ebde8d1d4b9696ffa6f6a46f.png


这里除了预训练阶段的两个encoder,还引入了Item Encoder.


Review Co-Matching Layer



通过理解用户u‍的评论,我们可以知道他关心的点。而通过理解物品i的评论我们可以知道这个物品所有方面的细节并且所有用户对于该物品的general comments.


因此我们可以估计用户u对物品i各个方面的关心程度通过衡量他们的评论语义相似度。受阅读理解里相关的工作启发,这里使用co-matching机制来收集相似信息。


c2bd50c6c0b7ae8bf4a890eb7857df7d.png


上面这里是将彼此的评论对齐,接下来就是引进匹配层来捕获原来的表示和注意力之后的表示的语义相似程度。


7e20dde11eaf105230be0121b2cece06.png


最后使用row-wise的max-pooling来融合所有位置的匹配信息来得到对用户评论和物品评论的充分理解。


43fada825ea9ddbdc3f720d55adef72d.png


预测层和训练:


7d217171b5cd99d644d7eed3f27f2aa7.png13ca9403c9e5de94b73382f275e8dbfa.png




实验设置:


  • Amazonproduct review datasets:选了十个域的数据集,前五个用来进行预训练,后五个进行微调


  • Yelp:选择了AZ metropolitan区域的餐厅的评论进行预训练,剩下的区域的餐厅的评论进行微调任务。



相关文章
|
机器学习/深度学习 人工智能 移动开发
人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)
人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)
|
搜索推荐 定位技术 图计算
综述 | 推荐系统里预训练模型(二)
综述 | 推荐系统里预训练模型(二)
588 0
综述 | 推荐系统里预训练模型(二)
|
人工智能 自然语言处理 搜索推荐
综述 | 推荐系统里预训练模型(一)
综述 | 推荐系统里预训练模型(一)
697 0
综述 | 推荐系统里预训练模型(一)
|
搜索推荐 知识图谱
综述 | 推荐系统里预训练模型(三)
综述 | 推荐系统里预训练模型(三)
348 0
综述 | 推荐系统里预训练模型(三)
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
155 1
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
3月前
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
285 9
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
|
3月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
264 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
6月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
196 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】

热门文章

最新文章

下一篇
无影云桌面