IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Deep Neural Network for YouTube Recommendation论文阅读 -> 正文阅读

[人工智能]Deep Neural Network for YouTube Recommendation论文阅读

Deep Neural Networks for YouTube recommendations 论文阅读

背景

推荐youtube视频的挑战:

  1. Scale:现有的推荐算法能够在小数据集上表现良好,但难以应对youtube的规模。
  2. Freshness:youtube每秒都有新的视频上传,推荐系统需要在新老视频之间进行平衡。另一方面用户行为更新很快,系统应能够及时追踪。
  3. Noise:由于数据的稀疏性和各种不可观测的外部因素,用户满意度的显示数据难以直接获取,大部分都是隐式反馈信号。并且数据本身是非结构化的,因此模型需要具备足够的鲁棒性区解决这些问题。

系统架构

系统架构如图所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

由图可知,主要有两个模块组成:一个用于候选集生成,一个用于排序。候选集生成模块使用用户活动历史与视频语料库作为输入,并从中选出几百个视频作为候选集。排序模块基于丰富的特征对候选视频与其他候选集打分,并按得分高低推荐给用户。以下将从候选集生成与排序两个部分对模型进行详细介绍。

候选集生成

  1. 建模

    候选集生成模型的构建思想为:将视频的推荐作为一个分类问题看待。

    在时刻t从几百万视频中选出一个视频,公式为:

    P ( w t = i ∣ U , C ) = e v i u ∑ j ∈ V e v j u P(w_t=i|U,C)=\frac{e^{v_iu}}{\sum_{j\in V}e^{v_ju}} P(wt?=iU,C)=jV?evj?uevi?u?

    其中U代表用户,C代表上下文,,V代表视频语料, u u u 代表用户embedding, v j v_j vj?代表每个候选视频的embedding。

    由于视频量较多,直接对所有视频进行softmax计算成本太大,因此需要对负样本进行采样并使用importance weighting的方法对采样进行校验。

    在服务阶段(serving time),采用在点积空间寻找最近邻的方法找出topN个视频,而无需softmax。这样做是出于工程上的考虑,因为在预测阶段,对上百万视频都过一遍模型实在是太慢了,而采用点积的方式则可以对实现存储的embedding快速进行计算。

  2. 模型结构

    模型结构如图所示:在输入端将用户观看过的视频、搜索词、地理信息、example_age、性别等特征转化为embedding,再介入三层全连接层。 由图可知,模型的整体结构是比较简单的,重点在于特征的处理。其中,视频特征与搜索词特征分别有多个ID组成,因此先分别获取ID对应的Embedding,再对它们取平均。

在这里插入图片描述
在所有特征中,最值得注意的是example age这个特征。因为YouTube用户喜欢新鲜的视频,而一般模型会倾向于推荐过去的视频,因为模型是根据过去的视频进行训练的。为了使模型能够学到新视频的信息,加入了“example age”这个特征。加入该特征后,模型能够表征出视频上传时间对其popularity的影响。在服务阶段,该特征会被置为0。

  1. 标签和上下文选择

    训练样本生成

    • 训练数据来源于所有的youtube视频观看,包括嵌入在其他网站中的视频。而不仅仅是推荐的视频,否则新的内容就难以展现。

    • 为了防止高活跃用户控制损失函数,为每个用户产生固定数量的样本数据。

    • 抛弃序列信息:防止模型过度利用上一时间的信息。 比如:比如你刚搜索过“tayler” ,推荐系统便给你推荐全为“tayler”的视频,这明显不太好。

    • 不对称共同浏览问题(asymmetric co-watch):即用户在初始观看视频时,选择的范围较广,后续会逐渐选择细分的领域。传统方法会利用上下文信息预测当前视频,而在本模型中,仅利用上文信息预测下文

  2. 实验

    通过对不同深度于特征组合进行试验已验证它们的效果。可以从图中看出,增加特征与模型深度有助于模型效果的提升,但从第四层开始已经不明显。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7DTr1ytd-1630842087381)(/Users/munger/Library/Application Support/typora-user-images/image-20210905193357407.png)]

排序

排序模型的网络结构如下所示。

在这里插入图片描述

