YoutubeDNN详解

YoutubeDNN背景

Youtube2016年发表的深度推荐系统论文《Deep Neural Networks for YouTube Recommendations》,这篇文章是工程向导的。
算法的整体架构也是召回➕精排

召回部分

YoutubeDNN详解_第1张图片
从图中看出在网络结构方面YoutubeDNN并没有做什么创新,他的创新点在于:

  1. 架构图的左上角,为了加快召回的速度,根据User embedding和item imbedding使用nearest neighbor search 的方法召回
  2. 在softmax采用负采样

下面仔细讲解是怎么得到User embedding和item imbedding向量:
YoutubeDNN详解_第2张图片
YoutubeDNN规定每个用户的embedding向量为每个用户对应的样本的softmax层前一层的Relu激活后的向量,即图中绿色部分。而item对应的向量为最后一层与softmax的权重矩阵中,该item对应的位置所在的列,图中灰色部分。
user embedding 与 item embedding的乘积越大,证明该用户对该item的兴趣越大。
优势有两点:

  1. 所以可以提前将User Embedding和video Embedding存储到线上内存数据库,通过内积运算再排序的方法得到video的排名,以此来提高召回速度和效率。
  2. 通过计算用户和物品的Embedding相似度,Embedding可以直接作为推荐系统的召回层或者召回方法之一。

排序

YoutubeDNN详解_第3张图片

ranking model似乎与candidate generation模型没有什么区别,模型架构还是深度学习的“基本操作”,唯一的区别就是特征工程。

具体一点,从左至右的特征依次是

  1. impression video ID embedding: 当前要计算的video的embedding
  2. watched video IDs average embedding: 用户观看过的最后N个视频embedding的average pooling
  3. language embedding: 用户语言的embedding和当前视频语言的embedding
  4. time since last watch: 自上次观看同channel视频的时间
  5. previous impressions: 该视频已经被曝光给该用户的次数
    上面五个特征中,我想重点谈谈第4个和第5个。因为这两个很好的引入了对用户行为的观察。
  • 第4个特征背后的思想是:
    We observe that the most important signals are those that describe a user’s previous interaction with the item itself and other similar items.
    有一些引入attention的意思,这里是用了time since last watch这个特征来反应用户看同类视频的间隔时间。从用户的角度想一想,假如我们刚看过“DOTA经典回顾”这个channel的视频,我们很大概率是会继续看这个channel的视频的,那么该特征就很好的捕捉到了这一用户行为。

  • 第5个特征previous impressions则一定程度上引入了exploration的思想,避免同一个视频持续对同一用户进行无效曝光。尽量增加用户没看过的新视频的曝光可能性。

你可能感兴趣的:(深度学习,推荐系统,机器学习,机器学习,深度学习)