【推荐系统】【论文阅读笔记】【survey】A Survey on Session-based Recommender Systems基于会话的推荐系统综述

论文链接:arXiv:1902.04864v1

一、为什么需要基于会话的推荐系统(SBRS)

基于内容的RS和协作过滤RS是两个具有代表性的RS。

然而,这些传统的RS仍然存在一些缺点。关键的一点是,它们只关注用户的长期静态偏好,而忽略了用户的短期事务模式,这会导致用户的偏好随时间的推移而丢失。在这种情况下,用户在某个时间点的意图可能很容易被其历史购物行为淹没,从而导致不可靠的推荐。这是因为这些RS通常以较小的粒度将一个基本事务单元(例如,会话)分解为多个记录(例如,用户-项交互对),然后混合所有这些记录。这种分解实际上破坏了事务行为中嵌入了用户的偏好转移的内在本质。

另一个典型的缺点是,在某些情况下,由于隐私问题,用户id并不总是可用,因此需要用户信息的传统RS不适用。在这种情况下,只能对没有特定用户信息的事务数据提出建议。

为了解决上述问题,有必要考虑事务结构,以便在推荐中捕获更丰富的信息。换句话说,有必要学习用户事务行为模式和用户偏好从一个事务转移到另一个事务。为此,最近提出了SBRS。在这里,会话可以被视为一个购物事件中包含多个购买项目的事务。与基于内容和协作过滤的RS不同,SBRS综合考虑了从一个会话嵌入到另一个会话的信息,并将会话作为推荐的基本单元,如图1的下半部分所示。这样,SBRs的目的是最大限度地减少由于忽略或破坏会话结构所造成的信息损失,如在一些现有方法中。

除了事务性领域之外,sbrs还广泛应用于其他领域,如下一个web页面推荐、下一个POI推荐、旅游推荐、下一首歌曲推荐、下一部电影推荐等等。为了涵盖这些不同的领域,在这项工作中,“会话”的概念并不局限于事务,而是指在一个时间或某个时间段内消耗或访问的元素的集合。例如,用户在一次互联网冲浪中访问的网页可以被收集到一个会话中,用户在一小时或一天内收听的歌曲也可以被分组到一个会话中。

总结下来就是:从研究的角度来看,SBRS可以有效地保持会话数据的自然特性(即会话结构),并最大程度地避免本地信息丢失因此更关注会话数据的动态和局部方面,从而提供更可靠的建议。

 

【推荐系统】【论文阅读笔记】【survey】A Survey on Session-based Recommender Systems基于会话的推荐系统综述_第1张图片

二、session和session-based recommender systems的概念明确

 

  session:是在一个事件(例如,事务)中或在某一时间段内收集或使用的一组项(例如,指任何对象,例如,产品、歌曲或电影),或在一个时间段(例如,一小时)内发生的一组动作或事件(例如,听一首歌)。

例如,在一个事务中购买的一组项目和用户在一小时内收听的歌曲列表都可以被视为会话。此外,用户在一小时内连续单击的网页也可以被视为会话。

(基于会话的推荐系统(SBRS):给定部分已知的会话信息,例如会话的一部分或最近的历史会话,SBRS旨在基于建模会话内或会话之间嵌入的复杂关系来预测会话的未知部分或未来会话。

【推荐系统】【论文阅读笔记】【survey】A Survey on Session-based Recommender Systems基于会话的推荐系统综述_第2张图片

 (Intra-session context)会话内上下文:将会话Sn作为要做出推荐根据的当前会话(推荐Sn中的未知项it),则会话内上下文C^{Ia}为Sn中已知的项目集。

 (Inter-session context)会话间上下文:将会话Sn作为要做出推荐根据的当前会话,则会话间上下文C^{Ie}为S之前最近发生的会话集

我们区分了上述两种会话上下文,因为它们实际上涉及到推荐任务的不同类型的关系:会话内上下文嵌入了会话内依赖,会话间上下文主要传递会话间依赖。

 (Session-based recommendation task)基于会话的推荐任务:给定会话上下文C,基于会话的推荐是学习将C映射到推荐目标t:

tfC)的函数f。请注意,会话上下文是基于会话的建议的主要信息;有时,项目特性和用户特性等附加信息也可以作为补充信息并入基于会话的建议中。SBRS通常分为下一个项目推荐,以及下一个会话推荐。

(Next-item(s) recommendations)下一项推荐:给定当前会话的会话内上下文C^{Ia},下一个项目建议预测C^{Ia}条件中的下一个项目。应当指出的是,大多数下一个项目的建议只考虑到本次会话,少数工作将最近的会话作为增编纳入这一上下文中。

(Next-session(next-basket)recommendations)下一会话(篮子)推荐:给定当前会话s的会话间上下文C^{Ie},下一个会话建议将预测会话Sn中可能包含的那些项。

三、会话数据的层次结构及其在SBRS中的具体挑战

项目是关键概念,也是最重要的组成部分

