数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十八、DMR [2020]
Matching
和Ranking
是推荐系统中信息检索的两个经典阶段。matching
阶段(又称作候选生成candidate generation
)通过将user
和item
进行matching
,从而从整个item
集合中检索一小部分候选对象candidate
。基于协同过滤的方法被广泛用于计算
user-to-item
的相关性,并选择最相关的item
。ranking
阶段通过ranking
模型为不同matching
方法生成的候选者打分,并将top-N
打分的item
呈现给最终用户。
用户点击是推荐系统中非常重要的评估指标,它是所有后续转化行为的基础。
click-through rate: CTR
的预估已经引起了学术界和工业界的广泛关注。个性化
personalization
是提高CTR
预估性能和提升用户体验的关键。已经提出了很多基于深度学习的方法来进行CTR
预估,这些方法可以学习隐式特征交互并提升模型容量capability
。这些方法大多数都关注于设计自动特征交互的网络结构。最近,有人提出了几种模型来从点击、购买之类的用户行为数据中提取用户兴趣,这对于用户没有明确显示其兴趣的推荐配置
setting
而言非常重要。为了表示用户的兴趣,这些模型考虑了用户交互的item
和目标item
之间的item-to-item
相关性。但是,这些模型主要聚焦于用户
representation
,而忽略了表达user-to-item
相关性。user-to-item
相关性直接衡量了用户对目标item
的个性化偏好,并在基于协同过滤的matching
方法中精心建模。基于这些观察,论文
《Deep Match to Rank Model for Personalized Click-Through Rate Prediction》
提出了一种新的模型,称作Deep Match to Rank: DMR
。该模型将协同过滤的思想和matching
思想相结合,用于CTR
预估的ranking
任务,从而提高了CTR
预估的性能。DMR
包含User-to-Item Network
和Item-to-Item Network
这两个子网来代表user-to-item
的相关性。在
User-to-Item Network
,论文通过embedding
空间中user embedding
和item embedding
的内积来表达用户和item
之间的相关性。其中user embedding
是从用户行为中抽取而来。考虑到最近的行为可以更好地反映用户的时间的兴趣
temporal interest
,论文应用注意力机制来自适应地学习每种行为在行为序列中的权重,并考虑行为在序列中的位置position
。同时,论文提出一个辅助的
match
网络auxiliary match network
来推动更大larger
的内积从而代表更高的相关性,并帮助更好地拟合User-to-Item Network
。辅助
match
网络可以视为一种match
方法,其任务是根据用户的历史行为来预测下一个要点击的item
,然后论文在DMR
中共同训练matching
模型和ranking
模型。据作者所知,DMR
是第一个在CTR
预估任务中联合训练matching
和ranking
的模型。在
Item-to-Item Network
,论文首先计算用户交互item
和目标item
之间的item-to-item
相似度,其中采用考虑了位置信息position information
的注意力机制。然后论文将item-to-item
相似性相加,从而获得了另一种形式的user-to-item
相关性。注意,一般而言在
matching
阶段,候选者通常是通过多种matching
方法生成的,以满足用户需求的多样性,并且不同方法之间的user-to-item
相关性得分是不可比的not comparable
。但是在DMR
中,可以以统一的方式将相关性强度进行比较。
论文的主要贡献:
- 论文指出捕获用户和
item
之间相关性的重要性,这可以使CTR
预估模型更加个性化和有效。受此启发,论文提出了一种称作DMR
的新模型,该模型在mathcing
方法中应用协同过滤的思想,通过User-to-Item
和Item-to-Item Network
来表示相关性。 - 论文设计了辅助
match
网络,可以将其视为mathcing
模型,从而帮助更好地训练User-to-Item Network
。据作者所知,DMR
是第一个在CTR
预估模型中联合训练matching
和ranking
的模型。 - 考虑到最近的行为对用户的动态兴趣贡献更大
temporal interest
,论文在注意力机制中引入positional encoding
来自适应地学习每个行为的权重。 - 论文在公共数据集和工业数据集上进行了广泛的实验,证明了所提出的
DMR
比state-of-the-art
的模型有着显著提升。
相关工作:
特征交互:最近,基于深度学习的
CTR
预估模型备受关注并取得了显著的效果。与传统的线性模型相比,基于深度学习的方法可以增强模型容量capability
,并且通过非线性变换学习隐式特征交互。通过从高维稀疏特征中学习低维representation
,深度模型对罕见的特征组合有更好的估计estimation
。然而,实际应用中高维稀疏特征带来了很大的挑战:深度模型可能会过拟合
overfit
。基于此,人们提出了不同的模型,以便更好地对特征交互进行建模,提高CTR
预估的性能。Wide & Deep
通过联合训练线性模型和非线性深度模型,从而结合了二者的优势。Deep Crossing
应用深度残差网络来学习交叉特征。PNN
在embedding layer
和全连接层之间引入一个product layer
,从而探索高阶特征交互。AFM
基于对二阶特征交互建模的分解机factorization-machine: FM
,通过注意力机制来学习加权的特征交互。DeepFM
和NFM
通过将FM
与深度网络相结合,从而结合了低阶特征交互和高阶特征交互。DCN
引入了cross network
来学习某种有界阶次bounded-degree
特征交互。
在
DMR
模型中,user-to-item
相关性的representation
可以视为用户和item
之间的一种特征交互。用户行为特征:和搜索排序
search ranking
不同,在推荐系统和许多其他application
中,用户并没有清楚地表明他们的意图。因此,从用户行为中捕获用户兴趣对于CTR
预估至关重要,而上述模型对此关注较少。- 可变长度的用户行为特征通常通过简单的均值池化转变为固定长度的向量,这意味着所有行为都同等重要。
DIN
通过加权sum
池化来表示用户兴趣,其中每个用户行为相对于目标item
的权重通过注意力机制自适应学习。DIEN
不仅提取用户兴趣,而且建模兴趣的动态演变temporal evolution
。DSIN
利用行为序列中的会话信息来建模兴趣演变。
在
DMR
模型中,受Transformer
的启发,论文将positional encoding
引入注意力机制从而捕获用户的动态兴趣temporal interest
。user-to-item
相关性:尽管取得了很大进展,但是这些方法侧重于用户representation
,而忽略了user-to-item
相关性的表达,而后者直接衡量了用户对目标item
的偏好强度。在提出的DMR
中,论文关注表达user-to-item
的相关性,从而提高个性化CTR
模型的性能。基于协同过滤
collaborative filtering: CF
的方法在构建推荐系统的matching
阶段非常成功。在这些方法中,item-to-item CF
因其在实时个性化方面的可解释性和效率而被广泛应用于工业推荐setting
。通过预先计算好item-to-item
的相似度矩阵,系统可以向用户推荐与该用户历史点击item
相似的item
。为了计算
item-to-item
相似度,早期的工作侧重于统计量,例如余弦相似度和Pearson
系数。基于深度学习的方法NAIS
采用带注意力机制的item-to-item CF
,从而区分用户不同行为的重要性,这与DIN
有相似的想法。item-to-item CF
可以视为获取user-to-item
相关性的间接方法。和
item-to-item CF
不同,基于矩阵分解的CF
方法通过在低维空间中计算user representation
和item representation
的内积来直接计算user
和item
相关性。以类似的基于内积的形式,人们提出了基于深度学习的方法来从用户的历史行为中学习user representation
,这可以看作是矩阵分解技术的非线性泛化。《Deep neural networks for youtube recommendations》
将matching
视为极端多分类问题,其中点击预估问题变成了根据用户的历史行为准确地分类用户接下来将要点击的item
。《Session-based recommendations with recurrent neural networks》
将GRU
应用到基于会话的推荐任务。TDM
使用tree-based
方法来超越基于内积的方法。
在
DMR
模型中,一方面论文使用user representation
和item representation
之间的内积来获得一种user-to-item
的相关性;另一方面论文应用注意力机制来表示item-to-item
的相似性,并进一步基于这种相似性来获得另一种user-to-item
的相关性。
18.1 模型
这里我们详细介绍
Deep Match to Rank:DMR
模型的设计。- 首先我们从两个方面概述了基于深度学习的
CTR
模型的基本结构:特征表示feature representation
、多层感知机multiple layer perceptron: MLP
。 - 然后我们介绍建模
user-to-item
相关性的、带有两个子网的DMR
的总体结构。
- 首先我们从两个方面概述了基于深度学习的
18.1.1 Feature Rpresentation
我们的推荐系统中包含四类特征:
- 用户画像
User Profile
:包含用户ID
、消费水平等等。 Target Item
特征:包括item ID
、category ID
等等。- 用户行为
User Behavior
:是用户交互的item
形成的item
序列。 - 上下文
Context
:包含时间、matching
方法、以及对应的matching score
等。
大多数特征都是离散型特征,可以将其转换为高维的
one-hot
向量。在基于深度学习的模型中,one-hot
向量通过embedding layer
转换为低维稠密特征。例如,
item ID
的embedding
矩阵可以表示为: $ \mathbf V=\left[\mathbf{\vec v}_1,\cdots,\mathbf{\vec v}_K\right]\in \mathbb R^{K\times d_v} $ ,其中: $ K $ 为item
集合的大小, $ d_v $ 为embedding
向量维度, $ \mathbf{\vec v}_j\in \mathbb R^{d_v} $ 为第 $ j $ 个item
的embedding
向量。无需在
one-hot
向量和embedding
矩阵之间进行复杂的矩阵乘法,embedding layer
通过查表look up table
就可以获取embedding
向量。- 用户画像
我们将离散特征
embedding
和normalized
的连续特征拼接起来,其中:用户画像User Profile
的拼接特征为 $ \mathbf{\vec x}_p $ 、用户行为User Behavior
的拼接特征为 $ \mathbf{\vec x}_b $ 、Target Item
的拼接特征为 $ \mathbf{\vec x}_t $ 、上下文Context
的拼接特征为 $ \mathbf{\vec x}_c $ 。注意,用户行为序列包含很多个
item
,因此用User Behavior
的特征是由这些item
的特征向量列表拼接而成 $ \mathbf{\vec x}_b=\left[\mathbf{\vec e}_1||\cdots||\mathbf{\vec e}_T\right]\in \mathbb R^{(Td_e)\times 1} $ ,其中:- $ T $ 为用户行为序列的长度,由于不同用户的行为序列长度不同,因此 $ T $ 是可变的。
- $ \mathbf{\vec e}_t\in \mathbb R^{d_e} $ 为第 $ t $ 个行为的特征向量, $ d_e $ 为对应的维度,
||
表示向量拼接。
User Behavior
特征和Target Item
特征位于相同的特征空间,并共享相同的embedding
矩阵以降低内存需求。注意: $ \mathbf{\vec e}_t $ 是用户第 $ t $ 个行为的特征向量,它其实是第 $ t $ 个产生行为的
item
的representation
。它和 $ \mathbf{\vec v}_j $ 不同: $ \mathbf{\vec v}_j $ 仅仅是item ID
的embedding
向量,而 $ \mathbf{\vec e}_t $ 可能包括item ID
和cate ID
等embedding
向量的拼接。
18.1.2 MLP
所有特征向量拼接起来构成样本的完整
representation
之后,将representation
灌入MLP
。MLP
隐层的激活函数为PRelu
,最终输出层采用sigmoid
激活函数从而用于二分类任务。MLP
输入的长度需要固定,因此需要将User Behavior
特征向量 $ \mathbf{\vec x}_b $ 进行池化从而转换为固定长度的特征向量。交叉熵损失函数通常和
$ \mathcal L_{\text{target}} = - \frac 1N \sum_{(\mathbf{\vec x},y)\in \mathcal D} [y\log f(\mathbf{\vec x})+ (1-y)\log (1-f(\mathbf{\vec x}))] $sigmoid
函数一起使用,其对数函数可以抵消sigmoid
函数中指数的副作用。给定样本 $ (\mathbf{\vec x},y) $ ,其中 $ y\in \{0,1\} $ 为标签, $ \mathbf{\vec x}=\left[\mathbf{\vec x}_p ||\mathbf{\vec x}_b||\mathbf{\vec x}_t||\mathbf{\vec x}_c\right] $ 为样本特征,则损失函数为:其中 $ \mathcal D $ 为训练集, $ N $ 为总的样本数量, $ f(\mathbf{\vec x}) $ 为
MLP
的预测输出的点击概率。
18.1.3 DMR
基于深度学习
CTR
模型的basic
结构很难通过隐式特征交互来捕获用户和item
的相关性。在DMR
中,我们提出了两个子网,即User-to-Item Network
、Item-to-Item Network
,从而建模user-to-item
相关性,进而可以提高个性化CTR
模型的性能。DMR
结构如下图所示:- 输入特征向量是嵌入
embedded
的离散特征、和正则化normalized
的连续特征的拼接。 DMR
使用两个子网(User-to-Item Network
、Item-to-Item Network
)以两种形式来建模user-to-item
相关性。- 两种形式的
user-to-item
相关性、用户的动态兴趣temporal interest
的representation
、以及其它所有特征向量拼接起来,然后馈入到MLP
中。
最终损失由
MLP
的target loss
和辅助的match network loss
组成。- 输入特征向量是嵌入
a. User-to-Item Network
遵循基于矩阵分解的
matching
方法中的representation
形式,User-to-Item Network
通过user representation
和item representation
的内积来建模用户和目标item
之间的相关性,这可以视作用户和item
之间的一种特征交互。为获得
user representation
,我们求助于User Behavior
特征。用户不会在推荐场景中明确展现其兴趣,而用户行为则隐式地反映了用户兴趣。表达用户兴趣的一种朴素方法是:对用户行为特征使用均值池化。这种方法认为每种行为对于最终用户兴趣做出同等贡献。
但是,用户的兴趣可能会随着时间而变化。在这种情况下,最近的行为可能会更好地反映用户的时间
temporal
兴趣。根据发生的时刻为每个行为分配权重可以缓解该问题,但是也很难找到最佳权重。在
$ a_t = \mathbf{\vec z}^\top\tanh\left(\mathbf W_p\mathbf{\vec p}_t + \mathbf W_e\mathbf{\vec e}_t+ \mathbf{\vec b}\right)\\ \alpha_t = \frac{\exp(a_t)}{\sum_{i=1}^T\exp(a_i)} $User-to-Item Network
中,我们使用位置编码作为query
的注意力机制来自适应地学习每个行为的权重,其中用户行为的位置position
是行为序列中按发生时间排序的序列编号。数学描述为:其中:
- $ \mathbf{\vec p}_t\in \mathbb R^{d_p} $ 为第 $ t $ 个位置
embedding
。 - $ \mathbf{\vec e}_t\in \mathbb R^{d_e} $ 为第 $ t $ 个行为的特征向量。
- $ \mathbf W_p\in \mathbb R^{d_h\times d_p},\mathbf W_e\in \mathbb R^{d_h\times d_e},\mathbf{\vec b}\in \mathbb R^{d_h},\mathbf{\vec z}\in \mathbb R^{d_h} $ 为待学习的参数。
- $ \alpha_t $ 为第 $ t $ 个行为的归一化权重。
通过加权的
sum
池化,我们将User Behavior
特征向量 $ \mathbf{\vec x}_b $ 映射到固定长度的特征向量,然后由全连接层进行转换以匹配item representation
的维度 $ d_v $ 。最终用户的
$ \mathbf{\vec u} = g\left(\sum_{t=1}^T\alpha_t\mathbf{\vec e}_t\right)= g\left(\sum_{t=1}^T \mathbf{\vec h}_t\right) $representation
$ \mathbf{\vec u}\in \mathbb R^{d_v} $ 的公式为:其中:
- $ g(\cdot) $ 表示非线性的映射,其输入维度为 $ d_e $ 、输出维度为 $ d_v $ 。
- $ \mathbf{\vec h}_t=\alpha_t\mathbf{\vec e}_t $ 表示第 $ t $ 个行为的加权特征向量。
这里的
attention
计算的是基于positional embedding
计算不同位置的、归一化的重要性。这里没有考虑target item
的重要性,因为计算user representation
时不会融合item representation
信息。- $ \mathbf{\vec p}_t\in \mathbb R^{d_p} $ 为第 $ t $ 个位置
这里的
attention
网络有三个细节,为简化起见我们忽略了它们:- 首先,可以添加更多的隐层从而具有更好的
representation
。 - 其次,除了位置编码之外,还可以将更多的、反映用户兴趣强度的上下文特征添加到
attention
网络中,例如行为类型(如点击、购买、收藏)、停留时长等。在这些特征中,位置在我们的应用中影响力最大。 - 第三,以行为发生时间的倒序对位置进行编码,从而确保最近的行为获得第一个位置。
- 首先,可以添加更多的隐层从而具有更好的
尽管
RNN
擅长处理序列数据,尤其是在NLP
任务中,但是它不适合建模用户行为序列。和严格遵循某些规则的文本不同,用户行为序列是不确定的uncertain
,并且可能会受到呈现给用户的内容的影响。如果没有特殊设计的结构,那么RNN
很难提高预测效果。此外,串行计算的
RNN
给在线serving
系统带来了挑战。目标
item
的representation
$ \mathbf{\vec v}^\prime\in \mathbb R^{d_v} $ 直接从embedding
矩阵 $ \mathbf V^\prime=\left[\mathbf{\vec v}_1^\prime,\mathbf{\vec v}_2^\prime,\cdots,\mathbf{\vec v}_K^\prime\right]\in \mathbb R^{K\times d_v} $ 中查找look up
。其中 $ \mathbf V^\prime $ 是针对target item
的一个独立的embedding
矩阵,它不是和embedding
矩阵 $ \mathbf V $ 共享。为区分这两个
embedding
矩阵,我们称 $ \mathbf V $ 为Target Item
的input representation
、称 $ \mathbf V^\prime $ 为Target Item
的output representation
。尽管这种方式增加了存储空间,但是与 $ \mathbf V $ 和 $ \mathbf V^\prime $ 相同的方式相比,模型仅仅是将embedding
大小增加了一倍,而模型具有更强的表达能力。我们将在实验部分验证该结论。得到用户
$ r=\mathbf{\vec u}^\top \mathbf{\vec v}^\prime $representation
$ \mathbf{\vec u} $ 和目标item
的representation
$ \mathbf{\vec v}^\prime $ 之后,我们使用向量内积来表示用户和item
的相关性:我们预期更大的 $ r $ 代表更强的相关性,从而对点击预测产生积极的影响。
但是,从反向传播的角度来看,仅通过点击标签的监督来确保这一点并不容易。此外,
embedding
矩阵 $ \mathbf V^\prime $ 中参数的学习完全依赖于相关单元relevance unit
$ r $ 。有鉴于此,我们提出了一个辅助match
网络,该网络从用户行为中引入label
,从而监督User-to-Item Network
。辅助
match
网络的任务是基于之前的 $ T-1 $ 个行为来预测第 $ T $ 个行为,这是一个极端extreme
的多分类任务。遵从前文中用户
$ p_j=\frac{\exp\left(\mathbf{\vec u}_{T-1}^\top \mathbf{\vec v}_j^\prime\right)}{\sum_{i=1}^K\exp\left(\mathbf{\vec u}_{T-1}^\top \mathbf{\vec v}_i^\prime\right)} $representation
$ \mathbf{\vec u} $ 的形式,我们可以从用户的前 $ T-1 $ 个行为中获取用户representation
,记作 $ \mathbf{\vec u}_{T-1}\in \mathbb R^{d_v} $ 。则用户具有前面 $ T-1 $ 个行为的前提下,对item
$ j $ 产生第 $ T $ 个行为的概率为:其中 $ \mathbf{\vec v}_j^\prime\in \mathbb R^{d_v} $ 为第 $ j $ 个
item
的output representation
。因此,针对target item
的output representation
$ \mathbf V^\prime \in \mathbb R^{K\times d_v} $ 可以视为softmax layer
的参数。通过使用交叉熵损失函数,则我们得到辅助
$ \mathcal L_{aux} = -\frac 1{N_m}\sum_{i=1}^{N_m }\sum_{j=1}^K y_j^i\log\left(p_j^i\right) $match
网络的损失为:其中:
- $ N_m $ 为辅助
match
网络的样本数量, $ K $ 为总的item
数量。 - $ y_j^i\in \{0,1\} $ 表示辅助
match
网络的样本 $ i $ 的target item
是否为第 $ j $ 个item
。 $ y_j^i=1 $ 当且仅当第 $ i $ 个用户的行为序列中,最后一个item
为item
$ j $ 时成立。 - $ p_j^i $ 表示辅助
match
网络的样本 $ i $ 的target item
为第 $ j $ 个item
的预测概率。
然而上式中的 $ p_j $ 计算代价很高,这和
$ \mathcal L_{NS} = -\frac 1{N_m} \sum_{i=1}^{N_m}\left[\log \sigma\left(\mathbf{\vec u}_{T-1}^\top \mathbf{\vec v}_o^\prime\right) + \sum_{j=1}^k\log \sigma\left(-\mathbf{\vec u}_{T-1}^\top \mathbf{\vec v}_j^\prime\right)\right] $item
总数 $ K $ 成正比。为了有效训练具有百万类别的分类任务,我们采用了负采样技术。我们将带负采样的辅助match
网络损失函数定义为:其中: $ \sigma(\cdot) $ 为
sigmoid
函数; $ \mathbf{\vec v}_o^\prime $ 为正样本, $ \mathbf{\vec v}_j^\prime $ 为负采样的负样本; $ k $ 为负采样数量,它远远小于 $ K $ 。最终的损失函数为:
$ \mathcal L_{final} = \mathcal L_{target} + \beta\mathcal L_{NS} $其中 $ \beta $ 为一个超参数,用于平衡这两部分损失。
- $ N_m $ 为辅助
通过从
User Behavior
中引入标签,辅助match
网络可以推动更大的 $ r $ 来表示更强的相关性,并帮助更好地训练embedding
矩阵 $ \mathbf V^\prime $ 和其它参数。理解
User-to-Item Network
的另一种方法是:在统一模型中共同训练ranking
模型和matching
模型,其中matching
模型是辅助match
网络。在
matching
阶段,候选者是通过多路match
来生成,其中每一路match
之间的分数不可比not comparable
,每个候选者仅具有对应matching
方法的相关性得分。和仅将
matching score
作为特征馈入MLP
不同,User-to-Item Network
能够在给定任务Target Item
的情况下获得user-to-item
相关性得分,并且相关性以统一的方式可比comparable
。
b. Item-to-Item Network
除了直接计算
user-to-item
相关性之外,我们还提出了Item-to-Item Network
以间接方式来表达相关性。首先我们建模用户交互的
item
和target item
之间的相似性similarity
,然后对这些相似性相加从而得到另一种形式的user-to-item
相关性relevance
。为了使得相关性的
representation
更具有表达性,我们使用attention
机制(而不是User-to-Item Network
中的内积)来建模item-to-item
相似性。给定用户交互的
$ \hat a_t = \hat{\mathbf{\vec z}}^\top \tanh\left(\hat{\mathbf W}_c\mathbf{\vec e}_c + \hat{\mathbf W}_p\mathbf{\vec p}_t + \hat{\mathbf W}_e\mathbf{\vec e}_t + \hat{\mathbf{\vec b}}\right) $item
、target item
、位置编码作为输入,item-to-item
相似性的公式为:其中:
- $ {\mathbf{\vec e}}_c\in \mathbb R^{d_e} $ 为
target item
的特征向量, $ {\mathbf{\vec p}}_t\in \mathbb R^{d_p} $ 为第 $ t $ 个位置embedding
, $ {\mathbf{\vec e}}_t\in \mathbb R^{d_e} $ 为第 $ t $ 个行为的特征向量。 - $ \hat{\mathbf W}_c\in \mathbb R^{d_h\times d_e},\hat{\mathbf W}_p\in \mathbb R^{d_h\times d_p},\hat{\mathbf W}_e\in \mathbb R^{d_h\times d_e},\hat{\mathbf{\vec b}}\in \mathbb R^{d_h},\hat{\mathbf{\vec z}}\in \mathbb R^{d_h} $ 都是待学习的参数。
用户行为和
$ \hat r=\sum_{t=1}^T\hat a_t $target item
之间的item-to-item
相似性之和构成了另一种类型的user-to-item
相关性:通过加权的
$ \hat\alpha_t = \frac{\exp\left(\hat a_t\right)}{\sum_{i=1}^T\exp\left(\hat a_i\right)},\quad \hat{\mathbf{\vec u}}=\sum_{t=1}^T\hat\alpha_t\hat{\mathbf{\vec e}}_t $sum
池化,UserBehavior
特征 $ \mathbf{\vec x}_b $ 被转换为固定长度的特征向量 $ \hat{\mathbf{\vec u}} $ ,从而构成了与目标相关的动态兴趣表示:其中 $ \hat \alpha_t $ 为第 $ t $ 个行为的归一化权重。
注意:计算 $ \hat r $ 的过程中并未进行归一化。因为归一化之后的注意力系数之和恒为
1.0
。和用户
representation
$ \mathbf{\vec u} $ 不同,目标相关的用户representation
$ \hat{\mathbf{\vec u}} $ 针对不同的target item
有所不同。通过注意力机制的局部激活能力,和目标item
相关的行为的权重更高,并且主导了目标相关的用户representation
$ \hat{\mathbf{\vec u}} $ 。- $ {\mathbf{\vec e}}_c\in \mathbb R^{d_e} $ 为
两种类型的
user-to-item
相关性 $ r, \hat r $ 、以及用户动态兴趣 $ \hat{\mathbf{\vec u}} $ 将和其它输入特征向量拼接起来从而馈入MLP
。MLP
的最终输入为: $ \mathbf{\vec c} = \left[\mathbf{\vec x}_p,\mathbf{\vec x}_t,\mathbf{\vec x}_c,\hat{\mathbf{\vec u}},r,\hat r\right] $ 。
注,
DMR
模型相当于对模型空间新增了约束:对于正样本,不仅点击率预估为1.0
,还需要user representation
和item representation
之间相关性很高。负样本也是类似。
18.2 实验
数据集:
Alimama Dataset
(公共数据集):包含从Taobao
连续8
天中随机采样的曝光和点击日志。前
7
天的日志用于训练,最后1
天的日志用于测试。数据集包含2600
万条日志,一共有114
万用户、84
万item
。工业数据集:数据集包含从阿里巴巴在线推荐系统收集的曝光和点击日志。
我们将前
14
天的日志用于训练、第15
天的日志用于测试。数据集包含11.8
亿条日志,一共有1090
万用户、4860
万item
。
baseline
方法:LR
:逻辑回归方法。它是一种经典的线性模型,可以看作是浅层神经网络。线性模型通常需要手动特征工程才能表现良好,这里我们添加了User Behavior
和Target Item
的叉积cross-product
。Wide&Deep
:它具有一个wide
部分和一个deep
部分,因此同时结合了线性模型和非线性深度模型的优势。在我们的实现中,wide
部分和上述LR
模型完全相同。PNN
:它引入了product
层以及全连接层,从而探索高阶特征交互。DIN
:它通过自适应地学习注意力权重从而表示用户对目标item
的兴趣。注意:如果没有两种
user-to-item
相关性、如果没有使用positional encoding
,那么我们的DMR
退化为DIN
模型。DIEN
:DIEN
通过两层GRU
建模了用户对目标item
的兴趣演化。
实验配置:
在公共数据集上:我们将学习率设为
0.001
,batch size = 256
,item embedding
维度为32
,用户行为序列的最大长度为50
,MLP
中的隐层维度分别为512,256,128
。此外,辅助
match
网络中的负样本数设为2000
,辅助损失的权重 $ \beta $ 设为0.1
。在工业数据集上:除了将
item embedding
维度设为64
,其它超参数和公共数据集相同。
下表给出了实验结果。我们使用
AUC
作为评估指标,所有实验重复5
次并报告平均结果。Relative Improvement: RI
表示基于LR
的相对提升。可以看到:
LR
的表现明显比Wide&Deep
和其它基于深度学习的模型更差,这证明了深度神经网络中非线性变换和高阶特征交互的有效性。PNN
受益于product layer
,从而相比Wide&Deep
实现了更好的特征交互从而性能更好。在用户没有显式表现其兴趣的推荐场景中,捕获用户的兴趣至关重要。
在基于深度学习的模型中,
Wide&Deep
和PNN
表现最差,尤其是在工业数据集上,这证明了从用户行为中抽取用户兴趣的重要性。DIN
代表了用户对目标item
的兴趣,但是忽略了用户行为中的顺序信息。DIEN
的性能优于DIN
,这主要归因于捕获了用户兴趣演变的两层GRU
结构。基于用户兴趣
representation
,DRM
进一步通过User-to-Item Network
和Item-to-Item Network
来分别捕获两种形式的user-to-item
相关性。通过相关性的
representation
,DRM
充分考虑了用户对目标item
的个性化偏好,并且大幅度击败了所有baseline
方法,包括LR、Wide&Deep、PNN、DIN、DIEN
。
下表给出了公共数据集和工业数据集上具有不同组成部分的
DMR
的比较结果,Relative Improvement: RI
表示基于DMR
的相对提升。其中:DMR I2I
表示仅有Item-to-Item Network
。DMR U2I
表示仅有User-to-Item Network
。DMR-No-AM
表示没有辅助match
网络。DMR-NO-PE
表示User-to-Item Network
中没有位置编码。DMR-Double
表示 $ \mathbf V $ 和 $ \mathbf V^\prime $ 共享embedding
(即 $ \mathbf V = \mathbf V^\prime $ ) ,且使用两倍尺寸的item embedding
。
可以看到:
user-to-item
相关性的representation
的有效性:为了获得更具表达能力的representation
,我们应用了不同的操作来建模user-to-item
相关性。User-to-Item Network
使用基于内积的操作来计算相关性,Item-to-Item Network
使用attention
网络来计算相关性。可以看到,这两个子网的组合要比单独使用时表现更好,这说明两种不同类型的user-to-item
相关性是有效的,并且两种形式的user-to-item
相关性是互补的,不是冗余的。辅助
match
网络的有效性:和没有辅助match
网络的DMR
相比,完整DMR
获得了更好的性能。辅助
match
网络从用户行为中引入标签来监督训练,并在用户representation
和item representation
之间推入更大的内积从而表示更高的相关性。额外
embedding
矩阵 $ \mathbf V^\prime $ 的有效性:User-to-Item Network
使用额外的embedding
矩阵 $ \mathbf V^\prime $ ,可以将其视为辅助match
网络的softmax layer
中的参数。我们尝试将
item embedding
的尺寸翻倍,并且共享embedding
从而得到DMR-Double
,其参数数量和 原始DMR
相同。可以看到原始DMR
的性能优于DMR-Double
。这证明了单独的embedding
矩阵 $ \mathbf V^\prime $ 的有效性。位置编码的有效性:可以看到,在
User-to-Item Network
中没有位置编码的DMR
要差于完整的DMR
。通过位置编码,
DMR
会考虑用户行为序列中的顺序信息,并提取用户的动态兴趣。在工业数据集上,User-to-Item Network
没有位置编码的DMR
甚至要比没有整个User-to-Item Network
的DMR
(即DMR I2I
)表现更差,这意味着没有位置编码的User-to-Item Network
很难拟合。
user-to-item
相关性的representation
的有效性:我们在公共数据集和工业数据集上探索了两个user-to-item
相关性的值,如下图所示。这些值分别在正样本和负样本中取平均。不出所料,正样本的
user-to-item
相关性高于负样本,这意味着我们的user-to-item
相关性模型是合理的。辅助
match
网络的有效性:下图显式了DMR
在公共数据集和工业数据集上的学习曲线learning curve
。可以看到目标损失 $ \mathcal L_{target} $ 和辅助损失 $ \mathcal L_{NS} $ 同时降低,这意味着matching
和ranking
联合训练是有效的。其中 $ \beta = 0.1 $ 。位置编码的有效性:我们探索用户行为序列中不同位置的注意力权重。下图给出了公共数据集和工业数据集上
Item-to-Item Network
中的平均权重,其中距离当前时间越近的行为具有越小的位置编号。尽管注意力权重受到多个因素的影响,但是总体趋势是:如预期所示,最近的行为获得更高的注意力权重,尤其是在工业数据集上。
在线
A/B
测试:我们在阿里巴巴的推荐系统中进行在线A/B
测试。和我们系统中最新版本的CTR
模型DIN
相比,DMR
的CTR
提升了5.5%
,click per user
提升了12.8%
。由于提升如此之大,DMR
已经部署到线上从而提供推荐服务。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论