Make It a Chorus: Knowledge- and Time-aware Item Modeling for Sequential Recommendation

1 INTRODUCTION (介绍)

用户消费需求实际上是动态的和可变化的。相同的项目在不同的上下文中对 用户有不同的含义。 实际上,顺序消费行为可以看作是一个在不同方面满足用户需求的过程。 一个物品的消费可能会对其 他相关物品产生影响,不同关系的影响也不尽相同。以互补关系和替代关系为例,图1说明了购买不同关系项目的效果的如 何会随时间变化。 对于互补品:假设用户目前购买了iPhone,他/她可能会想在短期内购买AirPods(即iPhone的补充)。但一段时间后,正面效 果会降低(用户可能已经有耳机,推荐系统不应该持续播放AirPods) , 对于替代品:如果他/她刚刚消耗的是AirPods的替代品,如Powerbeats,短期影响主要是负面的,因为用户不需要立即需要 另一个耳机。 虽然负面影响可能在中期转化为正面影响,因为用户可能需要购买一个新的耳机,而新发布AirPods可能是一个吸引力 。 这种积极的影响也会逐渐减弱,用户可能对这种耳机失去了兴趣,或者通过其他方式购买了另一种耳机

从上面的例子可以看出,当前对不同关系物品的消费对目标物品的影响是不同的, 更重要的是,每种关系的时间趋势也不 同 , 也有研究将项关系引入推荐系统[16,40,44,45],但没有考虑到不同关系的时间动态 , 虽然有一些工作针对长期偏好 和短期偏好[16],但项目关系仅用于建模短期项目转换,缺乏对不同关系效应的连续演化建模 , 另一项最近的工作调查了 重复消费[41]的时间动态。 然而,消费不仅会影响相同的物品本身,还会影响相关的物品。 因此,项目关系和相应的时间 动态是获取项目在不同语境下的动态意义的关键。

在本文中,我们提出了一种新的方法Chorus,旨在获得具有知识和时间感知的目标项嵌入。 据我们所知,我们是第一个明 确地为不同关系的影响随时间的演变建模的人,这有助于更好地捕捉不同序列上下文中的每一项的含义 。 其中,Chorus基于平移的图嵌入方法** 为每个条目分配一个基本表示和各种关系表示 然后,根据关系消耗后的运行时间,这些 表示通过时间内核函数动态组合,这就是为什么它被命名为Chorus的原因。 提出的时态核函数使关系表示能够以不同的方 式对最终的嵌入项作出贡献。 因此,Chorus能够动态地获取知识和时间感知的条目嵌入,这很容易被各种推荐算法所利 用。 此外,高度可解释的时间相关参数使得解释不同时间段的推荐结果成为可能。

本工作的主要贡献可以总结如下:

• 设计了一种新颖灵活的Chorus方法,当目标在序列中扮演不同的角色时,动态地结合不同的表示形式来增强目标 物体的建模能力。最后一项嵌入可以很容易地与各种推荐算法一起工作。

• 在3个真实数据集上的对比实验表明了该方法的有效性,并且具有较高的可解释性参数进一步提高了模型的可解释 性。

2 RELATED WORK (相关工作)

1️⃣: Sequential Recommendation (顺序建议)

①:马尔科夫链:顺序推荐利用顺序数据基于马尔科夫链来预测用户的下一个消费[马尔科夫链]

②:将RNN引入顺序推荐,扩展基于RNN的模型的能力

2️⃣: Item Relation Modeling (项关系建模)

最近的一些研究主要集中在如何将项关系引入推荐系统大部分研究都是利用知识图来表示项关系

例如:CFKG将用户对商品的关系图作为实 体,将购买行为视为另一种关系,然后使用TransE表示异构信息网络并提出建议。

但是这些方法都是静态的,没有添加时间信息,会导致一长段时间的推荐都是同样的东西,忽略了时间对用户与商品之间关系的影响。

