论文笔记(Attentive Recurrent Social Recommendation)

注意力循环社交推荐

原文链接:Attentive Recurrent Social Recommendation, SIGIR’18
原理:将用户的朋友和历史交互项按时间划分,用注意力机制整合各个时段的朋友影响和交互项影响后输入LSTM来学习动态用户向量,动态用户向量与动态项向量的内积预测动态评分。用注意力机制整合用户所有时期的朋友影响+用户向量=用户静态向量,用户静态向量与项静态向量的内积预测静态评分。动态评分与静态评分之和为最终预测评分。

1. 摘要

协同过滤(CF)是建立推荐系统最受欢迎的方式之一。为了解决协同过滤中数据稀疏性的问题,社交推荐(social recommendation)出现了,他利用用户之间的社交影响来得到更好的推荐效果。在这些系统中,随着时间的推移,用户的偏好取决于他们的时间动态兴趣(temporal dynamic interests )和一般的静态兴趣(general static interests)。同时,用户内在兴趣和社会网络的社交影响之间的相互作用,推动了用户的偏好随时间演变。然而,传统的方法要么忽略了时间推荐(temporal recommendation)的社交网络结构,要么假设静态社交推荐(static social recommendation)具有静态的社会影响力。因此,如何利用社交影响来提高时间社交推荐效果依然是一个问题。为此,本文提出了一种基于注意力循环网络的时间社交推荐方法。在提出的方法中,我们通过用两个注意力网络融合用户之间的社交影响,来模拟用户复杂动态的和一般静态的偏好随时间的变化。特别地,在模拟动态偏好的过程中,我们设计一个动态的社交感知循环神经网络去捕捉用户复杂的随时间变化的潜在兴趣。其中,提出了一个时间注意力网络去学习随时间变化的时间社交影响;在模拟一般静态偏好的过程中,我们通过引入静态社交注意力网络刻画每一个用户的静态兴趣,来模拟用户之间的固定的社交影响。动态偏好和静态偏好的输出在一个统一的端到端的框架中结合起来,为了时间社交推荐任务。

2. 问题定义

数学符号定义:
在这里插入图片描述

定义1【时间社交推荐】给定一个用户集合 U,一个项的集合 V,用户-用户社交网络矩阵 S,从时间1到时间 T 的用户-项偏好序列 R = [R1,R2,…,RT],我们的目标是预测每一个用户在时间 T+1 时的消费行为Rˆ T+1

3. 提出的模型

我们提出的模型Attention Recurrent Social rEcommendation(ARSE)由两部分组成:一个复杂的Dynamic ARSE 部分捕获用户随时间推移变化的动态偏好,一个通用的Static ARSE 部分显示用户固定的不随时间推移变化兴趣。
用户 a 在 t 时刻对项 i 的偏好预测可以如下表示:项 i 的动态嵌入 x 用户 a 在t时刻的动态嵌入 + 项 i 的静态嵌入 x 用户 a 的静态嵌入
在这里插入图片描述
整个模型的框架如下所示:
在这里插入图片描述

3.1 Dynamic Attentive Social Recurrent Recommendation

Input Pooling Layer

因为 LSMT 要接受一个固定size的输入,而用户喜欢的 items 的集合Lta的size是不一样的(这里应该是指数量),所以这里采用一个平均池化(average pooling operation)操作,(实际上就是把所有items的潜在向量laent vector变成了一个平均的潜在向量,至于为什么采用平均池化而不是最大池化,作者说因为两种方法在这里没有明显的区别)
下面展示了 Xta 的第 l 个元素的计算方式:
在这里插入图片描述

其中 Q 是 items 在动态空间(dynamic space)中的潜在向量矩阵,Q (:,Lta ) 是选择所有在 Lta 中出现的item的潜在向量。

Dynamic Attentive Network

用两层子网络去捕获用户 a 和他在社交网络 S 中信任的用户 b(即sba=1)的动态注意力分数mt(a,b)
在这里插入图片描述

ht-1a 和 ht-1b 分别是用户 a 和用户 b 在 t-1 时刻的潜在向量(latent vector)
ea 和 eb 是用户 a 和用户 b 在社交网络结构中的社交嵌入(social embedding)
【可以用已经提出的各种社交嵌入技术可以从社交网络S中提取出有意义的嵌入,本文采用一个非监督深度学习模型denoising autoEnoder来为用户的社交嵌入建模】
最终的动态注意力分数 αtab 通过标准化上面的注意力分数得到:
在这里插入图片描述
Sa 是用户a在社交网络中信任的所有用户,
αtab 展示了在t时刻用户 b 对用户 a 的影响力
则,用户a的社交上下文信息 h~ta 表示来自社交网络邻居的权重动态社交影响:
在这里插入图片描述

Social LSTM Layer

Xta 表示了用户 a 在 t 时刻消费的items
h~ta 表示了用户 a 在 t 时刻增强的社交上下文信息
ht-1a 表示了用户 a 在 t-1 时刻的隐藏状态(hiden state)
预测隐藏状态 hta 可以通过一个 LSTM 层计算得到:
在这里插入图片描述
不同于传统的 LSTM 只考虑用户之前的输入 Xta 和之前的隐藏状态 ht-1a,作者在这里加入了用户的动态上下文表征 h~ta 来推断用户动态的偏好。

Dynamic Output Layer

在这里插入图片描述

3.2 Static Attentive Social Recurrent Recommendation

除了捕获用户随着时间进化的偏好,我们认为每个用户都有不随时间变化的静态兴趣(static interest)

Static Social Attention

用两层子网络去捕获用户 a 和他在社交网络 S 中信任的用户 b(即sba=1)的静态注意力分数n(a,b)
在这里插入图片描述
pa 和 pb 分别表示用户 a 和用户 b 的静态潜在向量(latent vector)
ea 和 eb 分别是用户 a 和用户 b 在社交网络结构中的社交嵌入(social embedding)
最终的静态注意力分数 βab 通过标准化上面的注意力分数得到:
在这里插入图片描述

则,增强的静态社交潜在向量p?a 可以如下表示:
在这里插入图片描述

Static Output

在这里插入图片描述

4. 模型学习

4.1 Optimization

用一个统一的损失函数进行学习
在这里插入图片描述

4.2 Prediction

在这里插入图片描述

学习总结:

1、关于用户的偏好,作者考虑了不随时间改变的静态偏好和随着时间进化的动态偏好,对于随着时间进化的动态偏好用LSTM模型进行学习,用某时刻用户的社交网络信息和交互项信息共同作为LSTM某个单元的输入,经处理后输出当前时刻用户的偏好;对于不随时间改变的静态偏好通过整合用户社交网络信息和用户本身的信息得到。两个部分在整合用户在社交网络中邻居时都采用了注意力机制来区分不同邻居的重要程度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回溯算法(Backtracking Algorithm)之八皇后问题

文章目录1. 回溯算法思想2. 算法应用2.1 八皇后问题1. 回溯算法思想 前面讲过贪心算法并不能保证得到最优解,那怎么得到最优解呢? 回溯思想,有点类似枚举搜索。枚举所有的解,找到满足期望的解。为了有规律地枚举所有可能的解&am…

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这…

论文浅尝 | Generative QA: Learning to Answer the Whole Question

链接: https://openreview.net/forum?idBkx0RjA9tX传统的机器阅读理解的模型都是给定 context 和 question, 找出最有可能回答该 question 的 answer,用概率表示为 p(a|q,c),这其实是一个判别模型。判别模型在大多数任务上可以取得比生成模型更好的准确…

打破BERT天花板:11种花式炼丹术刷爆NLP分类SOTA!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | JayLou娄杰编 | 小轶在2020这个时间节点,对于NLP分类任务,我们的关注重点早已不再是如何构造模型、拘泥于分类模型长什么样子了。如同CV领域当前的重点一样,我们更应该…

论文笔记(A Neural Influence Diffusion Model for Social Recommendation)

神经影响传播模型为了社交推荐 原文链接:A Neural Influence Diffusion Model for Social Recommendation, SIGIR’19 原理:社交网络上应用GNN提取朋友对用户的影响候选项对用户历史交互项的注意力影响用户向量,用户向量和项向量的内积预测评…

玩转算法面试-第三章

数组中常见的问题 排序: 选择排序;插入排序;归并排序;快速排序 查找:二分查找法 数据结构:栈;队列;堆 … 二分查找法: 1964年提出,没有bug的二分查找法是在1…

回溯应用-- 0-1背包问题

