数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
二十一、SDM [2019](Matching 阶段)
工业级大规模推荐系统需要能够准确预测用户的偏好,并快速响应用户当前的需求。淘宝是中国最大的电商网站,支持数十亿的
item
和用户。系统首先为用户检索一组候选item
,然后应用ranking
模块生成最终推荐。在这个过程中,matching
模块检索到的候选item
的质量在整个系统中起着关键作用。目前,淘宝上部署的
matching
模型主要基于item-based CF
方法。然而,这些方法对静态的user-item
交互进行建模,并且无法很好地捕获用户整个行为序列中的动态变换dynamic transformation
。因此,这类方法通常会导致同质推荐homogeneous recommendation
。为了准确了解用户的兴趣interest
和偏好preference
,应该将序列的顺序信息sequential order information
融入matching
模块。在论文
《SDM: Sequential Deep Matching Model for Online Large-scale Recommender System》
中,我们通过在matching
阶段引入深度序列推荐模型deep sequential recommendation model
(而不是item-based CF
模型)来考虑用户兴趣的动态演变dynamic evolution
。当人们开始在淘宝上使用网上购物服务时,他们的行为会累积成相对较长的行为序列。行为序列由
session
组成,而session
是在给定时间范围内发生的用户行为列表。用户通常在一个session
中具有明确的独特unique
购物需求。而当用户开始新session
时,用户的兴趣可能会发生急剧变化。直接对序列建模而忽略这种内在的session
结构会损害性能。因此,我们将用户最近的交互session
称为短期行为short-term behaviors
,将历史的其它session
称为长期行为long-term behaviors
。我们对这两部分分别建模,从而编码短期行为和长期行为的固有信息inherent information
,这些信息可用于表示用户的不同兴趣level
。我们的目标是在用户行为序列之后召回top N
的item
作为matching
候选。在短期
session
建模方面,基于循环神经网络RNN
的方法在session-based
推荐中表现出有效的性能。此外,人们进一步提出了注意力模型attention model
,强调了短期session
中最近一次点击的主要目的和效果,从而避免了由于用户的随机行为引起的兴趣转移interest shift
。然而,他们忽略了用户在一个
session
中有多个兴趣点。我们观察到用户关心item
的多个方面,如类目category
、品牌brand
、颜色、款式style
和店铺声誉reputation
等等。在对最喜欢的item
做出最终决定之前,用户会反复比较很多item
。因此,使用单个dot-product
注意力representation
无法反映在不同购买时间发生的多样的diverse
兴趣。相反,首先为机器翻译任务提出的multi-head attention
允许模型共同关注不同位置的多重的不同信息。多头结构multi-head structure
通过代表不同视角views
的偏好来自然地解决多重兴趣multiple interests
的问题。因此,我们提出了我们的多兴趣模块multi-interest module
,从而使用multi-head attention
来增强RNN-based
的序列推荐器sequential recommender
。同时,有了这种self-attention
,我们的模块可以通过过滤掉偶然发生的点击来表达准确的用户偏好。用户的长期偏好总是会影响当前的决策。直观地,如果用户是
NBA
篮球迷,那么用户可能会查看/点击和NBA
球星相关的大量的item
。当用户现在选择买鞋时,NBA
明星的球鞋会比普通球鞋更吸引用户。因此,同时考虑长期偏好long-term preferences
和短期行为short-term behaviors
至关重要。已有文献将当前短期
session
和长期偏好简单地组合。然而,在现实世界的应用中,用户的购物需求是多种多样且丰富的,他们的长期行为也是复杂和多样的。和NBA
球星相关的东西仅占长期行为的很少一部分。与当前短期session
相关的长期用户偏好无法在整体长期行为representation
中突出显示,应该保留长期行为representation
中与短期session
相关的信息。
在我们的
matching
模型中,我们设计了一个门控融合模块gated fusion module
来合并全局(长期)和局部(短期)偏好特征。门控融合模块的输入是用户画像embedding
、长期representation
向量、短期representation
向量。然后学习门控向量gate vector
来控制LSTM
中不同gate
的融合行为fusion behaviors
,以便模型可以精确地捕获兴趣相关性以及用户对长期兴趣/短期兴趣的attention
。- 一方面,长期
representation
向量中和短期session
最相关的信息和短期representation
向量融合。 - 另一方面,用户可以更准确地关注长期兴趣/短期兴趣。
和标量权重的
attention-like
模型不同,门控向量在我们的超复杂神经网络中具有更强大的决策表示能力。本文主要贡献:
我们通过考察短期
short-term
行为和长期long-term
行为,为现实世界应用中的大规模推荐系统开发了一种新颖的序列深度匹配sequential deep matching: SDM
模型。我们对短期行为和长期行为分别建模,代表不同level
的用户兴趣。我们提出通过
multi-head self-attention
模块对短期session
行为进行建模,从而编码和捕获多种兴趣倾向interest tendencies
。门控融合模块用于有效结合长期偏好和当前购物需求,从而结合它们的相关信息而不是简单的组合。
我们的
SDM
模型在现实世界中的两个离线数据集上进行了评估,表明优于其它state-of-the-art
方法。为了证明SDM
在工业应用中的可扩展性,我们成功地将它部署在淘宝推荐系统的生产环境中。自2018
年12
月份以来,SDM
模型一直在线有效运行。和以前的在线系统相比,SDM
取得了显著的提升。
SDM
主要解决了现实世界应用中的以下两个固有问题:- 在一个
session
中可能存在多个兴趣倾向interest tendencies
。 - 长期偏好可能无法和当前
session
兴趣有效融合。
- 在一个
相关工作:
工业中的
Deep Matching
:为了在工业推荐系统中开发更有效的matching
模型,许多研究人员采用具有强大表达能力的深度神经网络。基于矩阵分解
Matrix Factorization: MF
的模型尝试将pairwise
的user-item
隐式反馈分解为user vector
和item vector
。YouTubeDNN
使用深度神经网络来学习user embedding
和item embedding
。这两种embedding
分别从它们对应的特征来生成。预测相当于在所有item
中搜索user vector
的最近邻。此外,
《Learning Tree-based Deep Model for Recommender Systems》
提出了一种新颖的tree-based
的大规模推荐系统,它可以提供新颖的item
并克服向量搜索的计算障碍。最近,基于
graph embedding
的方法被应用于许多工业应用中,从而补充或替代传统的方法。《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》
提出从用户的历史行为构建一个item graph
,然后应用state-of-the-art
的graph embedding
方法来学习每个item
的embedding
。为了解决冷启动和数据稀疏问题,他们结合了item
的辅助信息来增强embedding
过程。《Graph Convolutional Neural Networks for Web-Scale Recommender Systems》
在Pinterest
上开发并部署了一个有效effective
且高效efficient
的图卷积网络,从而生成包含图结构和节点特征信息的node embedding
。
但是这些模型无法很好地考虑用户偏好的动态和演变。在这项工作中,我们通过引入序列推荐
sequential recommendation
从而在matching
阶段考虑这一点。序列感知推荐:序列推荐旨在对用户的偏好进行建模,并以序列方式从观察到的动作中预测用户的未来动作,例如
next click
或者next purchase
。早先,
FPMC
和HRM
通过联合矩阵分解和马尔科夫链对序列中相邻item
之间的局部序列行为进行建模。最近,深度神经网络为推荐系统带来了强大的表达和泛化能力。《Session-based recommendations with recurrent neural networks》
首先应用GRU
根据用户当前的短期会话进行推荐。- 之后,
《Neural attentive session-based recommendation》
利用注意力机制提取用户的主要意图,特别是对于较长的会话,并取得了更好的结果。 《STAMP: short-term attention/memory priority model for session-based recommendation》
随后创建了一个新的短期注意力优先attention priority
模型而不是RNN
,然后指出会话中最近一次点击的重要性。- 除了
RNN
之外,《Personalized top-n sequential recommendation via convolutional sequence embedding》
和《A Simple Convolutional Generative Network for Next Item Recommendation》
提出了卷积序列embedding
推荐模型作为解决方案。 《Self-attentive sequential recommendation》
和《Next item recommendation with self-attention》
使用self-attention
架构来编码用户的动作历史。《Towards Neural Mixture Recommender for Long Range Dependent User Sequences》
构建了一个M3
模型,该模型可以通过门控机制组合上述不同方法。
但是这些方法忽略了单次会话中的多样的兴趣。
《Sequential recommendation with user memory networks》
将memory
机制引入序列推荐模型,该系统设计了一个用户记忆增强神经网络memory-augmented neural network: MANN
来表达feature-level
兴趣。- 对于更细粒度的用户偏好,
《Taxonomy-aware multi-hop reasoning networks for sequential recommendation》
和《Improving sequential recommendation with knowledge-enhanced memory networks》
使用知识库信息来增强key-value
记忆网络的语义表示semantic representation
,称作知识增强序列推荐器knowledge enhanced sequential recommender
。
然而,这些方法的的额外存储、手动特征设计、
memory network
的计算量,由于用户和item
的规模巨大,因此在工业界是不被接受的。考虑用户长期稳定的偏好也很重要。
《Learning from history and present: next-item recommendation via discriminatively exploiting user behaviors》
通过拼接用户的会话行为representation
以及历史购买行为的稳定偏好,从而提出了BINN
模型。《Sequential Recommender System based on Hierarchical Attention Networks》
提出了一种新颖的两层分层注意力网络来推荐用户可能感兴趣的next item
。《A Long-Short Demands-Aware Model for Next-Item Recommendation》
使用多时间尺度来表达长短期需求,并将它们融合到一个层级结构中。
另一个统一通用兴趣和序列兴趣的例子是
Recurrent Collaborative Filtering
(《Recurrent Collaborative Filtering for Unifying General and Sequential Recommender》
),它在多任务学习框架中结合了RNN
序列模型和矩阵分解方法。《PLASTIC: Prioritize Long and Short-term Information in Top-n Recommendation using Adversarial Training》
通过对抗训练做了同样的组合。简单的组合不足以融合长短期偏好,而多任务和对抗性方法不适用于工业应用。在本文中,我们提出了多头自注意力
multi-head self-attention
来捕获短期会话行为中的多个用户兴趣,并使用门控机制在现实世界的application
中有效且高效地结合长期偏好。
21.1 模型
令 $ \mathcal U $ 为用户集合, $ \mathcal I $ 为
item
集合。我们的模型考虑用户 $ u\in \mathcal U $ 是否会在时刻 $ t $ 和item
$ i\in \mathcal I $ 交互。对于用户 $ u $ ,我们可以通过行为发生时间的升序排序来获取用户的
latest session
。受到
session-based
推荐的启发,我们重新制定了session
的生成规则:- 后端系统记录的、具有相同
session ID
的交互属于同一个session
。 - 时间间隔小于
10
分钟(或者更长,这取决于具体场景)的相邻交互也合并为一个session
。 session
的最大长度设置为50
,即session
长度超过50
时将开始新的session
。
用户 $ u $ 的
latest session
为最近的那个session
,被视为短期行为,即: $ \mathcal S^u = \left[i_1^u,\cdots,i_t^u,\cdots,i_m^u\right] $ ,其中 $ m $ 为序列长度。用户 $ u $ 的长期行为long-term behaviors
是过去7
天的、发生在 $ \mathcal S^u $ 之前的行为,记作 $ \mathcal L^u $ 。我们的推荐任务是:给定用户 $ u $ 的短期行为 $ \mathcal S^u $ 和长期行为 $ \mathcal L^u $ ,我们需要为用户推荐
item
。- 后端系统记录的、具有相同
21.1.1 总体架构
SDM
的通用网络结构如下图所示。主要由三部分组成:用户预测网络user prediction network
、训练training
、在线服务online serving
。用户预测网络
user prediction network
:- 网络以短期行为 $ \mathcal S^u $ 和长期行为 $ \mathcal L^u $ 作为输入。
- $ \mathcal S^u $ 被编码为时刻 $ t $ 的短期行为
representation
$ \mathbf{\vec s}_t^u $ , $ \mathcal L^u $ 被编码为长期的行为representation
$ \mathbf{\vec p}^u $ 。 - 这两种
representation
通过门控神经网络gated neural network
组合,从而得到用户行为向量user behavior vector
$ \mathbf{\vec o}_t^u\in \mathbb R^{d } $ 。 其中 $ d $ 为embedding size
。 - 网络的目标是预测下一个交互
item
$ i_{t+1}^u $ 。
令 $ \mathbf V\in \mathbb R^{ |\mathcal I|\times d} $ 为所有
$ z_j = \text{score}\left(\mathbf{\vec o}_t^u,\mathbf{\vec v}_j\right) = \mathbf{\vec o}_t^u\cdot \mathbf{\vec v}_j $item embedding
组成的item embedding
矩阵,第 $ i $ 行 $ \mathbf{\vec v}_i\in \mathbb R^d $ 为item
$ i $ 的embedding
向量。我们通过内积来计算用户 $ u $ 在时刻 $ t+1 $ 和item
$ j $ 交互的可能性(非归一化的):然后我们通过
$ \hat y_j = \frac{\exp(z_j)}{\sum_{j^\prime\in \mathcal I}\exp(z_{j^\prime})} $softmax
进行归一化:训练
training
:在训练过程中,时刻 $ t $ 的positive label
是下一个交互item
$ i_{t+1}^u $ 。考虑到实际应用中的大量item
,我们采用对数均匀采样器log-uniform sampler
从 $ \mathcal I $ 中采样negative labels
(不包括 $ i_{t+1}^u $ )。然后由softmax layer
生成预测类别概率。这称作sampled-softmax
。我们应用交叉熵损失函数:
$ \hat {\mathbf{\vec y}} = \text{softmax}\left(\mathbf{\vec z}_i\right)\\ L\left(\hat {\mathbf{\vec y}} \right) = -\sum_{i\in \mathcal K}y_i\log\left(\hat y_i\right) $其中:
- $ \mathcal K $ 为 $ \mathcal I $ 的采样子集,包括
positive label
和negative labels
。 - $ \mathbf{\vec z}=[z_1,\cdots,z_{|\mathcal K|}] $ 分别代表 $ \mathbf{\vec o}_t^u $ 与每个 $ \mathbf{\vec v}_i,i\in \mathcal K $ 的内积。
- $ \hat{\mathbf{\vec y}} = \left[\hat y_1,\cdots,\hat y_{|\mathcal K|}\right] $ 是每个采样
item
的预估概率分布。 - $ y_i $ 是
item
$ i $ 的真实概率分布。当item
$ i $ 为postive label
时 $ y_i=1 $ ,当item
$ i $ 为negative label
时 $ y_i=0 $ 。
- $ \mathcal K $ 为 $ \mathcal I $ 的采样子集,包括
在线服务
online serving
:我们将模型部署在我们的在线推荐系统上。item embedding
矩阵 $ \mathbf V $ 被导入到一个高效的K-Nearest-Neighborhood: KNN
相似性similarity
搜索系统。同时,用户预测网络部署在机器学习的高性能实时推断inference
系统上。这种架构遵循YouTube
的视频推荐。当用户使用我们的在线服务时,用户会和很多
item
进行交互,用户对item
的反馈将被后端系统记录下来。这些反馈信息将被处理,然后作为用户的行为日志存储在数据库中。从海量日志中抽取的有用信息将被构造为我们模型所需的结构化数据。在时刻 $ t $ ,用户的历史行为(短期行为 $ \mathcal S^u $ 和长期行为 $ \mathcal L^u $ )被输入到推断系统中,然后生成用户行为向量 $ \mathbf{\vec o}_t^u $ 。
KNN
搜索系统根据内积检索最相似的item
,然后推荐top-N
个item
。
21.1.2 用户预测网络
这里我们详细说明如何在用户预测网络中编码 $ \mathcal S^u $ 和 $ \mathcal L^u $ ,以及如何融合这两种
representation
,如下图所示。每个 $ i_t^u\in \mathcal S^u $ 被嵌入到一个向量 $ \mathbf{\vec e}_{i_t^u} $ 中,然后通过
LSTM
、multi-head self-attention
、以及attention
网络得到短期行为representation
$ \mathbf{\vec s}_t^u $ 。长期行为基于各种辅助信息(包括
item id
)来描述,即item ID
( $ \mathcal L_\text{id}^u $ )、一级类目 ( $ \mathcal L^u_\text{cate} $ )、叶子类目( $ \mathcal L_\text{leaf}^u $ )、品牌( $ \mathcal L^u_\text{brand} $ )、店铺( $ \mathcal L^u_\text{shop} $ )。然后通过attention
网络和稠密的全连接网络进行编码,从而得到长期行为representation
$ \mathbf{\vec p}^u $ 。长期行为
attention
网络分别针对各个辅助信息进行,而不是针对item
进行。这可以分别捕获用户对不同辅助信息的偏好,而不是捕获用户对一组辅助信息的偏好。前者的模型容量更小、后者的模型容量更大。$ \mathbf{\vec s}_t^u $ 和 $ \mathbf{\vec p}^u $ 通过门向量 $ \mathbf{\vec G}_t^u $ 来融合到
fused into
用户行为向量 $ \mathbf{\vec o}_t^u $ 。$ \mathbf{\vec e}^u $ 是用户画像
embedding
,它参与了短期行为中的attention
网络、以及长期行为中的attention
网络。
LSTM
之后再接入AttnNet
,此时的输出已经没有序列信息了(加权聚合)。因此,是否移除LSTM
的效果会更好?这个可以通过实验来解决。这里用户
representation
作为AttnNet
的query
,并且没有拼接到最终的representation
。这个框架以item
为中心来设计。长期行为
attention
网络采用“先对辅助信息序列计算AttnNet
、再对结果进行Dense
” 的方式,也可以 “先对辅助信息进行Dense
、再对结果计算AttnNet
”的方式。具体哪个更好?可以通过实验来解决。实验部分提到:可以用
next N item
作为N
个正样本。这种方式可以增加正样本数量从而提高模型效果。fusion gate
采用向量化的输出,得到element-wise
的加权权重。这比标量的权重粒度更细,效果更好。带辅助信息的
Input Embedding
:在淘宝的推荐场景中,用户不仅关注特定item
本身,还关注品牌、店铺、价格等。比如,有些人倾向于购买特定品牌的item
,另一些人倾向于购买来自他们信任店铺的item
。此外,由于大规模item
造成的稀疏性,仅通过item ID
的特征级别feature level
对item
进行编码远远不能令人满意。因此,我们从不同的特征尺度feature scales
描述一个item
,即item ID
、叶子类目、一级类目、品牌、店铺,这些称作辅助信息side information
集合 $ \mathcal F $ 。每个输入
$ \mathbf{\vec e}_{i_t^u} = \text{concat}\left(\left\{\mathbf{\vec e}_i^f\mid f\in \mathcal F\right\}\right) $item
$ i_t^u\in \mathcal S^u $ 表示为一个由embedding layer
转换的稠密向量 $ \mathbf{\vec e}_{i_t^u}\in \mathbb R^{d } $ ,以便它们可以直接馈入深度神经网络:其中: $ \mathbf{\vec e}_i^f = \mathbf W^f\mathbf{\vec x}_i^f\in \mathbb R^{d_f } $ 为
item
$ i $ 的特征 $ f $ 的embedding
,embedding size
为 $ d_f $ ; $ \mathbf W^f $ 为特征 $ f $ 的变换矩阵; $ \mathbf{\vec x}_i^f $ 为one-hot
向量。类似地,用户画像可以从不同的特征尺寸
$ \mathbf{\vec e}_u = \text{concat}\left(\left\{\mathbf{\vec e}_u^p\mid p\in \mathcal P\right\}\right) $feature scales
来描述用户 $ u $ ,如年龄、性别、life stage
。用户 $ u $ 的用户画像输入表示为一个稠密向量 $ \mathbf{\vec e}_u\in \mathbb R^{d } $ :其中: $ \mathcal P $ 为用户画像特征集合, $ \mathbf{\vec e}_u^p $ 为特征 $ p $ 的
embedding
向量。Recurrent Layer
:给定用户 $ u $ 的embedding
短期行为序列 $ \left[\mathbf{\vec e}_{i_1^u},\cdots,\mathbf{\vec e}_{i_t^u}\right] $ ,为了捕获和表征短期序列数据中的全局时间依赖性,遵从session-based
推荐,我们应用LSTM
网络作为循环单元recurrent cell
。在时刻 $ t $ ,LSTM
将 $ u $ 的短期行为序列编码为一个hidden output vector
$ \mathbf{\vec h}_t^u\in \mathbb R^{d } $ ,我们称之为序列偏好representation
。我们将 $ \mathbf{\vec h}_t^u $ 传递给注意力网络以获得更高阶的表示。注意力机制:在网购的场景下,用户通常会交替浏览一些不相关的
item
,这种情况称作偶然点击causal clicks
。不相关的动作会以某种方式影响序列中 $ \mathbf{\vec h}_t^u $ 的representation
。我们使用self-attention
网络来减少那些无关动作的影响。此外,
attention
网络可以通过为每个部分分配不同的权重得分,从而将各种向量聚合为一个整体的表示presentation
。multi-head self-attention
:用户可能有多个兴趣点。例如,当你在浏览一条裙子时,颜色和新颖的款式都是做决定的关键因素。单个注意力网络自然不足以捕获多个方面的representation
。multi-head attention
允许模型共同关注jointly attend
来自不同位置的不同representation
子空间的信息,并且可以从兴趣的多个视图multiple views
建模用户偏好 $ \hat{\mathbf{\vec h}}_t^u\in \mathbb R^{d} $ 。令
$ \hat{\mathbf X}^u = \text{multi-head}\left(\mathbf X^u\right) = \mathbf W^O\text{concat}\left(\text{head}_1^u,\cdots,\text{head}_h^u\right) $LSTM hidden output
为 $ \mathbf X^u= \left[\mathbf{\vec h}_1^u,\cdots,\mathbf{\vec h}_t^u\right] $ ,multi-head self-attention
的输出记作 $ \hat{\mathbf X}^u = \left[\hat{\mathbf{\vec h}}_1^u,\cdots,\hat{\mathbf{\vec h}}_t^u\right] $ ,则有:其中:
$ \mathbf W^O\in \mathbb R^{d\times d} $ 表示输出层线性变换的权重矩阵, $ h $ 表示
head
数量,每个head
的维度为 $ d^\prime = d/h $ 。每个 $ \text{head}_i^u\in \mathbb R^{d^\prime } $ 表示单个潜在兴趣:
$ \text{head}_i^u = \text{attention}\left(\mathbf W_i^Q\mathbf X^u,\mathbf W_i^K\mathbf X^u,\mathbf W_i^V\mathbf X^u\right) $其中 $ \mathbf W_i^Q,\mathbf W_i^K,\mathbf W_i^V $ 分别表示第 $ i $ 个
head
的query,key,value
的映射矩阵。
user attention
:对于不同的用户,他们通常甚至对相同的item
集合表现出不同的偏好。因此,在self-attention
网络之后,我们添加了一个用户注意力模块user attention module
来挖掘更细粒度的个性化信息,其中 $ \mathbf{\vec e}_u $ 作为query
向量。因此,时刻 $ t $ 的短期行为
$ \alpha_k = \frac{\exp\left(\hat{\mathbf{\vec h}}_k^{u}\cdot \mathbf{\vec e}_u\right)}{\sum_{k^\prime=1}^t \exp\left(\hat{\mathbf{\vec h}}_{k^\prime}^{u}\cdot \mathbf{\vec e}_u\right)}\\ \mathbf{\vec s}_t^u = \sum_{k=1}^t\alpha_k \hat{\mathbf{\vec h}}_k^u $representation
$ \mathbf{\vec s}_t^u\in \mathbb R^d $ 计算为:
长期行为融合:从长期视角来看,用户一般会在各个维度上积累了不同层次
level
的兴趣。用户可能经常访问一组相似的店铺并重复购买属于同一个类目的item
。因此,我们还从不同的特征尺度feature scales
对长期行为 $ \mathcal L^u $ 进行编码。$ \mathcal L^u=\left\{\mathcal L_f^u\mid f\in \mathcal F\right\} $ 由多个子集组成: $ \mathcal L_\text{id}^u $ (
item ID
)、 $ \mathcal L^u_\text{cate} $ (一级类目)、 $ \mathcal L_\text{leaf}^u $ (叶子类目)、 $ \mathcal L^u_\text{brand} $ (品牌)、 $ \mathcal L^u_\text{shop} $ (店铺) 。例如, $ \mathcal L^u_\text{shop} $ 包含用户 $ u $ 过去一周内互动过的店铺。考虑到在线环境下的快速响应,每个子集中的条目entry
通过attention-based
池化嵌入并聚合到一个整体向量overall vector
中。每个 $ f_k^u\in \mathcal L_f^u $ 被 $ \mathbf W^f $ 转换成稠密向量 $ \mathbf{\vec g}_k^u $ (它和 $ \mathbf{\vec e}_i^f $ 共享相同的特征变换矩阵)。然后我们使用用户画像
$ \alpha_k = \frac{\exp\left(\mathbf{\vec g}_k^u\cdot \mathbf{\vec e}_u\right)}{\sum_{k^\prime =1}^{|\mathcal L_f^u|}\exp\left(\mathbf{\vec g}_{k^\prime}^u\cdot \mathbf{\vec e}_u\right)}\\ \mathbf{\vec z}_f^u = \sum_{k=1}^{|\mathcal L_f^u|}\alpha_k \mathbf{\vec g}_k^u\ $embedding
$ \mathbf{\vec e}_u $ 作为query
向量来计算attention score
,并且获得 $ \mathcal L_f^u $ 的representation
为:然后我们拼接 $ \left\{\mathbf{\vec z}_f^u\mid f\in \mathcal F\right\} $ 、馈入到全连接神经网络,从而得到用户的长期行为
$ \mathbf{\vec z}^u = \text{concate}\left(\left\{\mathbf{\vec z}_f^u\mid f\in \mathcal F\right\}\right)\\ \mathbf{\vec p}^u = \tanh\left(\mathbf W^p\mathbf{\vec z}^u + \mathbf{\vec b}\right) $representation
:注意:短期行为使用序列建模,长期行为使用
attention
建模。二者使用相同的特征转换矩阵,但是短期行为建模使用不同特征尺度embedding
的拼接作为item
的representation
,而长期行为建模直接对每个特征尺度的embedding
来进行。为了结合长期行为和短期行为,我们精心设计了一个以 $ \mathbf{\vec e}_u,\mathbf{\vec s}_t^u,\mathbf{\vec p}_u $ 作为输入的门控神经网络
$ \mathbf{\vec G}_t^u = \text{sigmoid}\left(\mathbf W^1\mathbf{\vec e}_u + \mathbf W^2\mathbf{\vec s}_t^u + \mathbf W^3\mathbf{\vec p}^u + \mathbf{\vec b}_g\right) $gated neural network
。门向量gate vector
$ \mathbf{\vec G}_t^u\in \mathbb R^d $ 用于决定在时刻 $ t $ ,短期行为和长期行为的贡献比例:最终的用户行为向量 $ \mathbf{\vec o}_t^u\in \mathbb R^d $ 为:
$ \mathbf{\vec o}_t^u = \left(1-\mathbf{\vec G}_t^u\right)\odot \mathbf{\vec p}^u + \mathbf{\vec G}_t^u\cdot \mathbf{\vec s}_t^u $其中 $ \odot $ 为逐元素乘积。
21.2 实验
数据集:我们构建了一个
offline-online
的train/validation/test
框架来开发我们的模型。我们的代码和离线数据集可以从https://github.com/alicogintel/SDM
获取。离线数据集:模型在两个离线的现实世界电商数据集上进行评估:一个是手机淘宝
App
在线系统的日常日志中采样的大型数据集,另一个来自JD
。Taobao
离线数据集:我们随机选择在2018
年12
月连续8
天内交互超过40
个item
的活跃用户。此外,我们过滤交互超过1000
个item
的用户。我们认为这些用户是作弊用户spam user
。然后我们收集这些过滤后的活跃用户的历史交互数据,其中前7
天用于训练,第8
天用于测试。我们过滤掉数据集中出现次数少于
5
次的item
。session
分割遵循前述的规则,并且每个 $ \mathcal L_f^u $ 的最大长度限制为20
。在训练阶段,我们移除长度小于
2
的session
。在测试阶段,我们在第
8
天选择了大约1
万个活跃用户以便快速评估。这些用户在第8
天的top 25%
短期session
会被输入模型,剩余的交互是ground truth
。此外,用户可能会在一天内多次浏览某些
item
,我们不鼓励重复推荐,因此我们在用户的测试数据中仅保留这些item
一次。JD
离线数据集:由于这个数据集比较稀疏和较小,我们选择了三周的user-item
交互日志进行训练,第四周的交互日志进行测试。数据构建和清洗过程和Taobao
相同。
在线数据集:我们选择效果最好的离线模型部署在淘宝的生产环境上。训练数据来自手机淘宝
App
最近7
天的、没有采样的user-item
交互日志。数据清洗过程和离线训练数据集相同。在线的用户和
item
规模扩大到亿级,可以覆盖淘宝最活跃的item
,并且使用更多的长期行为。在线模型以及相应的item
特征和用户特征天级更新。
这些数据集的统计特征如下表所示。
评估指标:
离线评估指标:为了评估不同方法的离线有效性,我们使用了
HitRate@K
、Precision@K
、Recall@K
、F1@K
等指标。
$ \text{HitRate@K} = \frac{ \text{ground truth 在 top K 推荐列表中的测试样本数量}}{测试样本数量} $HitRate@K
表示测试集ground truth
在top K
推荐列表中的命中率,定义为:在我们的实验中,我们使用 $ K=100 $ 和 $ K=20 $ 。
令用户 $ u $ 召回的候选
item
集合为 $ \mathcal P_u $ (其中 $ |\mathcal P_u|=K $ ) ,而用户 $ u $ 的ground truth
集合为 $ \mathcal G_u $ 。
$ \text{Precision@K}(u) = \frac{|\mathcal P_u\cap \mathcal G_u|}{K} $Precision@K
反映了候选item
中有多少是用户真正感兴趣的,计算公式为:
$ \text{Recall@K}(u) = \frac{|\mathcal P_u\cap \mathcal G_u|}{|\mathcal G_u|} $Recall@K
反映了用户真实感兴趣的item
有多少被候选召回,计算公式为:为了结合
$ \text{F1@K}(u) = \frac{2\times \text{Precision@K}(u)\times \text{Recall@K}(u)}{ \text{Precision@K}(u)+ \text{Recall@K}(u)} $precision
和recall
,我们定义F1@K
为:我们最终计算测试集中所有用户的
Precision@K
、Recall@K
、F1@K
的均值作为最终结果。
在线评估指标:我们考虑最重要的在线指标:
pCTR
、pGMV
、和discovery
。
$ \text{pCTR} = \frac{\text{#clicks}}{\text{#pages}} $pCTR
定义为每个pv
的点击率,其中每个pv
可以为用户推荐20
个item
。
$ \text{pGMV} =1000 \times \frac{\text{#pay amount}}{\text{#pages}} $pGMV
定义为每1000
次pv
的商品交易总额Gross Merchandise Volume: GMV
。除了在线流量和收入,我们还考虑了用户的购物体验。我们定义
$ \text{discovery}(u) = \frac{\text{#new categories}(u)}{\text{#all categories}(u)} $discovery
指标来衡量推荐系统可以为用户提供多少新颖的item
。其中分母为过去
15
天,用户 $ u $ 点击的所有类目的数量,分子是用户 $ u $ 点击的新类目的数量。 我们对测试集中所有用户取平均。
baseline
方法:我们使用以下方法在两个离线数据集上和我们的模型进行比较。我们还包含了用于消融研究的、SDM
的五个变体。Item-based CF
:它是行业中主要的候选item
生成方法之一,利用协同过滤方法生成用于推荐的item-item
相似度矩阵。DNN
:YouTube
提出的一种基于深度神经网络的推荐方法。item
向量和user
向量被拼接并馈入到多层前馈神经网络中。GRU4REC
:它是首次应用循环神经网络解决session-based
推荐,明显优于传统方法。NARM
:它是GRU4REC
的改进版本,具有全局的和局部的attention-based
结构。它探索了一种具有注意力机制的混合编码器hybrid encoder
来建模用户的行为序列。SHAN
:它将用户的历史稳定偏好和近期的购物需求,与层次注意力网络hierarchical attention network
结合起来。BINN
:它应用RNN-based
方法来编码当前的消费动机和历史购买行为。它通过拼接操作来生成统一的representation
。SDMMA
:仅有multi-head self-attention
的SDM
模型。PSDMMA
:在SDMMA
之上,添加了用户attention
模块从而挖掘细粒度个性化信息的SDM
模型。PSDMMAL
:在PSDMMA
之上,它结合了短期行为representation
和长期行为representation
的SDM
模型。PSDMMAL-N
:在PSDMMAL
之上,它在训练期间,在当前时刻使用接下来的N
个item
作为target classes
,在本实验中 $ N = 5 $ 。PSDMMAL-NoS
:在PSDMMAL
之上,不包含短期行为中的辅助信息和长期行为中的辅助信息,即仅有item id
,而没有类目、子类目、品牌、店铺等辅助信息。
配置:
我们通过分布式
Tensorflow
实现这些深度学习模型。为了公平比较,所有这些模型共享相同的训练集和测试集,也共享相同的item
特征、user
特征、以及其它的训练超参数。离线实验的训练中,我们使用
5
个参数服务器parameter severs: PSs
以及6
个GPU(Tesla P100-PCIE-16GB)
的worker
, 平均训练速度30 global steps/秒
;在线实验训练中,我们使用
20
个参数服务器以及100 GPU worker
,平均训练速度450 global steps/秒
。我们使用学习率为
0.001
的Adam
优化器,当梯度范数超过阈值5
时通过梯度缩放来裁剪梯度。我们使用
batch size = 256
的mini-batch
,并将长度相似的序列组织成一个batch
。任何
embedding
和模型参数都是从头开始学习的,没有预训练。embedding
和模型的参数通过orthogonal initializer
来初始化。对于循环神经网络,我们使用带
dropout
(dropout rate = 0.2
)的多层LSTM
以及残差网络,其中dropout
和残差网络应用在上下两层LSTM
之间。LSTM
的hidden size
在离线和在线实验中分别设置为64
和128
。我们设置了不同的setting
,因为我们需要在离线实验中高效率地评估模型性能(因此离线的hidden size
更小)。对于
multi-head attention
结构,我们在离线和在线实验中分别将head
数量设置为4
和8
。我们使用
layer normalization
和residual adding
操作。item embedding
向量维度、短期行为向量维度、长期行为向量维度、用户行为向量维度和LSTM
保持一致。在在线
serving
期间,我们的模型对检索top 300 item
的matching
过程耗时大约15ms
。
不同模型的离线数据集结果如下表所示。我们从这些模型的所有训练
epoch
中选择最佳结果。总体而言,除了
YouTube-DNN
之外,基于深度学习的方法显著优于传统的item-based CF
方法。- 在
YouTube-DNN
中,item
序列上的均值池化忽略了item
之间内在的相关性,严重影响了推荐质量(Recall, Precision
)。 GRU4REC
和NARM
考虑了短期行为的演变。它们的性能优于原始DNN
模型。SHAN
和BINN
在几乎所有指标上都能击败GRU4REC
,原因是它们包含了更多个性化信息,包括长期行为和用户画像representation
。
- 在
我们提出的
SDMMA
使用了multi-head attention
结构,并且比NARM
具有压倒性优势。我们在下面内容进行了详细的案例研究,从而进一步解释multi-head attention
如何很好地捕获多种兴趣。通过引入用户画像
representation
,PSDMMA
提升了模型,因为不同类型的用户关注item
的不同方面。短期representation
越准确,用户就越能够在候选列表中找到他们感兴趣的item
,这是有道理的。但是很难为用户推荐潜在的、新颖的item
。应该通过考虑长期行为来推断更精确的偏好。通过考虑长期偏好,
PSDMMAL
可以显著击败上述所有模型。与
SHAN
和BINN
不同,PSDMMAL
应用fusion gate
来结合短期行为representation
和长期行为representation
。和层次注意力hierarchical attention
结构相比,gate
具有更强大的决策representation
能力。SHAN
简单地将用户画像representation
作为query
向量来决定长期偏好representation
和短期偏好representation
的注意力权重。我们提出的PSDMMAL
对用户画像representation
、短期偏好representation
、长期偏好representation
之间的特定相关性specific correlation
建模。我们在下面内容给出了一个有趣的案例,可以正确解释fusion gate
的设计。PSDMMAL-N
是我们最好的变体,它在训练过程中将接下来的5
个item
作为target classes
。它可以召回更多样化的item
、满足更广泛的用户需求、更适合推荐系统的matching
任务。PSDMMAL-NoS
的结果表明:如果没有辅助信息,我们的模型性能将急剧下降。
在线
A/B test
结果:目前淘宝上的matching
算法是一个两阶段的方法:- 我们定义
trigger item
为用户最近交互的item
。item-based CF
首先生成item-item
相似度矩阵,然后tirgger item
通过相似度矩阵召回相似item
。 - 接着根据用户的点击和购买日志,通过
gradient boosting tree
将这些召回的item
重排为matching
候选集。
这种方法是我们的在线
baseline
,我们仅将其替换为我们的模型作为标准的A/B test
。我们在手机淘宝
App
的生产环境上部署了PSDMMAL-N
(这是我们最好的SDM
版本,记作short and long-term
),以及没有长期行为的PSDMMA
版本(记作short-term
)。下图显示了2018
年12
月期间连续7
天的在线结果。可以看到:- 我们的模型以较大的优势优于
baseline
,其中PSDMMAL-N
在pCTR/pGMV/discovery
上的总体平均提升为7.04%/4.50%/24.37%
。 - 融入长期行为会带来更多的改善。长期行为总是表明个人偏好,可以影响用户当前的购物决策。
注意,自
2018
年12
月以来,我们的SDM
模型一直在线运行良好。- 我们定义
multi-head attention
的影响:我们探索了SDM
模型中不同head
数量的影响。直观地讲,随着head
数量的增加,短期session
的representation
将变得更加准确。下表报告了离线
Taobao
数据集的结果,其中 $ K=100 $ 。在本实验中,PSDMMAL
中只有head
数量的不同,模型隐单元维度 $ d=64 $ 。可以看到:
head
数量引起的变化在四个指标上保持一致。- 当
head
数量小于4
时,模型效果和head
数量呈正相关。 - 当
head
数量大于4
时,模型效果会急剧恶化。
我们可以得出结论:更多的
head
数量不一定是正向的,因为 $ d_\text{head}=\frac{64}{\text{#heads}} $ 变小导致更差的、每个head
的representation
。在我们的setting
中,head
数量为4
可以得到最好的结果。- 当
multi-head attention
可视化:我们从离线Taobao
测试数据集中采样一个短期session
$ \mathcal S^u $ ,然后可视化了该短期session
中不同head
的注意力权重,如下图所示。我们选择
LSTM
的最后一个hidden output
$ \mathbf{\vec h}_t^u $ 作为multi-head attention
中的query
向量,从而得到附加到 $ \left[\mathbf{\vec h}_1^u,\cdots,\mathbf{\vec h}_t^u\right] $ 上的注意力权重。可以看到:
head1
和head2
主要集中在session
的前面几个item
,即白色羽绒服。head3
捕获了人们对大衣的兴趣,而head4
更关注牛仔裤。Fusion Gate
:将短期偏好representation
和长期偏好representation
直接逐元素乘法、拼接、加法,这些简单的组合方法忽略了长期偏好中一小部分和当前短期偏好有很强的相关性。我们在Taobao
离线数据集上验证了不同组合方法的性能,如下表所示,其中 $ K=100 $ 。可以看到:我们提出的门控融合网络
gated fusion network
准确地捕获了multi-level
用户偏好并取得了最佳结果。长期偏好中与当前短期偏好高度相关的信息可以与当前短期偏好向量融合。Fusion Gate
可视化:为了更好地解释fusion gate
,我们使用淘宝上的一个采样用户的真实案例来解释门控的功能。如下图所示, $ \mathcal R^u $ 包含我们模型推荐的、同时后来也被用户所点击的
item
集合。从短期行为 $ \mathcal S^u $ 可以看到:用户正在浏览各种杯子,包括红酒杯、冠军杯。
我们的模型能够直接推荐冠军杯,因为冠军杯与用户短期行为的最后一次点击有关。这意味着用户当前更可能对冠军杯感兴趣,并且
gate
允许保留这些信息。从长期行为 $ \mathcal L^u $ 可以看到:用户曾经点击过与短期行为相关的红酒
red wine
,但是也发生过很多与短期行为无关的点击,如啤酒、削皮刀、小盘子。我们的门控融合能够捕获到长期行为中最相关的红酒
item
,并结合短期行为中的红酒杯item
,从而生成推荐的红酒醒酒器item
。
这个
case
表明我们的gate
模块具有有效、准确的融合能力fusion ability
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论