3️⃣:Temporal Dynamics Modeling (时间动力学建模)

时间信息的工作

①:将时间信息作为上下文特征。 之前的研究里的方法

的一种:[TimeSVD++] 将时间划分为槽, 并设计与时间相关的参数。

第二种:[TransFM] 利用FM将时间戳作为额外的上下文特性包含进来 。

第三种:[张量因子分解] 时间被视为用户-物品交互立方体的第三维。

②:模拟历史相互作用的时间衰减效应

通常使用Hawkes Process (HP) 对用户消费序列的相互激励特性进行建模。Du等首先将Hawkes过程应用于时效性推荐。

结合霍克斯过程和协同过滤对重复消费的时间动态进行建模

这些方法没有考虑不同关系的时间动态。改进考虑了:条目关系和相应 的时间演化。

3 PRELIMINARIES(准备工作)

①:问题定义) :

给定用户 u ∈ U 和交互历史 sus_usu = {(i1i_1i1,t1t_1t1), (i2i_2i2,t2t_2t2), · · · , (iNu, tNu )} ∈ S 和 NuN_uNu 的交互( (tnt_ntn < tnt_ntn‘ for any n < n ′ < NuN_uNu ), 推荐任务为:考虑目标时间t之前的交互序列,记为suts^t_usut ,生 成一个包含k个用户在t时刻可能感兴趣的项的有序列表。 除此之外,令R是所有项关系的集合,每个关系r ∈ R ,其矩阵IrI_rIr ∈ NM×NN^{M × N}NM×N,其中M为项的总数,如 果关系r对项 i 和 j 成立,则IrI_rIr(i,j)=1,否则为0.关系r可以是互补关系,取代关系等等

②:Knowledge Graph Embedding (知识图嵌入)

项目关系信息可视为一个知识图,构件为一组三元组(i,r, j),其中i和j表示不同的项目,r表示关系类型。 例如,(AirPods, is_complementary _o f,iPhone)意思是AirPods是iPhone的补充。 需要注意的是,有时候一个三联组的反义词可能不成立 (例如,iPhone不是AirPods的补充),因此关系图是方向性的。

为了将关系图的结构信息引入到推荐系统中,获取具有项目关系语义意义的嵌入件是非常重要的。 在各种嵌入方法中,基 于翻译的模型[3,25,43]的效率和有效性最为突出。 其内在思想是将项目和关系嵌入到相同的潜在空间中,并找到一个翻译 函数来最小化得分函数:

其中D(·)是度量距离的度量函数(通常为l2-范数)。Trans(i, r)是一个任意的平移函数,它可以是一个简单的平移操作,也可 以是一个专门设计的神经网络。 许多工作都集中在扩展翻译功能的能力上,如TransE [3], TransH [43], TransR[25] 等。 对于TransE[3],平移函数为Trans(i, r) = i + r,任意三联体(i,r, j)应用l2-norm时的评分函数为f (h,r,t) = ||h + r−t||2。 为了从关系图中学习项和关系的嵌入,将基于边缘的损失[45]最小化如下:

对于每一个三元组,尾项都被一个随机抽样的项j '所取代,以确保(i,r, j ')在知识图中没有被观察到。

类似地,头项被i '替换,并且(i ',r, j)也无法被察觉到。 上述目标函数的目的是区分被观察到的三联体和被破坏的三联 体,并强制嵌入保留项目之间的关系。 _

③:Base Methods for Recommendation (项目基于的推荐方法)

项目建模方法 :贝叶斯个性化排序(BPR)和广义矩阵分解(GMF)

贝叶斯个性化排序(BPR)[33]是一种应用广泛的矩阵分解方法,广义矩阵分解(GMF)[11]是一种最先进的基于神经网络的方法。

CF方法假设相似的用户喜欢相似的条目。在BPR的情况下,每个用户和物品 都有一个k维的潜在因子,其排名得分计算如下:

