二十三、MCPRN[2019]

  1. 在现实世界中,随着相应 context 的演变,用户需求会不断变化。这种 context-sensitive demand 的性质激发了人们最近对于 session-based recommender system: SBRS 的兴趣。session-based 推荐系统解决了静态推荐系统的空白, 其中静态推荐系统仅推荐 homogeneous item 而不考虑跨 sessiondemand dynamic 。因此,SBRS 通过建模 sessionitem 之间的依赖关系,从而针对 session(作为 context )向用户推荐该用户可能感兴趣的 next item

    大多数现有的 SBRS 通过形成forming 具有单一意图purpose 或目标goalsession 来作出推荐(例如,在购物篮分析 basket analysis 中购买食物和饮料之类的商品)。这通常违反了 session 可能会涉及多种类型的 item 的现实,其中每种类型对应于一个意图。以下图中第一行所示的 session 为例:

    • Janet 首先将培根放入购物车中作为早餐。
    • 然后她被一朵可爱的玫瑰饰品所吸引并将其添加到购物车中。
    • 她还为早餐选择了鸡蛋和面包,还选择了一个花瓶来装玫瑰。
    • 最后,她拿起一瓶牛奶结束了此次购物。

    对于这个例子,现有的 SBRS 将采用单通道single-channel建模方法,将 session 中购买的商品隐式关联为同质的 item 序列。如下图中的第二行所示。显然,当 session 中的 item 有多种意图时,这种方法无法区分 purpose-specificitem 依赖(如早餐 item 和饰品 item )。

    这里 “通道” 指的就是意图。

    上面的例子揭示了两种代表性类型的、 state-of-the-artSBRS 之间的显著 gap ,即基于单通道 RNNSBRS 和基于单通道注意力的 SBRSRNN-based 模型假设 session 中任何连续successiveitem 之间都具有严格的顺序依赖关系sequential dependency,因此:

    • gap 1:很容易生成错误的依赖关系,因为在多意图multi-purposesession 中并非所有 item 都存在顺序依赖。

    • gap 2RNN-basedSBRS 倾向于推荐最近的意图所对应的 item ,其中最近的意图是通过最近的 item 所指示的。

      这是因为:由于记忆 memory 随着 time step 而衰减 decay,那些远离 target itemcontextual item 将被 target item 附近的 item 所淹没。

    • gap 3attention-based SBRS 倾向于推荐 item 从而满足主要意图,对其它意图不利。

      为了减少无关 item 的干扰,人们将注意力机制纳入浅层网络、RNN 、以及 memory network 从而构建 SBRS 。注意力模型倾向于在极少数重要 item 上分配突出的权重,这使得 session 的意图由这几个 item 所主导。

    论文 《Modeling Multi-Purpose Sessions for Next-Item Recommendations via Mixture-Channel Purpose Routing Networks》 通过提出混合通道意图路由网络 mixture-channel purpose routing network: MCPRN 来解决上述三个 gap

    • 首先,MCPRN 使用意图路由网络 purpose routing network: PRN 自动地检测 session 中可能的多个意图。

    • 然后,MCPRN 使用混合通道循环网络 mixture-channel recurrent network: MCRN 建模 session 。其中,每个通道(即意图特定的循环网络 purpose-specific recurrent network: PSRN)建立在意图特定的循环单元purpose-specific recurrent unit: PSRU之上,并为特定意图构建 purpose-specific embedding 从而建模 item 之间的依赖项。

      PSRU 是一种 GRU 变体,它考虑了 item 属于当前意图的权重。 而 PSRNPSRU 构成。

    • 最后,通过集成所有通道来构建多意图 context embedding (即,session embedding ),从而对候选 item 进行排序,从而得到多样化的、purpose-sensitive 的推荐。

    多亏了 PRNMCRNsession 中的不同意图可以被检测到,然后这些不同意图的 item 依赖关系分别在不同的同道中被建模。结果,item 依赖关系是针对特定意图的,而不是针对一个整体而粗糙的意图的,这使得MCPRN 能够更集中地捕获意图驱动 purpose-driven 的用户行为。因此,MCPRN 以更有效、更鲁棒的机制来利用当前的单意图 SBRS 来表达多意图 session 。通过在 session 中保留和建模多个意图,MCPRN 可以推荐满足不同意图的多样化的 item ,而现有方法倾向于仅为单个意图推荐 item

    这项工作的主要贡献如下:

    • 论文提出了多意图建模,以更合理的方式捕获 sesion 中的用户行为从而适应实际情况。因此,论文提出了混合通道意图路由网络 MCPRN 来实现这一点。
    • MCPRN 中,意图路由网络 PRN 旨在推断每个 item 的意图并将它们路由到特定的通道。此外,特定意图循环单元 PSRU 是关键组件,它作为混合通道循环网络 MCRN 关于每个通道的基本单元。
  2. 相关工作:人们已经开发了各种 SBRS,包括:基于规则/模式的推荐系统(《Effective next-items recommendation via personalized sequential pattern mining》)、基于邻域的推荐系统(《When recurrent neural networks meet the neighborhood for session-based recommendation》)、基于马尔科夫链的推荐系统(《Personalized ranking metric embedding for next new poi recommendation》)、以及基于分解机的推荐系统(《Factorizing personalized markov chains for next-basket recommendation》)。我们简要回顾了两个具有代表性的 state-of-the-artSBRSRNN-basedSBRSattention-basedSBRS ,因为它们与我们的工作最相关。

    • RNN-based SBRS:由于RNN 在处理序列数据方面的优势,RNN 是捕获 SBRS 中复杂的 intra-session 依赖性的直观选择。

      • GRU4Rec 是第一个 RNN-basedSBRS,它采用 GRU 来捕获 session 中的长期依赖关系。
      • 后来,GRU4Rec 的改进版本(《Recurrent neural networks with top-k gains for session-based recommendations》)通过引入针对 RNN 量身定制的、创新性的 ranking loss function ,从而显著提高模型性能。

      由于采用了严格的次序假设 order assumptionRNN 很容易产生错误的依赖关系。次序假设,即:假设 session 中的任何相邻 item 都是高度的顺序相关sequentially dependent 的。然而,在大多数实际情况下,这可能并非如此。

      此外,RNN 通常会偏向于最近的 item,因为随着记忆衰退 memory decay ,模型会在 session 中丢失很多 previous item 的信息。

    • attention-based SBRS:通过在 session 上下文中强调那些相关的和重要的 item ,注意力机制已被用于构建更鲁棒的 SBRS

      • 《Neural attentive session-based recommendation》 提出了神经注意力推荐机 Neural Attentive Recommendation Machine: NARM ,它采用具有注意力机制的混合编码器,通过区分更重要和更不重要的 item ,从而在当前 session 中建模用户的序列行为和用户的主要意图。
      • 《Attention-based transactional context embedding for next item recommendation》 设计了一种 attention-based transaction embedding model: ATEM ,从而在没有次序假设的情况下在 session 上下文中构建 attentive context embedding
      • 此外,在 《Sequential recommendation with user memory networks》 中,注意力机制被用于 memory-augmented 神经网络中,用于选择性地读出 external memory matrix 从而进行 next item 推荐。

      然而,注意力机制试图在少数重要的 item 上分配更大的权重,同时淡化其它 item ,导致偏向于由这些少数 item 所指示的主要意图。因此,attention-based SBRS 通常仅满足主要意图,而忽略了 session 中的其它意图。

    综上所述,所有上述 SBRS 都是基于单通道的,它们对于单意图 session 是有效的。其中,单意图指的是:session 中的所有 item 都是相互依赖的。然而,这些方法无法很好地处理具有多种不同类型的 item (这些 item 反应不同意图)的 session 。受到混合模型在处理多种关系方面的巨大潜力的启发,我们为多意图 session 设计了一个混合通道模型。

