Learning to Build User-tag Profile in Recommendation System 论文阅读

introduction

用户画像时推荐系统中很重要的部分,准确的用户画像能够提高推荐系统的推荐效果。figure1展示了用户画像是如何在推荐系统中起作用的。由图可知,推荐系统包括了四个部分。分别是用户画像、新闻画像、召回、排序。用户画像包括很多内容,如人口统计学信息、行为信息(如用户阅读记录等)。本文重点研究用户标签画像,解决以下两个问题:
RQ1: How to automatically select useful features and learn
the interaction between features within and among different
felds ? (如何自动选择有用的特征并且学习同一field内部以及不同field之间的交叉特征?)
• RQ2: How to learn user’s preference over different tags from
each clicked news article ? (如何从用户点击的文章的标签中学习用户偏好)
在这里插入图片描述

2 related work

在这一部分,作者根据文章涉及的内容,对“标签推荐系统”、“注意力机制”、“交叉特征”、“点击率预估”四个方面的研究工作进行了一些总结。

3 our model

在这一部分,开始介绍本文的提出的用户标签画像模型。其中包括共享向量的多头注意力机制、基于FM的特征交叉方法以及一种新颖的标签组合方法。模型共包括了五层。分别是 输入层、注意力融合层、特征交叉层、全连接层以及预测层。
模型总体框架图如figure2所示。
在这里插入图片描述

输入层。
输入层是模型的第一层,在这一层,用户多种类型的特征被送入神经网络中。这些信息主要包括两方面的特征。1)与阅读相关的信息。如点击的标签、点击的类型以及微信订阅号的领域等。
2)人口统计学信息。如性别、年龄等。所有的输入特征都是离散特征。这些特征都被embedding层处理成定长的向量。另外,有很多特征是多值离散特征,如用户点击过的标签集合、类别集合等。所以要保证转化成的向量有足够的长度,在本文中,向量长度为128.
注意力融合层
这一层,论文基于多头注意力融合方法解决RQ1.

==============================================

以下为论文之外的补充内容

这里介绍以下field的概念。假设我们有一个广告点击率预测任务。目前我们有一些样本,样本包括一些广告相关的特征,以及广告是否被点击。(1:被点击,0:未被点击)
样本如下:

在这里插入图片描述
对于country(国家),Day(日期)、ad_type(广告类型)这样的离散特征,我们一般会使用onehot进行表示,则数据变成如下格式:
在这里插入图片描述
特征维度由原来的3维变成了7维。
这里Country-USA与Country-China都是由Country这一个特征进行onehot处理之后得到的,我们称它们属于同一个field。一般来说,由同一个离散特征进行onehot表示之后得到的特征属于同一个field。

解释完毕

==============================================
我们得到了多个特征域的信息,包括性别、年龄以及点击的标签集合等。一些域的特征只有一个取值,如性别男可以表示成 [0,1],onehot编码中,只有一个位置的数字为1。但也有一些特征,如用户点击的标签集合,用户可能点击了多个标签,所以可能表示如下:[1,1,0,0,0,0,0,0,0,1],这样的特征称为多值离散特征。这个离散特征可以看成[1,0,0,0,0,0,0,0,0,0]、[0,1,0,0,0,0,0,0,0,0]、[0,0,0,0,0,0,0,0,0,1]这三个特征的结合,本文使用多头注意力机制将一个field内部的特征进行融合(进行融合时已经将onehot编码的向量经过embedding处理成定长稠密的向量了)。(本文的多头注意力使用了两个注意力机制)
以用户点击的文章中的标签集合为例,
假设第k个特征域包含H个标签,这H个标签都经过embedding处理变成H个定长稠密的向量了。 t i = R E t_i=R^E ti=RE 代表第 i i i个标签向量。对于第一个注意力机制,利用注意力机制对每一个 t i t_i ti赋予一个权重 α i , 1 \alpha_{i,1} αi,1,对多个标签向量按照权重进行加权融合。 α i , 1 \alpha_{i,1} αi,1的计算过程。
在这里插入图片描述
如上图,query vector是一个可以训练的向量,长度为T, x i x_i xi代表标签向量,长度为E。为了便于理解,可以将 x i x_i xi与query vector之间的虚线想象成一个权重矩阵 W E × T W_{E×T} WE×T,另外伴随着权重矩阵还有一个偏置向量 b T b_T bT
α i , 1 \alpha_{i,1} αi,1的计算公式如下所示。
在这里插入图片描述
α i , 1 \alpha_{i,1} αi,1大小代表着标签 i i i对本文分类任务的权重。
接着对多个标签向量按照权重进行加权融合,得到一个长度为E的新向量,输入到下一层网络中。
在这里插入图片描述

需要注意的是,对于第一个注意力机制,参与操作的向量共享了同一个query vector,但每一个向量对应的权重矩阵W是不同的。

以上举得将多个标签特征融合的例子是在“标签”这个特征field中进行了,属于field内部的特征交叉。对于不同field之间的特征交叉,也使用了与field内相同的注意力机制(具体可见figure 2的上半部分)。
对于第二头注意力机制,其实与第一头注意力机制的过程一样,只是其中训练得到的参数会不一样。
这里需要重申一下,在应用第一头注意力时,无论是在field内部还是不同fields之间的注意力单元,都共享了query vector。与每个特征域使用一个单独的query vector相比,所有的注意力单元共享query vector使得模型具有更好的鲁棒性和准确性,尤其是当特征域的特征稀疏的时候。对于第二头注意力,所有的注意力单元也共享一个query vector,这个query vector域第一头注意力中的query vector不同。最终,两头注意力得到的两个向量可以进行拼接,进而输入到下一层网络中。