【推荐系统】【论文阅读笔记】【survey】A Survey on Session-based Recommender Systems基于会话的推荐系统综述_第3张图片

                                                         会话数据的层次结构及其在SBRS中的具体挑战

挑战:

1.内部会话挑战:会话中存在相当复杂的结构。具体来说,层次结构由多个级别组成,从包含在该会话中的项到项的相应特征,再到这些特征的相应值。因此,内部会话挑战包括项目级、特征级、特征值级上的所有挑战以及这些级别之间的交互。

2.会话间挑战是指与会话之间的交互相关联的挑战,包括上图右侧列出的会话级的挑战。一些典型的挑战包括会话异构性、会话之间的顺序依赖性和会话的动态性。

3.外部会话挑战主要包括三类:域级的挑战、建模与会话相关联的上下文的挑战以及外部会话挑战和会话间挑战之间的交互

    SBR中的所有层次上的所有具体挑战可分为以下四类:

(1)各层次内部的异质性是指各层次上具有不同特征的不同元素,因此不能平等对待或以相同的方式建模。

•价值异质性:一个特征的特征值通常分布不同,因此不能平等对待。例如,某些值可能比其他值更频繁。

•特征异质性:一个项目通常包含不同类型的特征,包括分类特征和数值特征,这些异质特征不能以相同的方式建模。

•项目异质性:会话中的项目也有不同的分布(例如,有些项目非常流行,而大多数其他项目可能很少出现)。特别地,sbrS中的上下文项通常是异构的,因为它们与下一个项的关联度不同

•会话异质性:同样,会话异质性主要是指在一系列会话中,不同的上下文会话以不同的规模与当前会话相关;有些会话甚至是无关的或有噪声的会话。

•上下文异质性:各种类型的上下文因素,如时间、地点、季节和用户,对会话的演化有协同作用,但有不同的贡献;它们不能用统一的方法建模。

 

(2)各层内的联接器,由各层内的黄线表示。这里耦合指的是不同层次上的不同元素以某种方式相互依赖的相互作用,它们之间存在着不同的相互作用。

