推荐系统之雅虎图文:Embedding-based News Recommendation for Millions of Users

前言

  雅虎日本2017年发的他们的推荐系统paper,主要以Emebdding作为用户和文本新闻的表示方式,来让我们师夷长技以自强下。

亮点

  主要就是在倒腾各种Embedding,用来做推荐。
  1)用降噪自编码实现文章的 embedding e m b e d d i n g
  2)用RNN学习用户行为的 embedding e m b e d d i n g

YaHoo日本的图文推荐处理流程

  1. Identify 获取用户特征 Vu V u
  2. Matching 匹配候选新闻集合。
  3. Ranking 对候选集排序。
  4. De-duplication 根据新闻相关性去重。
  5. Advertising 插入广告。

notice-1: 在上述1,2,4的地方用到了Embedding表示的用户和新闻。
notice-2: 在第2点上并没有说清楚是从所有新闻中匹配候选集,还是有个所有新闻的子集来做匹配。
notice-3: 在最终展示顺序上,以排序为基础,辅以额外的影响因素,比如新鲜度(hot),相似新闻不近邻(diversity)等。

为什么Eebedding

1) 协同过滤和低秩分解类方法的先天缺陷
  不适应更新很快的系统,只消耗旧数据 ,无法对新数据产生足够快的响应。基于词的推荐,则容易受限于词自身的语义缺点,比如同义词的不同词容易推类似新闻。图文推荐系统的特点,不同于广告和视屏,图文新闻过期很快。
2) 用户的行为历史的顺序及结构信息,没有被充分利用起来。
  基于上述两点,分别用改进的降噪自编码对文章作表达,用RNN方法对用户作表达。来完成以下三点推荐要素:
 1. 理解文章内容。
 2. 理解用户喜好。
 3. 为个体用户选择新闻并排序。

Artical Embedding

  基本模型是denoising autoencoder,对其加上弱监督学习作改进,以提高hiden-layer-embedding对差距的表达能力

x˜nq(x˜n|xn) x ~ n ∼ q ( x ~ n | x n )
hn=f(Wx˜n+b)f(b) h n = f ( W x ~ n + b ) − f ( b )
yn=f(Whn+b) y n = f ( W ′ h n + b ′ )
LT(h0,h1,h2)=log(1+ehT0h2hT0h1) L T ( h 0 , h 1 , h 2 ) = l o g ( 1 + e h 0 T h 2 − h 0 T h 1 )

θ=argminW,W,b,bx0,x1,x2T2n=0LR(yn,xn)+αLT(h0,h1,h2) θ = a r g m i n W , W ′ , b , b ′ ∑ x 0 , x 1 , x 2 ∈ T ∑ n = 0 2 L R ( y n , x n ) + α L T ( h 0 , h 1 , h 2 )

LR(yn,xn) L R ( y n , x n ) 表示重构的误差,描述对 x x 本身的表示能力。
LT(h0,h1,h2) L T ( h 0 , h 1 , h 2 ) 表示对相似对和不相似对的区分能力(弱监督部分)。
(x0,x1,x2)X3 ( x 0 , x 1 , x 2 ) ∈ X 3 ,其中 x0x1 x 0 和 x 1 是相同策略(或者是相似的), x0x2 x 0 和 x 2 是不同的策略。
在应用测试时,使用固定衰减输入而非随机衰减输入来计算hidden-layer的embedding值,如下:
x˜=(1p)xh=f(Wx˜+b)f(b) x ~ = ( 1 − p ) x ⟶ h = f ( W x ~ + b ) − f ( b )

notice: p p 是从哪里来的?
notice: 文中隐藏掉了 x x 的样子,很重要的部分但没对外公开。
推荐系统之雅虎图文:Embedding-based News Recommendation for Millions of Users_第1张图片

User Embedding

这个最后用的是GRU(Gated Recurrent Unit),也试了LSTM但效果不如GRU,更多详见。一个用户的浏览和点击交互历史日志如下所示:

推荐系统之雅虎图文:Embedding-based News Recommendation for Millions of Users_第2张图片

两个非常经典的RNN结构如下图,左为LSTM,右为GRU。
推荐系统之雅虎图文:Embedding-based News Recommendation for Millions of Users_第3张图片

在这个应用场景下,怎么利用历史行为来计算用户的embedding呢?这才是我们关心的,也是用户的embedding最核心的地方。我们认为当前的用户状态 ut u t 是该用户的上一状态 ut1 u t − 1 和浏览状态 aut a t u 决定的 ut=f(aut,ut1) u t = f ( a t u , u t − 1 ) ,在RNN里面这个函数就变成了 ut=ϕ(Winaut+Woutut1+b) u t = ϕ ( W i n a t u + W o u t u t − 1 + b )
在GRU下,我们看下变成了什么样子的?
推荐系统之雅虎图文:Embedding-based News Recommendation for Millions of Users_第4张图片

GRU的结构和对应函数关系如上图,那么在这里的应用场景下,对应的函数如下:
未完待续

思考

  1. 图文推荐系统的特点,不同于广告和视屏,图文新闻过期很快。Yahoo用的是24小时生命周期。
  2. 用户的ID-cookie和用户画像,都可以用来做召回。图文这边对cookie好像并没有使用。

你可能感兴趣的:(技术博客)