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

相关推荐
Hylan_J2 小时前
【VSCode】MicroPython环境配置
ide·vscode·python·编辑器
莫忘初心丶3 小时前
在 Ubuntu 22 上使用 Gunicorn 启动 Flask 应用程序
python·ubuntu·flask·gunicorn
牧歌悠悠5 小时前
【深度学习】Unet的基础介绍
人工智能·深度学习·u-net
Archie_IT5 小时前
DeepSeek R1/V3满血版——在线体验与API调用
人工智能·深度学习·ai·自然语言处理
失败尽常态5235 小时前
用Python实现Excel数据同步到飞书文档
python·excel·飞书
2501_904447745 小时前
OPPO发布新型折叠屏手机 起售价8999
python·智能手机·django·virtualenv·pygame
青龙小码农5 小时前
yum报错:bash: /usr/bin/yum: /usr/bin/python: 坏的解释器:没有那个文件或目录
开发语言·python·bash·liunx
大数据追光猿6 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
Leuanghing6 小时前
【Leetcode】11. 盛最多水的容器
python·算法·leetcode
xinxiyinhe7 小时前
如何设置Cursor中.cursorrules文件
人工智能·python