其中bub_ubu和bib_ibi分别为每个用户和item的偏移。

在GMF情况下,通过多层神经网络得到的排名得分可以表示为 :

ϕout\phi_{out}ϕout和ϕx\phi_xϕx的映射函数分别表示输出层和x-th 神经协同过滤层,还有x神经CF层。选择的项目 应该根据预测的得分yuiy_{ui}yui进行排名

为了学习推荐模型中的参数,可以对排序损失[33]进行优化,优化方法如下: 式中,指标为sigmoid函数,负项为jjj ∉\notin∈/ SuS_uSu对每个训练实例随机采样SuS_uSu。

4 CHORUS MODE

①:Model Overvie

Chorus是一个两阶段的模型,它综合了项目关系及其特定的时间效应。在第一阶段(关系建模) 中,利用图嵌入将项目关系的结构信息编码为嵌入。 第3.2节中描述的各种基于转换的方法在这里可以灵活地利用。关系图 嵌入的结果将用于推导Chorus模型的基本表示和关系表示

图2:Chorus模型概述 : 在第一阶段(关系建模)中,使用图嵌入来学习项和关系的基本嵌入。 在第二阶段(动态项表示), Chorus给每个项额外的关系表示。然后,根据序列上下文动态地组合这些表示。最终知识感知的动态项嵌入可用于各种算 法(如BPR和GMF)的推荐。

在第二阶段(动态项表示),有两个关键模块: (1)动态积分;(2)时间核函数设计

4.2 Dynamic Integration

首先,我们根据关系图嵌入的结果,为每个项定义基本表示(记为ibi_bib)和关系表示(记为iri_rir,记为关系rrr∈RRR)。基 本表示对项的固有特征进行编码,因此在第一阶段学到的项嵌入将用于初始化ibi_bib。然后利用平移函数得到关系表示:

在得到基本项和关系项表示后,重点研究如何根据不同的上下文动态地组合它们,这是我们的Chorus模型的核心思想。请 注意,关系表示是知识感知的,但仍然是静态的。我们的目标是为每个关系表示导出上下文感知系数frf_rfr,反映当前上下 文的实际影响程度。最后提出嵌入iChorusi_{Chorus}iChorus的上下文感知和知识感知项表示如下:

它由基本项表示和尺度关系表示两部分组成,其中上下文(历史序列StuS_t^uStu、时间ttt和目标项iii)作为系数frf_rfr的输 入。接下来,我们重点讨论如何在给定的语境下获得合理的frf_rfr。

直观地看,有些关系表示在某些情况下可能没有效果,甚至有负面效果。图3给出了一些示例,说明如何期望这些表示在不 同上下文中对最终嵌入做出贡献。三角形的三个角代表目标项目的不同表示。当没有关系消耗(上下文A)时,最后的嵌入只 是基本的项表示,其他两个关系项没有影响 . 当Powerbeats或iPhone刚刚购买时(上下文B和C),对应的关系表示应该分别 具有消极和积极的影响。而如果替代品是很久以前购买的(上下文D),替代品的表现形式可能对最终嵌入产生积极的影响。 此外,当序列中有许多不同的关系项时,这三种表示都将不同程度地发挥作用

图3:说明如何根据序列上下文动态组合不同的表示。

为了考虑这种不同关系的时间动态,我们创新性地为每种关系设计了时间核函数,它是一个关于消费之间滞后时间的连续函 数。时间核函数的目的是控制每次关系消耗的影响程度。函数值的极性表示作用的极性。假设我们已获得核函数 krik_r^ikri(∆t),索引项iii和关系rrr(具体设计和相关讨论左在下一节),我们建议定义关系系数frf_rfr如下:

