Advertisement

Deep Neural Network for YouTube Recommendation论文阅读

阅读量:

Deep Neural Networks for YouTube recommendations 论文阅读

背景

推荐youtube视频的挑战:

  1. Scale: 现有的推荐算法能够在少量数据集上表现出色, 但无法处理其庞大的规模.
  2. Freshness: YouTube持续不断地上传新的视频内容, 推荐系统需要实现对新旧视频内容的均衡展示. 同时, 用户的兴趣偏好变化迅速, 因此系统需要具备快速响应的能力.
  3. Noise: 由于数据的稀疏性问题以及外部环境的影响因素, 用户满意度的数据直接影响其测量结果, 大多数情况下只能通过用户的隐式反馈信号来间接获取. 此外, 数据本身是非结构化的特征, 因此模型需要具备足够的鲁棒性以应对这些问题.

系统架构

系统架构如图所示。

在这里插入图片描述

观察图形可知, 该系统主要包含两个功能单元: 一个是负责生成候选集的模块, 另一个是负责排序的模块. 候选集生成模块以用户的活动历史数据和视频素材库为基础构建输入信息, 并从中筛选出数百个具有代表性的视频作为候选集合. 排序模块则通过综合考虑多维度特征参数对候选视频及其它候选项进行评估, 并按照计算出的评分结果将这些内容推荐给用户. 下面将从候选人生成与排序两大环节展开详细解析.

候选集生成

建模

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

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

P(w_t=i|U,C)=\frac{e^{v_iu}}{\sum_{j\in V}e^{v_ju}}

其中U是用户的表示,C则表示上下文信息,V则指代待检索的视频素材,而用户的嵌入表示为u,每个候选视频v_j对应的嵌入向量为v_j.

因为视频数量较大,在对全部视频执行softmax运算时计算开销过大,在这种情况下需要减少计算负担。为此可采取的方式是首先进行负样本的抽样,并采用重要性加权的方法来进行校准。

在服务环节(serving stage),我们通过内积空间中查找最邻近的方法获取topN个候选视频,并跳过softmax层进行处理。这种设计主要源于工程优化的需求,在预测时避免传统模型对上千万级别数据进行全量推断所带来的计算资源消耗过高问题。具体而言,在预测时若直接遍历所有视频进行推断会导致极高的计算开销(computational overhead),而采用内积方法则能够高效地完成嵌入向量的计算。

模型结构

模型结构如图所示:在输入端进行处理后将用户观看过的视频内容与搜索关键词等信息结合在一起,并利用地理位置信息以及example_age参数提取相关属性值;这些预处理后的属性值随后被转换为嵌入表示并接入三层全连接层进行进一步计算。从图中可以看出该模型架构较为简单主要聚焦于对各属性进行有效提取;值得注意的是,在视频特性和搜索词特性中各自包含多个不同的ID编码因此需要分别提取每个属性对应的嵌入表示并最终计算其平均值以获得最终结果

在这里插入图片描述

在所有特征中,example age 特征尤为突出。由于 YouTube 用户偏好新鲜的内容而传统模型往往倾向于推荐历史上的视频内容。为了使模型能够捕获新视频发布的时间信息,在构建模型时特意引入了example age 特征这一设计。加入这一特征后,则能体现出上传时间对视频流行度的影响。在服务部署阶段,则会将这一特征设为0。

标签和上下文选择

训练样本生成

基于所有YouTube视频的观看数据进行训练的数据集构成全部 YouTube 视频以及来自其他网站嵌入其中的内容。而不仅仅局限于被推荐的内容中的一小部分,否则将难以呈现新的内容.

为了避免高活跃用户对损失函数产生过度控制,并为每个用户提供固定的样本数据量

丢弃时间序列信息以避免模型过分依赖前一个时间步的信息。例如当你最近搜索了"tayler"后 推荐系统会连续为你推送多个"tayler"相关的视频 这样的做法显然存在问题

不对称共同浏览问题(asymmetric co-watch):即用户在观看视频初期采取较为广泛的观看范围,在随后的过程中则逐步聚焦于特定领域。传统的分析方法主要依赖于上下文信息来预估当前视频的内容;而本研究则采用前向传播的方法,在每一步仅利用上一层的信息来推断当前层的内容

实验

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

排序

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

在这里插入图片描述

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

特征工程

1.1 输入特征

模型中的特征可分为离散型与连续型特征,并包括impression video ID embeddingwatched video IDs average embeddinglanguage embeddingtime since last watch以及previous impressions等。其中较为关键的是能够反映用户的观看行为序列以及其他视频交互信息的这些指标;即:这些指标能够反映出用户的观看行为序列以及其他视频之间的互动关系。

时间间隔:从上一次观看该频道视频到现在所经过的时间长度。意义:用户的观看偏好表明他们倾向于在同一频道内选择不同内容进行观看

the number of times the video was presented to users previously. Meaning: if the video has been shown too many times, it would be preferable not to show it again.

1.2 编码离散特征

对于一个庞大的ID规模而言,在Video IDs这样的场景中,默认情况下仅将点击率最高的top-n embeddings进行特殊处理(即编码为0),而其余所有视频的ID则被统一编码为0值;这样做的好处是可以有效降低内存占用

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

在同一个维度空间内的特征会共享嵌入表示。例如,在同一维度空间内有imporession video ID和watched video ID两个视频ID,则当这两个视频ID相同时(即implication video ID等于watched video ID),它们所对应的初始嵌入表示也会相同。

1.3 归一化连续特征

  • 神经网络对于数据的缩放和分布具有高度敏感性。通过使用概率积分函数将x转换为\widetilde{x}并使其分布在[0,1)区间内,并观察到非线性特征如平方根和平方项具有一定的效果。

对观看时间进行建模

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

训练阶段采用了加权交叉熵损失函数。对于标记为点击的正样本(clicked),其权重与其观看时长呈正相关;而对于未被点击的负样本(unclicked),其权重设定为1。通过赋予不同权重来优化模型参数的过程中,则可使模型能够根据观看时长进行预测或建模

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

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

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

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

\frac{\frac{1}{e^x}}{\frac{1}{1-e^x}}=e^{x},

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

由于本研究中采用了Weighted Logistic Regression(Weight LR)方法,在正样本i中将观看时长T_i视为权重因素,并对其对预测结果的影响程度提升了相应的比例。

odds_i=T_i*p_i, 因此odds可以用来评估观看时长。

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

odd=\frac{\sum{T_i}}{N-k}

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

odds = \frac{E(T)}{1-p}

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

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

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

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

因此:

odds=E(T)(1+p)\approx E(T)

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

实验

在设置不同隐藏层的深度与宽度时观察 weighted per-user loss 的变化情况,并发现提高模型深度的同时增加宽度能够显著增强其性能。

在这里插入图片描述

参考:

论文:Advanced Neural Networks in YouTube Recommendations
https://zhuanlan.zhihu.com/p/25343518
https://zhuanlan.zhihu.com/p/52504407

全部评论 (0)

还没有任何评论哟~