用于YouTube推荐的深度神经网络YouTube DNN

news2025/1/18 10:54:35

这篇论文是最近参加组会看的一篇新论文,论文虽然是2016年出的论文,但是它是YouTube发表的,且是应用在YouTube这样超级大的平台上的一篇工业界的推荐系统的论文,我读完之后也觉得论文有一些可取之处的,所以和大家分享一下我的组会ppt汇报。
YouTube是世界上最大的视频创作分享平台,其视频推荐面临的主要问题有:

  • Scale(用户量巨大):现有的推荐算法通常在小数据集有良好的表现,但是在YouTube这样规模的数据集上未必表现良好。
  • Freshness(新鲜度):YouTube系统每秒钟都有大量新视频上传(实时性),推荐系统应该能够快速的对视频及用户行为作出反馈,并平衡新老视频的综合推荐。
  • Noise(噪声): 用户的历史行为往往是稀疏的并且不完整的,同时视频本身很多数据都是非结构化的,这两点对推荐算法的鲁棒性提出了挑战。

image.png
Youtube的用户推荐场景自不必多说,作为全球最大的UGC(用户生成内容)视频网站,需要在百万量级的视频规模下进行个性化推荐。由于候选视频集合过大,考虑online系统延迟问题,不宜用复杂网络直接进行推荐,所以Youtube采取了两层深度网络完成整个推荐过程:

  • Candidate Generation Model 即候选生成模型(也叫召回模型)
  • Ranking Model 排序模型

下图是本文的推荐系统模型架构图,视频池子中包含有亿级别个视频,当经过第一层候选生成层模型时,这层主要是做粗略的筛选,视频被过滤为只有百级别个视频,再次经过第二层模型时,这层会将视频进行打分排序,然后筛选出前几十个视频,输出到用户的视频主页上,供用户观看,如下图所示:
image.png

CANDIDATE GENERATION 候选生成模型

这一层模型用两个字概括就是“粗糙”,将视频池子中的数百亿的视频,经过第一层筛选得到数百个视频,传入到下一层模型进一步训练。
image.png
下图是候选生成模型的的模型架构图,从下往上看,将浏览历史、搜索历史特征嵌入为高层embedded向量,还会加入其他有关用户画像的特征,如地理位置、年龄、性别等特征,将这些人口统计学信息归一化到[0,1]范围中,与前面的特征进行拼接,然后将所有的特征喂给上层的神经网络模型,经过三层神经网络后,我们可以看到softmax函数。这里YouTube把这个问题看作为用户推荐next watch的问题,是一个多分类的问题。
image.png
候选集生成建模为一个“超大规模多分类”问题其分类公式如下图式所示:
在时间t时,用户U在其特定的上下文C,对指定的视频wt准确的划分到第i类中。
image.png
其中u是用户和其上下文的高维embedded嵌入,v是视频的高维embedded嵌入。
针对该架构,有如下几点值得关注:
(1) 主要特征的处理1:watch and search 浏览历史和搜索历史。
视频存在于手机等设备上,是一串稀疏的,变长的视频ID序列,通过固定的词汇表,经过加权平均,可以基于其重要性或时间,得到一串稠密的,定长的观看向量,输入到上层神经网络中,如下图所示:
image.png
主要特征的处理2:example age 视频上传时间
如下图所示,横坐标是视频上传的时间,轴坐标是类别概率,在没有加入到example age特征时,可以注意到这条蓝色的线,一直表现的很平平,加入了此特征,类别的概率更加符合按经验分布,说明这个特征的重要性。
image.png
(2) 上下文选择
用户观看视频时,遵循一种asymmetric co-watch非对称共同观看,用户在浏览视频时,往往都是序列式的,开始看一些比较流行的逐渐找到细分的视频。
如下图所示,(a)图是利用上下文信息预估中间的一个视频,(b)图是利用上下文信息,预估下一次浏览的视频,显然,预测下一次浏览的视频比预测中间的一个视频要简单的多。
image.png
通过实验也可以发现,图(b)的方式在线上A/B test中表现更佳,而实际上,传统的协同过滤类算法,都是隐含采用图(a)方式,忽略了不对称的浏览方式。
(3) 特征集以及深度的实验
如下图所示,神经网络模型采用的是经典的“tower”模式搭建网络,所有的视频和搜索历史都embedded到256维的向量中,开始在input层直接全连接到256维的softmax层,然后依次增加网络深度(+512–>+1024–>+2048–> …)

image.png
image.png
如下图所示,横轴表示深度神经网络的训练深度,纵轴表示平均精度,自变量是特征的数量,随着特征数量的增加,其平均精度呈上涨趋势,当深度神经网络达到第三层时,其平均精度不在出现”大幅度“增加。
当然考虑到CPU计算及用户可等待时长,深度神经网络的层数也不宜过多,基于实验,神经网络取3层就够了,除非以后的计算上来了才无限的增加深度神经网络的训练层数。
image.png

RANKING 排序模型

将上一层得到的几百个模型经过排序模型,评分排序,输出前面的几十个视频到用户的手机上,供用户观看。
image.png
这一层模型架构乍一看和第一层候选生成层模型一样,但是,又有一些区别。增加了很多其他的更多精细的特征,用来进行个性化的筛选。
会有人说,干嘛废那劲啊,直接一个弄一个深度神经网络模型不就行了吗,将所有的视频一起打分排序,然后输出前几十个视频到用户的主页上展示,供用户观看不就行了。
这样确实可以,一个模型解决,多方便呀。但是,你可能没有考虑一个问题,就是现在的CPU有这么高的计算能力供你计算吗?对所有的用户,所有的视频分别进行排序打分,服务器能不能承受的住,CPU计算会不会暴,就算计算能够承受下来,那会消耗多少时间,在线刷视频的用户等不等得起,毫无疑问,用户没有这么多耐心,等这个推荐系统跑完,就会换别的软件了。
而且,实在是没有必要,连第一层粗排都过不了的视频,在打分排序阶段,分数肯定太低,排不到前面去的。
image.png
由上图所示,排序模型架构图也是自下而上的观看,新加入的特征有当前要计算的视频ID,用户光看过的最后N个ID,用户的语言,视频的语言作为语言嵌入,还有自上次观看同频道视频的时间,该视频已经曝光给该用户的次数等特征,将这些特征拼接起来,然后喂给上层的神经网络模型,训练时用加权逻辑回归为每一个视频独立打分,按照得分排序。
针对排序DNN,有如下几点需要关注:
(1) 用户对频道的喜爱程度可以通过用户对该频道的视频的点击次数来度量,用户在该频道的上次观看时间等。
(2) 类别特征embedding:作者为每一个类别特征维度生成一个独立的embedding空间。值得注意的是,对于相同域的特征可以共享embedding,其优势在于加速迭代,降低内存开销。
(3) 连续特征归一化:DNN对于输入的分布及特征的尺度敏感。作者设计一种积分函数将特征映射为一个服从[0,1]分布的变量。该积分函数为:
image.png
(4) 建模预期观看时长:正样本:视频被展示并被点击;按照观看时长进行加权负样本:视频被展示但未被点击;单位权重作者采用一种加权逻辑回归基于交叉熵损失进行训练。逻辑回归几率为:
image.png
那么学习概率是:E[T]*(1+P) ≈ E[T] [预期观看时间,点击率]
(5)第5个特征#previous impressions一定程度上引入了exploration的思想,避免同一个视频持续对同一用户进行无效曝光。一般来说,用户观看完一个视频后,再次观看同视频的概率大大降低,因此并不需要再次推送此视频给用户。

隐藏层实验

下图是作者进行的神经网络模型隐藏层层数的实验,可以看到随着隐藏层的层数和宽度的增加,其对于每个用户的加权损失降低,到实验达到1024–>512–>256这个网络时,其损失不在“大幅度”的减少,故选择这个配置的隐藏层即可,损失为34.6%。
image.png
而对于1024–>512–>256这个网络,测试的不包含归一化后根号和平方的版本,loss增加了0.2%。而如果把weighted LR替换成LR,效果下降达到4.1%。

