返回介绍

数学基础

统计学习

深度学习

工具

Scala

二十三、MCPRN [2019]

发布于 2023-07-17 23:38:23 字数 99432 浏览 0 评论 0 收藏 0

  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|}$ \mathcal S=\{s_1,\cdots,s_{|\mathcal S|}\} $ ,其中每个 sessions={v1,,v|s|}$ s = \{v_{1},\cdots,v_{{|s|}}\} $ 由一个匿名用户在一个交易事件 transaction event 中顺序交互(如点击、购买)的 item 序列组成。这里|S|$ |\mathcal S| $ 为总的 session 数量,s$ s $ 中的下标表示 item 出现的顺序(或时间戳)。

    所有 session 中出现的所有 item 构成了 universalitem 集合V$ \mathcal V $ 。对于 target itemvts$ v_{t}\in s $ ,所有发生在vt$ v_t $ 之前的、位于s$ s $ 中的 item 共同构成了vt$ v_t $ 在s$ s $ 上的 session context(简称 context ),记做Cvt={v1,,vt1}$ \mathcal C_{v_t} = \{v_1,\cdots,v_{t-1}\} $ 。Cvt$ \mathcal C_{v_t} $ 中的每个 item 都称作 contextual item

    给定具有前面t1$ t-1 $ 个 itemcontextC$ \mathcal C $ ,我们需要构建一个 SBRS 来推荐第t$ t $ 个 item。因此,MCPRN 被训练为一个概率分类器模型,该模型学习预测条件概率分布P(vtC)$ P(v_t\mid \mathcal C) $ 。一旦学到了模型的所有参数,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 stateht1$ \mathbf{\vec h}_{t-1} $ 被选择性地集成从而作为 multi-purpose context embeddingvC$ \mathbf{\vec v}_{\mathcal C} $ 。以vC$ \mathbf{\vec v}_{\mathcal C} $ 作为条件的 target item embeddingvt$ \mathbf{\vec v}_t $ 用于计算所选择的 item 作为 next item 的概率。接下来,我们将介绍这些组件的更多技术细节。

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

23.1.1 Purpose Router

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

    • 首先,我们将每个 itemv$ v $ 映射成一个K$ K $ 维 embedding 向量vRK$ \mathbf{\vec v}\in \mathbb R^K $ ,所有 itemembedding 向量构成一个 embedding 矩阵WeRK×|V|$ \mathbf W_e\in \mathbb R^{K\times |\mathcal V|} $ ,其中 embedding 矩阵的第i$ i $ 列vi=We[:,i]RK$ \mathbf{\vec v}_i=\mathbf W_e[:,i]\in \mathbb R^K $ 是第i$ i $ 个 itemvi$ v_i $ 的 embedding 向量。

    • 然后,我们将 itemvi$ v_i $ 的 emebddingvi$ \mathbf {\vec v}_i $ 输入到 PRN 中,从而确定 selectingvi$ v_i $ 的意图。

      WpRK×m$ \mathbf W_p\in \mathbb R^{K\times m} $ 表示所有意图的意图过滤参数 purpose filtering parameter的矩阵 ,其中m$ m $ 为意图数量(即,通道数),Wp$ \mathbf W_p $ 的第j$ j $ 列pj=Wp[:,j]RK$ \mathbf{\vec p}_j=\mathbf W_p[:,j]\in \mathbb R^K $ 表示第j$ j $ 个意图pj$ p_j $ 的过滤参数。m$ m $ 为超参数,可以通过交叉验证来确定。

      itemvi$ v_i $ 相对于第j$ j $ 个意图pj$ p_j $ 的集中度得分 concentration scoreai,j$ a_{i,j} $ 计算如下:

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

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

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

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

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

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

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