23.1 模型

  1. 给定一个 session 集合 S={s1,,s|S|} ,其中每个 session s={v1,,v|s|} 由一个匿名用户在一个交易事件 transaction event 中顺序交互(如点击、购买)的 item 序列组成。这里 |S| 为总的 session 数量,s 中的下标表示 item 出现的顺序(或时间戳)。

    所有 session 中出现的所有 item 构成了 universalitem 集合 V 。对于 target item vts,所有发生在 vt 之前的、位于 s 中的 item 共同构成了 vts 上的 session context(简称 context ),记做 Cvt={v1,,vt1}Cvt 中的每个 item 都称作 contextual item

    给定具有前面 t1itemcontext C ,我们需要构建一个 SBRS 来推荐第 titem。因此,MCPRN 被训练为一个概率分类器模型,该模型学习预测条件概率分布 P(vtC) 。一旦学到了模型的所有参数,MCPRN 就能够根据给定 context 时的条件概率对所有候选 item 来排序从而推荐 next item

  2. MCPRN 的架构如下图 (a) 所示。MCPRN 主要由两个模块组成:意图路由器 Purpose Router、混合通道循环网络 Mixture-Channel Recurrent Network: MCRN

    • Purpose Router:意图路由器用于将每个 item 路由到特定意图的通道。具体而言,我们采用软路由soft routing策略,将每个 item embedding 以不同的意图权重分配给所有通道,即所谓的混合通道网络 mixture channel network。软路由策略可以进行任何基于梯度的优化从而简化学习。

      与软路由对应的是硬路由 hard routing,即每个 item embedding 仅分配给某一个通道。

    • MCRN:在 MCRN 中,每个通道都配备了一个基于意图特定循环单元 PSRU 的意图特定循环网络 PSRN,用于为特定意图建模 item 之间的依赖关系。

    不同通道的 final hidden state ht1 被选择性地集成从而作为 multi-purpose context embedding vC 。以 vC 作为条件的 target item embedding vt 用于计算所选择的 item 作为 next item 的概率。接下来,我们将介绍这些组件的更多技术细节。

    这里的 ”选择性地“ 指的是:根据 vt 的软路由来进行加权。因为我们只需要选择 target item 所在的通道。