交叉特征层
为了进一步解决RQ1,我们对注意力融合层得到的向量进行了两种操作。第一种是线性操作,直接将注意力融合层得到的向量输入到下一层。第二种是对注意力融合层得到的向量进行特征交叉操作。这里使用的特征交叉操作是基于FM的。

=========================================

以下为论文之外的解释内容

在常用的特征组合或者特征交叉方法中,FM系列方法是较为常用的方法。
我们先来看一般的线性模型,也就是只考虑单特征,没有特征交叉的模型。

在这里插入图片描述
其中 n n n代表特征的个数(也可以理解为特征的维度), x i x_i xi代表第 i i i个特征。线性模型没有考虑各个特征之间的联系。
为了表征特征之间的关联,可以采用多项式对特征进行组合,为了简单起见,使用二阶多项式。

在这里插入图片描述
FM模型就是比线性模型多了后面特征组合的部分。
如果有n个特征,那么FM这种交叉组合方法会得到 N ∗ ( N − 1 ) / 2 N*(N-1)/2 N(N1)/2 种新的交叉特征。其中 w i , j w_{i,j} wi,j代表特征的权重。
在本文中,令 w i , j = v i T × v j w_{i,j}=v_i^{T}\times v_j wi,j=viT×vj,使用 v i T v j v_i^{T}v_j viTvj代替 w i , j w_{i,j} wi,j。其中 v i v_i vi v j v_j vj分别是分量 x i x_i xi x j x_j xj的辅助向量。 c i , j = ( v i T v j ) x i x j c_{i,j}=(v_i^Tv_j)x_ix_j ci,j=(viTvj)xixj 即为得到的交叉值。所以交叉特征这一层的输出是一个长度为E的向量和一个长度为E(E-1)/2的向量。

解释完毕

===============================
全连接层
特征交叉层之后,是两个全连接层,用于产生用户向量。
预测层
在这一层,较为关键的是label的确定。一种做法是将用户点击过的文章中出现的标签作为正样本,将曝光但是未被用户点击的文章中出现的标签作为负样本。但用户点击了某篇文章可能只是对其中的一个或几个标签感兴趣。所以本文并没有使用这种方法,而是将用户是否点击了文章作为标签。预测值的具体计算过程如下:对于一篇文章,将其中的每一个标签都转化成与用户向量u同样长度的向量,之后计算每个标签向量与用户向量的内积并求和,之后施加一个sigmoid函数得到预测值。公式如下所示:
在这里插入图片描述
最终使用的损失函数为logloss损失函数。
在这里插入图片描述
其中K代表着样本数量。
实验也证明,这种学习方法能取得更好的实验效果。

4 experiments

在这一部分,介绍实验结果。作者做了三组实验,同时提供了一个可解释的case。

4.1 experiment setup

dataset
本文的模型先使用微信“看一看”数据进行了实验
,之后又使用movielens公开数据集进行了实验。
开微信“看一看”实验部分,使用了30天的用户日志数据,日志数据进行了脱敏处理。从日志数据中能够得到与用户点击的文章又关系的标签以及与用户点击的文章没有关系的标签。另外还能得到用户的的人口统计学信息以及用户行为信息。最终得到了包括1176273个tag的149076658个样本(包括正样本和负样本)。为了保证模型的准确性,剔除了一些具有较少点击记录的用户。为了验证族中的模型,随机从作为训练集的30天日志的next day中选取了50000条用户行为数据进行测试。
作者还使用了movielens公开数据集进行实验,这个数据集中包含电影id、用户id、电影标签、电影所属的类型、评分以及时间。使用80%的数据用来训练,20%的数据用于测试。
metric
使用精确率作为评价指标。也就是precision@K,简写为prec@K,代表推荐的topK个标签命中用户有点击行为的标签的概率。
在这里插入图片描述

考虑到一个tag可能出现在多篇文章中,而且一个tag可能被浏览、点击多次,所以这里 P i @ K P_i@K Pi@K代表推荐的前topK个唯一标签。 C i C_i Ci代表测试集中用户有点击行为的tags。N代表测试集中用户数量。考虑到一些用户点击的tag数量少于K,所以这里分母使用 m i n ( K , s i z e ( C i ) ) min(K,size(C_i)) min(K,size(Ci))。在微信看一看数据集上,K的取值为1,5,10,20,50,在movielens数据集上,K的取值为1,2,3.
模型参数设置如下表所示。
在这里插入图片描述

4.2 Multi-head attention mechanism

本文使用的多头注意力机制准确来说是两头注意力。为什么使用两头呢?首先,使用单头注意力机制没有两头的效果好,
在这里插入图片描述

但是如果注意力头数再增加的话计算量会呈指数增加,所有最终确定两头。
two-head attention能够从不同角度捕捉用户特征。
在这里插入图片描述

如图3所示,第一头注意力更加关注中国历史人物,第二头注意力更加关注兴趣相关的名词如狗、足球等。

4.3 cross feature

为了证明本文的特征交叉方法效果好,作者使用了DCN、AFM等模型 中的特征替代了本文的特征交叉方法,进行了对比实验。
在这里插入图片描述

3)在定义标签时,作者使用用户是否点击文章作为label,而没有直接将用户点击的文章中是否出现某标签作为label。为了验证本文采用的方法的合理性,进行了对比实验。
在这里插入图片描述

4)作者也提供了一些可解释的例子来证明本文提出的模型能够发掘出特征域中的有用信息。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值