•值级耦合:它包含两种不同类型的值耦合:特征值内耦合和特征值间耦合。前者是指来自同一特征的不同值之间的相互作用(例如,具有相似频率的值在它们的重要性上被视为相似的,而后者是指来自不同特征的值之间的相互作用(例如,项目的类别可能对其价格有一些影响)。

•特征级耦合:它表示一个特征对另一个特征有影响,或者几个特征的组合推断出一个特定的模式,揭示出一个特殊的语义;

•项目级耦合:这表示会话中项目之间的公共交互。例如,超市里的一些商品(如面包和牛奶)通常是一起买的。

•会话级耦合:指不同会话之间的交互。在现实世界中,最近的会话通常会对当前会话产生一些影响。例如,一周前购车的用户可能在当前交易中购买了汽车保险。

•域级耦合:指不同域之间的相互作用。假设用户喜欢电影《泰坦尼克号》,那么他可能会喜欢电影中的主题曲《我的心会继续》。在这种情况下,两个域(电影和歌曲)是交互式的。

•语境耦合:指不同语境因素之间的相互作用。例如,在冬季周末发生的购物事件中,用户可能会选择与夏季工作日购物清单中的项目不同的项目。

(3)每个层次内的其他复杂性,例如,在项目级别上,复杂性可以包括隐式项目依赖性、项目不平衡性等;在会话级别上,可能存在挑战,包括对会话的长期依赖性,以及在某些上下文因素(如场所、时间和用户)下的会话建模。

 

(4)各种不同层次的相互作用。这里我们列出两个最典型的例子。

•特征项交互:项目的特征通常影响其在事务中的出现。例如,属于同一类别的项更可能一起出现。这种交互作用的良好建模有利于冷启动项目问题,其中项目发生数据非常有限。

•会话项交互:其他会话可能导致当前会话中是否出现某个项。例如,最近买了房子的用户可以在当前交易中购买一些家具。

四、SBRS的概述

SBRS的相关工作分为两个明显不同的阶段:90年代末到20世纪初的无模型阶段和20世纪初到现在的基于模型阶段。第一阶段是数据挖掘技术的发展,包括模式挖掘、关联规则发现和序列挖掘。随后,主要是基于模式/规则和基于序列的推荐研究。根据文献回顾,我们发现2000年代中期是第一阶段的鼎盛时期,在这一时期发表了许多相关的著作。第二阶段是统计和机器学习技术的发展,特别是马尔可夫链模型、循环神经网络(RNN)模型等时间序列相关模型的发展。近年来,由于深度学习技术的快速发展,基于模型的RS2017年以来达到了顶峰。在过去的两年里,许多研究人员冲进这个领域,为下一个项目或下一个篮子的推荐开发了各种神经模型。

五、分类

1.研究问题视角下的分类

 

(1)推荐内容:推荐场景和设置的分类通常,SBRS获取的会话数据可以分为两类。

第一种是购物篮式的数据(如天猫数据集),它有一个清晰的内在会话结构。例如,每个购物篮都有明确的界限,使其与其他购物篮区分开来。在这种情况下,购物篮是一个天然会话。根据是为本次会话还是为下次会话推荐项目,这类数据的推荐任务可分为下一项推荐和下一篮子推荐。

另一种是类似事件历史的数据,其中原始数据通常被组织为事件记录的集合,例如电影数据(例如MovieLens数据集)和POI数据(例如Foursquare数据集)。与购物篮数据不同的是,事件历史数据通常没有天然的会话结构,也就是说,没有明确的边界将事件分割成不同的会话。例如,与购物篮不同,购物篮通常由用户一次购买的多个项目组成,用户通常每次只观看一部电影。因此,会话特性更加模糊,并且这些数据中的依赖性可能不如购物篮式数据中的依赖性强。这类数据通常通过使用时间滑动窗口等技术手动分割成多个会话,以便提出基于会话的推荐。因此,关于此类数据的建议任务总结为下一个事件/行动建议。接下来,我们首先详细说明这三个推荐场景,然后总结每个场景中的最新进展。

(a) 下一个项目建议主要通过建模会话内依赖关系来推荐会话中的下一个或多个项目(通常是购物篮)。下一项建议是基于会话的推荐的主流和最常见的设置。最近,下一个项目的建议引起了很大的注意,并取得了许多进展。

(b)下一个篮子建议主要通过建模会话间依赖关系(有时也包括会话内依赖关系)来推荐下一个会话中可能出现的项目(例如购物篮)。与下一个项目的建议相比,下一篮子建议受到的关注较少,在这种情况下取得了一些进展

(c) 下一个事件/动作建议是通过模拟会话内或会话间的依赖关系,或同时模拟两者,来推荐下一个事件或动作(例如,看电影或听歌曲)。这些是基于会话的推荐的另一个重要例子,通常构建在没有自然会话结构(如电影或POI数据)的数据集上。许多研究者已经注意到下一个事件/动作推荐的不同应用,包括下一首歌曲推荐、下一部电影推荐和下一个POI推荐,并且已经取得了许多进展。

【推荐系统】【论文阅读笔记】【survey】A Survey on Session-based Recommender Systems基于会话的推荐系统综述_第4张图片

(2)如何推荐:推荐方法的分类。基于会话的建议的方法通常模拟复杂的依赖关系,分为以下四种方法:

 

①项目级依赖关系建模。项目级依赖关系建模是指在会话中为下一个项目或下一个事件建议建模项目间或事件间依赖关系。这也被称为会话内依赖建模。目前,SBRS中的大多数工作都属于这一分支。

在项目级依赖性建模中,有几个典型的问题会对依赖性建模的质量和建议的性能产生巨大的影响

 

      a. 有序或无序项目集。实际会话数据通常分为两种类型:有序数据和无序数据,这取决于会话中的项是否有顺序。例如,在医疗序列数据或基因表达数据中,治疗活动或基因的顺序是相当严格的,不能被破坏。虽然在杂货购物篮数据中,购物篮中商品的顺序可能没有多大意义,因为许多客户可能只是随机地拿起商品并将其放入购物篮中。此外,在实际情况下,通常无法在记录数据的事务中很好地保存项目放入购物车的原始顺序。

为此,一些处理基于会话的推荐的项级依赖关系的方法假定会话中的项具有严格的顺序,并且它们主要依赖于项的顺序依赖关系。一种简单的方法是基于序列模式挖掘的RS,它显式地挖掘频繁的序列模式来指导推荐。为了在会话中捕获更多的隐式顺序依赖项并尽可能地保留原始信息,提出了基于马尔可夫链的方法和基于神经模型的方法,特别是基于RNN的方法。马尔可夫链模型和RNN由于其对时间序列数据的特殊模型设计,具有捕捉综合序列依赖的自然优势。

    其他方法试图放松或避免排序假设,使它们更灵活和实用。在这种情况下,这些方法对项目没有排序假设。基于模式/规则的方法简单明了。它们基于项目共现明确地发现频繁模式,以指导建议,为了在数据集中保留频繁项和非频繁项,并捕获对项更全面的隐式依赖,采用了更高级的方法。它们包括基于因子分解机的方法、基于浅层神经网络(也称为嵌入)的方法、基于朴素深层神经网络(DNN)的方法和基于卷积神经网络(CNN)的方法。

      b.一阶依赖与高阶依赖。会话数据中的某些依赖项是一阶的,而其他依赖项可能是高阶的。因此,一些方法建立在一阶依赖性假设的基础上,只捕获项目上的一阶依赖性;换句话说,它们只通过考虑前一个项目来预测下一个项目。属于这一类的典型方法包括基于一阶马尔可夫链的方法和基于因子分解的方法。然而,大多数会话数据不仅涉及一阶依赖,而且还涉及高阶依赖。在这种情况下,需要更高级的方法,例如基于神经模型的方法,以获取更高阶的相关性,从而获得更合理的建议。基于神经模型的方法,包括浅层神经网络和深层神经网络,可以利用复杂的网络结构综合地捕获一阶和高阶依赖关系。

②会话级依赖关系建模:由于会话是基于项构建的,因此会话级依赖关系建模通常伴随着项级依赖关系建模。

会话级依赖建模方法主 要分为两类:项目依赖建模和集合依赖建模。

    –项目依赖性建模。它对来自不同会话的项之间的依赖关系进行建模。这种方法首先探索会话之间项目的转换,然后根据已放入当前篮子中的项目预测下一篮子中可能出现的项目。因子分解机已经被用于通过建模项目对项目的依赖性来生成下一个篮子推荐。

    –集体依赖模型。与上述项目依赖模型不同,集体依赖模型通过将每个会话作为一个整体来建模会话间依赖。整个会话的表示可以通过层次神经模型来学习,该模型首先学习项目表示,然后集成会话中每个项目的表示。在模型的训练过程中,通常使用下一个会话作为输出来指导最近会话的表示学习,因此所学习的表示实际上可以反映历史会话和下一个会话之间的依赖关系。

③特征级依赖关系建模:

是指为特征间依赖关系和特征到项依赖关系的建模方法。特性之间的依赖性意味着一个产品的一个特性可能以某种方式影响另一个特性,例如,不同国家生产的苹果通常价格不同。特征到项依赖关系表示会话中项的出现通常受其特征的影响,例如,属于同一类别(例如,食物)但具有互补功能(例如,吃和喝)的项通常一起购买,因此在同一会话中发生(例如,事务)。项目特征的参与使我们能够从低层次的角度理解项目的内在特征。因此,特征级依赖关系建模通常可以极大地解决推荐的冷启动问题。

在传统的RS(包括基于内容的RS和协作过滤的RS中,对冷启动项建议的特征级依赖性建模已经取得了很大进展。然而,特征级依赖模型在SBRS中的研究较少,处于早期研究阶段。只有很少的研究者开始通过将内容特征合并到一个神经模型或一个因子分解模型中来解决冷启动问题,以用于下一个项目或下一首歌曲的推荐。

④特征值级依赖建模&领域级依赖建模。

特征值级依赖建为模捕获特征内依赖关系和特征值-特征-项依赖关系的建模方法,而领域级依赖建模捕获不同领域之间依赖关系去帮助构建在某一个领域或者所有领域的基于会话的RS。

2.基于技术角度进行分类

(1)无模型方法:

主要建立在数据挖掘技术上,通常不涉及复杂的数学模型。其基本思想是通过挖掘会话数据中的模式来发现通用的和明确的规则,然后利用这些规则生成推荐。

   ①基于模式/规则的RS基于模式/规则的RS主要包括三个阶段:频繁模式挖掘、会话匹配和项目推荐。首先挖掘频繁模式或关联规则,然后使用这些模式和规则指导后续的建议。这是基于这样的假设:大多数顾客都会遵循常见的购物模式。例如,顾客通常在购物时一起买牛奶和面包,因此{milkbread}可以作为一种常见的模式,向那些买牛奶的人推荐面包。应该注意的是,基于模式/规则的RS应用于无序数据。

    具体来说,给定一个项目通用集 I 对应会话集S,使用AprioriFP-Tree等模式挖掘算法挖掘一组频繁模式PT={p1p2p|PT|}。对于给定的部分会话S'(例如,事务中所选项目的一个集合),如果项目 i' 存在(其中i'属于 I但不属于S'),使得S‘并i'是一个频繁模式,即S‘∪i’∈PT,则项 i' 是推荐的候选。此外,如果条件概率Piˆ| sˆ)大于预先定义的置信阈值β,则将添加到推荐列表中

     

   ②基于顺序模式的方法 为了处理对项目有严格排序或涉及时间因素影响的数据,提出了基于序列模式的RS。与基于模式的RS类似,它们首先挖掘序列模式的集合,然后在先前项目出现之后推荐其余项目

      基于顺序模式的方法与基于模式/规则的识别相似,但在有两方面的不同:  

     a.它主要捕获跨会话建议的会话间依赖关系(例如,下一篮子建议),这不同于基于模式的RS捕获内部会话建议的会话内依赖关系(例如,下一项建议);(2) 它考虑了会话的顺序,因此更适合于序列数据。

与基于模式/规则的RS类似,基于序列模式的RS也包含三个阶段:序列模式挖掘、序列匹配和推荐生成。

给定序列集Q={q1,q2,…,q|Q|}(其中序列q={s1,s2,…,s|q|}(q∈Q)是按其唯一时间戳排序的会话顺序集)和用户u的过去序列qu,基于序列模式的RS通过将qu与在Q上挖掘的序列模式相匹配来生成推荐。具体地说,qu={s1,s2,…,sh}是u的序列,sp={p1,p2,…,p |sp|}是在Q上挖掘的序列模式集。对于任何模式p∈SP,如果qu的最后一个会话属于p,即p={s1,s2,…,sh,sl…},那么模式p是这个特定建议的相关模式,p中sh之后的项(例如sl中的项)是候选项。对于每个候选项i,其支持度是所有相关模式支持度的总和。

2)基于模型的方法

