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

相关推荐
apocelipes8 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户83562907805110 小时前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent14 小时前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m62518 小时前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python
SelectDB1 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
荣码2 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
金銀銅鐵2 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li2 天前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
Lihua奏2 天前
从单核到多核:CPU为什么不能再只靠提频变快
深度学习
拾年2752 天前
大模型的"聪明"从哪来?聊聊 AI 数据集的那些事儿
人工智能·深度学习·机器学习