23.1.1 Purpose Router

  1. 给定 session context 中的所有 item,意图路由网络 purpose routing network: PRN 在意图路由器 Purpose Router 中使用,从而在没有任何人类先验知识的情况下抽取 selecting item vi 的意图。

    • 首先,我们将每个 item v 映射成一个 Kembedding 向量 vRK ,所有 itemembedding 向量构成一个 embedding 矩阵 WeRK×|V|,其中 embedding 矩阵的第 ivi=We[:,i]RK 是第 iitem viembedding 向量。

    • 然后,我们将 item viemebdding vi 输入到 PRN 中,从而确定 selecting vi 的意图。

      WpRK×m 表示所有意图的意图过滤参数 purpose filtering parameter的矩阵 ,其中 m 为意图数量(即,通道数),Wp 的第 jpj=Wp[:,j]RK 表示第 j 个意图 pj 的过滤参数。m 为超参数,可以通过交叉验证来确定。

      item vi 相对于第 j 个意图 pj 的集中度得分 concentration score ai,j 计算如下:

      ai,j=vipjR,j{1,2,,m}

      此外,可以根据以下 softmax 函数获得关于 pj 的归一化集中度权重normalized concentration weight

      gi,j=exp(ai,j/τ)j=1mexp(ai,j/τ)

      其中 τ 为需要调优的温度超参数。

      • 对于很高的温度(τ) ,所有的意图具有几乎相等的概率。
      • 对于很低的温度 (τ0+),归一化集中度权重倾向于集中于单个权重(几乎是硬路由 hard routing)。

      在实验中,我们使用 τ=0.1 可以产生最佳性能。

      意图数量 m 和温度 τ 都是非常重要的超参数,它们对 MCPRN 的效果产生关键性的影响。

23.1.2 Mixture-Channel Recurrent Network

  1. 然后, item embedding 及其意图集中度权重被输入到 MCRN 的每个通道中,如下图 (a) 中的紫色(item embedding )和绿色(意图集中度权重)箭头所示。

    • 每个通道都由一个 PSRN 来建模,PSRN 是由 t1PSRU 单元组成从而建模 t1item 的序列上的 purpose-specific 序列依赖性 sequential dependency
    • 每个通道的工作机制类似于普通的 RNN,而在 PSRN 中这些 cell 配备了我们设计的 PSRU 。一个通道中的 PSRU cell 都是相同的(包括结构和参数),而不同通道中的 cell 具有相同的结构但是不同的参数。

    接下来我们将详细介绍 PSRU

  2. Purpose-Specific Recurrent Unit: PSRU:像 LSTMGRU 这样的 RUU cell 不考虑序列中 itemdegree of membership 。在 MCRN 中,每个通道包含 session 中的所有 item,但是这些 item 的意图集中度权重(即,degree of membership),在给定意图上是不同的。因此,在给定集中度权重的情况下,LSTMGRU 还没有准备好在通道中建模这种 purpose-specific 依赖性。

    因此,我们设计了 PSRU 作为每个 PSRNcell 。与 GRU 或其变体通常仅使用当前输入和 last hidden state 而不使用任何额外信息additional information来计算 gate value 不同,PSRU 引入了一个 concentration gate,从而根据特定意图来选择性地将 item 信息集成到转移 transition 中。

    上图 (b) 给出了 PSRU cell 的结构。与传统的 GRU cell 相比,增加了一个额外的 gate ,即 concentration gate(见蓝色虚线方块),从而根据意图集中度权重 gi,j 来决定当前状态在多大程度上应该参与到 purpose-specific transition 。通道 cj 的第 itime stepPSRU celllast hidden state hi1 、当前 itemembedding vi、以及集中度权重 gi,j 作为输入,并输出当前 time step 的候选 hidden state h~i

    gi,j0 控制了 item embedding vi 多达程度上属于当前通道,那么一个核心设计是:如果 gi,j=0 ,那么 vi 对应的 time step 不会被更新;gi,j 越大,则该 time step 更新越大。因此,单纯地将 gi,j×vi 作为输入,无法满足这个设计需求(因为即使 input 为零,RNN 也会更新状态)。

    这就是为什么需要引入额外的 concentration gate 的原因,同时这也是为什么 gi,j 作用在 updae gate 上的原因。

    更具体而言,候选 hidden state h~i 的计算如下,其中 rireset gate 向量、ziupdate gate 向量:

    ri=σs(Wr[hi1||vi]),zi=σs(Wz[hi1||vi])h~i=σt(Wh[(rihi1)||vi])

    其中:

    • σssigmoid 激活函数,σttanh 激活函数。 为逐元素乘积。|| 为向量拼接。
    • Wr,Wz,Wh 为待学习的权重矩阵。

    此外,我们得到 concentration gate 向量 ui 如下:

    ui=σc(gi,j,zi;ϵ)=δc(gi,jϵ)×gi,j×zi

    其中:

    • δc()Delta 函数,其中 gi,jϵδc=1 否则 δc=0
    • ϵ 为阈值超参数,用于在 session 中建模 transition 时消除噪音noisyitem 。即,ui 会绕过集中度权重低于 ϵitem 。我们在实验中根据经验设置 ϵ=0.01

    这里计算 ui 时出现了 gi,j 。事实上 j 代表通道,因此更准确的描述是:

    ui(j)=δc(gi,jϵ)×gi,j×zi

    因为我们是针对第 j 个通道来计算 ui

    因此,当前 stephidden state hi 可以由 ui 根据 previous state hi1 和当前候选状态 h~i 来确定:

    hi=(1ui)hi1+uih~i

    这里 ui 代替了 update gate 的作用,并且它是 update gate 乘以 gi,j 得到(经过阈值过滤)。

    例如,如果 item vi 主要集中于单个意图 p1 ,即:gi,11,gi,j0,j1 。由于 gi,j<ϵ,j1,因此对于除了通道 1 以外的所有其它通道的 transitionitem vi 将被忽略,即:hi=hi1