基于马尔科夫链的推荐系统。基于马尔可夫链的RS采用马尔可夫链对会话中的项目进行转换建模,在给定会话中的一系列先前项目的情况下,预测可能的下一个项目。为了降低模型复杂度,大多数RS都建立在一阶马尔可夫链上。

A。基于马尔科夫链的基本方法:一般来说,基于Markov链的基本RS的过程很简单:首先计算训练数据中一个项目序列的转移概率,然后将用户的购物序列与计算出的转移概率序列进行匹配,以进行预测和推荐。这些具有高概率的候选项被放入推荐列表中。

给定会话集S,每个会话s∈S是具有严格顺序的项序列。以每一项为节点,以每一对项之间的共现为边,建立马尔可夫链概要,将所有会话编码成有向图G。每个项目的频率和每个项目对的共现次数分别对应于节点权重和边缘权重。因此,每个会话由G中的路径描述。

马尔可夫链模型定义为一组元组{ST,Pt,P0},其中ST是包含G中所有不同节点的状态空间,Pt是m个不同项之间的m*m一步转移概率矩阵,P0是ST中每个状态的初始概率。然后,我们可以使用上述一阶马尔可夫链模型来估计购物路径{i1→i2→i3}的概率。给定一系列选择的商品,我们选择高概率的购物路径,并以给定的序列作为前缀。这些项出现在这些路径中,并且在将给定序列放入建议列表之后。

