数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
三、Recommending What Video to Watch Next [2019]
论文
《Recommending What Video to Watch Next: A Multitask Ranking System》
描述了一个大规模的视频推荐排序系统ranking system
。也就是说,给定用户当前正在观看的视频,推荐用户可能观看和喜欢的下一个视频。典型的推荐系统遵循两阶段设计,包括候选生成
candidate generation
和排序ranking
。本文重点研究排序阶段。在这个阶段,推荐器recommender
从候选生成(如矩阵分解、或神经网络模型)中检索出几百个候选者,并应用复杂的、大容量的模型来对最有希望的item
进行排序。我们展示了在大型工业视频发布和共享平台上构建这样一个排序系统的实验和经验教训。设计和开发一个真实世界的大规模视频推荐系统充满了挑战,其中包括:
我们想优化的目标
objective
通常有所不同,有时甚至是相互竞争competing
的。例如,我们可能想推荐用户评价高、并且分享(除了自己观看之外)给他们好友的视频。系统中经常存在隐性偏差
implicit bias
。例如,用户点击并观看一个视频,可能仅仅是因为它排名最靠前,而不是因为用户最喜欢它。因此,使用当前系统生成的数据来训练的模型会有偏差
bias
,导致反馈回路效应feedback loop effect
。如何有效地学习降低这种bias
是一个悬而未决的问题。
为应对这些挑战,我们为排序系统提出了一个高效的多任务神经网络架构,如下图所示。它通过采用
Multi-gate Mixture-of-Experts:MMoE
来扩展了Wide&Deep
框架,从而进行多任务学习。此外,它还引入了一个shallow tower
来建模和消除选择偏差selection bias
。我们将该架构应用于视频推荐来作为案例研究case study
:给定用户当前正在观看的内容,推荐下一个要观看的视频recommend the next video to watch
。我们在一个工业大型视频发布和共享平台上对我们提出的排序系统进行了实验。实验结果表明:我们提出的系统带来显著的提升。排序框架使用用户日志作为训练数据,并构建
Mixture-of-Experts layer
来预估两类用户行为:互动engagement
(如点赞、评论、分享、@
好友等)、满意度satisfaction
。它用侧塔side-tower
修正了排序的选择偏差selection bias
。最重要的是,多个预测结果被组合成一个最终的排序分ranking score
。我们首先将我们的多个目标分为两类:
- 互动目标
engagement objective
,如用户点击click
、推荐视频的互动程度degree of engagement
。 - 满意度目标
satisfaction objective
,如用户喜欢YouTube
上推荐的某个视频从而对推荐进行评分。
为了学习和评估多种类型的用户行为,我们使用
MMoE
来自动学习参数,以便在潜在冲突的conficting
目标之间共享。Mixture-of-Experts
架构将输入层模块化为专家experts
,每个专家聚焦于输入的不同方面aspect
。这改善了来自多模态生成的复杂特征空间中学到的表示representation
。然后,通过利用多个门控网络gating networks
,每个目标可以选择和其它目标共享、或不共享专家。- 互动目标
为了从有偏差的训练数据中建模并减少选择偏差(如位置偏差
position bias
),我们提出在主模型中添加一个shallow tower
,如上图左侧所示。shallow tower
接受与选择偏差相关的输入,例如当前系统决定的排序顺序ranking order
,并输出标量作为主模型的最终预测的偏差项bias term
。排序架构将训练数据中的
label
分解为两部分:从主模型中学习的无偏用户效用unbiased user utility
,以及从shallow tower
中学习的估计倾向分estimated propensity score
。我们提出的模型架构可以视为
Wide&Deep
模型的扩展extension
,其中shallow tower
代表wide
部分。通过与主模型一起直接学习shallow tower
,我们受益于选择偏差的学习,而无需借助随机实验来获得倾向分propensity score
。为评估我们提出的排序系统,我们设计并进行了一系列的在离线和在线实验,从而验证以下方法的有效性:多任务学习
multitask learning
、消除一种常见的选择偏差(即,位置偏差)。和
state-of-the-art
的baseline
方法相比,我们提出的框架有显著的提升。我们使用最大的视频共享平台之一YouTube
来进行我们的实验。总之,我们的主要贡献:
- 我们为视频推荐引入了端到端的排序系统。
- 我们将排序问题形式化为一个多目标学习问题,并扩展了
MMOE
架构,从而提高所有目标的性能。 - 我们在真实世界的大规模视频推荐系统上评估了我们的方法,结果展示了显著的提升。
3.1 模型
3.1.1 相关工作
工业推荐系统:为设计和研发一个由机器学习模型支持的、成功的排序系统,我们需要的大量的训练数据。最近的大多数工业推荐系统在很大程度上依赖于大量的用户日志来构建它们的模型。
一种选择是直接询问用户对于
item
效用utility
的显式反馈explicit feedback
。然而,由于成本太高,显式反馈的数量难以扩大scale up
。因此,排序系统通常利用隐式反馈implicit feedback
,例如对被推荐的item
的点击和互动engagement
。大多数推荐系统包含两个阶段:
候选生成
candidate generation
:在candidate generation
阶段,通常会使用多种信号源signal source
和模型。例如,使用item
之间的共现co-occurrence
、使用协同过滤collaborative fltering
、使用图上的随机游走random walk
(它也代表了一种共现)、使用内容的representation
来过滤等等。排序
ranking
:在ranking
阶段,广泛使用learning-to-rank
框架的机器学习算法。例如,- 有的方法使用线性模型以及
tree-based
模型探索了point-wise
和pair-wise
的learning to rank
框架 。 - 有的方法使用
Gradient Boosted Decision Tree: GBDT
用于point-wise
排序目标ranking objective
。 - 还有的方法使用以
point-wise ranking objective
的神经网络来预估加权点击weighted click
。
- 有的方法使用线性模型以及
这些工业推荐系统的一个主要挑战是可扩展性。因此,它们通常采用基础设施改进
infrastructure improvement
和高效机器学习算法的结合。为了在模型质量和效率之间的权衡,一种流行的选择是使用基于深度神经网络的point-wise ranking
模型。本文中,我们首先确定了工业排序系统中的一个关键问题:在被推荐的
item
上,用户隐式反馈和真实用户效用true user utility
之间的不一致性misalignment
。随后,我们引入了基于深度神经网络的
ranking
模型,该模型使用多任务学习技术multi-task learning technique
来支持多个排序目标ranking objective
,每个目标对应于一种类型的用户反馈。推荐系统的多目标学习:从训练数据中学习和预测用户行为具有挑战性。有不同类型的用户行为,如点击、评分
rating
、评论commenting
等。然而,每种类型的用户行为都不能独立地反映真实的用户效用。例如,用户可以点击一个item
,但最终不喜欢它;用户可能仅仅为点击的item
和互动的item
提供评分。我们的排序系统需要能够有效地学习和评估多种类型的用户行为和效用
utility
,并随后结合这些评估来计算ranking
的最终效用分utility score
。关于行为感知
behavior aware
和多目标推荐的现有工作,要么只能在候选生成candidate generation
阶段应用,要么不适合大规模在线ranking
。例如,一些推荐系统扩展了协同过滤或者content-based
系统,以从多个用户信号中学习user-item
相似性。这些系统有效地用于候选生成,但是与基于深度神经网络的ranking
模型相比,它们在提供最终推荐效果方面并不那么有效。另一方面,很多现有的多目标排序系统是为特定类型的特征和应用而设计的,例如文本
text
和视觉vision
。扩展这些系统以支持来自多模态的特征空间feature space
(例如来自视频的标题文本、来自缩略图的视觉特征)将是具有挑战性的。同时,其他多目标排序系统(这些系统考虑了输入特征的多模态)无法扩展scale up
,因为它们在有效共享多目标模型参数方面存在局限性。在推荐系统的研究领域之外,基于深度神经网络的多任务学习已经在许多传统的机器学习应用中进行了广泛的研究和探索,例如自然语言处理
nlp
、计算机视觉computer vision
。虽然很多为representation learning
提出的多任务学习multi-task learning
技术对于构建排序系统并不实用,但它们的一些构件building block
启发了我们的设计。在本文中,我们描述了一个基于DNN
的排序系统,该系统是为真实世界的推荐而设计的,并应用了Mixture-of-Experts layer
来支持多任务学习。训练数据中
bias
的理解和建模:用户日志用作我们的训练数据,它捕获当前生产系统production system
中用户对于推荐的行为behavior
和反映response
。用户和当前系统之间的交互
interaction
会在反馈feedback
中产生选择偏差selection bias
。例如,用户可能已经点击了一个item
,仅仅是因为该item
是当前系统选出来展现给用户的,而不是因为该item
是整个语料库corpus
中用户最喜欢的那个。因此,根据当前系统生成的数据之上而训练的新模型将偏向于当前系统,导致反馈回路效应feedback loop effect
。如何有效和高效地学习减少系统的这种bias
是一个悬而未决的问题。《Evaluating the accuracy of implicit feedback from clicks and query reformulations in web search》
首先分析了隐式反馈数据中的位置偏差position bias
和表示偏差presentation bias
,从而训练learning to rank
模型。通过比较点击数据和显式反馈之间的相关性,他们发现在点击数据中存在位置偏差,并可以显著地影响用于估计query
和document
之间相关性的learning to rank
模型。根据这一发现,已经提出了很多方法来消除这种选择偏差,尤其是位置偏差。一种常用的做法是在模型训练中注入位置作为输入特征,然后在
serving
阶段通过消融ablation
来消除偏差 。在概率点击模型中,位置用于学习 $ P(\text{relevance | pos}) $ 。一种消除位置偏差的方法受到
《A dynamic bayesian network click model for web search ranking》
的启发,他们使用 $ P(\text{relevance | pos}=1) $ 来推断CTR
模型,并假设position = 1
的推断没有没有位置偏差效应。随后,为了消除位置偏差,我们可以使用位置作为输入特征来训练模型,并通过将位置特征设为1
(或者其他固定值,如缺失值)来做线上serving
。其他方法试图从位置中学习一个偏差项
bias term
,并将其作为一个归一化器normalizer
或者正则化器regularizer
。通常,要学习一个bias term
,需要一些不考虑相关性的随机数据来推断这个bias
项(也称作全局bias
、或者倾向性propensity
)。
在现实世界中的推荐系统中,尤其是像
Twitter, YouTube
这样的社交媒体平台,用户行为和item
流行度popularity
每天都会发生显著变化。因此,当我们在训练ranking
模型时需要一种有效的方法来适应训练数据分布的变化从而建模选择偏差。
3.1.2 系统概览
除了上述针对建立具有隐式反馈训练的排序系统的挑战之外,现实世界中的大规模视频推荐问题还需要考虑以下其他因素:
多模态特征空间
multimodal feature space
:在上下文感知context-aware
的个性化推荐系统中,我们需要学习候选视频的用户效用user utility
,其中候选视频的特征空间是从多个模态生成的,例如视频内容、缩略图、音频、标题和描述description
、用户人口统计特征user demographics
。和其它机器学习应用相比,从多模态特征空间学习
representation
以进行推荐具有独特的挑战性。它具有两个难点:- 从低级
low-level
的内容中学习语义,以进行内容过滤content fltering
。 - 从
item
的稀疏分布中学习相似性,以进行协同过滤collaborative fltering
。
- 从低级
可扩展性
scalability
:可扩展性非常重要,因为我们正在为数十亿用户和视频构建一个推荐系统。模型必须能够有效地训练并高效地serving
。尽管排序系统在每个
query
仅对数百个候选视频评分,但现实中通常要求实时评分,因为一些query
和上下文信息只能在线获取。因此,ranking sytem
不仅需要学习数十亿个item
和用户的representation
,还需要在serving
过程中保持高效。
回想一下,我们推荐系统的目标是在给定当前观看的视频和上下文的情况下,提供视频的排序列表
ranked list
。为了处理多模态的特征空间,对于每个视频我们抽取诸如视频元数据meta-data
、以及视频内容信号video content signal
之类的特征作为视频的representation
。对于上下文,我们使用诸如用户人口统计demographics
、设备、时间、地理位置等特征。为了处理可扩展性,我们的推荐系统有两个阶段,即候选生成和排序。在候选生成阶段,我们从一个巨大的视频库中检索出几百个候选
item
。我们的排序系统为每个候选视频提供一个分数,并生成最终排序列表。候选生成
candidate generation
:我们的视频推荐算法使用多种候选生成算法,每种算法都捕获query video
和候选视频之间相似性的一个方面。例如,一种算法通过召回
query video
的主题来生成候选视频,另一种算法基于视频和query video
共同观看的频率来检索候选视频。我们构建了一个类似于
《Deep neural networks for YouTube Recommendations》
的序列模型,用于在给定用户历史记录的情况下生成个性化候选视频。最后,所有候选视频被聚集成一个
set
,然后由排序系统来评分。排序
ranking
:我们的排序系统会从数百名候选视频中生成排序列表ranked list
。候选生成阶段试图过滤大多数
item
,并只保留相关的item
。和候选生成不同的是,排序系统旨在提供一个排序列表,以便对用户具有最高效用utility
的item
将显示在列表的头部。因此,我们在排序系统中应用最先进的机器学习技术(即一个神经网络架构),以便模型具有足够的表达能力来学习特征的关联、以及特征和效用的关系。我们的排序系统从两种类型的用户反馈中学习:互动行为
engagement behavior
,如点击、观看;满意度行为satisfaction behavior
,如喜欢like
、拒绝dismissal
。给定每个候选视频,排序系统使用候选视频的特征、
query
和上下文作为输入,然后学习预测多种用户行为。对于问题的形式化,我们采用了
learning-to-rank
框架。我们将排序问题建模为多目标分类问题和多目标回归问题的组合。给定query
、候选视频、以及上下文,排序模型预测用户采取行为(如点击、观看、喜欢、拒绝)的概率。这种对每个候选视频进行预测的方法是一种
point-wise
方法。相反,pair-wise
或者list-wise
方法对两个或者多个候选视频的排序进行预测。pair-wise
或者list-wise
方法可以用于潜在地提高推荐的多样性。然而,我们选择使用point-wise
排序主要是基于serving
的考虑。在serving
阶段,point-wise
排序简单有效,且可以扩展scale
到大量候选视频。相比之下,pair-wise
或者list-wise
方法需要对pair
对或者列表进行多次评分,从而在给定一组候选视频的情况下找到最有排序列表ranked list
,这限制了它们的可扩展性。
3.1.3 排序目标
我们使用用户行为作为训练
label
。由于用户可以对推荐的item
具有不同类型的行为,我们设计了排序系统来支持多个目标。每个目标是预测一种与用户效用相关的用户行为。为了便于说明,在下文中我们将我们的目标分为两类:
- 互动目标
engagement objective
:互动目标捕获用户的点击、观看等行为。我们将这些行为的预测形式化为两种类型的任务:针对诸如点击等行为的二元分类任务、以及针对观看时长等相关行为的回归任务。 - 满意度目标
satisfaction objective
:满意度目标捕获用户点赞、点不喜欢等行为。我们将这些行为的预测形式化为二元分类任务或回归任务。例如,对视频点击 “喜欢” 这种行为被形式化为二元分类任务,而像评分行为被形式化为回归任务。
对于二元分类任务,我们计算交叉熵损失。对于回归任务,我们计算平方损失。
- 互动目标
一旦确定了多个排序目标
ranking objective
及其问题类型,我们就会为这些预测任务训练一个多任务排序模型multitask ranking model
。对于每个候选视频,我们采用这些多个预测的输入,并使用加权乘法形式的组合函数输出组合分数。加权的权重是手动调优的,从而在用户互动和用户满意度上同时达到最佳性能。
3.1.4 MMoE
多目标排序系统通常使用共享底部
shared-bottom
的模型架构(如下图(a)
所示)。然而,当任务之间的相关性较低时,这种硬参数共享hard-parameter sharing
技术有时会损害多个目标的学习。为了缓解多目标的冲突conflict
,我们采用并扩展了最近发布的Multi-gate Mixture-of-Experts: MMoE
模型架构。MMoE
是一种软参数共享soft-parameter sharing
的模型架构,旨在对任务冲突和任务联系进行建模。它采用Mixture-of-Experts: MoE
的结构,通过让专家experts
在所有任务之间共享来进行多任务学习,同时还为每个任务训练了一个门控网络gating network
。MMoE layer
旨在捕获任务差异,而不需要比shared-bottom
模型多得多的模型参数。它的关键思想是用MoE layer
代替共享的ReLU layer
,并为每个任务添加一个独立的门控网络。对于我们的排序系统,我们提出在共享的
hidden layer
之上添加专家,如下图(b)
所示。这是因为MoE layer
能够帮助从它的输入中学习模块化信息modularized information
。当直接在输入层或更低层的hidden layer
之上使用时,它可以更好地建模多模态特征空间。然而,直接在输入层应用MoE layer
将显著增加模型训练和serving
成本。这是因为通常输入层的维度要比hidden layer
的维度高得多。我们的专家网络
expert network
的实现和采用ReLU
激活函数的多层感知机相同。对于任务 $ k $ ,假设最后一层的
$ y_k = h^{(k)}\left( f^{(k)}\left(\mathbf{\vec x}\right)\right)\\ f^{(k)}\left(\mathbf{\vec x}\right) = \sum_{i=1}^n g_i^{(k)}\left(\mathbf{\vec x}\right)f_i\left(\mathbf{\vec x}\right) $hidden layer
(即上图(b)
中的Task k Layer
)的函数为 $ h^{(k)}(\cdot) $ ,则带 $ n $ 个专家的MMoE layer
对于任务 $ k $ 的输出为:其中:
- $ \mathbf{\vec x}\in \mathbb R^d $ 为低层的共享
hidden embedding
。 - $ \mathbf{\vec g}^{(k)}=g^{(k)}\left(\mathbf{\vec x}\right)\in \mathbb R^{n} $ 为任务 $ k $ 的门控网络,而 $ g^{(k)}_i $ 为 $ \mathbf{\vec g}^{(k)} $ 的第 $ i $ 项,对应于任务 $ k $ 中第 $ i $ 个专家的权重。
- $ f_i\left(\mathbf{\vec x}\right) $ 为第 $ i $ 个专家,一共有 $ n $ 个专家。
- $ f^{(k)}\left(\mathbf{\vec x}\right) $ 为所有 $ n $ 个专家在任务 $ k $ 上的加权和,它是
Task k Layer
的输入。
- $ \mathbf{\vec x}\in \mathbb R^d $ 为低层的共享
门控网络只是对输入线性变换然后通过一个
$ \mathbf{\vec g}^{(k)}=g^{(k)}\left(\mathbf{\vec x}\right) = \text{softmax}\left(\mathbf W_{g^{(k)}} \mathbf{\vec x}\right) $softmax
层:其中 $ \mathbf W_{g^{(k)}}\in \mathbb R^{n\times d} $ 是任务 $ k $ 门控网络的、线性变换的参数。
在论文
《Outrageously large neural networks: The sparsely-gated mixture-of-experts layer》
的稀疏门控网络中,专家的数量很大,并且每个训练样本进使用表现最好的专家。与之相反,我们使用相对较少的专家。这是为了鼓励通过多个门控网络共享专家并提高训练效率。
3.1.5 选择偏差
隐式反馈已被广泛用于训练
learning-to-rank
模型。可以通过从用户日志中提取大量的隐式反馈来训练复杂的深度神经网络模型。然而,由于隐式反馈是从现有的排序系统生成的,因此存在偏差
bias
。位置偏差position bias
以及很多其他类型的选择偏差被证明存在于不同的排序问题ranking problem
中。在我们的排序系统中,
query
是当前正在观看的视频,候选是相关的视频。通常,用户倾向于点击并观看更靠近列表头部展示的视频,而不管它们的的实际用户效用--无论是与观看视频的相关性还是用户的偏好。我们的目标是从排序模型中消除这种位置偏差。在我们训练数据中或者在模型训练期间建模和减少选择偏差可以导致模型质量的提高,并打破由选择偏差导致的反馈环路
feedback loop
。我们提出的模型架构类似于
Wide&Deep
模型架构。我们将模型预测分解为两个部分:主tower
的用户效用部分user-utility component
、和shallow tower
的的偏差部分bias component
。具体而言,我们训练一个
shallow tower
,它采用有助于选择偏差的特征,如针对位置偏差的位置特征position feature
。然后将shallow tower
添加到主模型的最终logit
中去,如下图所示。- 在训练阶段我们使用所有曝光的位置,并使用
10%
的位置特征drop-out rate
从而防止我们的模型过度依赖位置特征。 - 在
serving
阶段,位置特征被视为缺失。
注意:我们将位置特征和设备特征交叉的原因是:在不同类型的设备上会观察到不同的位置偏差。因为不同设备的屏幕大小不同,导致呈现的
item
列表有所差异。- 在训练阶段我们使用所有曝光的位置,并使用
3.1.6 讨论
这里我们讨论一些洞察和局限性,这些都是我们从开发和实验我们的排序系统的过程中学到的。
推荐和排序任务的神经网络模型架构:很多推荐系统领域的研究论文扩展了最初为传统机器学习应用程序设计的模型架构,如用于
natural language processing: NLP
的multi-headed attention
、用于计算机视觉的CNN
。然而,我们发现这些模型体系架构中的很多仅适用于特定领域的representation learning
,并不直接适用于我们的需求。这是因为:- 多模态
Multimodal
特征空间:我们的排序系统依赖于多个特征源source
,例如来自于query
和item
的内容特征、上下文特征。这些特征从稀疏的离散空间sparse categorical space
、到自然语言、到图像等等。从混合特征空间中学习是一项挑战。 - 可扩展性
scalability
和多个排序目标:许多模型架构被设计为捕获一种类型的信息,如特征交叉feature cros
或序列信息sequential information
。它们通常会提升一种排序目标,但是可能会损害其他排序目标。此外,在推荐系统中应用复杂模型架构的组合几乎无法扩展。 - 带噪音
noisy
的和局部稀疏locally sparse
的训练数据:我们的系统需要为item
和query
训练embedding
向量。然而,我们的大多数稀疏特征遵循幂律分布power-law distribution
,并且对于用户反馈有很大的分布差异。例如,在上下文稍有不同的情况下,即使给定相同的query
,用户可能点击也可能不点击推荐的item
。而这在我们的系统中是无法捕获的。这给优化长尾的尾部item
的embedding
空间带来了很大的困难。 mini-batch
随机梯度下降的分布式训练:我们依靠一个具有强大表达能力的大型神经网络模型来找出特征关联feature association
。由于我们的模型消耗了大量的训练数据,我们不得不使用分布式训练,这本身就带来了固有intrinsic
的挑战。
- 多模态
效果
efectiveness
和效率eficiency
之间的平衡tradeoff
:对于现实世界的排序系统,效率不仅影响serving
成本,还影响用户体验。过于复杂的模型会显著增加生成推荐item
的延时latency
,从而降低用户满意度和在线指标。因此,我们通常更喜欢更简单、更直接straight-forward
的模型架构。训练数据中的
biases
:除了位置偏差之外,还有许多其他类型的偏差。其中一些偏差可能是未知和不可预测的。例如,由于我们的系统在获取训练数据方面的局限性(对于未曝光的item
,我们压根不知道用户对它们是否会发生行为)。如何自动学习和捕获训练数据中已知和未知的偏差是一个长期的挑战,需要做更多的研究。
评估方法
evaluation
的挑战:由于我们的排序系统主要使用了用户的隐式反馈,离线评估得到的效果提升结论并不一定会转化为在线性能提升。事实上,我们经常观察到离线和在线指标之间的不一致misalignment
。因此,最好选择一个总体上更简单的模型,以便可以更好地泛化到在线性能。未来方向:除了
MMoE
和消除位置偏差之外,我们正在沿着以下方向改进我们的排序系统:探索用于多目标排序的、新的模型架构,该架构平衡了稳定性
stability
、可训练性trainability
和表达能力expressiveness
。我们注意到,
MMoE
通过灵活地选择共享哪些专家从而提高多任务排序性能。最近的一些工作在不损害预测性能的情况下进一步提高了模型的稳定性。理解并学习分解
factorize
。为了对已知和未知的偏差进行建模,我们希望探索模型架构和目标,这些架构和目标能够从训练数据中自动识别潜在偏差、并学会减少这些偏差。模型压缩
compression
:出于降低serving
成本的需要,我们正在探索用于排序和推荐模型的、不同类型的模型压缩技术。
3.2 实验
利用
YouTube
提供的用户隐式反馈,我们训练了我们的排序模型,并进行了离线和在线的实验。YouTube
的规模和复杂性使其成为我们排序系统的完美测试平台。YouTube
的最大的视频分享平台,月活用户19
亿。该网站每天创建了千亿级的用户日志,其中记录了用户和推荐结果之间的互动。YouTube
的一个关键产品提供了在给定观看视频的情况下推荐下一个观看视频的功能(what video to watch next
),如下图所示。它的用户界面为用户提供了多种与推荐视频交互的方式,如点击、观看、喜欢、拒绝dismissal
。实验配置:如前所述,我们的排序系统从多个候选生成算法中召回了几百个候选视频。我们使用
TensorFlow
构建模型并训练和serving
。具体而言,我们使用Tensor Processing Unit: TPU
来训练我们的模型,并使用TFX Servo
来serve
。我们对提出的模型和
baseline
模型都是串行sequentially
地训练。这意味着我们根据时间顺序来组织训练数据从而训练我们的模型,并持续训练模型以消耗新到达的训练数据。通过这种方式,我们的模型适应了最新的数据。这对于很多现实世界的推荐应用程序application
而言是至关重要的,在这些应用程序中,数据分布和用户模式会随着时间动态变化。对于离线实验,我们评估分类任务的
AUC
和回归任务的平方误差。对于在线实验,我们进行了与生产系统production system
相比较的A/B test
实验。我们使用离线和在线指标来调整超参数,如学习率。我们检查了多个互动指标
engagement metric
(诸如在YouTube
上花费的时长等),以及满意度指标(如拒绝率dismissal rate
、用户调查回访user survey response
等)。除了在线指标之外,我们还关注模型在
serving
时的计算成本,因为YouTube
每秒都需要响应大量的query
。
3.2.1 MMoE
为了评估采用
MMoE
进行多任务排序的性能,我们与baseline
方法进行了比较,并在YouTube
上进行了在线实验。baseline
方法:我们的baseline
方法采用共享底部模型架构shared-bottom model architecture
。我们以每个模型体系架构内的乘法数量来衡量模型的复杂度,因为这是模型
serving
的主要计算成本。当比较
MMoE
模型和baseline
模型时,我们使用相同的模型复杂度。出于效率的考虑,我们的MMoE layer
只有一层底部共享hidden layer
,它使用比输入层更低的维度。YouTube
上的在线实验结果如下表所示,其中MMoE
模型使用4
个专家或8
个专家。我们报告了互动指标和满意度指标的结果。互动指标给出用户在观看推荐视频上所花的时长,满意度指标给出用户在调查回访中的评分。
可以看到:在相同模型复杂度的情况下,
MMoE
显著提升了互动和满意度指标。门控网络的分布
Gating Network Distribution
:为进一步了解MMoE
如何帮助多目标优化multi-objective optimization
,我们绘制了softmax
门控网络中每个专家上每个任务的累计概率accumulated probability
,如下图所示。可以看到:一些互动任务
engagement task
和其它互动任务共享多位专家,而满意度任务satisfaction task
倾向于共享一小部分高效用high utilization
的专家 ,这是通过使用这些专家的累计概率来衡量的。如前所述,我们的
MMoE layer
共享一个bottom hidden layer
,它的门控网络从共享的隐层获取输入。与直接从输入层构造MMoE layer
相比,这可能使MMoE layer
更难于模块化modularize
输入信息。或者,我们让门控网络直接从输入层而不是共享隐层获取输入,以便让输入特征可以直接用于选择专家。然而,在线实验结果显示这种变体没有显著差异。因此,门控网络从共享隐层获取输入可以有效地将输入信息模块化到专家中,从而建模任务关系和任务冲突
conflict
。门控网络稳定性
Gating Network Stability
:当使用多台机器训练神经网络模型时,分布式训练策略会导致模型经常发散diverge
(即不收敛)。发散的一个例子是ReLU
死亡。在
MMoE
中,据报道softmax
门控网络具有不平衡的专家分布问题imbalanced expert distribution problem
,其中门控网络收敛到绝大多数专家的效用为零zero-utilization
。通过分布式训练,我们观察到在我们的模型中有20%
的机会出现这种门控网络的极化问题polarization issue
。门控网络的极化会损害使用该门控网络的模型的性能。为解决这个问题,我们在门控网络上应用了
drop-out
。通过采用dropout rate = 10%
,以及re-normalizing
重新标准化softmax
输出,我们消除了所有门控网络的极化。
3.2.2 Position Bias
使用用户隐式反馈作为训练数据的一个主要挑战是难以建模隐式反馈和真实用户效用之间的差距
gap
。使用多种类型的隐式反馈信号和多个排序目标,我们可以在
serving
阶段进行更多手段的调优tune
,从而在item
推荐中捕获模型预估到用户效用之间的转换。但是,我们仍然需要建模和减少隐式反馈中普遍存在的偏差,例如,由用户和当前推荐系统之间的交互引起的选择偏差。在这里,我们评估如何使用我们提出的轻量级模型架构
light-weight model architecture
来建模和减少位置偏差position bias
(一种类型的选择偏差)。我们的解决方案避免了随机实验或者复杂计算的代价。用户隐式反馈的分析:为了验证我们的训练数据中是否存在位置偏差,我们对不同位置的点击率
click through rate: CTR
进行了分析。下图给出了位置1 ~ 9
的相对CTR
( 进行了同比例缩放)。正如预期所示,随着位置越来越低,点击率将显著降低。较高位置的点击率较高,这是由于推荐了更相关的
item
、以及位置偏差的综合效果。使用我们提出的
shallow tower
方法,我们在下面证明了该方法可以将用户效用的学习和位置偏差的学习分开。baseline
方法:为了评估我们提出的模型架构,我们将它与下面的baseline
方法进行比较。直接使用位置特征作为输入特征:这种简单的方法已经在工业推荐系统中广泛使用,从而消除位置偏差。该方法用于线性的
learning-to-rank
模型。对抗学习:受到领域适配
domain adaptation
和机器学习公平性machine learning fairness
中广泛采用的对抗学习的启发,我们使用类似的技术来引入辅助任务,该辅助任务可以预测训练数据中的位置position
。随后,在反向传播阶段,我们将传递给主模型的梯度取反,确保主模型的预测不依赖于位置特征。
下表给出了我们提出的方法和
baseline
方法的在线实验结果。可以看到:我们提出的方法通过建模和减少位置偏差,显著提升了互动指标。下图显示了每个位置学到的位置偏差。可以看到:对于较低的位置,学到的偏差较小。
学到的偏差是通过有偏差的隐式反馈来得到的倾向分
propensity score
的估计。使用足够的训练数据进行模型训练,我们可以有效地减少位置偏差。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论