21.1.3 概率选择

  1. 一旦 session context C 被输入到 MCPRN 中,所有 m 个通道的 final hidden state ht1(j) 被集成在一起,从而构建一个多意图 context embedding vC

    vC=j=1mg^t,j×ht1(j)

    其中:g^t,jtarget item v^t 相对于意图 pj 的集中度权重。g^t,j 加权了目标意图 target purpose 从而构建 context embedding vC

    注意,这里集中度权重用的是 target item 的,而不是 last item gt1,j 。因为我们最终希望选择 target item 所在的通道。

    由于每个 vV 都可以作为候选的 target item,因此我们需要对每个 vV 计算一个 vC,算法复杂度较高。

  2. 然后,我们将context embedding vC 与候选 itemembedding 一起馈入输出层从而进行 target item 预测。具体而言,我们使用内积计算 target tiem v^t 相对于给定 context C 的相关性得分relevance score,从而捕获它们之间的交互:

    δt(C)=v^tvC

    target item v^t 不仅参与了 v^t,也参与了 vC

    最后,根据相关性得分 δt(C) 获得 item v^t 作为 ground truth 的条件概率 q(v^tC;Θ)

    q(v^tC;Θ)=11+exp(δt(C))

    其中:Θ 为所有 session 上需要学习的模型参数集合。

21.1.4 优化和训练

  1. 我们通过对交叉熵损失使用 mini-batch 梯度下降来训练我们的模型。给定条件概率 q,损失函数为:

    L(s+,N)=[logqs++vNlog(1qv)]

    其中:

    • s+ 为给定 session context Cpositive sample ,即真正的 next item vt
    • N 为从 item 集合 V{vt} 中随机采样 nitem 作为 negative sample set
    • positive sample 的损失为 logqnegative sample 的损失为 log(1q) ,它们一起构成了 contrastive pair (s+,N) 的损失。

    模型参数 Θ 通过最小化 L(s+,N) 来学到的。具体而言,negative sampling 用于有效的训练。

    负采样策略对于模型效果影响很大,论文这里并未讲述如何负采样。

  2. 我们的模型是使用 TensorFlow 实现的。由于篇幅有限,以下算法仅列出了 mini-batch 学习过程的简要方案,其中 ΓAdam 表示 Adam-based 梯度下降优化器,batch size 设置为 50

    MCPRN 训练过程:

    • 输入:

      • session 集合 S={s1,,s|S|}
      • 优化器 ΓAdam
      • 损失函数 (s+,N)L(s+,N)
    • 输出:学好的模型参数 Θ

    • 算法步骤:

      • 从所有 (context, target item) pair 获取 mini-batch B

      • 为每个 target item vtB 采样 nnegative item Nvt

      • 计算 mini-batch 损失:

        LB=1|B|(s+,N)L(s+,N)
      • 更新参数:ΘΘΓAdam(ΘLB)