其中IrI_rIr为关系矩阵。每个前消费关系rrr的目标项目我有添加剂影响系数frf_rfr,由核函数控制krik_r^ikri(·)。通过这 种方式,关系系数使得不同的表示法能够在不同程度上对最终的嵌入做出贡献,这与以前分配静态项嵌入的研究不同。由于 时间核函数的存在,关系表示可能会由于长时间间隔而几乎不起作用,甚至在某些情况下会产生负面影响。因此,Chorus 嵌入可以更好地捕捉项目在不同上下文中的含义,从而更好地模拟用户随时间变化的需求。

此外,为了简单和高效,我们可以只考虑历史序列中最新的关系项,在这种情况下,Equ。(7)可以直接表示为:

∆trt_rtr表示从最近一次物品消耗到现在物品消耗的时间,rrr与当前物品相关。如果某一关系在历史序列中没有关系项, 我们假设存在一个正无穷时间间隔(即∆trt_rtr = +∞)。在时间核函数随时间接近于零的情况下,相应的关系嵌入不会产生 影响

∆trt_rtr表示从最近一次物品消耗到现在物品消耗的时间,r与当前物品相关。如果某一关系在历史序列中没有关系项, 我们假设存在一个正无穷时间间隔(即∆trt_rtr = +∞)。在时间核函数随时间接近于零的情况下,相应的关系嵌入不会产生 影响

make it a chorus笔记相关推荐

  1. 红宝书背诵笔记 — 基础词

    红宝书基础词 基础词-Unit1 基础词-Unit2 基础词-Unit3 基础词-Unit4 基础词-Unit5 基础词-Unit6 基础词-Unit7 基础词-Unit8 基础词-Unit9 基础词 ...

  2. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  3. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  4. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  5. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  6. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  7. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  8. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 王道考研 计算机网络笔记 第六章:应用层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...

最新文章

  1. 简述一下生成对抗网络GAN(Generative adversarial nets)模型?
  2. COM中的IDL语言的难点之接口指针
  3. 再见,Springboot和SpringCloud
  4. 山石网科发布重磅容器安全产品“山石云铠”,云安全版图再下一城
  5. python import numpy_python之numpy
  6. 解决qt程序运行时的cannot create Qt for Embedded Linux data directory: /tmp/qtembedded-0
  7. react-native 错误捕捉与处理
  8. 文字在div中的垂直居中问题 div在页面中的水平垂直居中问题 vertical-align ??????
  9. android 安全加固总结报告,[原创]某加固详细分析总结,另附该加固脱壳机
  10. 学了这么久的高并发编程,连Java中的并发原子类都不知道?这也太Low了吧
  11. 疯狂HTML5 CSS 3 JavaScript讲义 (李刚) 高清PDF扫描版
  12. acm 程序设计大赛各种输入方式(python版)
  13. java软件工程师简历格式模板,重要概念一网打尽!
  14. jetson nano opencv 打开 CSI摄像头_opencv-python图形图像处理入门基础知识
  15. 如何24小时实时监控网站访问状态?
  16. JavaScript实现:抽奖活动
  17. Gerrit代码审计系统实战-Gerrit 2.15.14版本快速搭建
  18. VUE实现长时间未操作退出登录
  19. system32里的文件说明
  20. 从联想ThinkStation工作站,窥见工具文明的新纪元

热门文章

  1. 用SQL Server 2017图形数据库替换数据仓库中的桥表
  2. 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?...
  3. Flash ActionScript 2.0基础教程
  4. flash物理引擎应用:你的第一个Fisix应用程序
  5. 2017黑色主题 server sql_王智好美,一袭黑色亮片吊带长裙,造型简约大气,时尚优雅...
  6. 使用Mondrian Virtual OLAP Cube 实现星座模型并在saiku展现分析
  7. 答应我,安装chromedriver,按照版本号,v70就安装v2.42,
  8. Tomcat启动默认访问项目
  9. 分享一个SQL文件的合并的小程序
  10. 轮环(Ouroboros)世界观介绍,摘自Guide Book