YouTubeDNN排序模型为什么预测的是观看时长?

引言

YouTubeDNN的排序模型在训练和推理阶段的目标是存在差异的,一个是输出加权LR,一个是输出幂,哪一个和宣称的用于预期观看时长都是不一致的,理论而言应该直接输出标量预测值比较合适。本文将尽量简单的介绍为什么这样做是合理的。

推导

推理阶段的输出是?

 首先我们知道LR的输出是:
p = 1 1 + e w x + b p=\frac{1}{1+e^{wx+b}} p=1+ewx+b1

代指了我们要预测的概率输出值,而根据数学推导有:
e w x + b = p 1 − p e^{wx+b}=\frac{p}{1-p} ewx+b=1−pp

那么如果模型训练的足够好的话,那么推理阶段的输出应当为 p 1 − p \frac{p}{1-p} 1−pp(标准称呼为 O d d s Odds Odds),也就是两个概率的比值,那么接下来只需要证明这两个概率的比值有观看时长的意义即可。

加权LR

 实际YouTubeDNN使用的weighted LR, 加权的意义是说当模型接收了正点击样本的输入时,输出 p p p是加权点击率而非普通的点击率。普通点击率计算公式为所有展示样本中,用户点击的频次:
p ′ = k N p'=\frac{k}{N} p′=Nk

而加权点击率计算公式,总的观看时长除以分母,为:
p = ∑ i ∈ 点击 T i ∑ i ∈ 点击 T i + ( N − k ) p=\frac{\sum_{i\in 点击}T_i}{\sum_{i\in 点击}T_i+(N-k)} p=∑i∈点击Ti+(N−k)∑i∈点击Ti

令总观看时长为 T T T,那么化简可以得到:
p 1 − p = T N − k = T N ∗ 1 1 − k N = E ( T i ) 1 − p ′ \frac{p}{1-p}=\frac{T}{N-k}=\frac{T}{N}*\frac{1}{1-\frac{k}{N}}=\frac{E(T_i)}{1-p'} 1−pp=N−kT=NT∗1−Nk1=1−p′E(Ti)

又用户点击的频次非常少,分母约等于0,所以 p 1 − p ≈ E ( T i ) \frac{p}{1-p}\approx E(T_i) 1−pp≈E(Ti)。

那么 e w x + b = E ( T i ) e^{wx+b}=E(T_i) ewx+b=E(Ti)

参考

经典推荐算法学习(十)| Youtube DNN serving目标解析 | 从odds到Logit 、Logistic Regression
揭开YouTube深度推荐系统模型Serving之谜

相关推荐
傲笑风7 小时前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino
方银的技术分享8 小时前
十五、AI训练师:机器学习-过拟合与欠拟合
人工智能·深度学习·机器学习
维基框架8 小时前
WIKI 知识库 v1.1.1 正式发布
人工智能·python
Dfreedom.10 小时前
目标检测后处理核心:NMS非极大值抑制详解
图像处理·人工智能·深度学习·目标检测·目标跟踪
β添砖java11 小时前
深度学习28RNN循环神经网络
人工智能·深度学习
EQUINOX111 小时前
【论文精读】| LLaVA
论文阅读·人工智能·深度学习
谢白羽11 小时前
SGLang的AWQ量化笔记
笔记·python·sglang
迷迭香yy12 小时前
基金档案数据工程实战从收入分析到持仓穿透的Python解析 IG50免费开源股票数据API接口
开发语言·python
清水白石00812 小时前
Python 类型设计深度解析:TypedDict 能否替代 dataclass?从 JSON 数据边界到 API 设计的最佳实践
java·python·json
️学习的小王13 小时前
Git项目提交忽略文件怎么做?以Python项目为例,详解.gitignore
git·python·elasticsearch