23.2 实验

  1. 数据集:我们使用了真实世界的三个交易数据集:

    • Yoochoose-buy:由 RecSys Challenge 2015 发布,记录了 Yoochoose.com 上每个 session 购买的 item
    • Tmall:由 IJCAI-15 competition 发布,记录了天猫在线购物平台中每个 transaction 购买的 item
    • Tafeng:在 Kaggle 上发布,记录了一家中国杂货店的交易数据。

    首先,通过将一个 transaction 中的所有item 放在一起来形成一个会话,我们从每个原始数据集中抽取一组 session 集合。我们删除少于三个 itemsession,因为至少需要两个 item 作为 context 从而形成多意图 session context、以及另外一个 item 作为 target item

    其次,我们通过随机选择过去 30 天的 20%, 30%, 40%session 进行测试,从而对 session 集合执行三种 training-test 拆分。我们的方法在所有三种拆分上都取得了相似的性能,并且稳定地优于所有 baseline,因此这里仅展示了 30% 拆分的结果。

    有的实验是将最后一天或最后一周的 session 作为测试集,那么随机选择的测试集和最近时间选择的测试集,二者评估结论是一致的吗?

    最后,为了构建格式为 (C,vt)training-test 实例,对于一个 session s ,我们每次从 s 中的第三个到最后一个 item 之间选择一个 item 作为 target item vt ,并且 vt 之前的所有这些 item 构成对应的 conetxt C 。因此,对于包含 |s|itemsession,我们一共创建了 |s|2 个实例。

    数据集的统计结果如下表所示。

  2. 评估指标:Mean Reciprocal Rank: MRRnormalized Discounted Cumulative Gain: NDCGRecall

    此外我们还设计了一个新颖的多样性指标来评估推荐结果的多样性diversity

  3. baseline 方法:

    • iGRU4Rec-BPR:典型的 RNN-based SBRS 的改进版本,它使用 GRU-based RNN 来建模 session,并且以 Bayesian Personalized Ranking: BPR 作为损失函数(《Recurrent neural networks with top-k gains for session-based recommendations》)。
    • iGRU4Rec-CE:与 iGRU4Rec-BPR 类似,只是它使用交叉熵损失函数替代了 BPR 损失函数。
    • NARM:一个具有注意力机制的混合编码器,它在 session 中捕获用户的序列行为和主要意图。
    • MANN:一个 memory-augmented 的神经网络,它采用注意力模型来读取显式存储在外部 memory 矩阵中的历史信息。
    • Caser:一种卷积的序列 embedding 模型,它将一个序列的 item 嵌入到一个 image 中,然后使用卷积滤波器将序列模式 sequential pattern 学习为局部特征。
    • ATEM:一个浅而宽的网络,结合了注意力机制来学习 session contextattentive embedding

    为了证明混合通道在多意图建模中的有效性,我们实现了我们方法的两个版本: MCPRN 的完整模型、 MCPRN 的单通道版本 MCPRN-S

    单通道版本只需要将 m=1 即可实现。

  4. 实验设置:

    • 我们使用相应论文中的参数配置来初始化所有的 baseline 模型,然后在我们的数据集上调优它们从而获得最佳性能以进行公平地比较。
    • PSRU 中的 item embeddinghidden state 尺寸均设置为 128 。通过验证集调优从而将通道数 m 设置为 3Adam 的初始学习率设置为 0.001
  5. MCPRNbaselien 在准确性指标上的性能比较:我们在推荐准确性指标上比较了 MCPRNbaseline 方法。下表给出了 MRRnDCG 指标。

    • 前两种方法建立在 GRU-basedRNN 之上,由于过于严格的 sequentially dependent-based 假设、以及对于最近意图的 bias,因此很容易生成错误的依赖。因此,它们在多意图 session 数据上表现不佳。

    • NARMMANN 通过将注意力机制分别纳入 RNN-based SBRSmemory network-based SBRS 来突出相关信息并抑制噪声,从而获得更好的性能。 但是,由于注意力加权机制,在 session 中它们很容易偏向于主要意图。

    • Caser 也表现不佳,因为 CNN 中的池化操作很难捕获远程依赖关系。

    • 与其它 attention-based SBRS 一样,ATEM 通常偏向于主要意图。

    • 通过使用每个通道独立地建模每个意图,我们的 MCPRN 不仅平等地对待每个意图,而且还保持每个意图内的序列依赖关系。因此,MCPRN 在所有数据集上都取得了最佳性能。

      具体而言,在Yoochoose-buyTafeng 两个数据集上,MCPRNMRR@5, MRR@20, nDCG@5 指标上比现有最佳方法提高了 20% 以上。

    由于空间有限,下图给出了在两个数据集上的召回性能。可以看到,MCPRN 以显著的优势领先于 baseline

  6. 混合通道与单通道的比较:为了证明混合通道结构的效果,我们将 MCPRNMCPRN-S 进行比较,结果如上图和上表所示。可以很清楚地看到:MCPRNMCPRN-S 实现了更高的准确性。MCPRNMRR@5, nDCG@5, Recall@5 至少比 MCPRN-S20% ,这证明了混合通道架构的优越性。

  7. 推荐多样性:人们在推荐系统中引入多样性评估,从而弥补准确性评估的缺陷。直观而言,推荐的 item 的类别分布越分散,则意味着模型可以产生更大的多样性。因此,根据信息论,推荐的类别分布可以通过熵来衡量多样性,即:

    Diversity@k=i=1kPrilog2Pri

    其中:

    • k 为推荐列表长度(即,top-kitem )。

    • Priitem vi 所属类别在推荐列表中出现的概率,基于频率估计得到。

      假设推荐列表中,每个 item 对应的类别为 ”{服装,数码,服装,服装,母婴}“,那么 Pri 依次等于 {0.6, 0,2, 0.6, 0.6, 0.2} 。因为服装出现的概率为 0.6

    下图展示了 MCPRNbaseline 的多样性指标的对比。可以看到:MCPRN 实现了比 baseline 方法更高的多样性。特别是在 Tafeng 数据集上,MCPRN 实现了高达 13.01%Diveristy@5 提升、11.61%Diveristy@10 提升 。

    原因是 baseline 方法通常推荐仅满足最近意图(如,RNN-based SBRS)或主要意图(如,attention-based SBRS )的 item,因为它们是基于单通道的设计。相比之下,MCPRN 通过以并行方式建模多个意图,很容易使得推荐列表多样化。

    多样性评估不适用于 Yoochoose-buy,因为该数据集的类别信息不可用。

  8. 意图集中度可视化Purpose Concentration Visualization:为了深入理解 session 中用于不同意图的 item 如何被检测、并相应地被路由到 MCPRN 中的不同通道,我们从 Yoochoose-buy 数据集的测试集中随机抽取两个 session,并在下图中可视化了它们的集中度权重。

    可以看到:

    • 一个 session 中的 item 通常用于多个意图,因此被放入不同的通道,如:不同的 item 在所有这三个通道上都有不同的分布。

    • 真正的 target item vt 可能具有与 session 中最近的意图、或主要意图所不同的意图。

      例如,第二个 session 所示。

