array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019) - 爱码网

为了解决冷启动问题,研究者们提出了基于内容的推荐系统,并通过融入辅助信息来进行缓解冷启动问题,但是大多数的模型,要么没有能力捕获复杂的特征关系,要么把用户-项目反馈信息与内容信息不合适的结合起来.

本文提出了Self-Attentive Integration Network (SAIN)模型,该模型可以有效的将user-item的反馈信息和辅助信息融合起来.

模型

本文的模型主要分为三个部分:

  • Feature-Level Interaction Layer:生成可结合的特征表示(user和item),同时捕获高阶的交互特征
  • Information Integration Layer:组合来自用户项反馈的用户首选项信息和来自组合特性表示的内容信息
  • Output Layer:输出预测结果

Feature-Level Interaction Layer

该层主要是学习如何有效的在多种特征之间捕获高维交互,以便生成结合特性表征.作者采用多头自注意力机制来去捕捉实体之间的相互作用.

定义用户$u\in{U}$项目$v\in{V}$,用户u的特征集合为

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

其中$m$代表有m个用户,项目v的特征集合为

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

其中$n$代表有n个项目,这些特征向量的维数为$d$,那么作为SAIN模型的输入为

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

然后将$x$输入到多头注意力模型中,作者利用缩放点积来计算第$i$个特征和第$j$个特征之间的权重.公式如下所示

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

其中$W_{Q}^{(h)},W_K^{h}\in{R^{d'\times{d}}}$,同时作者在原文中说We used only features with the highest attention scores to filter less informative interactions and avoid overfitting. 作者选取前k个注意力分布进行加权求和

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

这样我们就获得了第h个注意力层的特征表示,不同的注意力头捕捉到的特征,所以要将这些注意力头串联起来

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

其中$H$表示的是注意力头的数量.虽然注意力层已经提供了为重要的特征信息,但是原始的特征信息依然不能忽略掉,作者将原始特征向量,与利用多头注意力得到的特征向量连接起来,公式如下:

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

然后我们将新得到的特征$\overline{x}_i$连接起来

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

 其中$f_{user},f_{item}$表示一个全连接层

Information Integration Layer

信息集成层利用注意机制自适应地将用户和物品的反馈信息和内容信息结合起来,已被证明是有效的.每种信息的重要性都因情况而异,如果一个系统有大量的用户交互数据,我们应该给予反馈信息更多的权重。另一方面,如果用户或项目在系统中是相对较新的,我们应该给予特征信息更多的权重。

作者将上一层(即Feature-Level Interaction Layer)的输出作为内容表示.为了从user-item反馈中获取信息,我们训练了一个独立的反馈潜在向量。

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

其中$X_{CF}^u$是用户反馈的潜在向量,$X_{CF}^v$是项目反馈的潜在向量.,我们利用注意机制将这两个潜在向量结合起来,如下:

 论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

其中$g$代表着一个全连接层,利用下面的式子将向量组合,得到最终的用户和项目表示

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

Output Layer

最终模型的预测公式为

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

其中$X^u$和$X^v是来自information propagation layer的特征向量

最终,模型的整体结构如下所示

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

实验

数据集

  • movielens
  • Weibo-Douban

baselines

  • Biased MF 

  • NCF
  • AFM
  • LIbFM
  • NFM
  • xDeepFM

性能比较

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

 SAIN在两个数据集上表现都很好。

分析

多头注意力的效果

我们在特征级交互层中使用了一个多头自注意结构。我们检查了特征的注意力评分,看看多个特征如何相互影响。从图a中可以看到,对于同为Thiller类型的电影,上面的更关注于导演(Quentin Tarantino) ,下面的更关注于演员(Bruce Willis) ,因此验证每个头部捕获了特征交互的不同方面。在图b中,表示了同一部电影的注意力分数在不同的注意力头上可能有非常不同。一个关注用户特性(性别、职业),而另一个关注项目特性(演员、导演)

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

Top-K feature 的效果

随着K值的变化,性能也发生了变化。当K为8时,预测精度提高

论文笔记:SAIN: Self-Attentive Integration Network for Recommendation(SIGIR 2019)

 

相关文章: