结合论文看Youtube推荐系统中召回和排序的演进之路(上)篇

Posted 搜索与推荐Wiki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结合论文看Youtube推荐系统中召回和排序的演进之路(上)篇相关的知识,希望对你有一定的参考价值。

本文涉及的论文如下:

内容主要介绍Youtube在机器学习方面的探索和尝试!后续会更新Youtube在深度学习和强化学习方向的几篇论文解读,以及在推荐系统方向做的探索!

2008年-Adsorption(吸附算法)

在论文《Video Suggestion and Discovery for YouTube: Taking Random Walks Through the View Graph》中作者定义了介绍的算法为:Adsorption(吸附算法),这篇论文比较老了,没有很大的参考意义,但是对于我们系统的了解Youtube推荐系统的进步却很有帮助,下面简单看下这篇论文的核心内容。

在最初,Youtube认为应该给用户推荐曾经看过视频的同类视频,或者说拥有同一标签的视频(有点类似于ItemCF),但是对于存在的视频,并不是都有标签的,虽然可以通过计算机视觉技术可靠的推断出某些视频的标签,但大部分unlabel的视频仍不能得到有效的标签,因此提出了论文中的Adsorption(吸附算法),通过吸附算法得到未知视频的标签,继而进行推荐。

算法实现的伪代码如下:

其中

  • G ( V , E , w ) G(V,E,w) G(V,E,w) 表示的是一个节点图, V V V表示节点集合, E E E表示边的集合, w w w表示边的权重
  • L L L表示标签集合
  • V L V_L VL表示 V V V中拥有标签的节点集合
  • L v L_v Lv表示视频 v v v的标签分布概率
  • V ~ \\widetildeV V 表示的是特殊处理的一些节点, V ~ = v ~ ∣ v ∈ V L \\widetildeV = \\ \\widetildev | v \\in V_L\\ V =v vVL,即 v ~ \\widetildev v 只有一个邻节点 v v v,且 v ~ − v \\widetildev - v v v的连接权重为1
  • V ∪ V ~ V \\cup \\widetildeV VV 表示的是节点图中的节点只有一个连接的节点,且其 w = 1 w=1 w=1

每一轮迭代,将重新为所有节点计算标签概率分布。节点对应的标签分布由其连接的相邻节点关系强度,以及标签在相邻节点的分布概率乘积后累加得到。

即节点 v v v的标签的概率分布 L v L_v Lv等于点 u u u v v v之间的权重 w w w乘以点 u u u L u L_u Lu,通过这样一个传递,将邻居和自己的标签进行了“平均”。

其实这里的算法思想和PageRank算法是相似的,最终停止迭代的条件是标签分布相对平衡。

论文中提到了三种方式的吸附,分别为:

  • 均值吸附
  • 随机游走吸附
  • 线性吸附

这三种方式的吸附主要区别在于更新 L v L_v Lv时的方式,当是均值吸附时,如上图所示,当是随机游走吸附时,将 L v L_v Lv的迭代公式修改为:
L v = ∑ u w ( w , v ) ∑ u w ( w , v ) ∗ L u L_v = \\sum_u \\frac w(w,v) \\sum_u w(w,v) * L_u Lv=uuw(w,v)w(w,v)Lu
其中 w ( w , v ) ∑ u w ( w , v ) \\frac w(w,v) \\sum_u w(w,v) uw(w,v)w(w,v) 表示随机遍历选择节点 u u u的概率,该算法就是将每一个顶点 v v v的标签发到相关联的邻居上,在每一次传递结束后,对顶点的标签进行归一化。

当为线性吸附时,即将 w ( w , v ) ∑ u w ( w , v ) \\frac w(w,v) \\sum_u w(w,v) uw(w,v)w(w,v) 理解成线性组合中占的比例。

总结思考

本论文主要介绍的是推荐系统中的吸附算法,主要解决的是如何使用有效的视频标签为无标签的视频打标并为用户进行推荐,在如今的场景中可以将其应用到用户画像的技术上,扩展未知用户的标签属性。

2010年-Youtube Video 推荐

该部分内容来自于论文:《The YouTube Video Recommendation System》该论文发表于2010年的RecSys上,虽然只有四页,但是在当时也是干货满满,下面我们来复习一下这篇论文介绍的是什么内容。

目标

用户在浏览Youtube视频时一般有三种目的:

  • 观看特定的video
  • 观看特定类型的video
  • 浏览寻找感兴趣的video

推荐系统的目的也是为了满足用户浏览寻找感兴趣的video,因此推荐系统的目标是为用户推荐高质量并且符合兴趣的视频,推荐结果应该随时间和用户的行为进行更新。

系统设计

论文中提到的Youtube的推荐系统应该是目前推荐系统架构的比较古老的版本,其是一个经典的「二段式推荐架构」,包含召回和排序两个部分。只不过使用到的算法和策略相比现在来讲比较简单和直接。

召回部分

召回部分主要是将用户有行为的视频作为种子集合,再将它们相关的视频集合合并到一起,就是一个最简单的召回策略,但是由于用户的口味在一定时期往往保持一致,这些种子视频的范围往往很狭窄,为了扩大多样性,Youtube选择召回的不是1步相关视频,而是n步相关视频,即种子视频迭代n次后得到的相关视频集合。

这里我们说一下如何选择种子视频集合和计算种子视频的相关视频。

a)选择种子视频集合

在系统中,用户的行为包括explicit(显式)和implicit feedback(隐式),显式的行为包括:用户评分、明确表示喜欢,不喜欢等行为,隐式的行为包括:浏览、观看等。因为可以考虑结合用户的显式和隐式行为进行种子视频的选择,比如用户观看过的视频、喜欢过的视频、收藏过的视频等。

但是原始数据中还含有非常多的噪声,很多不可控的因素会影响原始数据的质量,因此在使用数据的时候要进行一定的清洗和选择。这一点无论是过去,还是现在未来都是需要进行处理的。

b)计算视频相关性

论文中指出相关视频的定义为:视频 v v v的相关视频为用户观看视频 v v v之后可能想看的视频。

两个视频的相关性由关联规则挖掘方法来确定,视频 i i i和视频 j j j的相关性定义为:
r ( v i , v j ) = c i j f ( v i , v j ) r(v_i, v_j) = \\fracc_ijf(v_i, v_j) r(vi,vj)=f(vi,vj)cij

其中:

  • c i j c_ij cij表示 v i v_i vi v j v_j vj共同出现的次数
  • f ( v i , v j ) f(v_i, v_j) f(vi,vj)是一个和视频 v i v_i vi v j v_j vj出现的次数相关的函数,最简单的此类函数为: f ( v i , v j ) = c i ∗ c j f(v_i, v_j) = c_i * c_j f(vi,vj)=cicj

利用这个相关系数可以选择出与种子视频 v i v_i vi相关的视频集合 R i = r ( v i , v j ) R_i = r(v_i, v_j) Ri=r(vi,vj以上是关于结合论文看Youtube推荐系统中召回和排序的演进之路(上)篇的主要内容,如果未能解决你的问题,请参考以下文章

结合论文看Youtube推荐系统中召回和排序的演进之路(上)篇

结合论文看Youtube推荐系统中召回和排序的演进之路(上)篇

结合论文看Youtube推荐系统中召回和排序的演进之路(上)篇

推荐系统论文阅读(二十二)-基于多兴趣向量召回的Mind

推荐系统rerank模型梳理&论文推荐

推荐系统的召回