CONCLUSIONS 总结

本文最突出的贡献在于如何结合业务实际和用户场景,选择等价问题,实现推荐系统。
首先,深度协同过滤模型能够有效地吸收更多特征,并对它们与深度层的相互作用进行建模,优于以前在YouTube上使用的矩阵分解方法。
其次,作者对特征的处理策略充满智慧。比如,对**example age**特征的加入,消除了对过去的固有偏见,并允许模型表示流行视频的时间依赖行为。
最后,排序阶段,对评估指标的选择能够结合业务,取期望观看时间进行训练。

个人的一些想法

这篇论文是2016年,YouTube发表的推荐系统的会议文章。
YouTube的推荐系统仅仅使用了两个模型,使用深度学习神经网络的方法进行的推荐,整体来说模型的稍微有点简单了,但是胜在快。自己使用了一下YouTube这个软件,发现其推荐算法确实有点缺点,你刷什么视频,就一直给你推荐相关视频,过于单一了,就单从推荐算法来说,还是国内的某些软件上推荐的好。可是毕竟是16年的推荐算法了,且是首次使用深度学习神经网络应用在推荐系统上,而且是已经在工业上实施的论文,可以公开让我们读到,还是很让我增长见识的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1658707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024第九届数维杯数学建模论文模板(内附LaTeX+Word)

一年一度的2024年第九届数维杯国赛报名进行中!相信很多同学们已经摩拳擦掌蓄势待发了! 经历三天比赛,最后提交的论文就是最终答卷,那么一篇数模论文,包括哪些内容呢? 一篇完整的数模论文,包括…

如何控制外部用户访问SAP表的权限

今天搞了一天,我就去找找找啊。我们是IDMC要访问BW的表。 Configure SAP user authorization (informatica.com) 这个informatica上面说要连SAP的数据的话,需要设置这些用户权限。 我也没具体看这两权限对象,这个别人已经设置好了。但是表权…

《探索信息技术中心一体化系统架构:提升企业数字化转型的效率与能力》

在当今数字化时代,信息技术中心(IT Center)扮演着至关重要的角色,它不仅是企业的技术支撑,更是推动数字化转型的引擎。为了更好地应对日益复杂的业务需求和技术挑战,许多企业开始探索一体化系统架构&#x…

第二篇【AI与传奇开心果系列】Python的AI技术点库案例示例:详解AI工业应用算法原理

AI与传奇开心果系列博文 系列博文目录Python的AI技术点库案例示例系列 博文目录前言一、AI工业应用算法原理介绍二、机器学习在工业领域的应用算法示例代码三、深度学习算法在工业领域应用示例代码四、强化学习在工业领域应用示例代码五、自然语言处理在工业领域应用示例代码六…

【代码随想录】回溯问题之组合

