文章目录

前言

一、背景介绍

二、整体架构

三、召回层

四、排序层


前言

今天要学习的是一篇关于推荐系统的经典的论文,它是由google在2016年发表的,应用场景是youtube上的视频推荐,然后这个应该是当时大厂把深度学习应用到推荐系统这个方向上的非常早期的工作,虽然现在来看它的模型非常简单,但是其中涉及到了非常多的工程细节,是值得我们去学习和借鉴的。

一、背景介绍

众所周知YouTube是一个全球最大的视频分享网站,它里面有百万量级的原创视频内容。对于一个用户,我们需要给他推荐符合用户偏好的视频,也就是个性化的推荐服务,并且YouTube它其实有百分之70%的视频是来自推荐的结果,因此一个好的推荐系统对于Youtube来说尤为重要。

YouTube推荐系统的三大难点

  1. 数据规模:YouTube 的用户和视频量级都是十亿级别的,需要分布式学习算法和高效的部署。

  2. 新颖性:推荐系统需要及时对新上传的视频和用户的新行为作出响应。

  3. 数据噪音:由于稀疏和外部因素影响,用户的历史行为很难预测。大部分 YouTube 视频只有隐式反馈(即用户对视频的观看行为),缺少显式反馈(即用户对视频的评分)。此外,视频的元信息不够有结构性。我们的算法需要对训练数据的这些因素稳健(robust)。

二、整体架构

Youtube推荐系统的candidate generationranking分别用两个神经网络来完成。

Candidate generation model(召回层):将用户在youtube上的行为历史作为输入,从中筛选出一个较小的候选视频集。选出来的视频一般都是与用户高度相关的。这里一般使用一些粗粒度的特征,如观看视频的ID,搜索历史,用户侧统计特征等。

Ranking model(排序层):会为上一步选出来的候选视频集中的每个视频进行打分,打分最高的视频就会被展示给用户,排在第一的就是系统认为用户最感兴趣的视频。与candidate generation model不同,ranking model会用到用户和视频更加精细的特征。

模型迭代时会用许多离线指标,如precision, recall等等,但最终评价模型的标准则采用了线上a/b test实验,因为离线和在线值表不总是相符,而且离线指标无法反映用户行为的变化,

三、召回层

3.1问题建模

把推荐看成一个多分类问题,即预测某个用户U某个时刻 t和背景C 下观看第 i个视频的概率,公式建模如下:

u是用户在上下文中的高维embedding    v_{j}是每个候选视频的embedding

v_{i}是第i个视频的embedding

[注]:这里的正样本v_{i}是指点击观看完的视频,v_{j}是 负样本是指未点击观看的视频。

3.2负采样机制

为了解决分母操作造成计算量过大,其解决方法采用了负采样机制(sample negative classes )提升训练速度,并使用重要性加权(importance weighting)的方式校正这个采样。对于每个样本,对真实标签和采样得到的负类,最小化其交叉熵损失函数。相比经典 Softmax,这有几百倍的速度提升。

3.3召回层模型架构

在做NLP任务时,如何将文本或者文本中的一字一句,表示成结构化的,计算机能够理解的形式是第一步。经常采用方法的就是word2vec,就是将所有的word表示成低维稠密的embedding向量,最后将词的embedding向量喂给神经网络进行学习。

Youtube的召回模型也受此启发,采用了word embedding的技巧来计算每一个视频的embedding,然后将视频的embedding,用户搜索视频的embedding分别计算average,再加入用户的属性、视频质量等特征,采用两个完全相连的ReLU层和softmax函数来预测用户下一个看的视频是什么。

使用DNN的原因之一,在DNN中连续性变量和类别型变量都很容易输入到模型中,包括一些人口统计特征(Demographic features),对最终的效果起着十分重要的作用。用户的地域,设备等都可以作为embedding向量输入到DNN中去。简单的二值化特征(如性别)和数值型特征(如年龄)可以直接输入到DNN中,数值型需要经过归一化到[0,1]再输入到模型中。

样本选择和上下文选择

1)使用更广的数据源:不仅仅使用推荐场景的数据进行训练,其他场景比如搜索等的数据也要用到。其中用到的数据主要是隐式数据,即用户点击观看过的视频数据。

2)每个用户生成固定数量训练样本:如果为每个用户固定样本数量上限,平等的对待每个用户,避免loss被少数active用户domanate,能明显提升线上效果。

3)抛弃序列信息:在实现时尝试去掉序列信息,对过去观看视频/历史搜索queryembedding向量进行简单平均加权。避免推荐的视频更像搜索页的展示,这样的搜索结果不是推荐模型的期望行为。

