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之谜

相关推荐
用户66026761187924 分钟前
备注接口返回成功,数据库却没变:怎样限定一次修复的范围?
python
Dumbness29 分钟前
用 Python + UI Automation 读写微信 PC 版:一个群消息自动回复程序的实现与踩坑
python
艺杯羹39 分钟前
Windows跨平台编码地雷全解:从GBK静默崩溃到内核级原子写入防御
人工智能·python·桌面客户端
用户83562907805139 分钟前
使用 Python 在 Excel 中识别并高亮重复数据与唯一数据
后端·python
CCblandy40 分钟前
Agent 工具调用怎么编排?本机实测:并行只到 2.63 倍,慢的先发省 30ms,CPU 活加 worker 无效
人工智能·后端·python·性能优化
用户8356290780511 小时前
使用 Python 在 Excel 中查找、替换数据并高亮显示
后端·python
GPU实战笔记1 小时前
PyCharm 接云 GPU:远端项目连接与远程解释器别混为一谈
python·pycharm·ssh·远程开发·云gpu
范中勤1 小时前
Python 协程(Coroutine)通俗讲解与技术原理:从 await 挂起到 Agent 高并发
python·agent·协程·并发编程·asyncio
2601_966949652 小时前
如何判断实时行情数据是否已经更新?从时间戳、交易时段到行情有效性
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
MoRanzhi12032 小时前
106.正则问题(分治)
python·算法·正则表达式·蓝桥杯·递归·分治算法·字符串处理