《Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks》
session
是在给定时间范围(time frame
)内发生的一组交互。同一个用户的不同 session
可以发生在同一天,也可以发生在数天内、数周内、甚至数月内。一个 session
通常有一个目的(goal
),例如找到一家好餐馆、或者听到某种风格的音乐。
在这些领域提供推荐带来了独有的挑战(unique challenge
),直到最近,这些挑战主要通过在最近一次交互、或者最近一个 session
上应用传统的推荐算法来解决。在 session-based
推荐中,仅基于当前的user session
来提供推荐,因为假定用户是匿名的。但是在许多此类系统中,用户可能已经登录、或者存在某种形式的user id
(如 cookie
)。在这些情况下,可以合理地假设:同一个用户的历史 session
行为可能会为 next session
中的推荐提供有价值的信息。
在 session-based
算法中,结合历史的user session
信息的一种简单方法是:简单地拼接历史的user session
和当前的user session
。虽然这似乎是一种合理的方法,但论文 《Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks》
将在实验部分看到这不会产生最佳效果。
在论文《Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks》
中,作者描述了一种基于 RNN
的新算法,该算法可以同时处理如下两种 case
:
session-aware
推荐:当存在 user id
时,将信息从前一个user session
传播到下一个user session
从而提高推荐准确率。
session-based
推荐:当没有历史的user session
时(例如没有 user id
)。
该算法基于 Hierarchical RNN
,其中当一个 user session
结束时, lower-level RNN
的 hidden state
作为输入而传递给 higher-level RNN
。而这个 higher-level RNN
旨在为用户下一个 user session
的 lower-level RNN
的 hidden state
提供良好初始化。
论文在来自行业内的两个数据集上评估了 Hierarchical RNN
,结果表明论文的方法优于普通的 session-based RNN
、以及 item-based
协同过滤。
相关工作:
session-based
推荐:当没有用户画像时(因此也没有 user id
,从而无法获取该用户的所有历史行为),那么经典的 CF
方法(如矩阵分解)在 session-based setting
中失效。这个问题的一个自然解决方案是 item-to-item
推荐方法。在这个 setting
中,从可用的 session
数据中预先计算出一个 item-to-item
相似度矩阵,并且在 session
中经常一起被点击的 item
被认为是相似的。然后使用这些相似性来执行推荐。这种方法虽然简单,但是已被证明是有效的,并且被广泛采用。但是,这些方法仅考虑用户的最近一次点击,而忽略了用户之前的点击信息。
递归神经网络模型:RNN
是处理序列数据的首选深度模型。LSTM
网络已被证明是工作良好的 RNN
模型,其略微简化的版本是 GRU
。我们在这项工作中使用 GRU
。
在 《Session-based recommendations with recurrent neural networks》
中,RNN
被首次用于对 session
数据进行建模。RNN
在 session
中 item ID
的 one-hot representation
上使用 ranking loss
进行训练。然后,RNN
用于在新的 session
中每次点击之后提供推荐。该方法仅关注当前 session
,而我们的目标不仅考虑当前 session
也考虑跨 session
的用户行为建模。
在 《Parallel recurrent neural network architectures for feature-rich session-based recommendations》
中,RNN
还被用于联合建模 item
的内容以及点击序列。通过包含诸如缩略图或文本描述等 item
特征,该论文提出的所谓的 parallel-NN
提供了优于普通 RNN
的推荐质量。
在 《Improved recurrent neural networks for session-based recommendations》
中,作者提出了数据增强技术来提高 session-based
推荐的 RNN
性能。因为单个 session
被分为几个 sub-session
进行训练,因此该方法具有增加训练时间的副作用。
RNN
也被用于标准的 user-item
协同过滤 setting
,其目的是对 user factor
和 item factor
的演变进行建模。结果虽然不那么突出,该方法几乎没有优于标准的矩阵分解方法。
在 《A hierarchical recurrent encoder-decoder for generative context-aware query suggestion》
中,Hierarchical Recurrent Neural Network
的 seq-to-seq
模型被用于生成上下文感知的 query suggestion
。
我们的模型基于 《Session-based recommendations with recurrent neural networks》
中提出的session-based RNN
模型,其中 RNN
基于单层 GRU layer
来建模用户在 session
内的交互。RNN
将 session
中的当前 item ID
作为输入,并为每个 item
输出一个得分表示成为session
中 next item
的可能性。
形式上,对于第 session
session
的 item
数量,session
中的第 item
,RNN
将计算如下所示的 session-level representation
:
其中: session-level GRU
,GRU
在 step t
的hidden state
并且 null vector
),step t item ID
one-hot
向量。
RNN
的输出是 item
集合中每个 item
的得分 item
成为 session
中 next item
(即第 item
集合。
其中 softmax
或 tanh
),具体取决于损失函数。
在训练期间,将得分 next item ID
onehot
向量进行比较来计算损失函数。网络可以使用多种 ranking loss function
进行训练,如交叉熵、BPR
、TOP1
。在这项工作中,TOP1
损失总是优于其它 ranking loss
,因此我们在本文的剩余部分仅考虑该损失函数。TOP1
损失是 relevant item
(即 next item
)的相对排名的正则化近似。relevant item
的相对排名定义为:
其中:
relevant item
的得分。
irrelevant item
的得分,
sigmoid
来近似。
为了迫使negative item
(即 irrelevant item
)的分数趋于零,在损失函数中添加了一个正则化项。最终的损失函数为:
RNN
通过 session-parallel
的 mini-batch
来进行有效地训练。在每个训练 step
,batch
的 current item ID of sessions
(以 one-hot
向量来表示)。session-parallel
机制在 mini-batch
中保留指向每个 session
的当前 item
的指针,并会在 session
结束时重置 RNN
的 hidden state
。
为了进一步降低计算复杂度,损失函数是在 current item ID
和负采样的 item ID
上计算而来。具体而言,在计算损失函数时,将每个 session
的 current item ID
作为postive item
、将 mini-batch
中其它 session
的所有 item ID
作为negative item
。这使得无需执行显式的negative item
采样,并执行了基于流行度(popularity-based
)的采样。然而,由于 user id
在纯的 session-based
场景中是未知的,因此negative item
很有可能被同一个用户在其它 session
中交互的postive item
所“污染”。
这种方式称作
in-batch
负采样。另外,既可以将其它session
的current item ID
作为negative item
(实现更简单),也可以将其它session
的所有item ID
作为negative item
(效果更好)。
我们的 HRNN
模型在 RNN
之上通过以下方式构建:
添加一个额外的 GRU layer
来建模跨 user session
的信息。
使用强大的 user-parallel mini-batch
机制进行高效地训练。
架构:除了 session-level GRU
之外,我们的 HRNN
模型还添加了一个 user-level GRU
(session
的用户活动。下图展示了 HRNN
的结构示意图。
在每个 time step
,由 RNN
中的一样。
但是,当 session
结束时,user-level representation
通过
当一个新的 session
开始时, hidden state
(即 user-level representation
)用于初始化
形式上,对于每个用户 session
集合 user-level GRU
将 session-level representation
user-level representation
session
数量,user session
last hidden state
。
接下来为了便于表述,我们移除了 user
上标 user-level representation
其中 null vector
)。
session-level GRU
的 last hidden state
作为user-level GRU
的输入。通过这种方式,user-level GRU
可以跨 session
跟踪用户的演变,从而无缝地建模动态的用户兴趣。注意,user-level representation
在整个 session
期间保持固定,并且仅在 session
结束时更新。
然后使用 user-level rerepsentation
来初始化 session-level GRU
的 hidden state
。给定 session
的 session-level GRU
的初始 hidden state
其中: initialization
权重矩阵,initialization
偏置向量。通过这种方式,用户在先前 session
中表达的偏好相关的信息在 session-level
被传递。session-level representation
更新为:
其中方括号表示 session-level GRU
的输入。
如果仅仅是为了跨
session
来传递用户的偏好,那么可以简单地将上一个session
的last hidden state
传递给下一个session
。那么user-level GRU
的价值在哪里?论文的解释是:user-level GRU
建模了user-session
如何随着时间的演变,即 “计算并演变了用户画像” 。此外论文还在实验部分评估了这种做法的效果(即
RNN Concat
这个baseline
),实验发现RNN Concat
和HRNN
在小型数据集上的效果相差无几,但是在大型数据集上HRNN
效果显著优于RNN Concat
。所以HRNN
需要更大规模的数据才能体现其优势,因为HRNN
的模型容量更大。
模型使用反向传播进行端到端训练。
如果 user-level rerepsentation
session
之间更新,即 session
结束时以及接下来的 session
开始时。
如果 user-level rerepsentation
session
内保持不变), session
内更新。
我们也尝试将 user-level representation
传播到 final prediction layer
,即 RNN
而言,新模型的性能严重下降。因此,我们在本次讨论中放弃了这种 setting
。
注意,user session
的 hidden state
传递给下一个 user session
,而且还学习(在训练期间) user session
如何随时间的演变。我们将在实验部分看到,这对于提高性能至关重要。实际上,user session
),因此实际上个性化了 RNN
中,具有相同点击 item
序列的 user session
,模型将为这些用户提供相同的推荐。在 HRNN
中,情况不再如此,推荐结果也会受到用户历史 session
的影响。
总之,我们考虑了以下两种不同的 HRNN setting
,具体取决于公式 user representation
HRNN Init
:其中 next session
的 representation
。
HRNN All
:其中 next session
的representation
,也用作 next session
的输入。
HRNN All
相比于HRNN Init
的模型复杂度稍高。
正如我们将在实验部分看到的,根据推荐场景,这两种setting
可能会导致截然不同的结果。
学习:为了提高训练效率,我们调整了《Parallel recurrent neural network architectures for feature-rich session-based recommendations》
中描述的 session-parallel mini-batch
机制,从而考虑训练期间的 user id
,如下图所示。
我们首先根据用户对 session
进行分组,然后按照时间戳对每个分组内的 session
事件进行排序。然后我们对用户进行随机排序。在第一次迭代中,前面 session
的第一个 item
构成了 HRNN
的输入,对应 session
的第二个 item
构成了 HRNN
的输出。然后我们将 HRNN
的输出作为下一次迭代的输入,依此类推。
当 mini-batch
中的 session
结束时,更新 hidden state
、并为下一个 session
来初始化 hidden state
。当一个用户被完全处理之后,hidden state
都被重置, mini-batch
中下一个用户将被放到这个被处理完的用户的位置进行处理。
使用 user-parallel mini-batch
,我们可以有效地训练 HRNN
从而满足不同 session
数量、以及 session
内不同长度的用户。
此外,这种机制允许以独立于用户的方式对负样本进行采样,从而减少负样本被实际正样本“污染” 的机会。采样过程仍然是基于流行度popularity
的,因为一个 item
出现在 mini-batch
中的可能性与其流行度成正比。众所周知,这两个特点都有利于基于隐式用户反馈的 pairwise learning
。
因为负样本是从其它用户那里采样到的,因此可以减少污染机会。
未来工作:
使用注意力模型、item
特征、用户特征,从而进一步改善 user representation
并进一步提升 session-based
推荐方法。
在其它领域研究 session-based
个性化模型,例如音乐推荐领域、电商领域、在线广告领域。
数据集:
XING
数据集:XING Recsys Challenge 2016
数据集,包含 80
天内 77
万用户的job posting
交互信息。用户交互带有时间戳和交互类型(点击、添加书签、回复、删除)。
VIDEO
数据集:来自类似于 Youtube
的视频点播网站的专属数据集,包含 13k
用户在 2
个月内观看的视频。观看时长小于指定阈值的事件被丢弃。
我们使用 30
分钟空闲阈值来手动地将交互数据拆分为 session
。对于 XING
数据集,我们丢弃了 “删除” 类型的交互。我们还丢弃了 session
中相同类型的重复交互从而减少噪音(例如在 session
中重复点击同一个 job posting
)。
然后我们对两个数据集进行如下预处理:
我们删除了 XING
数据集中出现频次低于 20
的 item
,删除了 VIDEO
数据集中出现频次低于 10
的 item
,因为低频 item
不是建模的最佳选择。
我们删除了交互次数少于 3
次的 session
从而过滤太短且信息量不足的 session
。
我们删除了 session
总数低于 5
个的用户,从而使得用户具有足够多的 cross-session
信息,以便对用户进行正确的建模。
我们使用每个用户的最后一个 session
构建测试集,剩余的 session
构成训练集。我们还过滤了测试集中不属于训练集的 item
。这种划分允许针对具有不同历史session
数量的用户进行评估,从而衡量模型对不同活跃程度的用户的推荐质量。我们使用相同的程序进一步划分验证集从而调优算法的超参数。
数据集的统计信息如下表所示。
baseline
方法:
Personal Pop: PPOP
:推荐用户交互次数最多(而不是全局交互次数最多的 item
)。
Item-KNN
:根据 session
内 item
的共现来计算 item-to-item
的余弦相似度。
RNN
:采用《Session-based recommendations with recurrent neural networks》
中提出的模型,该模型使用 TOP1
损失函数以及 session-parallel mini-batch
(来自同一个用户的 session
彼此独立地馈入 RNN
)。
RNN Concat
:与 RNN
相同,但是来自同一个用户的所有 session
被拼接为单个 session
。
这相当于
退化为一个恒等映射。
配置:
我们使用 AdaGrad
来优化 TOP1
损失函数的神经网络模型,训练 10
个 epoch
。在所有模型中,增加 epoch
数量并未显著改善损失。
我们对 RNN
和 HRNN
的 hidden state
使用了 dropout
正则化。我们还将 dropout
应用于 HRNN
的
我们在 hierarchy
的两个 level
中都采用了单层 GRU
,因为使用多层 GRU layer
并没有提高性能。
为了评估网络容量如何影响推荐质量,我们考虑了每个 GRU layer
具有 100
个隐单元的小型网络、以及具有 500
个隐单元的大型网络。
我们使用随机搜索(random search
)在验证集上调优了每个模型(包括 baseline
模型)的超参数。为了帮助我们实验的可复现性,我们在下表中报告了我们在 XING
数据集上的、在实验中使用的超参数。HRNN
中的 user-level GRU
、session-level GRU
、以及初始化都使用了 dropout
,因此下表中给出的dropout
概率按照这个顺序提供。对于所有的数据集,Item-KMM
的最佳邻域大小都是 300
。
神经网络模型在 12GB GPU
内存的 Nvidia K80 GPU
上进行训练。训练时间从 XING
上的小型 RNN
模型的 5
分钟,到 VIDEO
上的大型 HRNN All
的 30
分钟不等。所有实验的评估时间不超过 2
分钟。
我们要强调的是,RNN
和 HRNN
之间的训练时间没有显著差异,其中 HRNN All
是计算成本最高的模型,因为其架构的复杂性更高。
评估方式:我们评估序列的 next-item prediction task
,即给定 user session
的事件,我们评估算法预测后续事件的效果。所有 RNN-based
模型都一个接一个地在 session
中输入事件,我们检查 next item
的预测排名。
此外,HRNN
模型和 RNN Concat
使用测试 session
之前的所有历史session
,这会降低评估速度,但是有必要在评估开始之前正确地设置个性化模型的 internal representation
(如 HRNN
的 user-level representation
)。
注意,评估指标仍然仅针对测试集中的事件进行计算,因此评估仍然是公平的。此外,我们在每个测试 session
中丢弃了由 RNN Concat baseline
计算的第一个预测,因为它是唯一的、能够推荐 user session
中首个事件的方法。
其它方法都只能最早预测
user session
中第二个事件。
由于推荐系统一次只能推荐几个 item
,因此 relevant item
应该在推荐列表中排名靠前。因此我们选择 Recall@5
、Precision@5
、Mean Reciprocal Rank (MRR@5)
等指标来评估推荐质量。
Recall@5
:相当于命中率指标,它衡量所有测试 case
中, relevant item
在 top-5
的 case
的占比。对于推荐顺序无关紧要的场景,这是一个良好的指标,并且该指标与 CTR
等重要 KPI
密切相关。
Precision@5
:衡量所有推荐列表的 top-5
位置中正确推荐的比例。
MRR@5
: relevant item
的排名的倒数(reciprocal rank
),如果排名大于 5
则排名的倒数被手动置为零。MRR
会考虑 item
的排名,这在推荐顺序要紧的情况下很重要。
实验结果:下表给出了 XING
和 VIDEO
数据集的结果。我们使用不同的随机数种子对每个神经网络模型进行了 10
次训练,并报告了平均结果。我们使用 Wilcoxon signed-rank test
来评估 HRNN
模型与 baseline
方法之间差异的显著性。
XING
数据集的结果:
简单的 PPOP baseline
就是一种非常有竞争力的方法,能够大大超越更复杂的 Item-KNN baseline
。正如前人工作对数据集的研究已经表明,用户在 sessoin
内和跨 session
之间的活动具有高度的重复性。这使得在这种情况下生成 non-trivial
的个性化推荐非常具有挑战性。
session-based RNN
较差的性能进一步突出了这一点,无论网络容量如何,它总是比 PPOP
差得多。
尽管如此,session-based
个性化推荐可以克服其局限性,并在小型网络和大型网络的 Recall
和 Precision
指标上实现卓越的性能。HRNN
在 Recall
和 Precision
指标上显著优于 RNN Concat
,并且在大型网络上提供显著更好的 MRR
。
此外,HRNN
在 Recall
和 Precision
指标上显著优于强大的 PPOP baseline
大约 11%
,同时获得了可比的 MRR
。
两个 HRNN
变体之间并没有显著的差异,除了在 MRR
指标上 HRNN All
比 HRNN Init
略有优势。Recall
和 Precision
指标上的差异并没有统计显著性。
RNN Concat
与HRNN All, HRNN Init
相差无几,但是在文章末尾的大型数据集上,HRNN
效果要好得多。这是符合预期的,因为HRNN
的模型复杂度更高,所以需要更大量的数据才能体现其能力。
VIDEO
数据集的结果:该数据集上显示出与 XING
数据集截然不同的结果。
Item-KNN baseline
显著优于 PPOP
,而 session-based RNN
可以大大优于这两个 baseline
。这与过去一些工作在类似数据集上的实验结果一致。
RNN Concat
相比较于 session-based RNN
具有可比的 Recall
和 Precision
。有趣的是,RNN Concat
大型网络的 MRR
指标明显更好。这表明直接拼接 session
不会增强 RNN
推荐器的检索能力,但是会增强其正确排序 item
的能力。
HRNN Init
的性能显著优于所有 baseline
。换句话讲,在相同的情况下,由 HRNN
建模的更复杂的 cross-session dynamic
在整体推荐质量方面提供了显著的优势。我们将在后面研究这些结果的可能原因。
值得注意的是,HRNN All
在这种情况下表现不佳。我们将推荐质量的严重下降归因于该 setting
中使用的 context-enforcing policy
。一种可能的解释是:多媒体内容(在我们的例子中是视频)的消费是一个 session-based
场景,比 XING
中代表的求职场景强得多。用户可能会遵循通用群体趋势 (general community trend
)并且具有长期兴趣(该长期兴趣由 user-level GRU
来捕获)。但是,session
中的用户活动可能与该用户最近的 session
完全断开,甚至与用户的一般兴趣(general interest
)无关(如,对极限运动视频有强烈兴趣的用户可能偶尔也会观看卡通电影预告片)。HRNN Init
让 session-level GRU
根据session
中用户兴趣的实际演变来自由地利用这些用户兴趣动态。其更大的灵活性带来了卓越的推荐质量。
即该场景中的兴趣更多的是
session
内的,而求职场景中的兴趣更多的是跨session
的。对于session
内的兴趣建模,用HRNN Init
效果更好;对于跨session
的兴趣建模,用HRNN All
效果更好。
用户历史长度分析:我们预计用户历史长度会对推荐质量产生影响,因此我们按照用户历史中的 session
数量对 evaluation
进行细分。为此,我们将用户历史分为两组:具有 <= 6
个 session
的 short
用户历史、具有 > 6
个 session
的 long
用户历史。下表中报告了这些数据集中不同分组占比的统计数据。
由于我们的目标是衡量 HRNN
中使用的复杂的 cross-session dynamic
对于传统 RNN
的影响,因此我们将这些分析限制在大型配置中 RNN-based
推荐器上。对于每种算法,我们计算测试集中不同分组中 test session
的平均 Recall@5
和 MRR@5
。由于 Precision@5
的分析结论与 Recall@5
相似,因此由于篇幅有限我们在此省略。为了增强实验结果的鲁棒性,我们使用不同的随机数种子运行 10
次评估,并报告每个算法的 median value
(而不是均值)。
XING
数据集的结果如下所示。可以看到:
随着用户历史长度的增加,我们注意到所有方法(包括 session-based RNN
)的 Recall
略微增加、MRR
略微下降。
不同方法的 short
用户历史和 long
用户历史的效果之间并没有显著变化。
HRNN All
是性能最好的模型,与 session-based RNN
相比,其 Recall@5
提高了 12%
、MRR@5
提高了 14~16%
。
根据我们之前的发现,HRNN Init
的性能与 RNN Concat
、 HRNN All
相当。
VIDEO
数据集的结果如下所示。可以看到:
所有方法(包括 session-based RNN
)的 Recall
都随着用户历史长度的增加而提升。MRR
仅在 RNN Concat
、HRNN Init
方法上随着用户历史长度的增加而提升。这凸显了需要有效的个性化策略从而在 session-level
获得卓越的推荐质量。
此外,HRNN Init
相对于 session-based RNN
在 Recall@5/MRR@5
指标上分别提升 5%/12% (short)
到 7%/19% (long)
,这进一步凸显了我们个性化策略的推荐质量。
与我们之前的发现一致,HRNN All
在这种情况下表现不佳。
综上所述,正如预期的那样,用户历史的长度对推荐质量有很大的影响。在像 XING
这样松散的 session-bounded
领域,其中用户活动高度重复并且跨 session
的多样性较少,那么将 user representation
强制提供给 session-level
输入,将得到比 initialization-only
方法更好的性能。然而,在更强的 session-based
场景中,跨 session
的用户活动具有更高程度的变化性,并且可能很大程度上偏离了用户的历史兴趣和偏好,那么更简单有效的 HRNN Init
变体将具有更好的推荐质量。
session
分析:这里我们按 session
中事件数量进行细分,从而衡量个性化在 user session
中的影响。我们仅分析长度 >= 5
的 session
(XING
数据集中仅为 6736
个 session
、VIDEO
数据集中仅为 8254
个 session
)。我们根据 session
中的位置(开始Beginning
、中间Middle
、结束End
)计算每个指标的均值。开始指的是 session
的前 2
个事件,中间指的是 session
的第 3
和第 4
个事件,结束指的是 session
第5
个及其之后的任何事件。
与之前的分析一样,我们关注 large
配置中 RNN-based
模型,并报告使用不同随机数种子在 10
次运行中均值的median
。Recall@5
和 MRR@5
的结果如下图所示。
在 XING
数据集上:
所有方法的性能随着 session
中 previous item
的数量增加而增加,这表明 session-level
的 user context
被所有 RNN-based
方法所正确利用。
但是,个性化的 session-based
模型和 pure session-based
模型之间存在很大差距。两个 HRNN
都具有相似的 Recall@5
,并且与 RNN Concat
相当。有趣的是,HRNN All
的 MRR@5
相对于 RNN
和 RNN Concat
的增益随着处理的 item
数量增加而增加,这意味着在这种情况下,随着 user session
的继续,历史用户信息变得更加有用。
HRNN Init
的 MRR
一直都比 RNN Concat
更好,在 Begining
和 End
具有更高的增益。
在 VIDEO
数据集上:
在 session
开始和结束之间,Recall
和 MRR
都如预期的增加。HRNN Init
在 session
开始时比 RNN
和 RNN Concat
有很大的提升。这符合直觉,即过去的用户活动也可以有效地用于更准确地预测用户在接下来 session
中的首个行为。
在最初的几个事件之后,个性化的 session-based
模型相对于 pure session-based
模型的 Recall
增益在减少,而 MRR
的增益保持稳定。换句话讲,在经历一些事件之后,session-level dynamic
开始压制 longer-term user interest dynamic
,从而降低了个性化策略的有效性。
然而,个性化仍然在整个 session
中提供了卓越的排序质量,正如 HRNN Init
和 RNN Concat
都比 RNN
有更高的 MRR
所证明的那样。更重要的是,在 session
开始时更好的推荐,要比 session
后期更好的推荐更具有影响力,因为前者更有可能增加留住用户的机会。
最后,HRNN All
总是更差的方法,这进一步巩固了 HRNN Init
变体的优越性。
大型数据集上的实验:我们在更大版本的 VIDEO
数据集(由先前的论文所使用)上验证了 HRNN
。该数据集由 81
万用户在 2
个月期间对 38
万个视频的交互组成,总共包括 3300
万个事件、850
万个 session
。然后我们应用了与 VIDEO
数据集相同的预处理步骤。我们将这个数据集命名为 VIDEOXXL
。
由于我们的计算资源有限,因此我们只能在这个大型数据集上测试 small
网络(对于 RNN
和 HRNN
采用 100
维的隐层)。我们使用在小型 VIDEO
数据集上学到的相同超参数运行一次所有的 RNN
和 HRNN
。虽然这不是最优的,但是这种方法在更一般的 setting
下提供了我们解决方案的初步近似。出于同样的原因,我们没有像对小型数据集所做的那样对实验结果进行详尽的分析。为了加快评估速度,我们计算了相关 item
与 5
万个最热门 item
相比的排名,如 《Parallel recurrent neural network architectures for feature-rich session-based recommendations》
中所做的那样。
结果在下表中所述,这证实了我们之前在小型 VIDEO
数据集上的发现:
RNN Concat
无效,其性能类似于 session-based RNN
。
另一方面,HRNN
的性能优于 session-based RNN
。具体而言,HRNN Init
相比 session-based RNN
,其 Recall@5
高了 28%
、MRR@5
高了 41%
。这些结果进一步证实了本文提出的 HRNN
模型的有效性。
在更大的数据集上,
HRNN
体现了其优势。