ATRank: An Attention-Based User Behavior Modeling Framework for Recommendation
Introduction
正如一个单词可以通过其上下文来表示,那么一个用户也可以通过其过往的行为序列来表示。但随着技术的发展,越来越多样化的用户行为可以被捕捉并保存在数据库中,使得用户行为表现出异构性,高度多样性。以电商领域的推荐为例、一个用户可能浏览、购买、收藏商品,领取、使用优惠券、点击广告、搜索关键词、写评论或者观看商家提供的商品介绍视频等等。这些不同的行为为我们更全面的理解一个用户提供了不同的视角。
面对用户如此多样化的行为,要想做到更精确的推荐,很大的挑战来自于能否对用户的异构行为数据进行更精细的处理。在这样的背景下,本文提出一个通用的用户行为序列建模框架,试图融合不同类型的用户行为,并以此框架进行推荐任务。
Framework
该框架分为以下几个模块:原始特征空间(raw feature spaces)、行为嵌入空间(behavior embedding spaces)、隐语义空间(latent semantic spaces)、行为交互层(behavior interaction layers)、下游网络层(downstream application network)。
Raw Feature Spaces
首先介绍用户行为 中,a代表行为的类型,o代表行为作用的对象,t代表时间帧。
根据目标对象类型,我们将 划分为 ,每个bg的目标对象特征是一致的。
Bahavior Embedding Spaces
对于时间帧的embedding,这里讲一下:
其实相当于将连续特征离散化后,再如同one-hot编码一样,再查表得到对应的embedding。
对于行为类型a来说,本身就是离散特征,那么直接查表可得。
在得到每个行为的embedding表示后,可以根据组别,得到每个组的embedding表示:
其中:
Latent Semantic Spaces
由于每组中行为的最终embedding长度不一,同时所处的向量空间也不同。这里其实就是通过线性变换来将其统一到同一个语义空间。
具体来说:
然后,在得到S之后,再通过多个投影矩阵,将S映射到多个不同的语义空间。
Self-Attention Layer
接下来,对每一个语义空间中的向量,经过一层self-attention layer进行编码: