-
摘要:
目前市面上流行的推荐短视频模型基本上是基于用户与短视频的交互(点赞、评论、关注等)以及基于短视频的多模态信息(听觉、视觉、文字)来进行预测和推荐。作者发现在这个过程中,忽略了关于短视频博主(vlogger)相关信息的结合。在现实生活中,一般来说,短视频博主们会有各自特定的风格主题,用户会关注那些他们感兴趣的风格主题的博主。因此,本文提出了一个考虑短视频博主影响的博主-增强图神经网络模型”VA-GNN“ 。
具体来说就是建立一个以用户、短视频和博主为节点的三方图,从短视频视角和博主视角来捕捉用户偏好。此外还进行了跨视图对比学习,以保持两种不同视图的节点此外,在预测用户与视频的下一次互动时,我们会自适应地结合用户对视频本身和视频作者的偏好。我们在两个真实世界的数据集上进行了广泛的实验。实验结果表明,VA-GNN 优于现有的多种基于 GNN 的推荐模型。嵌入之间的一致性。
-
名词解释:
GNN:参考https://blog.csdn.net/weixin_45884316/article/details/115751272
跨视图对比学习:跨视图对比学习是一种建立两种不同视图之间关键协作关联的方法。通过使两个单独学习的视图对齐,每个视图可以从另一个视图中提取互补信息,实现相互增强。
-
引言:
将博主信息视为用户的一个属性,换句话说,就是根据用户关注的博主的风格可以某种程度上揭示用户的偏好。其次用户可以通过关注列表找到博主,观看其发布的短视频。增加了交互的可能性。
我们在一个三方图中建立了用户、短视频和博主之间的关系模型,并捕捉和组合了用户对短视频本身和博主的偏好,从而充分利用了用户与短视频的互动、用户与博主的互动以及博主与短视频发布的关系。
我们为图中的每个节点生成两个嵌入,在视频视图和视频作者视图上进行嵌入传播,并沿着元路径进行传播,元路径是在两个视图之间随机行走形成的。此外,我们还采用了跨视图对比学习,以保持同一节点的两个嵌入之间的一致性。
我们在两个真实世界的数据集上进行了广泛的实验。实验结果表明,VA-GNN 在 Recall 和 NDCG 方面优于其他五个模型。
-
相关概念:
我们的工作与三个主题的研究相关: 、用于推荐的对比学习和短视频推荐。
-
基于 GNN 的推荐:
一种神经网络,它通过图节点之间的信息传递来捕捉图中的依赖关系。
简单来说,GNN就是用来提取特征的一种方法。我看了b站的一位博主的解释才彻底搞懂(链接:https://t.bilibili.com/472974537511123694?share_source=pc_native),建议小白看一下。我还是以文字的形式解释一下,为了我以后自己回顾。
GNN的流程分为三部分:聚合、更新、多层。
首先是聚合:图中的A B C D E对应的是就是实际图片对应得具体物体或者人(例如的第二个图),聚合的目的是以A为例,当电脑判断A具体是哪种物体的时候,单单凭借A个体得特征和属性并不是很准确,因此就要结合与A有关联得B C D(B C D也就是A的邻居)的特征来确定A。公式是:,其中a b c是常数,a的大小的设定就是根据A与B之间的联系值来判定。
其次是更新:根据邻居信息对A的信息进行一个补足,最后得到最后A的特征:,其中
是激活函数,W是模型需要训练的参数。
最后是多层:简单来说就是经过一次聚合更新后,A中有B C D的信息,B有A C的信息,C有ABCE的信息,D有AC的信息,E有C的信息。然后进行第二次聚合之后A就具有了E的信息(根据C在第一次聚合更新时获得了E的信息,第二次聚合更新时C将E的信息聚合给了A),通过多层聚合更新可以获得(还是以A为例,第一次聚合更新获得最近的邻居们的信息:BCD的信息,第二次聚合更新就可以获得二层邻居信息:E的信息)。
-
用于推荐的对比学习:
一种自监督的学习方法,可以在数据没有标签的情况下较好的学习一般特征。
对比学习就是通过对比数据对的”相似“或者”不同“以获取数据的高阶信息。(链接:http://【【硬核科普】6分钟了解对比学习(Contrast Learning)】https://www.bilibili.com/video/BV1zr4y1b7F9?vd_source=d103fe294eedf95a6f5ac2a11f173a3d)
对比学习分为三部分:数据扩增、编码、损失值最小化。
首先是数据扩增:将一张图片数据扩增两次形成一个正向数据对。
第二步:将形成的数据对丢进卷积神经网络进行编码,每张图片经过卷积神经网络都会得到一个向量表示的输出。
最后:我们希望正向数据对的向量表示尽可能相似,负向数据对的向量表示尽可能不同
原文举例了几个关于对比学习在基于GNN的推荐模型上的应用: SGL 和 PCRec ,会对原始图的结构设计扰动,以获得增强图,然后借助任何基于 GNN 的编码器,对比学习任务会将增强图中存在的相同节点的嵌入拉近。有些模型,如 EGLN 和 BiGI,会构建对比损失,以保持局部图和全局图之间的一致性。此外,SimGCL 直接在图中节点的嵌入中加入均匀噪声,为获得自监督信号提供了一种新方法。
-
短视频推荐:
现有很多模型结构作用于短视频推荐,这篇论文的工作在于对异构图中对用户、短视频和博主之间的关系进行建模,并首次将 GNN 与对比学习相结合用于微视频推荐。
-
方法:
-
小知识:
嵌入 Embedding:就是将文字、图片、音频等转化成向量的一个技术。
-
名词定义:
U表示用户集合,V表示短视频集合,P表示博主集合,用户-短视频交互矩阵表示,用户和博主交互矩阵表示
,博主-短视频交互矩阵表示
,如果用户与短视频有至少一次的明确交互,则
=1,否则
=0,同理用户与博主有至少一次的明确交互,例如用户关注了博主,则
=1。
=1则是说明了博主发布了短视频。
我们的目标就是设计一个推荐模型,根据以上三个矩阵预测任意用户和任意短视频之间的交互概率,因而达成推荐短视频的目的。
模型组成:
提出了一个名为 VA-GNN 的模型,其架构如图所示。VA-GNN 由以下部分组成:异构图构建、嵌入传播、跨视角对比学习、预测和多任务学习,下面将详细介绍这些部分。
-
异构图构建:
异构图的构建是为了明确模拟用户、短视频、博主之间的关系。
设构建的异构图为,其中节点由用户节点
,短视频节点
,博主节点
组成。边是由用户-短视频交互边
,用户-博主交互边
,博主-短视频交互边
组成。
用户的嵌入表示:,短视频的嵌入表示:
,博主的嵌入表示:
,其中
,
,
,d是嵌入维数。
-
短视频视图嵌入传播:
嵌入传播是为了捕捉用户与短视频之间的高阶协作信号,并学习更具表现力的用户与短视频嵌入,我们利用图神经网络在基于用户与短视频交互构建的异构图上传播项目-视图信息。
同时,我们利用随机漫步建立了 "用户-博主-用户 "元路径和 "用户-博主-视频 "元路径,以捕捉博主对用户和微视频的影响。具体来说,我们从用户 u 出发,以 q1 的概率走到与 u 有互动的博主 p 处,构建长度为 3 的元路径;然后以 q2 的概率走到与 p 有互动的另一个用户 u′ 处,或者以 1 - q2 的概率走到 p 发布的视频 v 处,让元路径末端的节点参与到项目-视图的嵌入传播中。
其中,表示短视频邻域和用户u的”用户-博主-用户“元路径端点;
表示用户邻域和短视频 v 的 "用户-博客-视频 "元路径端点;
和
表示用户u和短视频v在第l个传播步骤的项目-视图嵌入。
对于一个短视频博主,我们汇总他/她发布的所有视频的话题-视图嵌入,得到他/她的项目-视图嵌入,如下所示。其中表示博主p发布视频的合集。直接采用平均池作为聚合器。
在迭代进行 L 步嵌入传播后,我们会得到每个用户/视频/博主节点的 L 个嵌入。我们对每个节点的 L 个嵌入进行平均,生成其最终的项目-视图嵌入,如下所示。
其中,分别是用户u 短视频v 博主p的项目-视图嵌入。
-
博主视图嵌入传播:
同一短视频博主发布的短视频通常属于同一类别。因此,用户对博主偏好可以反映出用户对某些视频类别的偏好。例如,一个篮球教练出身的博主发布的视频大多是关于篮球技巧的,而关注该博主的用户偏爱篮球的概率很高,也极有可能对其他关于篮球的博主和短视频感兴趣。
因此,为了了解每个博主的隐含特征并捕捉 vlogger-view 的用户偏好,我们基于用户与博主 的互动进行 vlogger-view 的嵌入传播,计算用户和博主的 vlogger-view 嵌入。同样,我们利用随机漫步建立 "用户-短视频-用户 "元路径,捕捉短视频对用户和博主的影响,让元路径末端的节点参与视频视图的嵌入传播。如下所示
其中,
分别表示用户u和博主p在第l层的vlogger-view嵌入,
表示用户u的邻居博主节点,
表示博主p的邻域和“用户-短视频-用户”元路径端点。通过聚合用户邻居的vlogger-view 嵌入来计算短视频的 vlogger-view 嵌入。
最终结果与短视频嵌入结果相似:
-
跨视角对比学习:
我们会从每个用户和短视频、博主的两个不同视图中获得成对的嵌入,这些嵌入应该保持一致。例如,用户在视频视图和博主视图的嵌入都意味着用户的偏好。
在这里,我们通过进行对比学习来促进嵌入学习,对比学习挖掘来自同一实体不同视图的嵌入之间的一致性。具体来说,我们将同一用户/视频/vlogger的视频视图和vlogger视图嵌入视为正对,将不同用户/视频/vlogger的嵌入视为负对,并构建了一个跨视图对比学习损失,如下所示。
其中,是余弦相似函数,
是一个超参数。通过计算三个对比学习损失的平均值来获得最终的对比损失,如下所示。
-
预测:
我们将来自两个不同视图的用户嵌入连接起来,得到用户u的最终嵌入为:,其中 || 表示向量串联并且
。同理,短视频v和博主p得最终嵌入为:
和
,用户 u 和博主 p 之间的预测偏好分数计算如下。
预测的目标是短视频本身,但是用户对于发布这个短视频的博主的偏好也应该被纳入短视频预测的条件中去。例如,在预测推荐的短视频与计算出的用户本身观看的偏好不太相符合的情况下,如果用户已经关注了发布这个短视频博主,那么用户还是很有可能对这个短视频感兴趣.因此在进行预测用户和短视频之间的偏好时,应该适当考虑用户对发布预测短视频的博主的偏好。如下所示:
其中,
是用户对短视频v本身的偏好权重,
表示发布短视频v的博主。如果短视频的内容与发布其博主的关注点高度一致,那么短视频本身和博主在互动预测中的作用相当,因为用户同时喜欢/不喜欢短视频和博主。但是,如果两者之间存在一定差异,那么短视频本身或视频作者就会发挥更重要的作用。受此启发,我们建立了一个基于视频与其博主之间相关性的门,以自适应地计算两种不同视角下的偏好权重,具体如下。
其中,是需要训练的模型参数。
-
多任务学习:
通过优化短视频推荐任务、短视频博主推荐任务和对比学习任务来训练模型。
对于短视频推荐任务,我们构建了贝叶斯个性化排名损失(BPR),具体如下:
其中,
为激活函数,
表示的是负采样的成对训练数据,
和
分别表示可观测和不可观测的用户与视频交互。
为了充分利用用户与短视频博主的交互数据,更准确地捕捉对于短视频博主的用户的喜好,我们将短视频博主推荐任务作为辅助任务来训练模型。同样,用户与博主互动的训练数据可表示为 其中
表示可观察到的正向用户与博主配对的集合,
表示不可观察到的负向用户与博主配对的集合,我们构建短视频博主推荐损失如下:
最后,我们通过多任务学习的方式对模型进行训练,最终得到的损失函数如下:
其中,是平衡各损失函数的超参数,
是模型参数的正则化项。
-
实验:
-
实验准备:
-
数据集:
微信-挑战赛:本数据集由 2021 年微信大数据挑战赛发布。该数据集包含中国流行的短视频平台微信频道 14 天的用户互动。
TakaTak:该数据集收集自印度用户的短视频流媒体平台 TakaTak。数据集包含四周内的用户行为。
我们对数据集进行预处理,清洗了用户与短视频、用户与博主之间的积极互动。将发表评论、阅读评论、点赞、分享等定义为对视频的明确正面反馈。对于微信-挑战赛这个数据集,只保留用户明确积极反馈的互动:观看循环大于1.5、观看时间大于60秒的互动。对于TakaTak数据集的用户明确积极反馈的互动:观看循环大于1.8、观看时间大于15秒的互动。还删除了互动少于 5 次的用户和短视频,并删除了发布微视频少于 3 次的 博主。因此,在这两个数据集中,用户与短视频的积极互动与非积极互动的比例约等于 1:3。
至于用户与博主的互动,我们将关注和进入主页视为明确的积极行为,如果用户与博主之间存在明确的积极互动,或者用户与博主发布的短视频互动超过两个,则定义为用户与博主互动。然后,我们删除互动次数少于 5 次的用户和博主,得到最终的用户-博主互动次数。表 1 列出了经过处理的用户-视频互动和用户-博主互动的统计数据。
在将用户交互按时间戳升序排列后,我们使用留一法将数据集划分为训练集/验证集/测试集。对于每个用户,最后一个交互用于测试,最后一个交互之前的交互用于验证,其余交互用于训练。
-
评估指标:
我们采用Recall @ K和NDCG @ K作为性能评估的指标,其中Recall侧重于推荐的短视频是否被命中,NDCG侧重于推荐的短视频的排名。我们将K设置为10,20和50。
-
对比模型:
NGCF、LightGCN、GTN、SGL、SimGCL.详情介绍看原文 这里就不加赘述了。
-
实验细节:
为了公平比较,我们将所有模型参数初始化为正态分布,嵌入大小设置为64,批次大小设置为4096。我们的模型是通过PyTorch实现的。我们使用随机负样本方法,并将负样本数设置为BPR损失的1。我们使用学习率为0.001的Adam来优化我们的模型。对于超参数调节:
.
在WeChat - Channels数据集上,λ 1、λ 2和τ分别设置为5、0.0005和0.5;在TakaTak数据集上,λ 1、λ 2和τ分别设置为5、0.05和0.05。我们采用提前停止策略对模型进行训练。也就是说,如果Recall @ 10在验证集上连续10次不增加,则停止训练模型。我们采用在验证集上取得最佳性能的模型参数进行测试。
-
总结:
性能对比、消融实验、超参数分析等我就省略了,可以从原文自行阅读。