研究动机
为了解决冷启动问题,研究者们提出了基于内容的推荐系统,并通过融入辅助信息来进行缓解冷启动问题,但是大多数的模型,要么没有能力捕获复杂的特征关系,要么把用户-项目反馈信息与内容信息不合适的结合起来.
本文提出了Self-Attentive Integration Network (SAIN)模型,该模型可以有效的将user-item的反馈信息和辅助信息融合起来.
模型
本文的模型主要分为三个部分:
- Feature-Level Interaction Layer:生成可结合的特征表示(user和item),同时捕获高阶的交互特征
- Information Integration Layer:组合来自用户项反馈的用户首选项信息和来自组合特性表示的内容信息
- Output Layer:输出预测结果
Feature-Level Interaction Layer
该层主要是学习如何有效的在多种特征之间捕获高维交互,以便生成结合特性表征.作者采用多头自注意力机制来去捕捉实体之间的相互作用.
定义用户$uin{U}$项目$vin{V}$,用户u的特征集合为
其中$m$代表有m个用户,项目v的特征集合为
其中$n$代表有n个项目,这些特征向量的维数为$d$,那么作为SAIN模型的输入为
然后将$x$输入到多头注意力模型中,作者利用缩放点积来计算第$i$个特征和第$j$个特征之间的权重.公式如下所示
其中$W_{Q}^{(h)},W_K^{h}in{R^{d' imes{d}}}$,同时作者在原文中说We used only features with the k highest attention scores to filter less informative interactions and avoid overfitting. 作者选取前k个注意力分布进行加权求和
这样我们就获得了第h个注意力层的特征表示,不同的注意力头捕捉到的特征,所以要将这些注意力头串联起来
其中$H$表示的是注意力头的数量.虽然注意力层已经提供了为重要的特征信息,但是原始的特征信息依然不能忽略掉,作者将原始特征向量,与利用多头注意力得到的特征向量连接起来,公式如下:
然后我们将新得到的特征$overline{x}_i$连接起来
其中$f_{user},f_{item}$表示一个全连接层
Information Integration Layer
信息集成层利用注意机制自适应地将用户和物品的反馈信息和内容信息结合起来,已被证明是有效的.每种信息的重要性都因情况而异,如果一个系统有大量的用户交互数据,我们应该给予反馈信息更多的权重。另一方面,如果用户或项目在系统中是相对较新的,我们应该给予特征信息更多的权重。
作者将上一层(即Feature-Level Interaction Layer)的输出作为内容表示.为了从user-item反馈中获取信息,我们训练了一个独立的反馈潜在向量。
其中$X_{CF}^u$是用户反馈的潜在向量,$X_{CF}^v$是项目反馈的潜在向量.,我们利用注意机制将这两个潜在向量结合起来,如下:
其中$g$代表着一个全连接层,利用下面的式子将向量组合,得到最终的用户和项目表示
Output Layer
最终模型的预测公式为
其中$X^u$和$X^v是来自information propagation layer的特征向量
最终,模型的整体结构如下所示
实验
数据集
- movielens
- Weibo-Douban
baselines
-
Biased MF
- NCF
- AFM
- LIbFM
- NFM
- xDeepFM
性能比较
SAIN在两个数据集上表现都很好。
分析
多头注意力的效果
我们在特征级交互层中使用了一个多头自注意结构。我们检查了特征的注意力评分,看看多个特征如何相互影响。从图a中可以看到,对于同为Thiller类型的电影,上面的更关注于导演(Quentin Tarantino) ,下面的更关注于演员(Bruce Willis) ,因此验证每个头部捕获了特征交互的不同方面。在图b中,表示了同一部电影的注意力分数在不同的注意力头上可能有非常不同。一个关注用户特性(性别、职业),而另一个关注项目特性(演员、导演)
Top-K feature 的效果
随着K值的变化,性能也发生了变化。当K为8时,预测精度提高