数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
五、Wide 和 Deep [2016]
推荐系统可以被视为搜索排序系统
search ranking system
,其中输入query
是用户和上下文信息的集合,输出是item
的ranked list
。给定一个query
,推荐任务是在数据库中找到相关relevant
的item
,然后根据某些指标(如点击或购买)对item
进行排序。类似于通用的搜索排序问题,推荐系统中的一个挑战是实现记忆
memorization
和泛化generalization
。memorization
可以大概定义为学习item
之间或特征之间频繁的共现co-occurrence
,并利用历史数据中可用的相关性correlation
。而generalization
基于相关性的传递性transitivity of correlation
,并探索历史从未发生或很少发生的新的特征组合new feature combination
。基于
memorization
的推荐通常更具有话题性topical
,并且和用户历史互动过的item
直接相关。和memorization
相比,generalization
倾向于提高推荐item
的多样性diversity
。在论文《Wide & Deep Learning for Recommender Systems》
中,作者聚焦于Google Play
商店的app
推荐问题,但是这种方法应该适用于通用推荐系统。对于工业环境中的大规模在线推荐和排序系统,逻辑回归等广义线性模型
generalized linear model
被广泛采用,因为它们简单simple
、可扩展scalable
、可解释interpretable
。这些模型通常使用
one-hot
编码,并且对编码后的二元稀疏特征进行训练。例如,如果用户安装了Netflix app
,那么二元特征user_installed_app=netflix
的取值为1
。可以使用对稀疏特征的叉积
cross-product
变换从而有效地实现memorization
,例如交叉特征AND(user_installed_app=netflix, impression_app=pandora)
,如果用户安装了Netflix app
并且被曝光过Pandora app
,该交叉特征的取值为1
。这解释了feature pair
的共现co-occurrence
如何与target label
相关。可以通过使用更粗粒度的交叉特征来添加generalization
,例如AND(user_installed_category=video, impression_category=music)
,但通常需要手动进行特征工程。叉积变换
cross-product transformation
的一个限制是它们不能泛化到没有出现在训练数据中的query-item feature pair
。embedding-based
模型,例如分解机factorization machine: FM
或深度神经网络DNN
,可以通过为每个query
特征或item
特征学习一个低维稠密embedding
向量来泛化到历史未见过unseen
的query-item feature pair
,并且特征工程的负担更小。然而,当底层的
query-item
矩阵稀疏时,例如具有特定偏好的用户或者特定领域的小众item
,那么很难为query
和item
学习有效的低维representation
。在这种情况下,大多数query-item pair
对之间没有交互,但是稠密embedding
将导致所有query-item pair
对之间的非零预测,因此可能会过度泛化over-generalize
并做出不太相关的推荐。另一方面,具有叉积特征变换的线性模型可以用更少的参数记住这些特定偏好或者小众产品的 “异常规则
exception rules
”。
在论文
《Wide & Deep Learning for Recommender Systems》
中,作者通过联合训练线性模型组件和神经网络组件,提出了Wide & Deep
学习框架,从而在一个模型中同时实现了memorization
和generalization
。论文的主要贡献包括:- 联合训练具有
embedding
的神经网络模型、以及具有特征变换的线性模型的Wide & Deep
学习框架,从而用于具有稀疏输入的通用推荐系统。 - 在拥有超过
10
亿活跃用户、100
万app
的mobile app store Goole Play
上实现和评估Wide & Deep
。 - 开源了模型的实现以及
TensorFlow
中的高级API
。虽然想法很简单,但是作者表明Wide & Deep
框架显著提高了mobile app store
的app
下载率acquisition rate
,同时满足了训练和serving
速度的要求。
相关工作:
embedding
:将带叉积变换的wide
线性模型与带稠密embedding
的deep
神经网络模型相结合的想法受到先前工作的启发,例如分解机factorization machine: FM
。FM
通过将两个变量之间的交互interaction
分解为两个低维embedding
向量之间的内积,从而为线性模型增加泛化能力。在本文中,我们通过神经网络(而不是内积)来学习
embedding
之间的高度非线性交互,从而扩展模型容量。联合训练 & 快捷连接:在语言模型中,已经提出了
RNN
和具有n-gram
特征的最大熵模型的联合训练,以通过学习输入和输出之间的直接权重来显著降低RNN
的复杂性(如隐层大小)。在计算机视觉中,深度残差学习deep residual learning
已被用于降低训练更深模型的难度,并通过跳过一层或多层的快捷连接shortcut connection
来提高准确性。神经网络和图模型graph model
的联合训练也应用于从图像中估计人体姿态。在这项工作中,我们探索了前馈神经网络和线性模型的联合训练,其中线性模型是将稀疏特征和输出单元直接相连,从而用于稀疏输入数据的通用推荐和排序问题。
推荐系统:在推荐系统文献中,协同深度学习
collaborative deep learning
将内容信息的深度学习和评分矩阵的协同过滤collaborative filtering: CF
相结合。之前也有关于mobile app
推荐系统的工作,如AppJoy
,它在用户的app
使用记录上应用CF
。和之前工作中基于
CF
或基于内容的方法不同,我们联合训练Wide & Deep
模型。
memorization
和generalization
对于推荐系统都很重要。wide
线性模型可以使用叉积特征变换有效地记住稀疏特征交互,而deep
神经网络可以通过低维embedding
泛化到以前未见过的特征交互。我们提出了Wide & Deep
学习框架来结合这两种模型的优势。即:广义线性模型表达能力不强,容易欠拟合;深度神经网络模型表达能力太强,容易过拟合。二者结合就能取得平衡。
5.1 模型
app
推荐系统的整体架构如下图所示。推荐的流程如下:- 当用户访问
app store
时产生一个query
,它包含用户特征(如用户画像)和上下文特征(如当前时刻LBS
信息、设备信息)。 - 推荐系统返回一个
app list
(也称作曝光impression
),用户可以在这些app list
上执行某些操作,如点击或购买。这些用户操作,连同query
和曝光,作为learner
的训练数据记录在日志中。
- 当用户访问
由于数据库中有超过一百万个 app
,因此很难在服务延迟要求(通常在 $ O(10) $ 毫秒)内为每个 query
对每个 app
进行详尽exhaustively
地评分。因此,推荐系统收到 query
的第一步是检索 retrieval
。检索系统使用各种信号返回与 query
最匹配的 item
的 short list
,这些信号通常是机器学习模型和人类定义规则的组合。
减少候选池之后,ranking
系统根据分数score
对所有 item
进行排序。这个分数通常是 $ p(y\mid \mathbf{\vec x}) $ ,即给定特征 $ \mathbf{\vec x} $ 的条件下用户动作标签action label
$ y $ 的概率。其中,特征包括用户特征(如国家、语言、人口统计特征)、上下文特征(如设备、曝光发生在一天中的小时)、曝光特征(如 app age
、app
历史统计数据)。
在本文中,我们聚焦于使用 Wide & Deep
学习框架的 ranking
模型。
Wide & Deep
模型包含一个wide
组件和一个deep
组件,模型架构如下图所示。
$ y = \mathbf{\vec w}\cdot \mathbf{\vec x} + b $wide
组件:wide
组件是一个广义线性模型:其中 $ \mathbf{\vec x} = (x_1,\cdots,x_d)^\top $ 为输入的 $ d $ 维特征向量, $ \mathbf{\vec w}\in \mathbb R^d,b $ 为模型参数。
这里的输入特征包括原始输入特征、以及特征变换之后的特征。最重要的特征变换之一是叉积变换
$ \phi_k\left(\mathbf{\vec x}\right) = \prod_{i=1}^d x_i^{c_{k,i}},\quad c_{k,i}\in \{0,1\} $cross-product transformation
,定义为:其中 $ c_{k,i} $ 是一个布尔变量,其取值表示第 $ k $ 个特征变换 $ \phi_k $ 是否包含第 $ i $ 个原始特征。
对于二元特征,叉积变换(例如
AND(gender=female, language=en)
)当且仅当构成特征(如gender=femal
以及language=en
)全部为1
时才取值为1
,否则取值为0
。这捕获了二元特征之间的交互interaction
,并给广义线性模型增加了非线性。deep
组件:deep
组件是一个前馈神经网络。对于离散categorical
特征,原始输入是特征字符串(如language="en"
)。这些稀疏的高维离散特征都首先被转换为低维稠密的实值向量,通常被称作embedding
向量。embedding
向量的维度通常在 $ O(10) $ 到 $ O(100) $ 的量级上。
$ \mathbf{\vec h}^{(l+1)} = \sigma\left(\mathbf W^{(l)}\mathbf{\vec h}^{(l)} + \mathbf{\vec b}^{(l)}\right) $embedding
向量随机初始化,然后训练来最小化模型的目标损失函数。这些低维稠密embedding
向量然后在前向传播中被馈入到神经网络的隐层。具体而言,每个隐层执行以下计算:其中: $ l $ 为隐层的编号, $ \sigma(\cdot) $ 为激活函数, $ \mathbf W^{(l)},\mathbf{\vec b}^{(l)} $ 为第 $ l $ 层待训练的权重矩阵和
bias
向量。
联合训练
Joint Training
:wide
组件和deep
组件使用它们输出加权和的对数几率log odds
作为预测,从而组合这两个组件。注意,联合训练和集成训练存在区别:
组合方式的差异:
- 在集成训练中,各个模型在彼此不了解的情况下独立训练,并且它们的预测仅在推断时(而不是在训练时)进行组合。
- 相比之下,联合训练通过在训练时考虑
wide
组件和deep
组件以及它们的加权和来同时优化所有参数。
模型大小的差异:
- 对于集成训练而言,由于训练是独立的,每个独立的模型的大小通常需要更大(例如,具有更多特征和变换),从而达到合理准确性的
ensemble
。 - 相比之下,对于联合训练,
wide
部分只需要通过少量的叉积特征变换来补充deep
部分的弱点,而不是full-size
的wide
模型。
- 对于集成训练而言,由于训练是独立的,每个独立的模型的大小通常需要更大(例如,具有更多特征和变换),从而达到合理准确性的
Wide & Deep
模型的联合训练是通过使用mini-batch
随机优化,将输出梯度同时反向传播到模型的wide
部分和deep
部分来完成的。在实现中,我们使用带L1
正则化的Follow-the-regularized-leader: FTRL
算法作为wide
部分的优化器,使用AdaGrad
算法作为deep
部分的优化器。对于逻辑回归问题,模型的预测是:
$ p(y=1\mid \mathbf{\vec x}) = \text{ sigmoid}\left(\mathbf{\vec w}_\text{wide}\cdot [\mathbf{\vec x}|| \phi\left(\mathbf{\vec x}\right)]+ \mathbf{\vec w}_\text{deep}\cdot \mathbf{\vec h}^{(L)} + b\right) $其中:
- $ y $ 为二元
class label
, $ \mathbf{\vec x} $ 为原始输入特征。 - $ \text{sigmoid}(\cdot) $ 为
sigmoid
函数。 - $ \phi(\cdot) $ 为原始输入特征的叉积变换,而
||
表示向量拼接。 - $ \mathbf{\vec h}^{(L)} $ 为
deep
部分最后一个隐层的输出隐向量, $ L $ 为deep
部分的隐层数量。 - $ \mathbf{\vec w}_\text{wide} $ 为
wide
部分的加权系数, $ \mathbf{\vec w}_\text{deep} $ 为deep
部分的加权系数, $ b $ 为bias
。
5.2 实现
Wide&Deep
模型的实现如下图所示。模型的Pipeline
分为三个部分:数据生成data generation
、模型训练model training
、模型服务model serving
。数据生成
data generation
:此阶段把一段时间内的用户曝光数据生成训练样本,每个样本对应一次曝光,标签为用户是否产生行为(如:下载app
)。在这个阶段执行两个特征工程:
离散的字符串特征(如
app name
)映射成为整数ID
,同时生成映射字典vocabulary
。注意:对于出现次数低于指定阈值(如
10
次)的字符串直接丢弃,这能够丢弃一些长尾的、罕见的字符串,降低字典规模。连续特征归一化为
[0,1]
之间的值:将特征取值 $ x $ 根据累计分布函数 $ P(X\lt x) $ 划分为 $ n_q $ 个分位数。对于第 $ i $ 个分位数,归一化为 $ \frac{i-1}{n_q-1} $ 。分位数的边界是在数据生成期间计算的。
模型训练
model training
:我们在实验中使用的模型结构如下图所示。在训练过程中,我们的输入层接收训练数据和词表vocabularies
,并生成稀疏特征、稠密特征以及label
。wide
组件包括用户已经安装app
、用户曝光app
的叉积变换。对于
deep
组件,每个离散特征学习一个32
维的embedding
向量。我们将所有embedding
特征和稠密特征拼接在一起,产生大约1200
维的稠密向量,然后馈入3
个ReLU
层,最后馈入logistic
输出单元。Wide & Deep
模型在超过5000
亿个样本上进行了训练。每次有新的训练数据集到达时,模型都需要重新训练。然而,每次从头开始重新训练在计算上代价昂贵,并且会延迟从数据arrival
到serving
一个updated
模型之间的时间。为了应对这一挑战,我们实现了一个热启动
warm-starting
系统,该系统使用先前模型的embedding
和线性模型权重(即wide
部分)来初始化新模型。在将模型加载到
model servers
之前,先对模型进行一次试运行,从而确保它不会在serving
实时流量时造成问题。作为一种健全性检查sanity check
,我们根据经验对照前面的模型来验证模型质量。
模型服务
model serving
:模型经过训练和验证后,我们将其加载到model servers
中。对于每个请求,
server
从app
检索系统接收一组app
候选,以及接收用户特征,从而对每个app
进行打分。然后,app
根据最高分到最低分进行排序,我们按照这个顺序向用户展示app
。分数是通过在Wide & Deep
模型上运行前向推断来计算的。为了以
10ms
的速度处理每个请求,我们通过并行运行较小的batch
来执行多线程并行multithreading parallelism
从而优化性能,而不是在单个batch
推断步骤中对所有候选app
进行打分。
5.3 实验
为了在真实世界的推荐系统中评估
Wide & Deep learning
的有效性,我们进行了在线实验,并从几个方面评估了系统:app
下载acquisition
、serving
性能。app
下载:我们在A/B test
框架中进行了为期3
周的实时在线实验。- 对照组:我们随机选择
1%
的用户并展示由先前版本的排序模型生成的推荐,这是一个高度优化的wide-only
逻辑回归模型,具有丰富的叉积特征变换。 - 实验组:我们随机选择
1%
的用户提供由Wide & Deep
模型生成的推荐,并使用相同的特征集合来训练。 - 对照组
2
:我们随机抽取1%
的用户提供具有deep
部分deep-only
神经网络模型生成的推荐,并使用相同的特征集合来训练。
实验结果如下表所示,可以看到:
Wide & Deep
模型相对于对照组将app acquisition rate
提升了+3.9%
(统计显著)。Wide & Deep
模型相对于deep-only
模型有+1%
的提升(统计显著)。
除了在线实验之外,我们还展示了离线
holdout
数据集上的AUC
性能。可以看到:虽然Wide & Deep
的离线AUC
略高,但是对在线流量的影响更为显著。一个可能的原因是离线数据集中曝光和label
是固定的,而在线系统可以通过将generalization
和memorization
相结合来生成新的探索性推荐,并从新的用户响应user response
中学习。- 对照组:我们随机选择
serving
性能:由于我们的商业mobile app store
面临很高的流量,因此提供高吞吐量和低延迟的服务具有挑战性。在流量峰值,我们的推荐server
每秒可以处理超过1000
万个app
。使用单线程,对单个batch
中的所有候选app
进行打分需要31ms
。我们实现了多线程并行,并将每个
batch
拆分为更小的尺寸,这将客户端延迟显著降低到14ms
(包括serving
开销),如下表所示。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论