文章目录1. 问题描述2. 回溯解决思路1. 问题描述 0-1背包非常经典,很多场景都可以抽象成这个问题。经典解法是动态规划,回溯简单但没有那么高效。 有一个背包,背包总的承载重量是 W kg。现有n个物品,每个物品重量不等&#xff0…

Java多线程系列(五):线程池的实现原理、优点与风险、以及四种线程池实现

为什么需要线程池 我们有两种常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。但是我们创建这两种线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁…

论文浅尝 | 面向单关系事实问题的中文问答模型

来源:NLPCC 2017论文下载地址:http://tcci.ccf.org.cn/conference/2017/papers/2003.pdf动机开放领域的QA问题是一个被广泛研究的问题,而且目前这个问题并没有被很好地解决。在中文领域,相关的数据集并不多。而NLPCC开放了一个KBQ…

玩转算法值面试-第五章 -在链表中穿针引线

5-123 数组中可以随机访问,相反链表就不行 leetcode:206 反转一个链表,链表如果没有特别声明,则节点的值不发生改变 一共需要三个指针:current指向当前需要处理的指针 next指向当前需要处理的元素的下一个元素的指针…

论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)

一个有效的基于图卷积神经网络的社交推荐模型 原文链接:SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation, arxiv 原理:在用户-项交互图上应用GNN来学习用户向量的表示,用户向量和项向量内积预测…

POJ 1753 Flip Game(回溯)

文章目录1. 题目1.1 题目链接1.2 题目大意1.3 解题思路2. 代码2.1 Wrong Answer代码2.2 Accepted代码1. 题目 1.1 题目链接 http://poj.org/problem?id1753 1.2 题目大意 一个黑白棋子的棋盘,一个反过来周围四个也跟着反过来(如果存在的话),颜色取反…

他读书时挣了五十万,找工作时收获阿里腾讯快手等ssp offer

今天介绍一位dalao,他之前在中科院获取了计算机硕士学位,现在是一名大厂的算法工程师。大多数人的学生生活,是在枯燥的课程和任务中度过的,但他却有所不同,乐于折腾,收获了不一样的精彩。他喜欢去公司实习&…

Java多线程系列(三):Java线程池的使用方式,及核心运行原理

之前谈过多线程相关的4种常用Java线程锁的特点,性能比较、使用场景,今天主要分享线程池相关的内容,这些都是属于Java面试的必考点。 为什么需要线程池 java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内…

论文浅尝 | 图神经网络综述:方法及应用

论文链接:https://arxiv.org/pdf/1812.08434.pdfGNN相关论文列表链接:https://github.com/thunlp/GNNPapers近日,清华刘知远老师组在arXiv上发表了一篇关于图神经网络的综述,本次论文浅尝在分享这篇论文的基础上,对图神…

论文笔记(Social Attentional Memory Network:Modeling Aspect- and Friend-level Differences in Recom-)

社交注意记忆网络:模拟面级别和朋友级别的区别 原文链接:Social Attentional Memory Network: Modeling Aspect- and Friend-Level Differences in Recommendation, WSDM’19 1. 摘要 社会中的连接有助于提升推荐系统的性能,但是&#xff…

玩转算法之面试-第六章(栈和队列)

leetcode 20 此时栈顶的左括号和当前遍历的右括号匹配,故将左括号从栈顶pop出。 leetcode 150: leetcode 71 栈和递归的关系 递归算法:二叉树中的算法 、二叉树的前序遍历,中序遍历,后序遍历 前序遍历代码&am…

POJ 1321 棋盘问题(回溯)

文章目录1. 题目1.1 题目链接1.2 题目大意1.3 解题思路2. 代码2.1 Accepted 代码1. 题目 1.1 题目链接 http://poj.org/problem?id1321 1.2 题目大意 在一个给定形状的棋盘(只能在#号的位置摆放)上面摆放棋子,棋子没有区别。要求摆放时任…

Java多线程系列(二):线程的五大状态,以及线程之间的通信与协作

在Java面试的时候,经常会问到Java并发编程相关的多线程、线程池、线程锁、线程通信等面试必考点,比如: Java并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项 Java并发编程系列:4种常用Jav…

负样本为王:评Facebook的向量召回算法

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术有人的地方就会有江湖,就会有鄙视链存在,推荐系统中也不例外。排序、召回,尽管只是革命分工不同,但是我感觉待遇还是相差蛮大的排序排序,特别是精排…