序列超图的下一项推荐 笔记

1 Title

        Next-item Recommendation with Sequential Hypergraphs(Jianling Wang、Kaize Ding、Liangjie Hong、Huan Liu、James Caverlee)【SIGIR 2020】

2 Conclusion

       This study explores the dynamic meaning of items in realworld scenarios and propose a novel next-item recommendation framework empowered by sequential hypergraphs to incorporate the short-term item correlations for dynamic item embedding. With the stacking of hypergraph convolution networks, a residual gating and the fusion layer, the proposed model is able to provide more accurate modeling of user preferences, leading to improved performance compared to the state-of-the-art in predicting user’s next action for both ecommerce (Amazon and Etsy) and information sharing platform (Goodreads).

3 Good Sentences

        1、A critical issue is how items are treated in such models. Specifically, for a certain time period in next-item recommendation, we adopt the view that the meaning of an item can be revealed by the correlations defined by user interactions in the short term.(The most important problem of this study wants to solve)
        2、However, it is non-trivial to extract expressive item semantics the item-correlation hypergraph. On the one hand, the item correlations encoded by the hyperedges are no longer dyadic (pairwise), but rather triadic, tetradic or of a higher-order,on the other hand, the item semantics could propagate over multiple hops.(Why choose HyperGraph to connect character of users and items)
        3、In summary, relationships between items are changing from the long-term perspective, leading to the change in the semantic meanings of items. Thus we are motivated to exploit the short-term correlations between items while modeling their dynamic patterns for next-item recommendation.(The motivation of this study)


本文提出了HyperRec,这是一个具有顺序超图的新颖端到端框架,以增强下一项推荐。

HyperRec根据时间戳截断用户交互,以构建一系列超图

HYPERREC

HyperRec是一个端到端下一项推荐框架,该框架由顺序超图授权,可以在对随时间和跨用户的动态建模时合并短期项相关性。

问题定义:

        使用集合U来表示N个用户,集合I来表示P个items,集合Q来表示不同的时间戳T,每个t相当于一段period,对于每个用户,按照时间顺序对用户u与之交互的项目列表进行排序,比如L^u=\left \{ \left ( i^u_1,t_1^u \right ),\left ( i^u_2,t_2^u \right ).....\left ( i^u_{|L^u|},t_{|L^u|}^u \right ) \right \}        ,每个小括号表示t时刻用户u与item i进行了交互。项目以一组静态潜在嵌入E=[e_1,e_2.....e_p]开始,其中每一个都是与项目ID相关联的可训练嵌入,但是对于不同用户在不同时间戳不变,下一个项目推荐的目标是预测𝑢在L_u之后会感兴趣的项目。

Sequential Hypergraphs 

        由于用户在短时间内购买的物品是相互关联的,因此在它们之间定义适当的联系至关重要。超图可以利用直接和高阶连接来提取项目之间的短期相关性。同时,一个项目不应该在不同时期被视为离散的,因为它过去的特征可以暗示它未来的特征。

        Short-term Hypergraphs:

                为了捕捉不同时间段的项目相关性,可以基于时间戳将用户-项目交互分成多个子集。G=\left \{ G^{t_1} ,G^{t_2}......G^{t_Q}\right \}代表一系列的超图,而G^{t_n}=\left \{ V^{t_n},\varepsilon ^{t_n},W^{t_n},H^{t_n} \right \}是基于时间段t_n内发生的所有用户-项目交互而构建,V属于I,是节点集,代表时间段内的交互items,\varepsilon属于U,是超边集,代表时间段内交互的users。H是V和\varepsilon的关联矩阵,当超边与节点相关联的时候,H=1否则H=0,W_{\varepsilon \varepsilon }是代表超边\varepsilon权重的对角矩阵。D和B分别代表节点和超边的度矩阵。

Hypergraph Convolution Network (HGCN):看这个[1901.08150] Hypergraph Convolution and Hypergraph Attention (arxiv.org)