二十四、RepeatNet[2019]

  1. 传统的推荐方法基于 last interaction 来处理 session-based 推荐。

    • 《Using temporal data for making recommendations》《An MDP-based recommender system》 研究如何使用马尔科夫模型抽取序列模式sequential pattern 从而预测 next item
    • 《Playlist prediction via metric embedding》 提出 logistic Markov embedding 来学习歌曲的 representation 从而进行 playlist 预测。

    这些模型的一个主要问题是:当试图在所有 item 上包含所有可能的潜在用户选择序列时,状态空间很快变得难以管理。

    RNN 最近被用于 session-based 的推荐,并引起了人们的极大关注。

    • 《Session-based recommendations with recurrent neural networks》 引入了带 GRURNN,从而用于 session-based 推荐。
    • 《Parallel recurrent neural network architectures for feature-rich session-based recommendations》引入了许多 parallel RNN: p-RNN 架构来基于被点击 itemclickfeature (如,图片、文本)来建模 session
    • 《Personalizing session-based recommendations with hierarchical recurrent neural networks》 通过跨 session 信息迁移来个性化 RNN 模型,并设计了一个 Hierarchical RNN 模型。这个 Hierarchical RNN 模型在 user session 中,中继 relay 和演变 evolve RNN 的潜在状态。
    • 《Neural attentive session-based recommendation》session-based 推荐中引入了注意力机制并表现出色。

    尽管将深度学习应用于 session-based 推荐的研究越来越多,但是没有人强调所谓的重复消费repeat consumption ,这是许多推荐场景(如电商、音乐、电视节目等等场景的推荐)中的普遍现象。重复消费的意思是:随着时间的推移,相同的 item 被重复消费。

    重复消费之所以存在,是因为人们有规律性的习惯regular habit。例如,我们经常重复购买相同的东西,我们经常去相同的餐厅吃饭,我们经常听相同的歌曲和歌手。下表展示了相关研究中常用的三个 benchmark 数据集的重复消费率。

    重复消费率占比不大,那么是否意味着在这方面的改进没有多大意义?毕竟 RepeatNet 是针对 “少数派” 进行的优化。

    RepeatNet 的效果严重依赖于具体的数据集,只有较高重复消费率的数据集的效果较好。因此使用之前需要先通过数据集来评估重复消费率。

    而这个重复消费率又依赖于 user ID,因此也无法应用到匿名 session 中。

    在论文 《RepeatNet: A Repeat Aware Neural Recommendation Machine for Session-Based Recommendation》 中,作者通过融合一个 repeat-explore 机制到神经网络中从而研究重复消费,并提出了一个叫做 RepeatNet 的、具有 encoder-decoder 的新模型。与使用单个解码器来评估每个 item 的分数的现有工作不同,RepeatNet 使用两个解码器分别在 repeat modeexplore mode 下评估每个 item 的推荐概率。

    • repeat mode 下,模型推荐用户历史记录中的 old item
    • explore mode 下,模型推荐 new item

    具体而言:

    • 首先,模型将每个 session 编码为一个 representation

    • 然后,模型使用 repeat-explore 机制来学习 repeat modeexplore mode 之间的切换概率。

    • 之后,作者提出了一个 repeat recommendation decoder 来学习在 repeat mode 下推荐 old item 的概率,以及提出了一个 explore recommendation decoder 来学习在 explore mode 下推荐 new item 的概率。

      两个 decoder (相比较于传统的单个 decoder)会大幅度增加资源消耗以及 inference time

    • 最后,作者将模式切换概率、以及两种模式下的每个 item 的推荐概率以概率性的方式结合起来,最终确定 item 的推荐分。

    mode predictionitem 推荐在统一框架内以端到端的方式共同学习。

    论文对三个 benchmark 数据集进行了广泛的实验。结果表明:在 MRRRecall 指标上,RepeatNet 在所有三个数据集上都优于 state-of-the-art baseline 。此外,论文发现:随着数据集大小和重复率的增加,RepeatNet 相对于 baseline 的改进也增加了,这证明了它在处理重复推荐场景方面的优势。

    综上所述,论文的主要贡献是:

    • 论文提出了一种新的、基于深度学习的模型,叫做 RepeatNet 。该模型考虑了重复消费现象。据作者所知,该论文是第一个在使用神经网络的 session-based 推荐背景下考虑重复消费现象的。
    • 论文为 session-based 推荐引入了 repeat-explore 机制,从而自动学习 repeat modeexplore mode 之间的切换概率。与使用单个解码器的现有工作不同,论文提出了两个解码器来学习两种模式下每个 item 的推荐概率。
    • 论文对三个 benchmark 数据集进行了广泛的实验和分析。结果表明:RepeatNet 通过显式建模重复消费来提高 session-based 推荐的性能,从而超越了 state-of-the-art 方法。
  2. 相关工作:

    • session-based 推荐:

      • 传统的 session-based 推荐方法通常基于马尔科夫链,这些方法在给定 last action 的情况下预测 next action

        • 《Using temporal data for making recommendations》 提出了一种基于马尔科夫链的序列推荐器,并研究如何使用概率性的决策树模型来抽取序列模式从而学习 next state
        • 《Using sequential and non-sequential patterns in predictive web usage mining tasks》 研究了不同的序列模式sequential pattern用于推荐,并发现连续contiguous的序列模式比通用general的序列模式更适合序列预测任务。
        • 《An MDP-based recommender system》 提出了一个马尔科夫链决策过程 Markov decision process: MDP 从而以 session-based 方式提供推荐。最简单的 MDP 是一阶马尔科夫链,其中 next recommendation 可以简单地通过通过 item 之间的转移概率来计算。
        • 《Effective next items recommendation via personalized sequential pattern mining》 在个性化序列模式挖掘中引入了一种竞争力得分competence score指标,用于 next-item 推荐。
        • 《Playlist prediction via metric embedding》playlist 建模为马尔科夫链,并提出 logistic Markov embedding 来学习歌曲 representation 从而用于 playlist 预测。

        将马尔科夫链应用于 session-based 推荐任务的一个主要问题是:当试图在所有 item 上包含所有可能的潜在用户选择序列时,状态空间很快变得难以管理。

      • RNN 已被证明对序列点击预测很有用。

        • 《Session-based recommendations with recurrent neural networks》RNN 应用于 session-based 推荐,并相对于传统方法取得了显著改进。他们利用session-parallelmini-batch 训练,并使用 ranking-based 损失函数来学习模型。
        • 《Parallel recurrent neural network architectures for feature-rich session-based recommendations》 引入了许多 parallel RNN: p-RNN 架构来基于被点击 itemclickfeature (如,图片、文本)来建模 session 。他们提出了比标准训练更适合的、用于 p-RNN 的替代训练策略。
        • 《Improved recurrent neural networks for session-based recommendations》 提出了两种技术来提高其模型的性能,即:数据增强、以及一种考虑输入数据分布漂移shift 的方法。
        • 《When recurrent neural networks meet the neighborhood for session-based recommendation》 表明,在大多数测试的setup 和数据集中,针对 session 的、基于启发式最近邻的方案优于 GRU4Rec
        • 《Personalizing session-based recommendations with hierarchical recurrent neural networks》 提出了一种通过跨 session 信息迁移来对 RNN 模型进行个性化的方法,并设计了一个 Hierarchical RNN 模型,该模型在 user session 之间中继 relay 和演变 evolve RNN 的潜在状态。
        • 《Neural attentive session-based recommendation》 探索了具有注意力机制的混合编码器以建模用户的序列行为和意图,从而捕获用户在当前 session 中的主要意图。

      与上面列出的研究不同,我们强调模型中的重复消费现象。

    • repeat recommendation

      • 《The dynamics of repeat consumption》 在多个领域研究了用户随着时间的推移重复消费同一个 item 的模式,从同一个门店的重复 check-in 到同一个视频的重复观看。他们发现:消费的新近程度 recency 是重复消费的最强预测器 predictor
      • 《Will you “reconsume” the near past? Fast prediction on short-term reconsumption behaviors》 得出了影响人们短期重复消费行为的四个一般特征。然后,他们提出了两种具有线性核和二次核的快速算法,从而预测在给定 context 的情况下,用户是否会在特定时间执行短期重复消费。

      推荐系统的一个重要目标是帮助用户发现 new item 。除此之外,许多现实世界的系统将推荐列表用于不同的目标,即:提醒用户他们过去查看或消费的 item

      • 《On the value of reminders within e-commerce recommendations》 通过一个现场实验 live experiment 对此进行了调查,旨在量化在推荐列表中此类提醒的价值。

      • 《Modeling user consumption sequences》 确定了重复消费的两种宏观行为模式:

        • 首先,在给定用户的生命周期lifetime中,很少有 item 能够存活 live 很长时间。

        • 其次,一个 itemlast consumption 表现出越来越大的 inter-arrival gap ,这与如下概念保持一致:无聊递增导致最终放弃。

          即,用户消费相同 item 的周期越来越长,最终放弃消费该 item (因为越来越无聊,没有新的吸引力)。

      我们的工作与之前关于重复推荐的工作之间的主要区别在于:我们是第一个提出神经推荐模型的人,从而显式强调传统的推荐任务以及 session-based 推荐任务中的重复消费。

