论文笔记(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. 摘要

社会中的连接有助于提升推荐系统的性能,但是,现有的模型中没有能够很好地研究推断用户偏好的两个问题:第一,用户的偏好可能只是在某方面和他朋友的偏好部分匹配,尤其是当考虑到一个用户有不同的兴趣时。第二,对于一个个体来说,他朋友对他的影响程度可能是不同的,在模拟他的偏好时,并不是所有的朋友都有同等的帮助。
为了解决上述问题,我们提出了新型的社交注意记忆网络(SAMN),特别地,设计了一个基于注意力的记忆模块去学习 user-friend 向量,可以捕获用户和他朋友共享的不同方面的注意力。设计了一个朋友级别的注意力组件,自适应地选择信息丰富的朋友进行用户建模。这两个组件被融合在一起,互相增强,从而得到一个更好的扩展模型。

举例:
userA 和 userB 的信任关系建立在 movie 上,userA 和 userC 的信任关系建立在 basketball 上。
在这里插入图片描述

2. 模型架构

目标:基于隐式反馈和社交网络进行推荐。
考虑了 aspect-level 和 friend-level 两种情况,来提高模型的表现性能和泛化能力。

  1. 在嵌入层(Embedding Layer)用户和项被转化成密集向量表示(dense vector representation)
  2. 基于注意力的记忆模块(attention-based memory module)用来解决面级别的差别(
    aspect-level differences)造成的问题,朋友向量 f(i,l) 在一个增强的记忆矩阵 M 上使用神经注意力机制生成,依赖于用户和朋友,并学习表示用户和朋友之间的偏好关系。
  3. 朋友级别的注意力组件(friend-level attention component)用于选择信息丰富朋友来更好的推断用户的偏好。
  4. 模型通过 pairwise ranking 和 negative sampling strategy 进行优化。
    在这里插入图片描述

2.1 Attention-based Memory Module

用户和朋友可能只在某个方面由相同的偏好,尤其是考虑到用户有不同兴趣的时候。然而用户-朋友对的显示关系在隐式数据中是不可用的(我们不知道他们分享的兴趣是什么方面的)。受到近来记忆网络和注意力机制发展的启发,我们设计了基于注意力的记忆模块来学习用户和朋友之间的关系向量
在这里插入图片描述

2.1.1 Joint Embedding

给定 user-friend 对 ( ui , u(i,l) ),模型先用下面的操作去学习用户和他朋友的联合嵌入向量 s ∈ Rd,其中分母用来标准化并且使得产生的向量具有相同的规模。这个操作也可以换成别的,比如 MLP 或者 element-wise product without normalization。
在这里插入图片描述

2.1.2 Key Addressing

注意向量 α ∈ RN 的每个元素 αj (表示用户朋友对用户在第 j 方面的影响程度)通过下面的方式计算,其中 Ki ∈ Rd 从 key matrix K ∈ RN×d 得到。
在这里插入图片描述在这里插入图片描述

2.1.3 Generating Friend Vector

朋友向量 u(i,l) 先通过记忆矩阵(memory matrix)M ∈ RN×d 扩展一个矩阵 F ∈ RN×d,F 可以理解为用户在不同潜在面(latent aspect)的偏好,N 可以看作是潜在面的数量。
在这里插入图片描述
最后,为了生成朋友向量,使用注意分数来计算 F 的加权表示。输出的特定关系向量 f(i,l) 可以看作用户的第 l 个朋友对用户 i 偏好的影响向量。
在这里插入图片描述

2.2 Friend-level Attention

朋友级注意的目标是给用户的朋友分配非均匀的权重,当用户与不同的项目交互时,权重会发生变化。
我们使用两层网络计算用户 ui ,当前项 vj 和朋友 f(i,l) 的注意力分数 β(i,l):
在这里插入图片描述在这里插入图片描述
其中,Si 表示用户 i 在社交网络中的所有朋友,W1 ∈ Rd×k , W2 ∈ Rd×k , W3 ∈ Rd×k,b ∈ Rk , h ∈ Rk 是模型参数。
最后通过求和便可以得到用户 i 的表示:
在这里插入图片描述

3. 模型学习

3.1 Prediction

采用了经典的矩阵分解(MF)方法来预测用户 I 对 项 j 的评分:
在这里插入图片描述
根据预测评分对 items 进行排名,取 Top-K 进行推荐。

3.2 Optimization

The pairwise ranking loss:
在这里插入图片描述

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

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

相关文章

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

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、搜索与推荐技术有人的地方就会有江湖,就会有鄙视链存在,推荐系统中也不例外。排序、召回,尽管只是革命分工不同,但是我感觉待遇还是相差蛮大的排序排序,特别是精排…

论文浅尝 | TEQUILA: 一种面向时间信息的知识问答方法

来源:CIKM’18链接:http://delivery.acm.org/10.1145/3270000/3269247/p1807-jia.pdf?ip223.3.116.39&id3269247&accACTIVE%20SERVICE&keyBF85BBA5741FDC6E%2EEEBE655830483280%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35&__acm__15478819…

京东2020算法工程师0824笔试题整理

代码题: 1:开心消消乐: #include #include #include #include #include #include #include #define ll long long #define inf 0x3f3f3f3f #define Max 1001 using namespace std; int dir[4][2]{{-1,0},{1,0},{0,-1},{0,1}}; string …

论文笔记(eTrust: Understanding Trust Evolution in an Online World)

eTrust:理解线上信任进化 原文链接:eTrust: Understanding Trust Evolution in an Online World, KDD’12 原理:用户偏好与项的向量内积 用户与朋友相似度权重*朋友对项的时间衰减评分用户对项的评分 摘要 大部分关于线上信任的研究都假设…

技术动态 | 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?

OpenKG 祝各位读者元宵节快乐!本文转载自公众号:机器之心。选自ISWC作者:Baptiste Rocca参与:思源、李亚洲我们知道强大的深度模型需要很多计算力,那你知道创建一个知识图谱的成本到底是多少吗?德国 Mannhe…

Attention模型:我的注意力跟你们人类不一样

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 小轶背景截至今日,Badanau Attention的原文citation已达1.34w之多。2020年几乎所有主流NLP任务都需要借助attetion来实现。在深度学习全民炼丹的时代,attention是为数不多具有较强…

动态规划算法(Dynamic Programming)之0-1背包问题

文章目录1. 问题引入2. 动态规划求解0-1背包3. 复杂度4. 0-1背包升级版(带价值)5. 0-1背包升级版(带价值)DP解法1. 问题引入 前面讲了0-1背包的回溯解决方法,它是穷举所有可能,复杂度是指数级别的&#xf…

Java多线程系列(一):最全面的Java多线程学习概述

Java并发编程的技能基本涵括以下5方面: 多线程 线程池 线程锁 并发工具类 并发容器 多线程的4种创建方式 继承Thread 实现Runnable接口 实现Callable接口 以及线程池来创建线程 Java线程的生命周期 线程的创建 线程的就绪 线程的运行 线程的阻塞 线程的死…

论文浅尝 | 基于知识库的自然语言理解 01#

本文转载自公众号:知识工场。罗康琦,上海交通大学计算机系2019届博士,研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位,现就职于京东数据科学实验室(Data Science Lab)。他曾在…

推荐系统图算法实用干货汇总(含论文、代码、样例教程)

Hello,今天为朋友们推荐一个值得学习的公众号「浅梦的学习笔记」,小编目前在电商公司从事推荐系统相关的工作。主要分享关于「推荐系统,图算法,NLP&CV以及求职面试」等内容,欢迎关注一起学习和交流~文末可打包下载…

动态规划应用--双11购物凑单

文章目录1. 问题描述2. 代码实现1. 问题描述 双11购物节的时候,某宝给你很多张满300减50的优惠券,你想组合各种商品的价格总和>300,且金额总和越接近300越好,这样可以多薅点羊毛。 回溯算法效率太低,时间复杂度指…

商汤科技2020数据分析师0820笔试题目整理

2019年8月19日 问答题1:缺失值数据预处理有哪些方法?https://juejin.im/post/5b5c4e6c6fb9a04f90791e0c 处理缺失值的方法如下:删除记录,数据填补和不处理。主要以数据填补为主。 1 删除记录:该种方法在样本数据量十分…

Java多线程系列(八):ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

HashMap、CurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈CurrentHashMap的实现原理,以及在JDK1.7和…

论文笔记(Neural Graph Collaborative Filtering)

神经图协同过滤 论文链接:Neural Graph Collaborative Filtering, SIGIR’19 原理:在 user-item interaction graph 上使用 GNN 来学习 user 向量和item 向量,用户向量和项向量的内积来预测评分。 区别: 大部分论文使用 GNN 只是…

论文浅尝 | 基于知识库的自然语言理解 02#

本文转载自公众号:知识工场。罗康琦,上海交通大学计算机系2019届博士,研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位,现就职于京东数据科学实验室(Data Science Lab)。他曾在…

工业解密:百度地图背后的路线时长预估模型!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术编 | YY无论你是苦逼学生(公交地铁狗)、职场萌新(打车狗)还是有钱大佬(有车一族),只要站在了北上广深的土地上,就…

动态规划应用--“杨辉三角”最短路径 LeetCode 120

文章目录1. 问题描述2. DP算法代码3. LeetCode 120 三角形最小路径和1. 问题描述 对“杨辉三角"进行一些改造。每个位置的数字可以随意填写,经过某个数字只能到达下面一层相邻的两个数字。 假设你站在第一层,往下移动,我们把移动到最底…