B。基于潜在马尔可夫嵌入的方法:与直接基于显式观测值计算转移概率的基于基本马尔可夫链的RS不同,基于隐马尔可夫嵌入(LME)的RS首先将马尔可夫链嵌入到欧氏空间,然后根据其欧氏距离计算项目之间的转移概率[26]。这样,它可以驱动未观测的跃迁,从而解决有限观测数据中的稀疏性问题。形式上,每一项i都被表示为d维欧几里德空间中的向量Vi,并且假设从第j-1个项目转移到第j个项目的转移概率P与项间的欧几里德距离负相关。

为了产生个性化推荐,有人提出了一种个性化Markov嵌入(PME)模型,该模型将用户和项目映射到欧氏空间,其中用户项目距离和项目项目距离分别反映对应的成对关系。

也有人提出了个性化的等级度量嵌入,通过对POI转换的等级进行拟合,利用未观测到的数据来学习嵌入。具体地说,所观察到的下一个POI被假定比那些未观察到的POI更与当前POI相关。例如,如果观察到转换j项目→k项目,而j项目→t项目没有观察到,则在项目j的排名中k应高于t,这被建模为在poi上的排名“>”。

②基于因子分解的方法

最近,因子分解机被用来将观察到的从当前项到下一个项的转换分解为项或用户的潜在表示。所得到的潜在表示用于估计建议的未观测跃迁。

该方法从观测数据中获得了个人的转换概率,为每个用户u建立了转换矩阵Au。因此,对于所有用户建立了一个类似于

A(|U|*|I|*|I|)的转换张量a,其中每个条目a_{u,i_{j},i_{k}}表示用户u下的项j到项k的转换概率。一个通用的线性分解模型,Tucker分解用于分解转换立方并估计未观测到的转换。

其中C是核心张量(core tersor),Vu是用户的特征矩阵,VIj与VIk是上一个项以及接下来的项相应的特征矩阵。

③基于神经模型的方法:基于神经网络强大的泛化和表示能力,提出了一系列基于神经模型的方法来建模项目特征、项目和会话之间的综合关系,以供推荐。一般情况下,基于神经模型的SBRS可根据神经网络的层数分为浅层神经模型和深层神经模型。

     A.浅层神经模型   该结构将会话中的项映射到一个潜在空间,然后更容易在该潜在空间中捕获项间关系。其背后的机制是,当将项目映射到多维潜在空间时,它们在该空间中的位置反映了它们之间的关系。例如,距离较短的项目具有更高的相似性,并且彼此之间的相关性更强。为此,每个项目的潜在数字向量表示包含比原始项目ID更丰富的信息。这主要是受到最近提出的单词嵌入技术(包括Skip gram和自然语言处理中的CBOW模型的巨大成功启发)

      

具有代表性的基于浅层神经模型的SBRS设计了一个具有宽进宽出结构的浅层网络,首先将用户id和相应的条目id映射成潜在的向量表示,然后将它们组合成给定的上下文表示,最后输入输出层(softmax层)以预测相应的下一个条目。

具体地说,浅层网络使用用于非线性变换的logistic函数δ(·)将用户u和项目i嵌入到潜在向量中:

