知识图谱论文阅读(二十三)【SIGIR2020】Multi-behavior Recommendation with Graph Convolutional Networks

在这里插入图片描述

题目: Multi-behavior Recommendation with Graph Convolutional Networks
论文地址:
论文代码:

想法

将相同行为的交互方式进行了聚合来计算user Embedding和item Embedding

创新

模型要做的事情就是user-item传播层学习行为影响力度,item-item传播层去捕获行为语义

摘要

过去的问题:

传统的推荐模型仅仅利用一种用户-物品的交互数据,如购买行为,因而综述遭受数据稀疏和冷启动的问题,但是该用户可能没有购买,只是浏览、点击和收藏等这些隐藏信息

早期的推荐系统并没有考虑到这些隐藏信息的权重信息,也就忽略了这些数据中隐藏的行为语义。

我们:

我们的工作中创造了一个统一的图来表示多行为的数据;

并且提出了我们的模型叫做**MBGCN(**题目),使用GCN的层层传播语义的功能

2 PROBLEM FORMULATION

在在线信息系统的真实场景中,用户可以通过点击、收集、购买、分享等多种方式与平台提供的物品进行交互。在各种类型的用户项目交互中,总有一种类型直接决定着平台的利润

例如,电子商务推荐系统一直是针对购买行为设计的,App推荐系统是针对下载行为设计的

但是单一行为的方式往往效果不好,而且缺乏数据。

在这项工作中,我们的目标是利用其他类型的反馈设计一个推荐模型的目标行为

在这里插入图片描述

约定一下:
假定行为的数量TTT

交互矩阵YtY^tYt表明了和item有没有交互

所有的行为矩阵可以表示为{Y1,Y2,...,YT}\left \{ Y^1, Y^2,...,Y^T \right \}{Y1,Y2,...,YT},其中{Y1,Y2,...,YT−1}\left \{ Y^1, Y^2,...,Y^{T-1} \right \}{Y1,Y2,...,YT1}表示为辅助行为,而YTY^TYT表示为目标行为。
在这里插入图片描述

注意,对行为的时间顺序或强度顺序没有限制。换句话说,行为t−1t-1t1并没有ttt之前发生,并且yuit−1y_{ui}^{t-1}yuit1yuity_{ui}^{t}yuit并没有反应的更强或者更弱。那么多行为推荐的任务可以表述为:

Input: user-item的交互数据 TTT种类型的行为

Output: user u在T-th行为下和item i交互的概率

3 METHODOLOGY

我们的模型有四个重要的组成部分:
1)一个共享层,它为用户和项目嵌入提供初始化;
2)user-item传播层,学习每个行为的强度,同时提取基于多行为的用户-物品交互的协同过滤信号;
3)item-item传播层,根据行为类型细化项目之间的特殊关系,即行为语义;
4)联合预测模块。

在这里插入图片描述

3.1 Unified Heterogeneous Graph

输入交互数据用无向图表示 G=(V,E)\mathrm{G=(V,E)}G=(V,E),其中节点由user和item组成。

E\mathrm{E}E中的边包含了不同行为的不同的user-item的交互边,名字为(u,i)t(u, i)_t(u,i)t,t∈Nrt\in N_rtNr,其中NrN_rNr所有行为类型的集合

同时,在items之间,一些meta-paths将会基于用户的协同行为(多个用户都购买了XX)建立。

比如iphone和AirPods,很多人都同时购买了,那么item-purchase-user-purchase-item的元路径将会被建立。

也因此,元路径的类型行为类型数量是一样的!

3.2 Shared Embedding Layer

pi(0)∈Rdand qj(0)∈Rdp_{i}^{(0)} \in \mathcal{R}^{d} \text { and } q_{j}^{(0)} \in \mathcal{R}^{d}pi(0)Rd and qj(0)Rd是user和item的嵌入。

之后可以将user和item的嵌入向量可以用嵌入矩阵表示:
在这里插入图片描述

同时我们使用one-hot+矩阵乘法获得某个用户和item的向量
在这里插入图片描述

其中IDkUID_{k}^UIDkUIDjVID_{j}^VIDjV分别是用户uku_kukiji_jij的one-hot向量。

3.3 Behavior-aware User-Item Propagation

为了捕获基于多行为的CF信号,我们在用户和项目之间建立了一个消息传递体系结构。

在这里插入图片描述
相同的颜色的线表示的是相同的行为!!!

3.3.1 User Embedding Propagation.

我们的主要想法是根据行为类型,通过两个关键因素:行为内在强度交互稀疏性来考虑物品对用户偏好的不同影响。

User Behavior Propagation Weight Calculation:
由于不同的行为对目标行为的贡献不同,我们为每个行为分配权重,也就是wtw_twt为了行为ttt

为了融合行为重要性和行为稀疏性,我们为用户 u 定义了特定行为 t 的传播权值αut\alpha _{ut}αut,如下所示:
在这里插入图片描述

其中wtw_twt对于所有用户来说是一样的。

nutn_{ut}nut是被user u操作的行为 t 的数量, 这取决于用户。∑m∈Nrαum\sum_{m \in N_{r}} \alpha_{u m}mNrαum是所有用户u的交互

www更大的行为将会比更小的行为重要,∑t∈Nrαut=1\sum_{t \in N_{r}} \alpha_{u t}=1tNrαut=1,而且该权重是系统自动学习到的。

Neighbour Item Aggregation Based on behavior.
对于每个用户来说,不同的行为对目标行为的贡献是不同的,但直觉上,相同行为下交互的物品反映了用户相似的偏好强度

因此,将与用户具有相同行为交互的项聚合在一起,以获得每个行为的一个嵌入pu,t(l)p_{u,t}^{(l)}pu,t(l),该式子表示 对于在行为 t 下的用户 u 的表示:
在这里插入图片描述

NtI(u)N_t^I(u)NtI(u)是用户u在行为t下的交互的items!

qi(l)q_i^{(l)}qi(l)是item i的在层l的嵌入!

聚合函数可以是一个函数,如简单的均值函数,抽样的均值函数,最大池化等等。这里我们使用简单的中值函数

pu,t(l)p_{u,t}^{(l)}pu,t(l)用户 u 在行为 t 下在 lll-th 层的聚合嵌入。

Behavior-level Item Propagation for User(就是上面图的上半部分)

我们根据权重αut\alpha_{ut}αut对嵌入在一起的邻居项聚合求和,然后通过一个编码器矩阵得到user u的最终邻居项聚合。我们采用无激活函数的图神经网络来细化基于多行为的信息:
在这里插入图片描述
αut\alpha_{ut}αut它既取决于行为显著性,也取决于每种行为下的用户交互量。

3.3.2 Item Embedding Propagation

上面的item-to-user是根据用户的行为然后赋予item权重得到的用户特征。

这里的user-to-item中,item的特性是静态的,所以不管行为类型,假设不同用户对同一项内容的贡献是相同的。

下面就是聚合用户行为后的!
在这里插入图片描述
虽然在user-to-item的传播中没有考虑行为类型,但不能说多行为不能用于物品特征学习。

事实上,item相关性或者换句话说,行为语义可以从item-to-item的多行为数据中学习

3.4 Item-Relevance Aware Item-Item Propagation

在这里插入图片描述

但是前面提到了,需要解决的第二个问题是捕捉items之间的关系,所以item还需要进行一次传播,得到额外的一个在不同行为下的item表示。即被同一个用户都交互了的物品之间存在有特殊的连接

在这里插入图片描述
这个操作也可以参考上图,目的是求出item i 的下一层嵌入; 即t1行为之间进行聚合,t2行为之间进行聚合就行。

上图是t1行为的,下图是t2行为下的!

3.5 Joint Prediction:

得到各层的表示直接拼接就行:

在这里插入图片描述

然后可以做两个预测任务User-based CF ScoringItem-based CF Scoring

3.5.1 User-based CF Scoring

