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

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

03Curriculum Pre-Training Heterogeneous Subgraph Transformer for Top- Recommendation [arxiv 21]



HIN里面包含很多复杂并且可能和推荐任务不相关的信息,因此怎么从HIN里面高效地利用有用的信息来提升推荐系统地性能是一个挑战。为了解决上面的问题,本文提出了Curriculum pre-training based HEterogeneous Subgraph Transformer(CHEST)。具体的,作者考虑从HIN里面提取有用的信息来组成交互相关的异构子图,子图包含了充分并且相关的信息来进行推荐。然后本文通过一个一个异构子图transformer来捕获丰富的语义知识。此外,本文还设计了一个curriculum 预训练策略来提供一个初级到高级地学习过程,使得HIN里面学习到的基础的语义知识可以平滑地迁移到user-item交互地建模中。


610b959d18936ee91564a6d439cb40cb.png


本文首先根据UIUI、UIAI这两条路径规则采样出N条target user( )到target item( )地路径构建出一个异构子图。


02b7f1b93fb840986098860a000b6551.png


随后根据图上不同的节点位于target user的几阶关系上把对应的节点分到对应的slot,并找到对应的slot embedding,然后为了更充分地考虑结构信息,作者还考虑了前继节点的embedding,对于有多个前继节点的节点embedding,用其前继节点的平均和表示。


4d394777f32c6d066b73c6bf239ed710.png


那么最后就是将节点的ID embedding,Type embedding,Slot embedding,Precursor embedding加起来获得了异构子图上每一个节点的初始化表示。随后再把这个序列送到self-attention layer来进行交互学习到一个完整的图表示。


a57a422e3ce964d97d1a1bf5c77a875f.png


那么整个图的表示就可以用最后一层的目标用户和目标物品的表示拼接后送到MLP里进行学习。


有了上面的模型架构,那么接下来就是设计一个专门适用于HIN-based recommendation的表示学习方法。考虑到HIN 编码复杂和异构的数据关系,本文的想法就是从交互相关的异构子图里逐渐提取和学习从local(node-level)到global(graph-level)的内容。这里使用增量预训练的策略制定了初级和高级的课程。


  • 初级课程:初级课程旨在利用从交互相关的异构子图里面利用本地内容信息。设计了 Mased Node Prediction、Masked Edge Prediction 和 Meta-path Type Prediction三个与训练任务,前两个任务专注于增强节点级别的表示,而 第三个任务是用来捕获u-i交互的路径级别的语言。


  • 高级课程:初级课程没法学习到整个子图全局一致性,所以这里设计了 子图对比学习的任务来弥补。这里采用的三种数据增强的方式:Path Removal、Path Insertion、Path Substitution来获得子图的不同视图。


5230baf26b6545facf2d0b0ba370c3c6.png


最后也是通过对比学习的方式来学习子图的表示。


整个过程有两个阶段,增量预训练和微调。


在预训练阶段,先在初级课程上预训练,再在高级课程上预训练。微调阶段用预训练阶段训练好的模型参数来初始化模型,并采用推荐任务训练模型。


966095b3a0dde47029009507b45c0c45.png701fa5d58f95fc2ca59fbbe1b2d2db45.png




04Contrastive Pre-Training of GNNs on Heterogeneous Graphs [CIKM 21]



尽管GNN已经是学习图表示的sota方法,但是他们通常都需要大量的标签数据来使得模型能够训练出满意的性能,而标签数据通常是昂贵且难以获得的。为了缓解标签稀疏的问题,一些预训练的任务策略开始被应用于GNNs上,来从图的通用结构属性上学习可迁移的知识。但是,现有的预训练策略都只是为同质图设计的,而本文认为,异构图能够表示更丰富的语义,这是被现有工作所忽视的。在这篇文章中,我们提出一个新颖的异构图上基于GNN的对比预训练策略(CPT-HG)来用自监督的方式捕获语义和结构信息。特别地,我们在关系级和子图级都设置了对应的语义感知的预训练任务并进一步用对比学习增强他们的表示。


作者将现有的基于自监督地GNN预训练工作分为两类:


1)模型在多个图上预训练然后在一个新的没有见过的图上微调来执行下游任务;


2)模型在一个大规模地图上预训练然后将其学到的知识迁移到剩下的部分来执行下游任务。