23.1.2 Mixture-Channel Recurrent Network

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

    • 每个通道都由一个 PSRN 来建模,PSRN 是由t1$ t-1 $ 个 PSRU 单元组成从而建模t1$ t-1 $ 个 item 的序列上的 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$ g_{i,j} $ 来决定当前状态在多大程度上应该参与到 purpose-specific transition 。通道cj$ c_j $ 的第i$ i $ 个 time stepPSRU celllast hidden statehi1$ \mathbf{\vec h}_{i-1} $ 、当前 itemembeddingvi$ \mathbf{\vec v}_i $ 、以及集中度权重gi,j$ g_{i,j} $ 作为输入,并输出当前 time step 的候选 hidden stateh~i$ \tilde{\mathbf{\vec h}}_i $ 。

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

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

    更具体而言,候选 hidden stateh~i$ \tilde{\mathbf{\vec h}}_i $ 的计算如下,其中ri$ \mathbf{\vec r}_i $ 为 reset gate 向量、zi$ \mathbf{\vec z}_i $ 为 update gate 向量:

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

    其中:

    • σs$ \sigma_s $ 为 sigmoid 激活函数,σt$ \sigma_t $ 为 tanh 激活函数。$ \odot $ 为逐元素乘积。||$ || $ 为向量拼接。
    • Wr,Wz,Wh$ \mathbf W_r,\mathbf W_z,\mathbf W_h $ 为待学习的权重矩阵。

    此外,我们得到 concentration gate 向量ui$ \mathbf{\vec u}_i $ 如下:

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

    其中:

    • δc()$ \delta_c(\cdot) $ 为 Delta 函数,其中gi,jϵ$ g_{i,j}\ge \epsilon $ 时δc=1$ \delta_c=1 $ 否则δc=0$ \delta_c = 0 $ 。
    • ϵ$ \epsilon $ 为阈值超参数,用于在 session 中建模 transition 时消除噪音noisyitem 。即,ui$ \mathbf{\vec u}_i $ 会绕过集中度权重低于ϵ$ \epsilon $ 的 item 。我们在实验中根据经验设置ϵ=0.01$ \epsilon = 0.01 $ 。

    这里计算ui$ \mathbf{\vec u}_i $ 时出现了gi,j$ g_{i,j} $ 。事实上j$ j $ 代表通道,因此更准确的描述是:

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

    因为我们是针对第j$ j $ 个通道来计算ui$ \mathbf{\vec u}_i $ 。

    因此,当前 stephidden statehi$ \mathbf{\vec h}_i $ 可以由ui$ \mathbf{\vec u}_i $ 根据 previous statehi1$ \mathbf{\vec h}_{i-1} $ 和当前候选状态h~i$ \tilde{\mathbf{\vec h}}_i $ 来确定:

    hi=(1ui)hi1+uih~i

    这里ui$ \mathbf{\vec u}_i $ 代替了 update gate 的作用,并且它是 update gate 乘以gi,j$ g_{i,j} $ 得到(经过阈值过滤)。

    例如,如果 itemvi$ v_i $ 主要集中于单个意图p1$ p_1 $ ,即:gi,11,gi,j0,j1$ g_{i,1}\simeq 1, g_{i,j}\simeq 0, j\ne 1 $ 。由于gi,j<ϵ,j1$ g_{i,j}\lt \epsilon, j\ne 1 $ ,因此对于除了通道 1 以外的所有其它通道的 transitionitemvi$ v_i $ 将被忽略,即:hi=hi1$ \mathbf{\vec h}_i = \mathbf{\vec h}_{i-1} $ 。