前言 更详细的在大佬的代码随想录 (programmercarl.com) 本系列仅是简洁版笔记,为了之后方便观看 解决的类型问题 组合无序,排列有序 组合切割子集排列(强调元素的顺序)棋牌问题(n皇后,数独&#xff0…

5G工业路由器实现驾考科目三实时监控与远程控制

5G驾考路由器的应用主要体现在智能驾考系统中,其优势包括提高考试安全性、效率和规范性,同时杜绝违规行贿作弊的行为。 在驾考系统中,5G工业路由器是数据传输的桥梁设备。车载设备如摄像头、定位系统、硬盘录像机、传感器等,通过串…

CTF数据安全大赛crypto题目解题过程

CTF-Crypto加密题目内容 下面是一个Base64加密的密文 bXNobnszODdoajM3MzM1NzExMzQxMmo4MGg0bDVoMDYzNDQzNH0原文链接: 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术 我们用Python写一个解密脚本: import base64 import time #base64加密…

在Win10中,如何将D盘压缩后产生的未分配空间扩展到C盘,无需重启电脑完成扩容

环境: Windows 10专业版 磁盘管理工具 问题描述: 在Windows 10中,如何将D盘压缩后产生的未分配空间扩展到C盘,无需重启电脑 一般未分配空间不在C盘旁边而是D盘之后,这种磁盘管理器就不能扩展到C盘 用一些工具需要重启电脑如PartAssit,还容易造成蓝屏 解决方案: 在…

bert-NER 转化成 onnx 模型

保存模型 加载模型 from transformers import AutoTokenizer, AutoModel, AutoConfigNER_MODEL_PATH ./save_model ner_tokenizer AutoTokenizer.from_pretrained(NER_MODEL_PATH) ner_config AutoConfig.from_pretrained(NER_MODEL_PATH) ner_model AutoModelForTokenCl…

【基于Ubuntu下Yolov5的目标识别】保姆级教程 | 虚拟机安装 - Ubuntu安装 - 环境配置(Anaconda/Pytorch/Vscode/Yolov5) |全过程图文by.Akaxi

目录 一.【YOLOV5算法原理】 1.输入端 2.Backbone 3.Neck 4.输出端 二.【系统环境】 1.虚拟机的安装与创建 2.安装Ubuntu操作系统 3.环境的配置 3.1.Ubuntu下Anacoda安装以及虚拟环境配置 3.2.Pytorch安装 3.3.Vscode安装 3.4.Yolov5源码及环境获取安装…

深入探索MySQL:成本模型解析与查询性能优化

码到三十五 : 个人主页 在数据库管理系统中,查询优化器是一个至关重要的组件,它负责将用户提交的SQL查询转换为高效的执行计划。在MySQL中,查询优化器使用了一个称为“成本模型”的机制来评估不同执行计划的优劣,并选择…

Windows 跨服务器进行 MYSQL备份脚本

Windows 服务器进行 MYSQL备份的脚本,使用该脚本前,请先测试一下 1、新建一个文本文档 2、将下面代码放入文本文档中,保存退出 echo off :: 命令窗口名 title mysql-bak:: 参数定义 set "Y%date:~,4%" set "m%date:~5,2%&qu…

深入理解网络原理5----HTTP协议

文章目录 一、HTTP协议格式二、HTTP请求2.1 URL 基本格式2.2 URL encode2.3 "方法" (method)2.4 认识请求 "报头" (header) 三、HTTP 响应3.1 "状态码" (status code) 四、HTPPS工作过程(经典面试题) 提示:以下…

数据结构——希尔排序

基本思想: 希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述…

翼支付——风控场景中图模型的范式变迁

目录 风控图深度学习模型 风控图大模型

7-zip下载、安装

7-Zip 官方中文网站 (sparanoid.com) 7-Zip - 程序下载 (sparanoid.com)

idea使用git不提示账号密码登录,而是输入token问题解决

idea 或者 webstream 等全家桶软件 使用git 推送代码时,不提示账号密码登录,而是输入token问题解决 你的代码仓库是gitlab 然后打开修改代码后推送时,会默认使用gitlab插件,所以提示数据token 解决方式就是把gitlab插件取消使用这…

Kafka从0到消费者开发

安装ZK Index of /zookeeper/zookeeper-3.9.2 下载安装包 一定要下载-bin的,不带bin的是源码,没有编译的,无法执行。-bin的才可以执行。 解压 tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz 备份配置 cp zoo_sample.cfg zoo_sample.cfg-b…

Angular入门

Angular版本:Angular 版本演进史概述-天翼云开发者社区 - 天翼云 安装nodejs:Node.js安装与配置环境 v20.13.1(LTS)-CSDN博客 Angular CLI是啥 Angular CLI 是一个命令行接口(Angular Command Line Interface),是开发 Angular 应用的最快、最…

【Java基础】时间相关的类

需要引入类包java.util.Date* 用构造方法得到当前时间 Date d new Date(); 用构造方法将long类型的时间值转成日期 Date dd new Date(time); 得到当前时间的毫秒值 Long System.currentTimeMillis() 把Date类型转为long类型 long getTime() Date d new Date();//重写了…