简单来说, 超图上的卷积操作可以定义如下:

        \tau代表激活函数(本文采用Relu)P^0表示初始层与第1层之间的可训练权矩阵。然后加入归一化并且转为矩阵表示的形式:

f(\cdot )表示一个超图卷积层用它的一跳邻居更新每个节点的操作。
可以堆叠多个卷积层来递归聚合超图中高阶邻居的信息。在这种超图卷积网络(HGCN)中,𝐿𝑡层的输出可计算为:

Residual Gating:

        为了将前一个时间段的残差信息传播到未来,引入了残差门控,tn时刻第i个项目的初始嵌入可以被表示为:

W_RZ_R为门的变换矩阵和矢量,\sigma是tanh,x_i^{t_n,0}表示在tn时刻之前的第i个item来自最近的超图的动态嵌入,如果之前i没有出现过,那么

Dynamic User Modeling

       Short-term User Intent:

                以聚合每个超边上的动态节点嵌入,以通过以下操作推断每个用户的短期意图。

        Fusion Layer       

                生成用户𝑢和物品𝑖之间的在t_n时刻的交互表示:

e_ix_i^{t_n,L}分别代表项目的静态和动态嵌入,u_u^{t_n}是用户短期意图生成的向量,W𝐹和z是对应的变换矩阵和向量

        Self-attention

                采用自我关注作为基本模型来捕获交互序列中的动态模式      

Preference Prediction:

        预测用户对项目的偏好时,应该同时考虑动态项目嵌入和静态项目嵌入:  

最终损失函数:,𝛿是Sigmoid函数,||\theta ||^2代表L2范式,λ是权重。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序的页面交互2

一、自定义属性 (1)定义: 微信小程序中的自定义属性实际上是由data-前缀加上一个自定义属性名组成。 (2)如何获取自定义属性的值? 用到target或currentTarget对象的dataset属性可以获取数据 &#xff…

【LeetCode题解】2192. 有向无环图中一个节点的所有祖先+1026. 节点与其祖先之间的最大差值