24.1 模型

  1. 给定一个 action session IS={i1,i2,,iτ,,it},其中 iτ 表示一个 itemsession-based 推荐尝试预测 next event 是什么,如以下方程所示。不失一般性,本文以点击 action 为例:

    P(it+1IS)f(IS)

    其中:P(it+1IS) 表示在给定 IS 的情况下推荐 it+1 的概率。传统方法通常将 f(IS) 直接建模为判别式函数或概率函数。

  2. 整体框架:我们提出 RepeatNet 从而从概率性的角度来建模 P(it+1IS),并且显式考虑重复消费,如以下公式所示:

    P(it+1IS)=P(rIS)×P(it+1r,IS)+P(eIS)×P(it+1e,IS)

    其中:

    • r 表示重复模式 repeat modee 表示探索模式 explore mode
    • P(rIS) 表示执行 repeat mode 的概率,P(eIS) 表示执行 explore mode 的概率。
    • P(it+1r,IS) 表示给定 IS 的情况下,在 repeat mode 中推荐 it+1 的概率;P(it+1e,IS) 表示给定 IS 的情况下,在explore mode 中推荐 it+1 的概率。

    如下图所示,RepeatNet 由四个主要组件组成:一个 session encoder、一个 repeat-explore 机制、一个 repeat recommendation decoder、一个 explore recommendation decoder

    • session encoder :它将给定的 session IS 编码为潜在 representation H={h1,h2,,hτ,,ht} ,其中 hτ 表示在 timestamp τ 处的 session representation

      hτ 不是 iτrepresentation,而是截止到 τ 时刻的 session representation

    • repeat-explore 机制:它以 H 为输入,预测执行 repeat modeexplore mode 的概率,对应于方程中的 P(rIS)P(eIS)

      注意:P(rIS)+P(eIS)=1.0 ,因此只需要预测其中之一即可。

    • repeat recommendation decoder:它以 H 为输入,预测 IS 中被点击 item 的重复推荐概率,对应于方程中的 P(it+1r,IS)

    • explore recommendation decoder :它以 H 为输入,预测 IIS 中未被点击 item 的探索推荐概率,对应于方程中的 P(it+1e,IS) ,其中 I 表示所有 item

  3. session encoder:遵从先前的工作,我们使用 GRU 来编码 IS ,其中 GRU 定义为:

    zτ=σ(Wz[emb(iτ)||hτ1]),rτ=σ(Wr[emb(iτ)||hτ1])h~τ=tanh(Wh[emb(iτ)||(rτhτ1)])hτ=(1zτ)hτ1+zτh~τ

    其中:

    • Wz,Wr,Wh 为待学习的权重矩阵。
    • emb(iτ)itembedding 向量。
    • σ()sigmoid 函数,tanh()tanh 函数。|| 表示向量拼接, 表示逐元素乘法。
    • zupdate gaterreset gate

    GRU 的初始状态为零,即 h0=0

    经过 session encoder 编码之后,每个 session IS 被编码到 H={h1,h2,,hτ,,ht}

  4. repeat-explore 机制:repeat-explore 机制可以视为一个基于 H 来预测推荐模式的二分类器。为此,我们首先将注意力机制应用于 H 从而获得 IS 的固定长度的向量 representation 。具体而言:

    • 我们首先使用 last hidden state ht 与每个 hidden state hτH 进行匹配,从而得到一个重要性分数:

      sτre=vretanh(Wreht+Urehτ)

      其中:vre,Wre,Ure 均为模型参数。

    • 然后我们归一化重要性分数,并获得 IS 中每个 hidden state 的加权和从而作为 context vector

      ατre=exp(sτre)j=1texp(sjre)cISre=τ=1tατre×hτ
    • 然后我们使用 softmax 回归将 cISre 转换为模式概率分布,分别对应于 P(rIS)P(eIS)

      [P(rIS),P(eIS)]=softmax(WreccISre)

      其中:Wrec 为权重矩阵。

      这里的 softmax 其实可以退化为 sigmoid,因为这是个二分类问题。

  5. repeat recommendation decoderrepeat recommendation decoder 评估 IS 中的 item 被重复点击的概率。受到 CopyNet 的启发,我们使用一个修改的注意力模型来实现这一点。item iτIS 被重复点击的概率为: