快手这款推荐新算法,我爱了~

简介: 快手这款推荐新算法,我爱了~

大家好,我是对白。


前两天刚好刷到KDD2022的一篇文章,是介绍快手在它们短视频上的一项推荐重排新算法,不仅在用户观看时长和视频播放量都有了较大提升外,用户观看视频的标签数也有了显著增长,这说明该算法同时兼具****相关性和多样性两点。

为了测试其效果,我顺便下载了一下快手这款app,于是就出现了这篇文章的封面:左图是用户冷启动推给我的第一个短视频,一个穿着短裙的小姐姐,紧接着第二个短视频就是右图的另一位小姐姐,而后面的几个短视频也出现了电影、美食等其它方向,**探索和利用(Exploit&Explore)**做得都很不错,大家可以去快手上体验一下。


快手提出的这款新算法叫FDSB,是一款通用的重排序框架,利用用户物品的偏好得分与用户物品基于不同特征的相关性、多样性得分从而对推荐列表中的物品重排序。


实验结果来看,FDSB在用户观看时间和视频播放方面取得了显著的改进,这表明用户粘性得到了提高;其次,用户观看视频的标签数量增加也说明FDSB可以推荐更多样性的视频。



下面就带大家一起领略这个算法的奇妙之处~


论文标题:Feature-aware Diversified Re-ranking with Disentangled Representations for Relevant Recommendation


论文来源:快手&人大,KDD2022


一、FDSB核心思想



本文由快手和人大发表于KDD2022上。在具体看论文模型细节之前,我们来看一下相关推荐的任务描述。由于要关注用户兴趣、相关性与推荐物品的多样性,我们可以自然而然地为相关推荐写出目标排序公式:


其中,用户偏好得分我们可以利用现有模型计算得到。困难在于后面两项:相关性和多样性。为模型中引入特征这一重要因素,我们将相关性和多样性定义为:


如上分析,可以将相关推荐的多样化再排序描述为一个基于物品embedding和特征的组合优化问题。由于这是一个NP-hard问题,采用贪心算法 ,将整体目标分解为单个物品目标:


二、算法细节

要点一:如何处理物品特征冗余问题?



由于物品的特征信息可以从不同潜在方面描述该物品的特性,基于解耦的思想,我们可以将这些特征,根据所描述物品的不同方面分解为不同的表示。我们将称之为对应于物品不同方面的细粒度特征感知表示,后统称为分离表征。


为了学习分离表征,论文采用一种基于多头自注意力机制的方法DAE。具体地,以物品原始特征作为value,以物品embedding与特征的投影向量作为query和key来计算注意力分数,具体公式为:


这些分离表征反映了物品的部分特征,因此应该接近物品的整体embedding表示。具体地,采用MSE与InfoNCE两种alignment loss来提取从物品embedding到具体特征分离表示中的信息:


其中,。我们还记得,物品的分离表征可以从不同的潜在方面反映该物品的特性。而为了实现从解耦的不同潜在方面中能够捕获不同的语义特征,再引入orthogonalization loss:

我们知道物品的相关性和多样性本质上是相互矛盾的,即多样性更强时,相关性就更弱。然而我们的相关推荐既要保证所推荐的物品与触发物品之间的相关性,又要保证一定的多样性。因此当多样性表现得更强时,我们应该提高相关性的权重,反之亦然,从而实现二者的平衡。


要点二:在相关推荐中,应该如何实现物品之间的相关性与多样性的平衡?

为了在二者之间达成一个平衡,论文设计了一种相关性-多样性相关权重机制,我们为两个性质分别引入两个可学习的系数向量,即:


其中,为累计相关性。我们的目标是为用户选择个相关物品,具体地,采用Greedy Selection的方案对推荐列表中的物品进行再排序


当选定第一个物品时,由于没有其他备选物品,所以不需考虑与备选物品间的多样性问题,这里只用计算单物品的相关性得分,即:


当已选物品数量大于1时,则需要计算相关性和多样性得分:


其中,多样性函数遵循MMR方法,即,减去所选物品和候选物品之间的最大相似度作为多样性得分。


模型的完整算法为:



模型的复杂度与普通MMR相当,其中时间复杂度为,空间复杂度为。


三、实验结果

3.1 一个关于分离表征的案例解析

为了说明FDSB是如何将物品特征分解为不同方面的,论文的实验部分给出一个有趣的案例分析:随机抽取一段视频,将每个特征解耦得到的方面的注意力权重可视化,如下图。


从图中,我们可以看到,视频的特征根据语义的不同被分解为了不同方面,第一个方面侧重于抽象特征,如**“动物”和“野生动物”**;第二个方面捕捉了更加细粒度的信息,如“大熊猫”和“熊猫”;第三个方面则提取了一些不寻常的特征,如图中的“Metal Eater”为“吞金兽”,是熊猫的昵称。还有一个”pets“是视频中的多余标签,并没有被所有的方面捕捉到。


这个例子定性地说明了论文所提出的DAE模型在学习分离表征方面的有效性



3.2 在线部署和A/B测试


为了进一步验证FDSB的有效性,该模型被部署在在线快手APP的”更多相关视频“功能上以验证整个工作流程。其中,采用视频标签作为特征。具体的工作流程如下图:



在快手的实际应用场景中从(1)观看时间,(2)视频播放和(3)观看的视频标签三个指标评估该框架的性能,前两个指标反映用户的满意度,第三个指标通常用于多样性。


具体的结果如开篇描述,FDSB不仅可以提升用户忠诚度,也可以推荐更多相关视频。


3.3 实验结果


与多个模型对比,可以看出FDSB的效果提升显著,在Recall与MRR分别提升了25.2%与18.3%。此外,在相关性的评估指标和多样性的评估指标中效果也不错。



四、总结

论文提出了一种用于相关推荐的基于分离特征的再排序框架FDSB。模型具体包含两个部分:(1)用于实现特征分离的自注意力方法DAE;(2)一种用于平衡候选物品相关性与多样性的策略。模型具有一定的新颖性且效果不错,大家不妨可以参考一下它的核心思想与网络结构。


文末提出两个问题供大家思考:


  • 除了文中所提的物品特征,是否有更好的辅助信息可以将触发物品与推荐多样性结合起来?


  • 你认为基于特征感知的细粒度推荐在其他推荐场景中是否有应用前景?以及,是否有其他高效的基于特征的分离表征解耦方法?


相关文章
|
12月前
|
机器学习/深度学习 算法 搜索推荐
抖音快手小视频推荐算法之--协同过滤算法剖析
抖音快手小视频推荐算法之--协同过滤算法剖析
|
12月前
|
机器学习/深度学习 算法 搜索推荐
2023秋招算法提前批:快手广告算法面经
2023秋招算法提前批:快手广告算法面经
93 0
|
算法 数据格式
再学一道算法题:你今天刷快手了吗(字符串处理)
再学一道算法题:你今天刷快手了吗(字符串处理)
|
机器学习/深度学习 搜索推荐 算法
设计简单有效的强化学习探索算法,快手有新思路
在本篇论文中,来自德州农工大学和快手的研究者提出了一种简单有效的探索算法,旨在为随机环境的探索问题提供有效的解决方案。
146 0
设计简单有效的强化学习探索算法,快手有新思路
|
7天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
25天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
4天前
|
人工智能 算法 数据安全/隐私保护
基于遗传优化的SVD水印嵌入提取算法matlab仿真
该算法基于遗传优化的SVD水印嵌入与提取技术,通过遗传算法优化水印嵌入参数,提高水印的鲁棒性和隐蔽性。在MATLAB2022a环境下测试,展示了优化前后的性能对比及不同干扰下的水印提取效果。核心程序实现了SVD分解、遗传算法流程及其参数优化,有效提升了水印技术的应用价值。
|
5天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
10天前
|
存储
基于遗传算法的智能天线最佳阵列因子计算matlab仿真
本课题探讨基于遗传算法优化智能天线阵列因子,以提升无线通信系统性能,包括信号质量、干扰抑制及定位精度。通过MATLAB2022a实现的核心程序,展示了遗传算法在寻找最优阵列因子上的应用,显著改善了天线接收功率。
|
12天前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。