21.1.3 概率选择

  1. 一旦 session contextC$ \mathcal C $ 被输入到 MCPRN 中,所有m$ m $ 个通道的 final hidden stateht1(j)$ \mathbf{\vec h}_{t-1}^{(j)} $ 被集成在一起,从而构建一个多意图 context embeddingvC$ \mathbf{\vec v}_{\mathcal C} $ :

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

    其中:g^t,j$ \hat g_{t,j} $ 为 target itemv^t$ \hat v_t $ 相对于意图pj$ p_j $ 的集中度权重。g^t,j$ \hat g_{t,j} $ 加权了目标意图 target purpose 从而构建 context embeddingvC$ \mathbf{\vec v}_{\mathcal C} $ 。

    注意,这里集中度权重用的是 target item 的,而不是 last itemgt1,j$ g_{t-1,j} $ 。因为我们最终希望选择 target item 所在的通道。

    由于每个vV$ v\in \mathcal V $ 都可以作为候选的 target item,因此我们需要对每个vV$ v\in \mathcal V $ 计算一个vC$ \mathbf{\vec v}_{\mathcal C} $ ,算法复杂度较高。

  2. 然后,我们将context embeddingvC$ \mathbf{\vec v}_{\mathcal C} $ 与候选 itemembedding 一起馈入输出层从而进行 target item 预测。具体而言,我们使用内积计算 target tiemv^t$ \hat v_t $ 相对于给定 contextC$ \mathcal C $ 的相关性得分relevance score,从而捕获它们之间的交互:

    δt(C)=v^tvC

    target itemv^t$ \hat v_t $ 不仅参与了v^t$ \hat{\mathbf{\vec v}}_t $ ,也参与了vC$ \mathbf{\vec v}_{\mathcal C} $ 。

    最后,根据相关性得分δt(C)$ \delta_t(\mathcal C) $ 获得 itemv^t$ \hat v_t $ 作为 ground truth 的条件概率q(v^tC;Θ)$ q\left(\hat v_t\mid \mathcal C;\Theta\right) $ :

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

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

21.1.4 优化和训练

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

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

    其中:

    • s+$ s^+ $ 为给定 session contextC$ \mathcal C $ 的 positive sample ,即真正的 next itemvt$ v_t $ 。
    • N$ \mathcal N^- $ 为从 item 集合V{vt}$ \mathcal V - \{v_t\} $ 中随机采样n$ n $ 个 item 作为 negative sample set
    • positive sample 的损失为logq$ \log q $ ,negative sample 的损失为log(1q)$ \log (1-q) $ ,它们一起构成了 contrastive pair(s+,N)$ \left(s^+,\mathcal N^-\right) $ 的损失。

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

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

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

    MCPRN 训练过程:

    • 输入:

      • session 集合S={s1,,s|S|}$ \mathcal S=\{s_1,\cdots,s_{|\mathcal S|}\} $
      • 优化器ΓAdam$ \Gamma_\text{Adam} $
      • 损失函数(s+,N)L(s+,N)$ \sum_{\left(s^+,\mathcal N^-\right)} \mathcal L\left(s^+,\mathcal N^-\right) $
    • 输出:学好的模型参数Θ$ \Theta $

    • 算法步骤:

      • 从所有 (context, target item) pair 获取 mini-batchB$ \mathcal B $ 。

      • 为每个 target itemvtB$ v_t\in \mathcal B $ 采样n$ n $ 个 negative itemNvt$ \mathcal N^-_{v_t} $ 。

      • 计算 mini-batch 损失:

        LB=1|B|(s+,N)L(s+,N)
      • 更新参数:ΘΘΓAdam(ΘLB)$ \Theta\leftarrow \Theta - \Gamma_{\text{Adam}}(\nabla_\Theta \mathcal L_\mathcal B) $ 。

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)$ (\mathcal C,v_t) $ 的 training-test 实例,对于一个 sessions$ s $ ,我们每次从s$ s $ 中的第三个到最后一个 item 之间选择一个 item 作为 target itemvt$ v_t $ ,并且vt$ v_t $ 之前的所有这些 item 构成对应的 conetxtC$ \mathcal C $ 。因此,对于包含|s|$ |s| $ 个 itemsession,我们一共创建了|s|2$ |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$ m=1 $ 即可实现。

  4. 实验设置:

    • 我们使用相应论文中的参数配置来初始化所有的 baseline 模型,然后在我们的数据集上调优它们从而获得最佳性能以进行公平地比较。
    • PSRU 中的 item embeddinghidden state 尺寸均设置为 128 。通过验证集调优从而将通道数m$ 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$ k $ 为推荐列表长度(即,top-kitem )。

    • Pri$ \text{Pr}_i $ 是 itemvi$ v_i $ 所属类别在推荐列表中出现的概率,基于频率估计得到。

      假设推荐列表中,每个 item 对应的类别为 ”{服装,数码,服装,服装,母婴}“,那么Pri$ \text{Pr}_i $ 依次等于 {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 itemvt$ v_t $ 可能具有与 session 中最近的意图、或主要意图所不同的意图。

      例如,第二个 session 所示。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文