4)预测时去掉用户未来行为的学习:下图中的w_{t_{N}}表示当前需要预测的样本;原来的做法是它前后的用户行为都可以用来产生特征作为模型输入,如图(

Youtube推荐系统论文-《Deep Neural Networks for YouTube Recommendations》-简单总结相关推荐

  1. 关于'Deep Neural Networks for YouTube Recommendations'的一些思考和实现

    七月 上海 | 高性能计算之GPU CUDA培训 6月27-29日三天密集式学习  快速带你入门阅读全文> 正文共6326个字,6张图,预计阅读时间30分钟. @blog : http://sh ...

  2. Deep Neural Networks for YouTube Recommendations 双语译文+理解

    目录 Deep Neural Networks for YouTube Recommendations Abstract 摘要 INTRODUCTION 1 引言 2 SYSTEM OVERVIEW ...

  3. 《Deep Neural Networks for YouTube Recommendation》译读

    <Deep Neural Networks for YouTube Recommendation>译读 摘要 youtube 代表了目前规模最大.最复杂的工业推荐系统之一.在这篇文章里,我 ...

  4. 3.Deep Neural Networks for YouTube Recommendations论文精细解读

    一.总述 今天分享的是Deep Neural Networks for Y ouTube Recommendations这篇论文的一些核心,这篇论文被称为推荐系统工程实践领域的一篇神文,每一个细节都值 ...

  5. 论文-Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images

    Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images Deep N ...

  6. 推荐算法论文:Deep Neural Networks for YouTube Recommendations

    吹牛逼 按照经典的信息检索方式讲推荐系统划分为两部分 深度候选生成模型 深度排序模型 1. 介绍 youtube推荐系统面临的三个问题 规模:当前的推荐算法可以很好的解决数据量较小的问题,但是针对Yo ...

  7. (推荐系统)Youtube:Deep Neural Networks for YouTube Recommendations

    摘要 该文首先从youtube推荐任务所面临的实际难题入手,提出了一种切合视频推荐需求的二阶网络推荐算法,具有很强的工程性意义. 1. 简介 YouTube的视频推荐任务目前面临以下三个问题: 规模( ...

  8. 4篇YouTube推荐系统论文, 一起来看看别人家的孩子

    4篇YouTube推荐系统论文, 一起来看看别人家的孩子 最近一直在花时间研究和实现一些推荐算法,并且搭建系统在产品中进行测试. 我读了一些关于Netflix等网站"如何使用Collabor ...

  9. [深度学习论文笔记][Adversarial Examples] Deep Neural Networks are Easily Fooled: High Confidence Predictions

    Nguyen, Anh, Jason Yosinski, and Jeff Clune. "Deep neural networks are easily fooled: High conf ...

最新文章

  1. 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇
  2. 词典建立过程缓慢的解决~~子系统构架重新设计!
  3. Java中关键字及其简要含义
  4. Android新手之旅(15) Win7下配置遇到的问题
  5. jre for mac 删除_在 Mac 的 Docker Desktop 中运行 K8s
  6. TypeScript 简介与优势
  7. 华为全款买了块支付牌照
  8. 使用 ZFS 的 Ubuntu 20.10 安装工具默认启用 TRIM
  9. 怎么在计算机修复flash,win10系统怎么用flash修复器?教你用flash修复器修复视频的方法...
  10. 安装配置tomcat
  11. 精选32个最新Python实战项目(附源码),拿走就用
  12. python小波分解相关
  13. 68个经典励志小故事|哲理小故事,让你终身受益(1)
  14. Udacity课程脉络-统计学基础(二)- t分布
  15. [笔记]光照系统 实时GI、烘焙GI
  16. [MATLAB]S函数
  17. matlab 三角分解法 解线性方程组的直接方法
  18. elementPlus el-dialog 自适应
  19. 创建oracle的存储过程,以及通过JDBC调用该存储过程
  20. android+6.0+通讯录,Android6.0的通讯录获取

热门文章

  1. 华为无线网代理服务器端口是什么意思,华为ES1D2G48SFA0 48端口十兆/百兆/千兆以太网电接口板(FA,RJ45) (适用于华为S7700系列交换机)...
  2. 如何用简单循环构造一个三角形金字塔
  3. javascript 动态设置样式style
  4. 如何改电脑用户名WIN10/WIN11
  5. JavaScript:鼠标拖曳效果
  6. 【Ajax】第一课 Ajax访问Servlet解析Json格式
  7. ESP32开发路程WIFI篇——极简连接WIFI,模拟设备连接阿里云,ESP32连接阿里云
  8. 视频直播,音频直播,m3u8
  9. uva 10285 - Longest Run on a Snowboard(dp+记忆化搜索)
  10. 上课案列-翻牌游戏(重置、历史记录)