【推荐系统】【论文阅读笔记】【survey】A Survey on Session-based Recommender Systems基于会话的推荐系统综述_第5张图片

其中W1和W2是将用户输入和会话上下文输入分别连接到隐藏层的权重矩阵。这样,每个用户和每个项都由一个数值向量Vu和Vi表示,与Word2Vec模型中每个词的向量表示相似

       另外,也有人将项特征合并入网络中,从而同时嵌入项id以及其特征从而解决冷启动问题。

   B.深度神经模型:

         B.a.基于RNN的模型它在建模顺序依赖性方面具有固有的优势,因为大多数会话数据都假设是顺序依赖的

         给定会话集S,其中每个会话sS对应于在事务中连续购买的一系列项目。GRU4Rec将每个会话建模为一个序列,在该序列中,它试图预测基于当前隐藏状态的序列的下一个元素的概率分布。GRU是一个高级RNN单元,旨在通过学习何时以及通过多少更新隐藏状态来处理梯度消失问题[。具体来说,其隐藏状态h_(t)更新如下:

其中,更新门zt和候选隐藏状态h hat分别由以下方程计算。zt决定每元从上一个状态更新其隐藏状态的程度。

【推荐系统】【论文阅读笔记】【survey】A Survey on Session-based Recommender Systems基于会话的推荐系统综述_第6张图片

其中σ是sigmoid公式,重置门rt由以下公式求出:

每个GRU单元代表一个隐藏状态,由一系列相连的GRU单元组成的GRU层构成RNN的隐藏层。在这种情况下,一个l长度的序列可以用一个带有l个 GRU单元的隐藏层来建模。输入Xi是项目I.在会话S中的嵌入。因此,给定S中的过去项目,GRU4ReC被构建为对连续项目建模会话内依赖性,从而预测下一个项目上的概率分布。

有人提出一个层次化的RNN模型,将跨会话信息合并到建议中,进一步改进了GRU4Rec。具体地说,设计了一个基于两级GRU的RNN:会话级GRU对用户在会话中购买的项目序列建模,并为下一个项目生成建议,而用户级GRU对跨会话信息传输进行建模,然后通过初始化其隐藏状态向会话级GRU提供个性化信息。为此,将捕获会话内和会话间的依赖关系,以生成更可靠的下一项建议。另一项非常相似的工作是[113]中提出的内部RNN(II-RNN)

     其他扩展包括:(1)在RNN中加入变分推理,以处理稀疏事务数据中的不确定性,同时利用模型在大型真实数据集上的可伸缩性[25,32];(2)在基于RNN的数据集中加入其他信息,如项特征和其他上下文因素,如时间、位置和接口增强建议的模型[12,53];(3)将时间衰减或注意力机制转换为基于RNN的模型,以区分会话内对项目的依赖性,从而获得更精确的建议[14,108];(4)传统的模型,如因子分解机或邻域模型,以弥补仅基于RNN的模型的缺点[63,128页]。其他类似的基于RNN的模型包括[50,67,145]。

     B.b.基于DNN的模型在会话中没有严格的项目顺序时使用DNN。DNN指的是由多层感知器(MLP)组成的朴素的深层神经网络结构。

      有的学者通过学习会话上下文下不同组件的嵌入与MLP层的优化组合,将DNN应用于学习用于建议的综合会话表示:

其中vscvsv是两个子会话(即点击子会话和查看子会话)的嵌入,这两个子会话都作为目标项预测的上下文,而vit和vu分别是目标项和相应用户的嵌入。Wc WvWt和Wu为相应的权重矩阵完全连接每个嵌入到DNN的第一个隐藏层。

        有人将DNN应用于学习不同因素的优化组合,如“提醒”、“项目流行度”和“折扣”,作为下一个项目预测的基于会话的复合特征[64]。另一个例子是DNN的实现,它将稀疏的用户项交互传递并推广到密集的、信息量丰富的会话特征,以进行预测。为了提高移动应用推荐性能,在Google Play上应用了一种结合深度神经网络的宽线性模型[28]。在[122]中,提出了一种基于DNN的体系结构,用于同时对长期静态和短期时间用户偏好进行建模,以获得更好的推荐。

      B.c.基于CNN的模型

      1)它放松了RNN常用会话中对项目的刚性顺序假设,使模型更加健壮;(2)它具有从某个区域学习局部特征和不同区域之间关系的能力,它可以有效地捕获通常被其他模型忽略的联合级集体依赖。

     有人提出了这样一个模型:主要包括嵌入层、卷积层和全连通层。具体地,卷积层分别包括水平卷积层和垂直卷积层。具体地,在水平卷积层中依次进行滤波和池操作。在水平卷积层中,通过在嵌入矩阵E上自上而下滑动一个滤波器Fk来获得第i层卷积值,以与其水平维度相互作用

其中φc是卷积层的激活函数。然后,通过对卷积结果执行max pooling来获得n个滤波器的最终输出oRn,以捕获最重要的特征:

类似地,在垂直卷积层中,卷积结果是通过滑动嵌入矩阵E上的垂直滤波器与其列交互来实现的。最后,将两个卷积滤波器的输出串联成一个完全连接层的输入,以获得用于最终预测的更高层次特征。

六、前景与未来方向

 

1.具有一般用户偏好的基于会话的建议

SBRS通常忽略了一般用户的偏好,而这一点可以很好地被其他传统的RS(如协作过滤)所捕获。这可能导致不可靠的推荐,因为具有不同购物偏好和消费习惯的用户可能会选择不同的下一个项目,即使在同一会话上下文中。在这种情况下,如何从会话数据中学习一般的用户偏好,然后将其合并到SBRS模型中是关键的,但也是具有挑战性的。

未决问题.:在这里,我们讨论了两个主要的问题:

-      如何将用户的显式偏好合并到SBRS中?在这种情况下,假设用户对其购买的物品的偏好以用户物品偏好矩阵的形式获得。一种直观的方法是,首先利用矩阵分解(MF)等传统方法预测用户对所有候选项的偏好,然后利用预测的偏好数据作为约束条件来调整SBRS中的候选排序和选择。例如,如果根据会话上下文在下一个选择中选择两个候选项具有相似的可能性,则对特定用户具有更高偏好的项可以放在推荐列表中其他项的前面。另一种方法是将上述两个因素结合起来对候选项进行排序。在[155]中,作者提出了一个生成性对抗网络(generative-departarial network,GAN)框架来利用基于MF和RNN的混合模型进行电影推荐,该模型可以联合学习长期偏好和短期购物模式。

-      如何在没有明确偏好数据的情况下将用户体验融入SBRS?在真实的单词案例中,显式的偏好数据可能并不总是可用的,因为客户可能不会对他们购买的所有商品进行评分。在这种情况下,基于购物篮的事务数据通常被视为一种隐式反馈[48,49],以指示用户偏好。现有的一些工作(9, 110)已经探索了如何在协同过滤中从这样的隐含反馈数据中学习用户的偏好。实际上,在基于会话的重新编译场景中,通常可以获得诸如项的单击或视图之类的数据[116]。注意,在某些情况下,这种隐式偏好数据甚至与SBRS中使用的会话数据相同。因此,如何同时从同一数据源中学习用户的内隐偏好和短期模式,避免信息重复,是SBRS中尚未得到有效解决的一个具有挑战性的问题。

2 .考虑更多上下文因素的基于会话的建议

推荐上下文是指用户在项目上进行选择时的实际情况和具体情况。上下文因素指可能影响用户选择的不同上下文相关方面,例如天气、季节、位置、时间和最近的流行趋势。考虑到这些背景因素可能会对推荐性能产生巨大的影响。其他研究者如Gediminas el al也强调了RS中语境的重要性。SBRS可以看作是一个简化的上下文感知RS,其上下文被简化为会话上下文[128]。

未决问题.:尽管语境信息已经被纳入到其他的认知规则中,甚至语境感知的认知规则已经被提出作为一种新的范式[5129],但在sbr中很少有人利用语境。

-如何在sbr中加入更多的上下文因素?提出了一种用于推荐的上下文RNN(CRNN),以将上下文因素包括用户项交互的类型、会话中不同事件之间的时间间隔和一天中的时间纳入基于RNN的sbrs中[120]。在[62,75]中,最近的流行趋势、用户最近浏览的项目以及购物中心中有折扣的项目被视为基于会话的推荐的上下文因素。然而,这些方法仅仅是一个起点,在如何收集更多的上下文信息以及如何开发模型以更有效地将这些信息融入sbr中仍然需要更多的探索。

3 .带噪声和不相关项的基于会话的推荐

 目前,基于RNN和Markov链的序贯sbr对连续项具有很强的依赖性。然而,在真实的事务数据中可能不是这样,因为用户可能只是随机地将他/她喜欢的一些项目放入购物车,这些随机选择的项目可能与所选项目和下一个选择都不相关。如果忽略这些情况,推荐结果很容易被这些噪声项误导。

未决问题. 如何在嘈杂的会议上提出可靠的建议?虽然关注度[141]和汇集度[125]等机制已经被应用于SBRS中,以强调下一步选择的那些真正相关和重要的项目,但相关的研究仍然相当有限。为了开发更健壮、更具弹性的模型来处理有噪声的会话,我们需要付出更多的努力。

4 .基于会话的多步骤建议

通常,购物活动包含多个步骤,而不仅仅是一个步骤。例如,当一个用户买了一个面包,他可能会买牛奶,然后购买奶酪。考虑到由面包组成的部分会话,目前大多数sbr只提出一个向前的步骤建议,即它们只对牛奶进行预测,而不是连续预测牛奶和奶酪。这可能会大大降低RS的利用率。

未决问题. 如何在给定部分会话作为上下文的情况下生成多步骤建议?这个问题是实际和关键的,但极具挑战性。考虑到多步骤建模的优势,编码器编码器框架[79,90]可能是解决此问题的直观选择。

