网站首页 > 技术文章 正文
图神经网络在快手短视频推荐中的应用
本文讲解快手在短视频推荐领域的最新论文:
CIKM'21 《Concept-Aware Denoising Graph Neural Network for Micro-Video Recommendation 》
本文将从以下几个部分对上面论文进行讲解:
一:当前短视频推荐存在的问题
二:快手新提出的短视频推荐算法讲解
三:实验结果
01 当前短视频推荐存在的问题
问题1:现存的多模态模型很难在短视频场景下提取视频内容,因为短视频的平台具有连续、大流量的特性。另一方面,短视频中所表达的丰富故事,用户的评论等将有助于理解用户对其最大的偏好;
问题2:尽管短视频平台为用户提供了“喜欢”和“评论”按钮来与之互动,大多数用户仍然只是去浏览下一个视频,而不会留下反馈信息。没有明确的用户交互,很难判断用户是否真的喜欢她/他所观看的内容,甚至还会存在许多错误点击的情况。
虽然我们可以利用观看时间来推测用户的偏好,但仍然会有许多错误的正样本,这在很大程度上会影响着推荐算法的效果;
问题3:短视频的平均生命周期非常短。在我们对短视频用户行为进行数据分析,观察到短视频在发布后两天,用户互动数量就急剧减少了。此外,大多数用户行为都是由少数网红上传的短视频造成的。
具体地说,在我们的数据集中,用户点击次数少于10次的短视频约占85%,当我们使用50作为截止阈值时,这个数字会上升到96%。
这些长尾的短视频和博主很少被推荐,推荐系统底层的反馈环路进一步加剧了这种推荐偏差,这就是所谓的马修效应。
02 快手新提出的短视频推荐算法讲解
本次快手新提出的短视频推荐算法通过实验验证表明,能在不同程度上解决上面所提出的现推荐算法所存在的问题。新算法主要分成了三个阶段:
阶段一:Warm-up Propagation
阶段二:Graph Denoising
阶段三:Preference Refinement
阶段一:Warm-up Propagation:
首先,对短视频进行概念concept提取,如下图所示,与短视频相关联的字幕和评论,标题等都可以很好地表示视频内容。
因此,为了表示视频中丰富的语义,我们从字幕,评论,标题等中提取出能表示视频内容的概念,这里,概念被定义为命名的实体和语义关键短语,例如,“温馨的”、“经典的香港电影”等。
在得到短视频的相关主题后,我们便可以根据用户和短视频的历史交互信息,构建用户-短视频-概念三部图,如下图所示:
图定义为
节点包含用户,视频和主题边包含两类:用户-短视频以及短视频-概念,如上图所示。在得到三部图之后,我们开始在三部图上进行图神经网络的信息传播和聚合。通过图卷积的操作将相关信息聚合和传播到用户和视频的表征当中。
首先,对短视频和与其相关联的的邻居概念节点,采用GAT(融合注意力机制的图神经网络)进行信息聚合,公式如下:
上面图卷积聚合函数AGG具体如下:
上面公式其实就是使用了GAT图注意力神经网络的方法进行了聚合。上面公式中的激活函数使用的是leakyrelu激活函数,||表示向量拼接。
经过这一步操作,就可以让三部图中的概念节点(concept)上的信息往短视频节点上进行了聚合和传播。
然后,采用同样的方式可以在用户-视频的子图中将信息传播给用户表征,传播公式跟上面公式类似,具体如下:
到此为止,算法中阶段一这部分先在视频-concept子图上,将concept的信息传播给短视频;然后在用户-视频的子图上,将concept和视频的信息传播给用户表征。
但是,上面讲述的整个传播过程纯粹是概念(concept)驱动的,需要注意的是,并不是所有的短视频都能很好地用概念(concept)邻居来表达,根据协同过滤算法的思想,在构建短视频表征的时候,还需要考虑短视频的用户邻居节点。
因此,作者通过聚合它们的用户邻居来对短视频的embedding又做了一次更新,具体的聚合传播方式与上面两步一样。
阶段二:Graph Denoising:
不同的用户会有不同的兴趣,在点击和concept中可能存在噪声,即用户可能存在误点,取标题和评论相关内容跟短视频本身也不一定是完全符合的。
本节采用广度优先搜索进行去噪,这里其实就是以用户节点为基点,对其周围的相邻节点进行聚合和去噪。
作者首先利用GRU模型来学习用户u和它的邻居视频节点之间的相关性,具体公式如下:
在计算相关性之后,利用无替换采样进行去噪,因为作者觉得部分邻居是噪声数据,需要剔除,仅保留 n 个微视频邻居,至于n的大小,作者在后面的实验中会给出分析。
上述方法得到的n个短视频,这 n 个短视频有望更准确地传达用户的偏好。
详细地说,我们可以利用具有 softmax 函数的全连接层来推导保留每个微视频邻居 m 的可能性,如下公式所示:
特别需要我们注意的是:在我们设计的去噪过程产生了离散的选择,因为我们采用的是一个采样的过程,而不是注意力机制,而离散的选择在模型中会产生一个问题,那便是使得整个学习模型变得不可微,从而无法训练。
为了解决这个问题,作者引入了 Gumbel-Softmax函数,关于Gumbel-softmax函数为什么能解决离散选择不可微分的问题,作者并没有在该论文中进行详细的介绍,有兴趣的读者可以去阅读另外一篇论文:《Categorical Reparameterization with Gumbel-Softmax》。
回到本论文,本论文利用Gumbel-Softmax 实例化上述Den()函数:
在我们的用户-短视频-概念三部图中,用户u的二阶邻居可以是用户也可以是概念(concept),本文只考虑concept,因为经过实验证明混合两者一起使用的效果并不好。
对于二阶邻居,采用与上述一阶邻居一样的方法进行去噪:
经过上面两步的去噪过程后,可以得到更值得信赖的新的子图,该子图能更好地反映用户的偏好。
阶段三:Preference Refinement
从上述得到的新的子图中可以得到用户更加细化的偏好,首先细化短视频表征,然后细化用户表征,其实就是再一次进行图神经网络中信息的聚合和传播,而且,此过程的计算方式与第一阶段warmup propagation一致:
得到用户和短视频的特征表征之后,计算它们之间的匹配分数,用于后面的模型训练优化:
对于每一个用户u,我们都可以通过执行k次去噪,得到k个子图,然后对于每一个子图计算交叉熵损失函数,如下式所示:
总损失函数加入L2正则化后,如下:
03 实验结果的分析
实验中主要用到了快手短视频和亚马逊两个数据集:
新提出的Conde算法与之前经典算法的表现:
新提出的Conde算法能有效解决推荐算法中常见的长尾问题:
保留不同的邻居数量(即去噪的强弱)对Conde算法的影响:
接下来的这个实验有点类似于消融分析,证明去噪过程在我们算法中的有效性:
构建子图的个数对算法最终效果的影响:
04 总结
图神经网络在推荐中的应用越来越广泛,该论文的不同之处是:
1.加入了概念节点,在构建三部图的基础上进行图神经网络的聚合和传播的;
2.通过在图神经网络中对原始数据进行去噪,从而提升了模型的泛化能力。
- 上一篇: 通俗理解注意力机制 注意力机制的本质
- 下一篇: 网络编程中,阻塞和非阻塞是什么意思?
猜你喜欢
- 2024-10-25 通俗理解注意力机制 注意力机制的本质
- 2024-10-25 图解自注意力机制(Self-Attention)
- 2024-10-25 “AI”科普丨一文读懂自注意力机制:8大步骤图解+代码
- 2024-10-25 干货!NAIS:一种基于注意力机制的神经网络item相似模型
- 2024-10-25 百度AAAI 2018录用论文:基于注意力机制的多通道机器翻译模型
- 2024-10-25 基于注意力机制的神经网络架构:Transformer
- 2024-10-25 理解卷积神经网络中的自注意力机制
你 发表评论:
欢迎- 最近发表
-
- 吴谨言专访大反转!痛批耍大牌后竟翻红,六公主七连发力显真诚
- 港股2月28日物业股涨幅榜:CHINAOVSPPT涨1.72%位居首位
- 港股2月28日物业股午盘:CHINAOVSPPT涨1.72%位居首位
- 港股3月2日物业股涨幅榜:CHINAOVSPPT涨1.03%位居首位
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%
- 天赋与心痛的背后:邓鸣贺成长悲剧引发的深刻反思
- 冯小刚女儿徐朵追星范丞丞 同框合照曝光惹人羡,回应网友尽显亲民
- “资本大佬”王冉:51岁娶小17岁童瑶,并承诺余生为娇妻保驾护航
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%位居首位
- 「IT之家开箱」vivo S15 图赏:双镜云窗,盛夏风光
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)