文章目录 [2192. 有向无环图中一个节点的所有祖先](https://leetcode.cn/problems/all-ancestors-of-a-node-in-a-directed-acyclic-graph/)思路:BFS记忆化搜索代码: 思路:逆向DFS代码: [1026. 节点与其祖先之间的最大差值](https…

【JavaWeb】Day32.SpringBootWeb请求响应——分层解耦(二)

3.IOC&DI 3.1 IOC&DI入门 完成Controller层、Service层、Dao层的代码解耦 思路: 1. 删除Controller层、Service层中new对象的代码 2. Service层及Dao层的实现类,交给IOC容器管理 3. 为Controller及Service注入运行时依赖的对象 Controller程序…

经典机器学习模型(九)EM算法在高斯混合模型中的应用

经典机器学习模型(九)EM算法在高斯混合模型中的应用 EM算法的推导可以参考: 经典机器学习模型(九)EM算法的推导 若随机变量X服从一个数学期望为 μ μ μ、方差为 σ 2 σ^2 σ2的正态分布,可以记为 N ( μ , σ 2 ) N(μ,σ2)…

cmake学习笔记1

基础概念 CMake是什么? CMake是一个元构建系统(meta build-system),用于生产其他构建系统文件(如Makefile或Ninja)。 基础操作方式 CMake使用一个CMakeLists.txt文件描述配置,然后使用cmake驱动这个文件生成对应构建系统文件。…

【数据结构】ArrayList详解

目录 前言 1. 线性表 2. 顺序表 3. ArrayList的介绍和使用 3.1 语法格式 3.2 添加元素 3.3 删除元素 3.4 截取部分arrayList 3.5 其他方法 4. ArrayList的遍历 5.ArrayList的扩容机制 6. ArrayList的优缺点 结语 前言 在集合框架中,ArrayList就是一个…

【Linux】环境基础开发工具使用——vim使用

Linux 软件包管理器 yum 什么是软件包 1.在 Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 . 2.但是这样太麻烦了 , 于是有些人把一些常用的软件提前编译好 , 做成软件包 ( 可以理解成 windows 上的安装程序) 放在一个服务器…

C#,简单,精巧,实用的文件夹时间整理工具FolderTime

点击下载本文软件(5积分): https://download.csdn.net/download/beijinghorn/89071073https://download.csdn.net/download/beijinghorn/89071073 百度网盘(不需积分): https://pan.baidu.com/s/1FwCsSz…

ThreadLocal上传下载文件

文章目录 ThreadLocal1.基本介绍1.什么是ThreadLocal?2.示意图 2.快速入门1.创建普通java项目2.编写代码1.T1.java2.T1Service.java3.T2Dao.java4.Dog.java 3.结果 3.ThreadLocal源码解读1.set方法2.set方法总结3.get方法 上传下载文件1.基本介绍1.基本说明2.文件上…

Spring Cloud介绍

一、SpringCloud总体概述 Cloud Foundry Service Broker:通用service集成进入Cloud Foundry Cluster:服务集群 Consul:注册中心 Security:安全认证 Stream:消息队列 Stream App Starters:Spring Cloud Stre…

Redis 客户端

Redis 客户端 客户端-服务器结构 Redis 同 Mysql 一样,也是一个客户端-服务器结构的程序,结构如下图: 注:Redis 客户端和服务器可以在同一个主机上,也可以在不同主机上 Redis 客户端的多种形态 自带的命令行客户端&…

【Qt 学习笔记】详解Qt中的信号和槽

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 详解Qt中的信号与槽 文章编号:Qt 学习笔记 / 12 文章目录…

【Node.js】短链接

原文链接:Nodejs 第六十二章(短链接) - 掘金 (juejin.cn) 短链接是一种缩短长网址的方法,将原始的长网址转换为更短的形式。短链接的主要用途之一是在社交媒体平台进行链接分享。由于这些平台对字符数量有限制,长网址可…

旋转花键有哪些优缺点?

旋转花键是在花键外筒的外径上装上专用的轴承外套,使之运转动作,适用于水平多关节机械手臂(SCARA)、产业用机器人、自动装载机、镭射加工机、搬送装置、机械加工中心的ATC装置等各项设备。 目前,旋转花键的应用越来越普…

redis 哨兵

文章目录 前言主从复制的问题怎么人工恢复故障主节点 Redis Setinel 架构使用 docker 来配置哨兵结构安装 docker编排 redis 主从节点编排 redis 哨兵节点 观察哨兵模式的作用主从切换的具体流程小结 前言 redis 主从复制模式下, 一旦主节点出现故障, 不能提供服务的时候, 就需…

刷题之Leetcode283题(超级详细)

283.移动零 283. 移动零https://leetcode.cn/problems/move-zeroes/ 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nu…

第十讲 Query Execution Part 1

1 处理模型【Processing Model】 DBMS 的处理模型【Processing Model】定义了系统如何执行【execute】查询计划【Query Plan】。 针对不同的工作负载进行不同的权衡。 方法1:迭代器模型【Iterator Model】 方法2:物化模型【Materialization Model】 方…

创建和启动线程

概述 Java语言的JVM允许程序运行多个线程,使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。 Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,因此把run()方法体称为线程执行体。…

数据结构之堆底层实现的循序渐进

题外话 把没写的都补回来! 正题 堆 概念 堆是一棵完全二叉树,因此可以层序的规则采用顺序的方式来高效存储, 大根堆:指根结点比左右孩子都大的堆 小根堆:指根结点比左右孩子都小的堆 性质 1.堆中某个节点的值总是不大于或不小于其父节点的值 2…

CCIE-14-MPLS_and_BGP

目录 实验条件网络拓朴 环境配置开始配置配置MPLSR1访问R6检测结果R6访问R1检测结果 实验条件 网络拓朴 环境配置 在我的资源里可以下载&#xff08;就在这篇文章的开头也可以下载&#xff09; 开始配置 R1<->R2&#xff1a;EBGP R2<->R5&#xff1a;IBGP&…