根据所得到的用户和物品的embedding,做简单的内积。
在这里插入图片描述

3.5.2 Item-based CF Scoring

计算与用户u交互的所有物品们与目标物品iii的相关性分数(两个item之间被某用户有相同的行为如都购买了会影响到分数)。
在这里插入图片描述
最后两者一起作为预测分数:
在这里插入图片描述

所以其实对应开头的两个问题,模型要做的事情就是user-item传播层学习行为影响力度,item-item传播层去捕获行为语义

3.6 Model Training

BPR loss:它强调了观察到的和未观察到的用户-物品交互之间的相对顺序,并声称观察到的交互对于用户的偏好学习具有指导性,应该比未观察到的交互获得更高的预测分数。

在这里插入图片描述
其中O={(u,i,j)∣(u,i)∈R+,(u,j)∈R−}O=\left\{(u, i, j) \mid(u, i) \in R^{+},(u, j) \in R^{-}\right\}O={(u,i,j)(u,i)R+,(u,j)R}表示成对目标行为训练数据集;
R+R^+R+表示观察到的目标行为;
R−R^-R表示了没有观察到的目标行为;
σ(⋅)\sigma (\cdot )σ()激活函数;
Θ\ThetaΘ是所有可训练的参数
β\betaβ是归一化系数,控制L2归一化的强度,以防止过拟合。

我们提出了两种广泛使用的dropout方法:message dropout和node dropout到一些用户节点和项目节点。Message dropout以possibility的形式随机删除一些流动的消息,而node dropout则随机删除一个特定的节点,并提取其所有流动的信息。

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

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

相关文章

LeetCode 1200. 最小绝对差

1. 题目 给你个整数数组 arr,其中每个元素都 不相同。 请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。 示例 1: 输入:arr [4,2,1,3] 输出:[[1,2],[2,3],[3,4]]示例 2: 输入:ar…

在mojoportal项目中发邮件使用的是dotnetopenmail

[翻译]开源发送邮件组件dotnetopenmail使用介绍 在mojoportal项目中发邮件使用的是dotnetopenmail介绍发邮件是非常简单的,不管用System.web.mail [ASP.NET 1.1]或System.Net.mail [ASP.NET 2.0],但是还是有其他第三方组件可以被使用,比如DotNetOpenMail.他可以使你用最少的代码…

怎么看表_干货 | 剪力墙、柱、板配筋率到底怎么算?

干货 | 剪力墙、柱、板配筋率到底怎么算?正在努力的阿源 北京峰源结构设计 剪力墙(纯剪力墙)1.一般部位墙厚高规7.2.1条及抗规6.4.1条,对于一般部位,一、二级不应小于160mm且不宜小于层高或无支长度的1/20,…

(二十四)【2021 ACL】OntoED: Low-resource Event Detection with Ontology Embedding

题目: OntoED: Low-resource Event Detection with Ontology Embedding 论文链接: https://arxiv.org/abs/2105.10922 论文代码:https://github.com/231sm/Reasoning_In_EE 论文 什么原型? Prototypical networks for few-shot …

哈尔滨理工C语言程序设计精髓_【注意啦】哈尔滨工业大学2020考研计算机专业课调整,难度提升!...

前言:最近各高校在密集调整计算机相关专业的专业课,从热门985高校、211高校到普通本科,许多学校的专业课都进行了调整。各高校通常会发布专业课调整通知或者直接发布2020研究生招生专业目录,请各位同学多多关注相关信息。哈尔滨工…

数据恢复软件(绝对真实可用)

本软件已经本人测试,这个数据恢复软件是我用过的感觉最好用的一个了。声明:我是在我电脑没有重装系统的前提下进行测试的。小小的这么一个绿色软件,还真的可以找回大部分删除了N久的文件。感觉很爽。现给大家展示几张我测试时的截图&#xff…

LeetCode 1221. 分割平衡字符串

1. 题目 在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。 给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。 返回可以通过分割得到的平衡字符串的最大数量。 示例 1: 输入:s "RLRRLLRLRL"…

安装pp框架

