美文网首页
推荐系统遇上深度学习(一三五)-序列推荐中的特征粒度深度自注意力

推荐系统遇上深度学习(一三五)-序列推荐中的特征粒度深度自注意力

作者: 文哥的学习日记 | 来源:发表于2022-06-03 19:29 被阅读0次

    从这篇开始,咱们陆续来介绍几篇推荐系统中特征建模的文章。今天要介绍的是19年的一篇文章,算是比较早的一篇在特征上进行建模的论文,对现在的一些建模方式具有一定的借鉴意义,一起来看一下。

    1、背景

    序列推荐的目标是基于用户的历史行为序列pattern,来推荐用户下一个最可能交互的item。这种pattern不仅存在在item粒度,也可能存在特征粒度。从item粒度举例,如购买过苹果手机的用户,很有可能下一个会购买苹果手机壳;从特征粒度来讲,以品类为例,购买了衣服的用户,后有可能下一个会购买鞋子。因此,从item和feature粒度对用户的行为偏好pattern进行建模,对于提升推荐效果是具有显著的意义的。但当前(指该论文发表以前,现在对于特征建模的论文就比较多了)的论文大都关注item粒度的pattern建模,而忽略了feature粒度的pattern建模。因此,论文提出了Feature-level Deeper Self-Attention Network (以下简称FDSA),使用self-attention对用户feature粒度的偏好pattern进行建模。

    2、FDSA介绍

    FDSA模型的整体结构如下图所示:

    主要分为上下两部分,上面的部分是Item粒度的self-attention,建模item粒度的的偏好。下面是feature粒度的self-attention,建模用户feature粒度的偏好。最后两部分的输出进行拼接,通过MLP层,输出每一个target item的偏好概率。接下来,主要对feature粒度的建模过程进行介绍。

    2.1 Input

    这部分的输入包括n个历史行为的feature,如果用户历史行为长度不足n,则用0补齐,如果超过n,则按时间进行截断。特征主要分为两类,一类是item的基础属性特征如品类category、品牌brand,这类特征通过embedding layer转换为对应的embedding表示;另一类是文本特征。对于文本特征,首先使用word2vec进行词向量的学习,再抽取标题和描述中的五个关键词,使用mean pooling方式得到item的文本特征表示。

    2.2 Vanilla attention layer

    这一层的主要作用是筛选用户关注的特征,即哪些特征对于用户的决策起到了更重要的作用,假设item i的的输入表示为:

    接下来,首先计算每个特征的attention score,然后对特征进行加权,得到该item的特征层面的最终表示:

    2.3 Feature-based self-attention block

    最后,针对每个item的表示,经过多个self-attention block得到feature建模部分的最终输出。self-attention的具体计算过程就不做赘述,这里主要提一点,为了在计算过程中融入行为发生的顺序信息,输入self-attention模块时,融入了position encoding:

    3、实验结果

    最后看下实验结果

    4、总结

    论文在细粒度feature建模方面,所提出的方法具有一定的借鉴意义。可以看到,论文采用的是一种两阶段的建模思路,即先建模单个item内用户对于不同feature的偏好程度,再建模item之间的相互影响。其实还有其他的思路,如先关注不同item的相同属性的相互影响,如item的价格,评分,再建模用户对于不同feature的偏好(美团的crossDQN),再比如使用一阶段的建模方式,同时建模item和feature的偏好(如ebay的trans2D)。不同的思路结合建模场景可灵活选择。

    好了,本文就介绍到这里,感兴趣的同学可以阅读原文,最后祝大家端午安康~

    相关文章

      网友评论

          本文标题:推荐系统遇上深度学习(一三五)-序列推荐中的特征粒度深度自注意力

          本文链接:https://www.haomeiwen.com/subject/uikhmrtx.html