可以看出整体架构与候选集生成模型大致相同,主要的不同在于特征的构造与选取以及标签的构造。

  1. 特征工程

    1.1 输入特征

    ? 模型的特征可以被分成离散特征与连续特征,主要包括:impression video ID embeddingwatched video IDs average embeddinglanguage embeddingtime since last watchprevious impressions等。其中比较重要的是期望于能够表达出用户行为序列以及与其他视频的交互信息的特征,即:

    • time since last watch:用户上次观看同频道视频的时间。含义:用户倾向于观看一个频道中的视频。

    • previous impressions on:该视频之前展现给用户的次数。含义:如果该视频展现过多,那么就倾向于不展示了。

    1.2 编码离散特征

    • 对于很大的ID空间,如Video IDs,只对点击率最高的topn embbedding,其他视频对应的ID直接被编码为0,从而可以节省内存资源。

    • 多值分类特征被平均后输入模型(如watched video IDs)

    • 在同一个ID空间内的特征共享embedding。比如imporession video ID与watched video ID共享ID空间,那么当imporession video ID与watched video ID相同时,它们对应的初始embedding也相同。

    1.3 归一化连续特征

    • 神经网络对数据的缩放与分布非常敏感。通过概率分数函数 x ~ = ∫ ? ∞ x d f \widetilde{x}=\int_{-\infty}^xdf x =?x?df?, 将x转化为 x ~ \widetilde{x} x ?,分布于[0,1)之间,同时发现非线性特征 x , x 2 \sqrt{x},x^2 x ?,x2等也有一定的效果。
  2. 对观看时间进行建模

    • 从业务角度来说,希望观看时间越长越好

    • 训练阶段采用加权交叉熵损失。对于正样本(clicked),其权重与观看时间成正比,对于负样本(unclicked),其权重为1。通过加权的方式,实现模型对观看时长进行建模

    • 线上服务阶段采用odds: e x e^{x} ex作为观看时长的评测指标。

      (Odds 的定义:事件发生概率与不发生概率的比值,公式为: o d d s = p 1 ? p odds=\frac{p}{1-p} odds=1?pp?)

      注1: 逻辑回归(LR)的odds是怎么得到的?

      根据odds的定义,可推到出逻辑回归对应的odds为

      1 e x 1 1 ? e x = e x \frac{\frac{1}{e^x}}{\frac{1}{1-e^x}}=e^{x} 1?ex1?ex1??=ex,

      注2: 为什么odds可以用来评测观看时长?

      因为这里采用的是Weight LR,将观看时长 T i T_i Ti?作为权重对正样本 i i i 而言,其对预测结果的影响提升了 T i Ti Ti倍,

      o d d s i = T i ? p i odds_i=T_i*p_i oddsi?=Ti??pi?, 因此odds可以用来评估观看时长。

      设N为总样本书,k为正样本数,当样本足够多时,频率可用于估算概率,因此

      o d d = ∑ T i N ? k odd=\frac{\sum{T_i}}{N-k} odd=N?kTi??

      分子分母同时除以N,得:

      o d d s = E ( T ) 1 ? p odds = \frac{E(T)}{1-p} odds=1?pE(T)?

      其中 p p p 代表样本为正的概率。

      根据等比公式: 1 + p + p 2 + . . . + p n = 1 ? p n 1 ? p 1+p+p^2+...+p^n=\frac{1-p^n}{1-p} 1+p+p2+...+pn=1?p1?pn?

      因为在此 p p p值很小,因此上式可等价于:

      1 + p = 1 1 ? p 1+p=\frac{1}{1-p} 1+p=1?p1?

      因此:

      o d d s = E ( T ) ( 1 + p ) ≈ E ( T ) odds=E(T)(1+p)\approx E(T) odds=E(T)(1+p)E(T)

      因此odds可以用来表征观看时长。

  3. 实验

    通过对不同的隐藏层进行配置(深度与宽度)观测对 weighted per-user loss 的影响,可以看出增加深度于宽度都能提升魔性的效果。
    在这里插入图片描述

参考:

  1. 论文:Deep Neural Networks for YouTube Recommendations
  2. https://zhuanlan.zhihu.com/p/25343518
  3. https://zhuanlan.zhihu.com/p/52504407
  4. https://blog.csdn.net/u014128608/article/details/109520766

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:07:54  更:2021-09-06 11:12:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 15:33:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码