数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
二十六、PDN [2021](mathcing)
推荐系统在面向用户的电商平台(如淘宝、亚马逊)中很重要,目的是将用户连接到他们喜欢的
item
并产生更多利润。由于电商平台中可用的item
数量巨大,许多工业系统被设计为具有matching
阶段和ranking
阶段。具体而言:mathcing
阶段期望以低延迟和低计算成本检索一小部分相关的item
,而ranking
阶段旨在使用更复杂的模型根据用户的兴趣细化这些相关item
的排名。在论文《Path-based Deep Network for Candidate Item Matching in Recommenders》
中,论文聚焦于matching
阶段,因为它是系统的基础部分,也是系统的瓶颈。item-to-item CF
(即item-based CF
)是一种用于item matching
的信息检索解决方案。item-based CF
根据两个item
的共现co-occurrence
来估计item
之间的相关性。一些突出的优点使得item-based CF
成为业界matching
阶段的自然选择:- 由于只使用用户历史交互的
item
进行检索,因此item-based CF
可以很好地匹配许多在线服务的效率要求。 - 此外,用户的兴趣可能非常多样化。通过考虑每个交互
item
,可以最大限度地覆盖用户的兴趣。 - 最后,
item
之间的相关性主要是基于海量的用户行为推导出来的。这些信号能够有效识别与交互item
相关的item
。
但是,这些方法也有一定的局限性:
- 传统的倒排索引难以满足精巧
subtle
的个性化需求。通过仅考虑item
共现模式,item-based CF
无法适应用户的独有特点,如性别、消费能力等。 - 同样,鉴于电商平台中可用的
item
数量不断增长,在不考虑辅助信息的情况下,item-based CF
可能会受到数据稀疏性问题的影响。
为了克服上述限制,
embedding-based retrieval: EBR
,尤其是双塔架构的深度学习网络,最近引起了越来越多的兴趣。简而言之,EBR
旨在通过分别嵌入用户画像和item
画像来表示每个用户和每个item
。从这个意义上来说,matching
过程被转移到在embedding
空间中执行最近邻nearest neighbor: NN
搜索。虽然
representation learning
可以在一定程度上缓解数据稀疏性问题,但是这些方法也存在一定的局限性:- 双塔架构不容易显式集成
item
之间的共现信息。 - 此外,用户通常表示为单个
embedding
向量,这不足以编码用户兴趣的多样性diversity
。
即:
item-based CF
难以满足个性化personalization
,而EBR
难以满足多样性diversity
。一个普通用户每个月都会与数百个属于不同类目的
item
进行交互,这表明用户兴趣的多样性。实际上,在实际的工业系统中,为了同时捕获用户兴趣的多样性diversity
并确保个性化personalization
,通常有多种策略,例如基于协同过滤模型和不同网络结构的EBR
策略的各种倒排索引。这些模型应用于matching
任务并且并行部署。注意:候选item
通常是使用不同scale
的相关性得分生成的。这些得分通常不可比incomparable
,因此很难融合起来从而得到更好的结果。作者认为,由于这些策略的高维护成本以及缺乏联合优化,因此这种多策略解决方案可能是次优的。Deep Interest Network: DIN
通过target attention
引入交互item
和target item
之间的相似性,以获得更好的推荐。然而,这种注意力机制只是用来融合用户交互序列,而忽略了用户对每个交互item
的兴趣。此外,DIN
很难应用于matching
阶段,因为它需要为每个target item
重新计算user representation
。受到
DIN
的启发,在论文《Path-based Deep Network for Candidate Item Matching in Recommenders》
中,作者提出了一种新的matching
架构,叫做Path-based Deep Network: PDN
。该架构通过在item-based CF
和EBR
之间建立联系,将item-based attention
和user representation learning
分离。在
PDN
中,作者使用EBR
(即用户画像、交互item
序列、item
画像)和item-based CF
(即item
共现)的representation learning
思想来适应用户个性化和多样化的兴趣建模,从而获得更好的性能。具体而言,PDN
由两个主要的子网组成:Trigger Net: TrigNet
、Similarity Net: SimNet
。TrigNet
通过以下方式被引入:将每个交互item
视为一个trigger
来编码用户兴趣。也就是说,生成的user representation
具有可变维度,使得每个维度都描述了用户对交互item
的兴趣。维度 $ i $ 代表用户对交互
item
$ i $ 的兴趣强度。类似于
item-based CF
,SimNet
生成item representation
,每个维度描述交互item
和target item
之间的相似性。维度 $ i $ 代表交互
item
$ i $ 和target item
的相似性。
注意,由
EBR
提取的user representation
和item representation
的维度是恒定的,而PDN
提取的user representation
和item representation
的维度是可变的,等于用户trigger
的数量。如下图所示,通过用户交互item
将用户和target item
连接起来,我们可以形成一系列2-hop
路径。基于这些2-hop
路径,PDN
通过显式考虑用户的不同兴趣来聚合用户和target item
之间的相关性,从而获得更好的性能。具体而言,用户和target item
之间的最终相关性是通过显式考虑用户的不同兴趣来计算的,即聚合related two-hop
路径的相关性权重relevance weight
(路径的one-hop
对应于user-item
交互,路径的two-hop
对应于item-item
相关性)。另一个优点是整个模型都是端到端的方式训练的,因此,相关性得分可以以统一的方式相互比较。
值得强调的是,所提出的
PDN
具有item-based CF
和EBR
的优点,可以实现高效的在线处理。- 一方面,通过
feature embedding
,我们可以利用TrigNet
提取与用户兴趣相关的top m
最重要的trigger
,以满足实时性要求。 - 另一方面,
SimNet
独立于TrigNet
工作。我们可以应用并行计算支持离线索引构建,其中使用SimNet
计算的item-to-item
相关性。
总之,论文的主要贡献:
- 一个新颖的
matching
模型。论文通过结合item-based CF
和EBR
的优势提出了Path-Based Deep Network: PDN
。PDN
以2-hop
路径聚合的形式集成了user attention
的所有画像信息、以及target attention
的item
共现模式。PDN
考虑了用户个性化和兴趣多样性,从而实现更好的item matching
。 - 高效的在线检索。论文基于
PDN
构建了一个工业级的在线matching
系统。特别地,论文描述了如何利用PDN
以低延迟和低计算成本进行item
检索。 - 离线和在线实验。对几个真实世界数据集的大量离线实验表明:
PDN
比现有替代方案实现了更好的性能。此外,论文在淘宝推荐系统上对PDN
进行了为期两周的A/B test
。结果表明:几乎所有指标都获得了很大的性能提升。
目前
PDN
系统已经成功部署在手机淘宝App
上,处理了主要的在线流量。- 由于只使用用户历史交互的
相关工作:
CF-based
方法在构建推荐系统的mathcing
阶段相当成功。item-based CF
由于其可解释性和高效,已经被广泛应用于工业环境中。其中,item-based CF
预先计算item
的相似度矩阵,并推荐与用户历史点击item
相似的item
。早期的工作利用余弦相似度和皮尔逊系数等统计量来估计
item
相似性。近年来,有几种方法试图通过优化recommendation-aware
目标函数来学习item
相似性。SLIM
通过最小化原始user-item
交互矩阵和重构矩阵之间的损失来学习item
相关性。NAIS
使用注意力机制来区分用户画像中历史互动item
的不同重要性,这和DIN
的想法相似。然而由于计算的复杂性,attention-based
方法仅适用于ranking
阶段。
随着
EBR
的成功,基于深度神经网络的双塔架构已经被广泛应用于工业推荐系统,从而通过利用丰富的内容特征来捕获用户的个性化信息。需要注意的是,在matching
阶段,要以低延迟和低计算成本处理数十亿甚至数万亿个item
,因此两个塔不能相互交互以确保特征提取的并行性。- 基于
DSSM
的模型利用用户特征和item
特征之间的内积学习相关性。 - 为了提取更具有区分性的用户特征,
Youtube DNN
通过平均池化用户行为来扩展用户特征。 - 而
BST
利用强大的transformer
模型来捕获用户行为序列背后的序列信号。
- 基于
与上述方法不同的是, 我们提出的
PDN
结合了item-based CF
和EBR-based
深度神经网络的优点,构建了user-item
子网络以确保类似于EBR
的个性化,并构建了item-item
子网络类似于item-based CF
从而捕获用户的多个兴趣。
26.1 模型
26.1.1 基本概念
下图以用户和
target item
之间的2-hop
路径的形式总结了推荐问题。其中 $ j_1 $ 到 $ j_n $ 代表交互item
。边的粗细表示了相关性程度。这里:- $ \mathbf{\vec z}_u $ 代表用户 $ u $ 的用户信息,例如用户
id
、年龄、性别、点击次数、每个类目的购买次数。 - $ \mathbf{\vec x}_i $ 代表
target item
$ i $ 的信息,如item id
、品牌id
、类目id
、月销售额。 - $ \left\{\mathbf{\vec x}_{j_k}\right\}_{k=1}^n $ 表示用户 $ u $ 交互的 $ n $ 个
item
$ \{j_k\}_{k=1}^n $ 的信息。 - $ \left\{\mathbf{\vec a}_{u,j_k}\right\}_{k=1}^n $ 表示用户 $ u $ 在这 $ n $ 个
item
上的行为信息,如停留市场、购买次数。 - $ \left\{c_{j_k,i}\right\}_{k=1}^n $ 表示这 $ n $ 个
item
和target item
$ i $ 的相关性信息,这是从item-based CF
算法或者item co-occurrence-based pattern
统计而来。
如下图所示,用户和
$ \hat y_{u,i} = f\left(\mathbf{\vec z}_u, \mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\},\left\{\mathbf{\vec a}_{u,j}\right\},\left\{c_{j,i}\right\};j\in \mathcal N(u)\right) $target item
之间存在直接联系(虚线所示),这表明用户对target item
的直觉的兴趣intuitive interest
。此外,我们可以通过连接交互item
来进一步形成 $ n $ 条2-hop
路径:第一跳表示用户对交互item
的兴趣,第二跳表示交互item
对target item
之间的相关性。因此,采用上述的可用信息,item matching
可以形式化为:其中: $ f(\cdot) $ 定义为推荐算法, $ \hat y_{u,i} $ 定义为用户 $ u $ 和
target item
$ i $ 之间的相关性得分, $ \mathcal N(u) $ 为用户 $ u $ 历史交互的item
集合。- $ \mathbf{\vec z}_u $ 代表用户 $ u $ 的用户信息,例如用户
推荐系统的大部分现有工作,包括
item-based CF
和EBR
,可以看作是上式的特例。
$ \hat y_{u,i} = f\left(\left\{\mathbf{\vec a}_{u,j}\right\},\left\{c_{j,i}\right\};j\in \mathcal N(u)\right)=\sum_{j\in \mathcal N(u)} f_r(\mathbf{\vec a}_{u,j})\times c_{j,i} $item-based CF
的回归形式regression form
可以表述为:其中:
- $ f_r:\mathbb R^m\rightarrow \mathbb R^1 $ 是一个加权函数,用于捕获用户对每个
trigger
的兴趣。 $ m $ 为行为特征向量的维度。 - $ c_{j,i}\in \mathbb R^1 $ 表述基于
item co-occurrence
信息的、交互item
$ j $ 和target item
$ i $ 的相关性。
因此,该方法可以视为基于 $ \left\{\mathbf{\vec a}_{u,j}\right\} $ 和 $ \left\{c_{j,i}\right\} $ 的所有
2-hop
路径的权重之和,并且每个路径权重可以计算为 $ f_r(\mathbf{\vec a}_{u,j})\times c_{j,i} $ 。- $ f_r:\mathbb R^m\rightarrow \mathbb R^1 $ 是一个加权函数,用于捕获用户对每个
$ \hat y_{u,i} = f\left(\mathbf{\vec z}_u,\mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\};j\in \mathcal N(u)\right) = \mathbf{\vec q}_i\cdot \left(\mathbf{\vec p}_u + \frac{\sum_{j\in \mathcal N(u)}\mathbf{\vec q}_j}{\sqrt{|\mathcal N(u)|}}\right) $EBR-based
方法中的矩阵分解matrix factorization: MF
可以表述:其中:
- $ \mathbf{\vec q}_i $ 为
target item
信息 $ \mathbf{\vec x}_i $ 的embedding
向量。 - $ \mathbf{\vec q}_j $ 为互动
item
信息 $ \mathbf{\vec x}_j $ 的embedding
向量。 - $ \mathbf{\vec p}_u $ 为用户信息 $ \mathbf{\vec z}_u $ 的
embedding
向量。
MF
可以视为 $ n+1 $ 条路径的权重之和。具体而言:一条1-hop
路径的权重为 $ \mathbf{\vec q}_i\cdot \mathbf{\vec p}_u $ ,n
条2-hop
路径的权重为 $ \frac{\mathbf{\vec q}_i\cdot \mathbf{\vec q}_j}{\sqrt{|\mathcal N(u)|}} $ 。- $ \mathbf{\vec q}_i $ 为
$ \hat y_{u,i} = f\left(\mathbf{\vec z}_u,\mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\};j\in \mathcal N(u)\right) = \mathbf{\vec q}_i\cdot \text{MLP}\left(\mathbf{\vec p}_u || \frac{\sum_{j\in \mathcal N(u)}\mathbf{\vec q}_j}{\sqrt{|\mathcal N(u)|}}\right) $YoutubeDNN
利用深度神经网络作为矩阵分解的推广,可以表述为:这里
MLP
是一个多层感知机,||
表示向量拼接。
$ \hat y_{u,i} = f\left(\mathbf{\vec z}_u,\mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\},\{\mathbf{\vec a}_{u,j}\};j\in \mathcal N(u)\right) =\text{MLP}\left(\mathbf{\vec p}_u||\mathbf{\vec q}_i||\sum_{j\in \mathcal N(u)}\left(\text{MLP}\left(\mathbf{\vec q}_j||\mathbf{\vec a}_{u,j}||\mathbf{\vec q}_i\right)\odot \mathbf{\vec q}_j\right)\right) $DIN
也可以表述为:其中 $ \odot $ 为逐元素乘法。
注意,根据
target item
和每个trigger
之间的相关性,DIN
可以被视为2-hop
路径( $ u\rightarrow j\rightarrow i $ )的representation
。但是,它需要重新计算每个target item
的path representation
,使得DIN
仅适用于ranking
阶段。
为了保证检索效率,
item-based CF
构建倒排索引inverted index
,而EBR
应用KNN
搜索进行在线serving
。然而,由于两种模型体系结构都受到效率的限制,它们无法利用上图中的所有可用信息,从而导致性能欠佳。例如,item-based CF
缺少用户画像和item
画像,而EBR
缺少item
之间的显式共现信息。因此,在本文中我们提出了一种叫做PDN
的新型架构,从而支持低延迟的个性化和多样性检索。
26.1.2 PDN
在这一部分,我们介绍了用于推荐系统
matching
阶段的Path-based Deep Network: PDN
的设计。我们首先介绍PDN
的整体架构,然后详细阐述PDN
的各个模块,包括Embedding Layer
、Trigger Net: TrigNet
、Similarity Net: SimNet
、Direct Net
、Bias Net
。根据公式 $ \hat y_{u,i} = f\left(\mathbf{\vec z}_u, \mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\},\left\{\mathbf{\vec a}_{u,j}\right\},\left\{c_{j,i}\right\};j\in \mathcal N(u)\right) $ ,
$ \text{Path}_{u,j,i} = \text{Merge}\left(\text{TrigNet}\left(\mathbf{\vec z}_u,\mathbf{\vec a}_{u,j},\mathbf{\vec x}_j\right),\text{SimNet}\left(\mathbf{\vec x}_j,c_{j,i},\mathbf{\vec x}_i\right)\right)\\ \hat y_{u,i} = \text{Agg}\left(f_d\left(\mathbf{\vec z}_u, \mathbf{\vec x}_i\right),\left\{\text{Path}_{u,j,i}\right\};j\in \mathcal N(u)\right) $PDN
的基本工作流程可以表述为:其中:
TrigNet
、SimNet
是前面提到的两个独立的子网络。- $ \text{Path}_{u,j,i} $ 为通过
trigger item
$ j $ 的2-hop
路径的相关性权重。 Merge(.)
是合并每条2-hop
路径中相关性权重的函数。- $ f_d(\cdot) $ 为获取直接路径
direct path
相关性权重relevance weight
的函数。 Agg(.)
为一个评分函数,用于对 $ n+1 $ 条路径(一条1-hop
路径、 $ n $ 条2-hop
路径)的相关性权重求和得到用户和target item
的最终相关性得分。
为了使
$ \hat y_{u,i} = \mathbf{\vec p}_u\cdot \mathbf{\vec q}_i + \sum_{j\in \mathcal N(u)} \text{Merge}\left(\text{TrigNet}\left(\mathbf{\vec z}_u,\mathbf{\vec a}_{u,j},\mathbf{\vec x}_j\right),\text{SimNet}\left(\mathbf{\vec x}_j,c_{j,i},\mathbf{\vec x}_i\right)\right) $PDN
能够执行快速的在线item
检索,我们首先将Agg
定义为1-hop
相关性权重和2-hop
相关性权重的summation
,然后 $ f_d $ 也被定义为user representation
和target item representation
之间的内积。因此,PDN
的最终形式为:PDN
的整体架构如下图所示(该图最好用彩色观看):Direct Net
用于获取1-hop
路径的权重从而捕获用户对target item
的直观兴趣。TrigNet
和SimNet
分别获取每条2-hop
路径的第一跳权重和第二跳权重,从而捕获细粒度的、针对用户的个性化和多样性的兴趣。Bias Net
用于捕获各种类型的选择偏差selection bias
从而进一步提供无偏serving
。
注意:在每条
2-hop
路径中,当TrigNet
和SimNet
的输出为向量时,它们可以被视为对应边的representation
,称之为vector-based PDN
。这种setting
可能具有更高的模型容量,并且使得在线检索更加复杂。另一方面,当TrigNet
和SimNet
的输出为标量时,它们可以被视为对应边的权重,称之为scalar-based PDN
。和vector-based PDN
相比,scalar-based PDN
具有较低的自由度,可以减轻基于路径检索的贪心策略在线检索的复杂性。因此,接下来我们介绍了PDN
的每个组件,以及scalar-based PDN
的设置。整个
PDN
模型分为三部分:
Direct Net
:直接建模用户和target item
之间的相关。这相当于没有用户历史行为、没有上下文的双塔模型。
Bias Net
:根据上下文建模不同上下文情况下的bias
。它独立建模上下文,而没有联合user representation
和item representation
。这降低了模型复杂度。
Trigger Net & Similarity Net
:直接建模用户历史行为和target item
之间的相关性。这里没有用户画像特征、没有上下文特征。
Trigger Net
建模trigger
重要性,得到user representation
为 $ \mathbf{\vec u}=(u_1,\cdots,u_N)\in \mathbb R^N $ ,其中 $ u_i $ 为用户 $ u $ 在trigger
$ i $ (即item
$ i $ )上的重要。该representation
大多数情况下都是零,只有在历史行为item
上才可能非零。Similarity Net
建模item
之间相似度,得到target item representation
为 $ \mathbf{\vec v} = (v_1,\cdots,v_N)\in \mathbb R^N $ ,其中 $ v_j $ 为item
$ j $ 和target item
$ v $ 之间的相似度。Merge
给出如何融合 $ \mathbf{\vec u} $ 和 $ \mathbf{\vec v} $ 从而得到用户 $ u $ 和target item
$ v $ 之间的相关性。这里存在一个问题:如何迫使模型的子结构预期工作,例如
Direct Net
学到user-item
直接相关性、Trigger Net
学到trigger
重要性。这里是否应该增加某些正则化,使得模型朝着预期方向进行优化。
特征组合
Feature Composition
和Embedding Layer
:如上图所示,我们的推荐系统中有四个特征字段feature field
:用户字段 $ \mathbf{\vec z}_u $ 、用户行为字段 $ \{\mathbf{\vec a}_{u,j}\} $ 、item
共现字段 $ \{c_{j,i}\} $ 、item
字段 $ \mathbf{\vec x}_i $ (以及交互item
集合 $ \{\mathbf{\vec x}_j\} $ 也是用的item
字段)。 这些字段包括one-hot
特征(如用户id
、item id
、年龄id
、品牌id
),也包括连续特征(如月销售额、停留时长、item
之间的统计相关性)。- 首先,我们通过离散化将连续特征转换为
one-hot
特征。 - 然后,我们将每个
one-hot
特征投影到固定长度的dense representation
中。 - 最后,在
embedding
之后,我们拼接属于同一个字段的embedding
向量作为该字段的representation
。
形式上,用户字段、用户行为字段、
item
共现字段、item
字段的field representation
可以写作: $ \mathbf{\vec e}^z_u\in \mathbb R^{d_u},\mathbf{\vec e}^a_{u,j}\in \mathbb R^{d_a},\mathbf{\vec e}^c_{j,i}\in \mathbb R^{d_c},\mathbf{\vec e}^x_i\in \mathbb R^{d_x} $ ,其中 $ d_u,d_a,d_c,d_x $ 为相应字段的embedding
维度。- 首先,我们通过离散化将连续特征转换为
Trigger Net
和Similarity Net
:经过embedding layer
之后,我们计算用户和target item
之间每条2-hop
路径的相关性权重。对于第一跳,我们利用
$ t_{u,j} = \text{TrigNet}\left(\mathbf{\vec z}_u,\mathbf{\vec a}_{u,j},\mathbf{\vec x}_j\right) = \text{MLP}\left(\text{CAT}\left(\mathbf{\vec e}^z_u,\mathbf{\vec e}^a_{u,j},\mathbf{\vec e}^x_j\right)\right) $TrigNet
通过计算每个trigger
的偏好来捕获用户的多种兴趣。具体而言,给定用户 $ u $ 及其trigger item
$ j $ ,偏好得分计算为:其中 $ \text{CAT}\left(\mathbf{\vec e}^z_u,\mathbf{\vec e}^a_{u,j},\mathbf{\vec e}^x_j\right)\in \mathbb R^{d_u + d_a + d_x} $ 为用户
embedding
、用户行为embedding
、交互item embedding
的拼接。 $ t_{u,j} $ 代表用户 $ u $ 对交互item
$ j $ 的偏好。当存在 $ n $ 个不同的交互
item
时, $ \mathbf{\vec t}_u = (t_{u,1},\cdots,t_{u,n})^\top $ 可以视为用户 $ u $ 的可变维度的representation
。EBR-based
方法采用一个固定维度的representation
向量来表示用户兴趣,这可能是捕获用户不同兴趣的瓶颈,因为所有关于一个用户不同兴趣的信息混合在一起,导致matching
阶段的item
检索不准确。与使用固定维度向量对用户representation
进行编码的EBR-based
方案相比, $ \mathbf{\vec t}_u $ 显式描述了用户对每个交互item
的偏好,可以更好地表达用户的多样化diverse
兴趣并且更具有可解释性。值得一提的是,
TrigNet
可以使用其它更强大的神经网络,例如Recurrent Neural Network: RNN
和transformer-based
的模型来建模用户行为。不过我们想强调,一个简单的MLP
对我们的工业系统而言更具有性价比cost-effective
。一种直觉是:转化
trigger
要比点击trigger
更重要、转化多次的trigger
要比转化一次的trigger
更重要、转化长尾trigger
要比转化热门trigger
更重要。注意,这里的trigger
既可以是正向的(点击/购买)、也可以是负向的(不感兴趣/快滑),包含用户所有的历史行为。因此,这里通过
TrigNet
自动从用户embedding
、用户行为embedding
、交互item embedding
中抽取trigger
重要性。对于第二跳,我们利用
$ s_{j,i} = \text{SimNet}\left(\mathbf{\vec x}_j,c_{j,i},\mathbf{\vec x}_i\right) = \text{MLP}\left(\text{CAT}\left(\mathbf{\vec e}^x_j,\mathbf{\vec e}^c_{j,i},\mathbf{\vec e}^x_i\right)\right) $SimNet
根据item
画像和共现信息来计算每个交互item
和target item
之间的相关性:其中 $ \text{CAT}\left(\mathbf{\vec e}^x_j,\mathbf{\vec e}^c_{j,i},\mathbf{\vec e}^x_i\right)\in \mathbb R^{2d_x + d_c} $ 为交互
item embedding
、共现embedding
、target item embedding
的拼接。 $ s_{j,i} $ 为item
$ j $ 和item
$ i $ 之间的相关性。这里的共现很重要:基于什么共现准则?点击共现、还是购买共现、还是不感兴趣共现?个人理解这和任务目标有关。如果任务是点击率预估,那么这里就是点击共现,从而捕获在点击意义下的
item pair
相关性。当存在 $ n $ 个不同的交互
item
时, $ \mathbf{\vec s}_i = (s_{1,i},\cdots,s_{n,i})^\top $ 可以视为target item
$ i $ 的可变维度的representation
。我们强调
SimNet
基于item
共现信息co-occurrence information
和辅助信息side information
来显式地学习相关性。从这个意义上讲,它可以独立地部署从而进行item-to-item
检索。一种直觉是:共现次数越高的
item pair
相似度越高、同类目的item pair
相似度更高、同店铺的item pair
相似度更高。这相当于将
DIN
中的行为embedding
attention
聚合拆分为TrigNet + SimNet
。
在得到 $ \{t_{u,j}\} $ 和 $ \{s_{j,i}\} $ 之后,
$ \text{Path}_{u,j,i} = \text{Merge}(t_{u,j},s_{j,i}) = \ln\left(1+e^{t_{u,j} + s_{j,i}}\right) $PDN
将它们合并从而得到每个2-hop
路径的相关性权重 $ \text{Path}_{u,j,i} $ ,即:这个
Merge
函数有两个特点:确保非负;将相关性乘积转换为加法操作,从而方便在线serving
。Direct Net
:我们进一步使用另一组user embedding
和item embedding
在更广的范围内建模用户的一般兴趣general interest
。例如,女性对连衣裙更感兴趣,而男性对腰带更感兴趣。这可以被认为是将用户直接连接到target item
的1-hop
路径。因此,我们利用由用户塔和item
塔组成的直接网络direct network
。具体而言,这两个塔分别通过基于用户字段 $ \mathbf{\vec z}_u $ 和
$ d_{u,i} = \mathbf{\vec p}_u\cdot \mathbf{\vec q}_i = \text{MLP}\left(\mathbf{\vec e}^z_u\right)\cdot \text{MLP}\left(\mathbf{\vec e}^x_i\right) $target item
字段 $ \mathbf{\vec x}_i $ 的MLP
(采用LeakyReLU
激活),从而得到用户representation
$ \mathbf{\vec p}_u\in \mathbb R^{k} $ 和item representation
$ \mathbf{\vec q}_i\in \mathbb R^{k} $ 。然后direct path
的相关性权重可以表述为:其中 $ d_{u,i} $ 为用户 $ u $ 和
target item
$ i $ 之间的直接相关性direct relevance
。Bias Net
:位置偏差position bias
和许多其他类型的选择偏差selection bias
被广泛研究,并验证为推荐系统中的一个重要因素。例如,用户通常倾向于点击靠近列表顶部显示的item
,即使它不是整个语料库中最相关的item
。为了在模型训练期间消除选择偏差,我们训练了一个浅层塔,其输入特征有助于
selection bias
,例如位置偏差的位置特征position feature
、时间偏差temporal bias
的小时特征hour feature
。得到的偏差logit
$ y_\text{bias} $ 被添加到主模型的最终logit
中,如上图所示。注意,在
serving
期间,bias net
被移除从而得到无偏的相关性得分。损失函数
$ \hat y_{u,i} = \text{softplus}(d_{u,i}) + \sum_{j=1}^n \text{Path}_{u,j,i} + \text{softplus}(y_\text{bias})\\ p_{u,i} = 1-\exp\left(-\hat y_{u,i}\right) $Loss Function
:用户 $ u $ 是否会点击target item
$ i $ 可以视为一个二分类任务。因此,我们将 $ n+1 $ 个路径的相关性权重和bias logit
合并,得到 $ u $ 和 $ i $ 之间的最终相关性分数,并将其转换为用户点击概率 $ p_{u,i} $ :注意,
softplus
函数使得相关性分数 $ \hat y_{u,i} $ 的取值范围在 $ (0,+\infty) $ 之间,因此我们将其转换为0.0 ~ 1.0
之间的概率值。为了训练模型,我们应用交叉熵目标函数:
$ l_{u,i} = -\left[y_{u,i}\times \log p_{u,i} + (1-y_{u,i})\times \log (1-p_{u,i})\right] $其中: $ y_{u,i} $ 是
ground-truth
,表示用户 $ u $ 是否点击item
$ i $ 。讨论:为了确保
PDN
的训练能够收敛到一个更好的最优值,我们仔细设计了每条路径的相关性权重。如前所述,我们利用 $ \exp(\cdot) $ 而不是其它激活函数来将输出约束为正值(即 $ e^{s_{j,i}} $ 和 $ e^{t_{u,j}} $ ),从而实现每条2-hop
路径权重的合并。这种将输出限制为正值的处理是直观的,并且符合现实世界的合理性。即: $ \text{Path}_{u,j,i} = \text{Merge}(t_{u,j},s_{j,i}) = \ln\left(1+e^{t_{u,j} + s_{j,i}}\right) $ 。
注意,相关性权重本质上可以为负值(即负相关),但是这可能允许
PDN
在更广泛的参数空间中搜索局部最优值,这很容易导致过拟合。在下图中,我们通过允许相关性权重为负来说明两个bad cases
。在图
(a)
中,当一个negative target
(label = unclick
)被两个完全不相关的trigger
连接时,SimNet
可能会为一条路径生成一个正的相关性权重,并为另一条路径生成一个负的相关性权重。聚合后,点击概率仍然很低,即与ground-truth
完美匹配。因为 $ \sum_{\text{path}} = 0.8 *(-0.5) + 0.8*0.5 = 0 $ 。
但是很明显,牛奶不能和手机产生
postive
的相关性。这意味着SimNet
产生了过拟合。在图
(b)
中,TrigNet
也可以学习对trigger
的negative
偏好,从而过拟合数据。
26.1.3 系统
在这一部分,我们详细描述了
PDN
在淘宝上进行item
推荐的实现和部署。当用户打开手机淘宝App
时,推荐系统首先会从包含多达数十亿个item
的语料库中为该用户检索数千个相关的item
。然后,每个检索到的item
都通过ranking
模型进行评分,并将根据评分排序的item
列表作为推荐给用户展示。在线检索
Onling Retrieval
:如前所述,matching
阶段需要处理数十亿甚至数万亿个item
。为了满足在线实时serving
,不可能利用PDN
对所有可用item
进行评分。基于PDN
的架构,很直观的一点是 ,路径相关性权重越大,用户对item
感兴趣的可能性就越大。因此,matching
问题可以看作是在用户的2-hop
邻域中检索具有较大路径权重的item
节点。如下图所示,我们通过贪心策略以路径检索的形式实现了在线实时
top-K
最近邻检索。具体而言,我们将路径检索分解为两个部分:- 使用
TrigNet
的top-m
重要的trigger
搜索(第一跳)。 - 基于
SimNet
生成的索引对每个top-m trigger
执行top-k item
搜索(第二跳)。
对于
TrigNet
,我们将模型部署在实时在线服务中,用于用户trigger
的打分。对于SimNet
,我们使用该模型以离线方式计算和索引item
相关性。详细而言,
PDN
的在线检索可以概括为:索引生成(第一步):基于
SimNet
,离线生成语料库中每个item
的top-k
最相似的item
,并与相关性得分 $ s_{j,i} $ 一起存储在数据库中。trigger
提取(第二步):当用户打开手机淘宝App
时,我们取出用户交互的所有item
,并利用TrigNet
得到用户所有的trigger
的评分 $ t_{u,j} $ ,并返回top-m trigger
。
$ \hat s_{u,i} = \text{softplus}(d_{u,i}) + \sum_{j=1}^m \text{softplus}(t_{u,j} + s_{j,i}) $top-k
检索(第三步):我们从这些top-m trigger
开始查询数据库并获得总共 $ m\times k $ 个候选item
。在移除bias feature
的情况下,返回top-k item
进行推荐:
注意:
- $ \mathbf{\vec p}_u $ 和 $ \mathbf{\vec q}_i $ 是静态的
representation
,这两种representation
也可以离线推断并存储在数据库中。在执行在线服务时,可以直接根据user id
或者item id
来查询它们。 - 推断时评分函数仅使用了
top -m
个trigger
(训练时使用n
个);推断时评分函数使用简化的 、基于加法操作的Merge
函数(训练时使用复杂的、基于对数操作的Merge
函数)。
- 使用
索引生成
Index Generation
:对于具有大型item
语料库的工业系统,我们需要压缩item
相关性的稠密矩阵,即 $ \mathbb R^{N\times N}\rightarrow \mathbb R^{N\times k} $ ,从而减少索引构建时间成本和存储成本。即使这个过程可以离线完成,计算所有 $ N\times N $ 的item pair
对的相关性成本太高,所以我们首先根据候选生成candidate generation
将 $ N\times N $ 降低到 $ N\times \hat k $ ,其中 $ \hat k $ 要比 $ k $ 大一个量级。压缩操作主要包括三个步骤:- 候选
item pair
对生成:我们主要从两种策略生成item pair
对:一种基于共现信息,例如在同一个session
中点击的item
;另一种基于item
的画像信息,例如同一个品牌。从这个意义上讲,历史没有共现的、但是具有一些相似属性的item pair
对也可以被视为候选。 - 候选
item pair
对排序:我们使用SimNet
提取每个item pair
对的相关性得分 $ s_{j,i} $ 。 - 建立索引:对于每个
item
,我们获取top-k
相似的item
组成 $ N\times k $ 的item pair
对,同时 $ s_{j,i} $ 也一并存储在数据库中。
值得一提的是,
SimNet
可以独立地用于索引,因此也可以用于item-to-item
检索。对每个
item
基于SimNet
生成top k
相似的item
非常关键。如果对全量item
库进行计算,那么每个item
需要调用SimNet
$ O(N) $ 次,全量计算需要调用SimNet
$ O(N^2) $ 次,即使是离线计算也不现实。为此,需要根据先验知识,挑选出可能相关的item
进行打分。- 候选
26.2 实验
- 在这一部分,我们将
PDN
和已有的SOA
方案进行离线和在线的对比,包括消融研究、模型分析、案例研究。
26.2.1 离线评估
数据集:我们在三个公开的真实数据集上进行实验:
MovieLens
、Pinterest
、Amazon books
。这三个数据集的统计数据如下表所示。按照《Neural collaborative filtering》
的设置,我们仅保留至少有20
次交互的用户。关于这三个数据集的预处理的更多细节,参考《Neural collaborative filtering》
,我们不再赘述。评估方式:为了评估
PDN
的性能,我们采用了留一法来评估。对于每个用户,最后一次交互作为target item
,而之前的交互item
作为用户行为集合。具体而言,我们遵循惯例,在每个test case
中使用所有negative items
,并在这些negative items
中对target item
进行排序。我们使用命中率
Hit Ratio: HR
和Normalized Discounted Cumulative Gain: NDCG
作为性能指标。在这里HR
可以解释为基于召回的指标,NDCG
可以解释为基于ranking
的指标。baseline
方法:我们将PDN
与以下双塔方法和传统的item-based CF
方法进行比较。为了确保公平地比较,超参数调整是通过网格搜索进行的,每种方法都用最佳超参数进行测试。双塔方法如下:
DSSM
:DSSM
使用embedding
来表示用户和item
。相关性得分是基于user representation
和item representation
之间的内积来计算。Youtube DNN
:Youtube DNN
利用用户的交互序列来得到user representation
。它平等地对待用户历史行为中的每个交互item
,并采用均值池化来提取用户的兴趣。BST
:BST
扩展了Youtube DNN
,通过利用transformer layer
来捕获用户对历史行为序列的短期兴趣。我们使用user representation
和item representaiton
的内积,而不是MLP
。
item-based CF
方法如下:Pearson-based CF: PCF
:这是标准的item-based CF
,它根据皮尔逊系数估计item
相关性。SLIM
:SLIM
通过最小化原始user-item
交互矩阵和从item-based CF
模型重建的矩阵之间的损失来学习item
相关性。
ranking
方法如下:DIN
:DIN
利用target attention
来提取用户交互序列和target item
之间的关系。
三个公共数据集上
HR@10
和NDCG@10
的实验结果如下表所示。所有实验重复5
次并报告平均结果。最佳结果以粗体突出显示。对baseline
方法的提升在0.05
水平上具有统计显著性。Personalise
是指输出的得分考虑了用户信息,例如PDN
和EBR-based
方法。值得注意的是,CF
无法得到个性化的分数,因此用-
表示。Item to Item
指的是基于交互item
和target item
之间的相关性检索。具体而言,item
相似度的获取策略是基于item-based CF
、SimNet
的输出、EBR
方法获取的item embedding
之间的内积。
显然,在大多数数据集下,
PDN
优于所有比较方法。我们观察到:对于个性化检索(
Personalise
),DSSM
在双塔方法中表现最差,这表明基于用户行为捕获用户兴趣对于推荐系统至关重要。BST
的性能优于YouTube DNN
,这是因为transformer layer
通过考虑用户行为中的序列信息来提取用户的兴趣。PDN
实现了最佳性能,主要是因为这些双塔方法用一个固定维度的向量来表示每个用户,这是对不同兴趣进行建模的瓶颈。相比之下,PDN
利用TrigNet
提取多兴趣的用户representation
,每个维度都以细粒度的方式描述了用户对交互item
的兴趣。SimNet
在得到item
和target item
之间的相似性方面也很有效。因此,可以通过考虑用户对target item
的潜在兴趣来估计更准确的相关性。在线部署时,我们采用
SimNet
代替item-based CF
来估计item-to-item
相似性。因此,我们和item-to-item
进行了对比(即下表中带有Item to Item
的列)。SimNet
在所有Item to Item
方法中表现最好。原因是SimNet
基于深度神经网络,通过集成双塔方法使用的item
画像、以及item-based CF
使用的共现信息,显式优化了item
之间的相似性。这种方式利用更多的信息来解决CF
遇到的稀疏性问题。PDN
比DIN
表现更好。我们认为DIN
忽略了用户对交互item
的注意力(而仅考虑target item
对交互item
的注意力),而PDN
同时考虑了user attention
和item attention
从而获得更好的个性化推荐。基于消融研究,
PDN
产生了最佳性能,并且确认每个组件对最终效果都有贡献。
26.2.2 在线实验
A/B test
:除了离线研究,我们还通过在淘宝推荐系统中部署我们的方法从而进行为期两周的在线A/B test
实验。- 在对照组(即
baseline
)中,包含了我们当前生产系统中的所有matching
策略。 - 在其中一个实验组,我们应用
SimNet
而不是item-based
方法来构建倒排索引。
为了公平地比较,在两个
$ \frac{\text{metric}_\text{PDN}- \text{metric}_\text{base}}{\text{metric}_\text{base}} $matching
阶段之后都采用相同的ranking
组件和业务逻辑。注意:在线指标给出的是相对提升,即:下表给出了淘宝上的在线
A/B test
实验提升,为期两周:下图给出了
PDN
每一天各种指标的在线提升,为期一周:可以看到:
PDN
改进了电商推荐系统的所有核心业务指标,包括页面点击率page click-through rate: PCTR
、用户点击率user click-through rate: UCTR
、每个用户点击量clicks per user: ClkPU
、平均session
时长average session duration: avgSD
,以及多样性diversity
。这些都被认为是推荐满意度
recommendation satisfaction
的良好指标。其中多样性指标代表了覆盖的类目数量。尤其是个性化的多样性对于现有的生产系统而言通常是比较难的,而PDN
大幅度增加了推荐item
的多样性,这说明PDN
可以通过TrigNet
和SimNet
来捕获用户的多样化兴趣,提升整体的用户体验。此外,我们还部署了
SimNet
来验证它可以独立地用于构建索引,而不是基于item-based CF
,从而进行item-to-item
检索。这也获得了性能的提升。
- 在对照组(即
在线效率:这里我们报告在线
serving
的效率。具体而言,从请求到候选生成candidate generation
的整体延迟可以在6.75ms
内完成,即queries per second: QPS
是在千级别,这与使用标准倒排索引的检索相当。基于巨大的性能提升和低延迟,我们将PDN
部署到线上,从而服务于淘宝推荐系统的matching
阶段。
26.2.3 案例研究
用户行为序列长度分析:基于淘宝离线日志训练得到的模型,我们研究了用户行为序列长度 $ n $ 对性能的影响。我们根据 $ n $ 对用户进行分组。
如下表所示,我们发现 $ n $ 越小增益越大。评估指标为
HR@300
,括号中的百分比表示相对于BST
的提升。该结果表明:
PDN
对 $ n $ 具有较强的鲁棒性,即使在用户行为序列稀疏的情况下也能获得优异的性能。如下图所示,我们发现随着 $ n $ 的增加,
PDN
生成的候选的多样性逐渐增加,并且显著优于BST
。
这些结果表明:
PDN
能够以细粒度的方式捕获用户的个性化和多样化兴趣,从而改善用户体验。SimNet
的多样性diversity
和准确性accuracy
:为了验证
SimNet
的有效性,我们分别利用SimNet
和item-based CF
提供的相似性,利用相同的trigger item
执行item-to-item
检索。返回结果的相似性从左到右递减。如下图所示,通过形状像猫的玩偶来检索,
SimNet
返回相似的猫形玩偶和印有猫爪图案的杯子,而item-based CF
返回月销量高但是和猫无关的玩偶(例如狗形玩偶)。这个结果表明:SimNet
可以在不受交互次数(即item
销量)干扰的情况下检索更相关和更多样的结果,而item-based CF
会遭受 “马太效应”的影响,这引入了对热门item
的偏好的bias
。换句话说,item-based CF
仅基于item co-occurrence
信息计算相似性,而我们的方法额外引入了更多信息,如item
画像、用户画像、用户行为,从而实现更准确的item
相似性估计。为了进一步验证基于
SimNet
的item
相似性的可靠性,我们选择一批类目,然后每对类目随机选择1000
个item pair
对,并基于在线serving
的SimNet
构建的倒排索引计算它们的平均相似度。如下图所示:- 我们发现属于同一个类目的
item
具有更高的相似性。 - 此外,相关类目的相似度高于不相关类目的相似度。例如,无论是 “女装
vs
童装” 还是 “电子产品vs
家电”,都要比其它类目pair
对具有更高的相似度。
- 我们发现属于同一个类目的
TrigNet
的个性化和有效性:在公共数据集上,我们基于
TrigNet
来探索用户对item
的兴趣。如下图所示,user-to-item
的trigger
权重分别在postive item
和negative item
上取平均。很明显,postive item
的权重高于negative item
的权重。这个结果说明了TrigNet
的合理性。为了验证
TrigNet
的个性化能力,我们随机选择了1000
名男性和1000
名女性,从几个类目中随机选择了500
个item
,然后基于在线serving
的TrigNet
对所有user-item pair
对进行评分,得到男性和女性之间的平均trigger
权重的差异。如下图所示,我们可以发现TrigNet
对性别的处理是不同的,从而准确反映用户特点。例如,男性更喜欢电脑、汽车和手表,女性更喜欢花卉、旅游和女鞋。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论