设计异构图地图卷积上的预训练面临地两点挑战:


1)怎么在预训练的时候区分不同类型地节点和边;


2)怎么在预训练时进一步保留高阶的语义信息。


b2155ee3373c66e73565a327fef444bb.png


Relation-level Pre-training Task


这里负样本有两种类型:一种是不相关的节点,也就是如图都是文章p1,但是它和没有连接过的用户匹配了;另一种就是不一致的关系,就是比如如图(p1,c1)它们之间的关系就不是(文章,作者)这种关系。然后正样本我理解的就是满足(文章,作者)关系的节点对。随后在这个任务上使用对比学习来学习关系级别的表示。


Subgraph-level pre-training task


使用元路径的缺点:1)元路径已经被证明对表征丰富的语义和提取高阶结构的能力有限;2)从源节点出发,元路径可以到达的节点数通常都很大,而元图因为更加复杂和限制性的结构,元图可以到达的节点会少很多,这使得元图比元路径更高效。


这里就是学习子图的表示和负样本对应的子图的表示对比,来学习到更好的子图级别的表示。


预训练和微调设置:我们首先预训练一个GNN模型并采用预训练模型的权重来为下游任务初始化模型。然后我们在没有见过的图上微调GNN模型来执行对应的下游任务并评估模型的性能。对于Yelp数据集,随机划分Yelp里3/4的店铺节点和其对应的其他节点到预训练阶段,剩下的到微调阶段。


05Pre-Training Graph Neural Networks for Cold-Start Users and Items Representation [WSDM 21]



尽管最近GNN上的工作吸收高阶协同信号来缓解冷启动问题,但是冷启动用户和物品的embedding还是没有显示优化,并且在GNN的图卷积里没有考虑冷启动节点的冷启动邻居。这篇文章提出去在推荐之前预训练一个GNN模型。不同于推荐的目标,这个预训练的GNN通过有充分交互的用户、物品里面模拟冷启动的场景并且将重建embedding作为pretext task,因为这样的话就可以直接优化embedding的质量然后能够简单地应用到新的冷启动的用户和物品上。为了进一步减少冷启动的邻居的影响,我们考虑了一个自注意力为基础的元聚集器去增强每一步图卷积的聚集能力,并且考虑了一个自适应的邻居采样来根据预训练的模型的反馈选择邻居。


本文首先提出一个基础的预训练GNN模型来重构元学习设置里面冷启动用户/物品embedding。为了达到这个目的,首先需要冷启动用户/物品的ground truth的embedding来学习模型,这里使用有大量交互数据的用户和物品来模拟。这里的ground truth embedding是使用观测到的交互送进NCF进行学习的。接下来就是一个基础的GNN模型,然后用这个GNN f 学习到的用户表示和ground truth的用户表示来进行相似度计算然后训练。


6a4efd5003304deda49a8d2d55d646ec.png


Meta Aggregator


现有的工作都没有很好地考虑卷积的时候其他节点也是冷启动的节点的情况,这可能会导致卷积后的节点表示不精确的问题。


这里使用和f一样的元学习设置来训练另一个函数g。g基于每一个节点的一阶邻居为它在学习一个额外的邻居,那么这样它就能快速适应到新的冷启动节点并且产生更精确的embedding。在f里的每一次卷积操作都是将g产生的embedding和原来的embedding结合起来。f是用来解决冷启动的目标结点的表示学习,而g是增强目标节点的冷启动的邻居节点的embedding.


The Adaptive Neighbor Sampler


这个采样器根据预训练的GNN模型的反馈来学习一个自适应的采样策略。


模型预训练和下游推荐任务


预训练:首先根据一阶的邻居预训练g,然后把g吸收进每一步的图卷积里去预训练元聚集器,接下来我们根据预训练的元聚集器的反馈来预训练邻居采样器,最后我们把这些一起训练。


下游推荐任务:对于每一个目标用户和他的不同阶的邻居,我们首先使用预训练的邻居采样器来采样合适的高阶邻居,然后使用预训练的元聚集器获得用户的embedding。物品的embedding也可以通过同样的方式生成。然后我们转换这两个embedding并相乘获得相关性得分再用BPR loss进行训练。


c7f6cdc103f011d54fdb4f13987d0f74.png

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

热门文章

最新文章