第一步: 创建环境 conda create --name pp37 python3.7 第二步: 激活环境 conda activate pp37 第三步: 官方安装 conda install paddlepaddle-gpu2.1.3 cudatoolkit10.2 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/clou…

基础算法学习(二)_二叉树及应用赫夫曼编码

这次学习的重点在于二叉树的性质、链式存储结构(也就是C语言的struct)和赫夫曼编码,学习的教材是清华大学出版社出版的C语言版数据结构。 首先是二叉树: 二叉树(Binary Tree)是另一种树形结构&#xff…

LeetCode 1222. 可以攻击国王的皇后(set)

1. 题目 在一个 8x8 的棋盘上,放置着若干「黑皇后」和一个「白国王」。 「黑皇后」在棋盘上的位置分布用整数坐标数组 queens 表示,「白国王」的坐标用数组 king 表示。 「黑皇后」的行棋规定是:横、直、斜都可以走,步数不受限…

win10开始菜单添加磁贴_Windows 10开始菜单磁贴美化教程

前言我们都知道,Windows 10在美化上可没有下足功夫,尤其是开始菜单的磁贴上。几年前,我们还觉得这种磁贴设计在大众面前焕然一新,可是近几年来,也没见磁贴有什么起色,除了不能自定义背景颜色外,…

【Text_Classification】学习到的语法知识

1. 任务 1.1 字典中每个种类的准确率 分母: 首先计算每个种类的总数! for value in label:# get(value, num)函数的作用是获取字典中value对应的键值, num0指示初始值大小。label_cout[value] label_cout.get(value, 0) 1label_acc[value] label_a…

%求余数 rand随机数

//getSeconds() 0-59number new Date().getSeconds() % 3 1; //随机数,从1到3//0-9之间 Math.random()*10var num1 Math.round(Math.random()*10) % 3 随机数,从0到2 任何数%3 得到 0 1 2 任何数%4 得到 0 1 2 3转载于:https://www.cnblogs.com/reo…

LeetCode 1217. 玩筹码(脑筋急转弯)

1. 题目 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。将第 i 个筹…

windows脚本命令闪退_NCL2Python|windows系统安装Pyngl和Pynio

自从NCL停更之后,python的知名度都不断提高了,我也开始了python学习之旅,但是还没开始,就被如何安装Pyngl和Pynio给困住了。网上和官网给的教程都是Linux系统或者OS系统,有老板服务器的同学压根不用担心这个问题&#…

【Text_classification】 PaddlePaddle框架下出错调整到运行的实验和记录

使用的是Paddle框架2.0版本 网页: https://github.com/PaddlePaddle/PaddleHub/tree/release/v2.1/demo/text_classification 也可以在其平台上利用公开数据集跑一跑: 网页:https://aistudio.baidu.com/aistudio/projectdetail/2390146?cont…

WCF分布式开发步步为赢系列

众所周知,系统间的低耦合一直是大型企业应用系统集成追寻的目标,SOA面向服务架构的 出现为我们的如何利用现有企业系统资源进行企业ERP系统设计和实现提供了重要的参考原则。SOA如此炙手可热,各大厂商都推出了自己的中间件产品,比…

LeetCode 1207. 独一无二的出现次数

1. 题目 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 示例 1: 输入:arr [1,2,2,1,1,3] 输出:true 解释&#xff1a…

keil stm32标准库放在哪里_STM32之PWM

脉冲宽度调制脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效且应用十分广泛的技术,例如直流电机的控制、开关电源的输出调制、信号的传递也离不开脉冲宽度调制。我们接下将要讨论的便是单片机中PWM的产生与应用。在STM32单片机中&#xf…

(二十五)【NIPS 2017】Prototypical Networks for Few-shot Learning

完全参考博文 用来记录和学习 Introduction 原型网络的思路非常简单:对于分类问题,原型网络将其看做在语义空间中寻找每一类的原型中心。 原型中心: 针对Few-shot的任务定义,原型网络训练时学习如何拟合中心。学习一个度量函数…