5 .具有跨会话信息的基于会话的建议

 实际上,用户对下一个项目的选择可能不仅取决于同一会话中的项目,还受其他会话中项目的影响。假设用户购买了手机,那么他/她下次购物时可能会想购买手机套或配件。为此,考虑到跨届会议的信息可能会使一些基于届会的建议切实可行。

未决问题. 如何将跨会话信息集成到SBRS中?关于这个问题的探索是相当有限的。在[111]中的工作提出了一种分层的RNN体系结构来为基于会话的建议建模会话内和会话间的依赖关系。但它只是应用了一种非常直观的方法,将多个会话合并到一个RNN结构中。

6.基于会话的跨域信息推荐

跨域是指与提出建议的目标域不同但相关的另一个域[56]。通常,用户购买的商品涉及多个产品类别(领域),而不是一个领域,以满足其复合需求。此外,对来自不同域的项的选择可能彼此不独立。例如,用户可能先看了电影《泰坦尼克号》,并且非常喜欢它,然后他可能会听电影的主题曲《我的心会继续》,并且非常喜欢歌手“Céline”,因此,他可能会听其他歌曲,如“Céline”中的“我是你的天使”。在另一个例子中,喜欢《泰坦尼克号》中主人公“玫瑰”的年轻女孩可能会购买与“玫瑰”相同的衣服。这样的例子表明,来自不同领域的物品可能不仅依赖,甚至可以形成一个连续的会话,例如{泰坦尼克号,我的心会继续,Céline,我是你的天使}或{泰坦尼克号,玫瑰,玫瑰风格的衣服}。基于此类会议的建议很有趣,但也很有挑战性。一方面,这些建议不仅涵盖了我们日常生活活动的更多方面,而且在只考虑一个领域的情况下,也为解决数据稀疏问题提供了一个解决方案。另一方面,用户消费的产品或服务很难集中在不同的领域,不同领域的商品之间的关系要比同一个领域复杂得多。

未决问题. 根据来自不同领域的产品或服务能否形成紧密的会话,有两个有待进一步探讨的问题。

-      如何借鉴其他领域的知识来帮助目标领域中基于会话的建议?当不能在不同域的产品或服务上建立会话时,使用其他域的方式是目标辅助框架。具体来说,它以提出建议的目标域为主要信息源,以其他域为辅助信息源,利用推荐性能。一个直观的选择是转移学习[38100],

任务。尽管迁移学习

在协作过滤等领域有很好的应用[76,89,101,102],在SBRS中很少有人探索。

-      如何从多个域中提出基于会话的建议?这种情况发生在会话可以建立在来自不同域的元素上的时候,比如前面提到的例子{Titanic,My heart will go on,Céline,I'm Your Angel}。与上述目标辅助框架不同,这种情况对待来自不同领域的所有元素都是平等的,每个域都可以作为目标域。这比上面的案例更有趣,但也更具挑战性。它可以将用户几乎所有的日常活动集成到一个统一的RS框架中。然而,挑战来自两个方面:会话构建和模型开发。与一个域中基于会话的建议(通常自然会话已经存在)不同,跨域上几乎没有明显的会话可用。因此,如何从多个异构数据源构建合理的会话是第一个挑战。一旦跨域会话准备就绪,如何开发一个模型来有效地捕获来自不同域的元素之间复杂和异构的耦合关系[17]是另一个挑战。

七、结论

在本次调查中,我们对SBRS进行了系统的审查。本文首先通过对SBRS与其它RS的综合比较,阐述了SBRS研究的必要性,接着介绍了SBRS的形成及相关定义。然后,我们展示了SBRS的复杂性和挑战,然后简要概述了在SBRS的研究活动。综述了近年来的研究进展和具体技术。最后,对丁苯橡胶的研究进行了展望。

这篇综述建议对几个方向进行更深入的思考和研究。首先,任何推荐问题和应用的数学性质是非IID(非独立同分布),涉及层次耦合和非均质性,而现有的工作假设用户/项及其属性为IID。研究非IDS RS的性质和一些内在的复杂性和挑战的建议。第二,任何复杂的RS都是复杂系统〔18〕,应进一步努力理解系统复杂性,并探索一般和特定的数据复杂度和特性(21),一般与推荐问题相关,特别是与SBR相关。第三,除了目前在基于项目和基于会话的关系学习方面所做的具体努力之外,还应该在解决许多其他方面和层次的道路上做出更多的努力,包括用户/项目、其属性、用户/项目分组和域,并解决从属性到分组的层次性方面。第四,许多实际需要可能是关于下一事件、下一行动、下一选择等相关建议,以便将建议转变为可采取行动的建议,即使决策行动能够以建议为基础。最后,将进一步探讨SBRS中的许多具体问题,包括探索更深入的数据驱动建模和更高级的模型驱动建议,以发明针对特定问题和目的的多种强大建模技术。

你可能感兴趣的:(推荐系统)