十五、Phased LSTM[2016]

  1. RNN 通常被建模为离散时间动态系统 discrete-time dynamical system,从而隐含地假设了输入信号的恒定采样率 constant sampling rate,这也成为递归单元recurrent unit和前馈单元feed-forward unit的更新频率。虽然已有一些早期的工作已经意识到恒定采样率带来的局限性,但是绝大多数现代 RNN 的实现都采用固定的 time step

    尽管固定的 time step 完全适合许多 RNNapplication,但是在一些重要的场景中,恒定的采样率会对 RNN 的效率和效果造成限制。许多现实世界中的自动驾驶或机器人任务需要整合来自各种传感器的输入,每个传感器都可能有自己的数据采样率。为此,论文 《Phased LSTM: Accelerating Recurrent Network Training for Long or Event-based Sequences》提出了一个新的 RNN 模型,它可以处理在异步时间采样的输入。

15.1 模型

  1. long short-term memory: LSTM 单元是现代深度 RNN 架构的一个重要组成部分。我们首先定义它们的更新方程:

    it=σi(Wx(i)xt+Wh(i)ht1+wc(i)ct1+b(i))ft=σf(Wx(f)xt+Wh(f)ht1+wc(f)ct1+b(f))ct=ftct1+itσc(Wx(c)xt+Wh(c)ht1+b(c))ot=σo(Wx(o)xt+Wh(o)ht1+wc(o)ct+b(o))ht=otσh(ct)

    其中:

    • it 为输入门 input gateft 为遗忘门 forget gateot 为输出门 output gatectcell activation vectorhthidden state vectorxtinput feature vector
    • σ 为激活函数,其中 σi,σf,σo 通常为 sigmoid 非线性激活函数,而 σc,σh 通常为 tanh 非线性激活函数。
    • Wx(),Wh(),b(),wc() 均为待学习的参数,其中 wc() 是可选的(目前主流的 LSTM 的实现并未引入这一项)。
    • 为逐元素乘积,即 Hadamard product
  2. Phased LSTM 通过增加一个新的 time gate kt 来扩展 LSTM 模型,如下图 (b) 所示。time gate 的打开和关闭是由三个参数指定的、独立的 rhythmic oscillation 所控制的,只有当 time gate 打开时才允许更新 cell state cthidden state ht 。这三个参数为:

    • τ:控制 oscillation 的实时周期 real-time period
    • ron:控制 open 阶段的持续时间与整个周期的占比。
    • s:控制每个 Phased LSTM celloscillation 的阶段偏移 phase shift

    所有这些参数都可以在训练过程中学习。

  3. 虽然 Phased LSTM 可能有很多变体,但是这里我们提出了一个特别成功的线性化的 time gate 公式。这种 time gate 类似于 rectified linear: ReLU 单元,可以很好地传播梯度:

    ϕt=(ts) mod ττ,kt={2ϕtron, if ϕt<ron222ϕtron, if ron2<ϕt<ronαϕt, otherwise

    其中:

    • ϕt 是一个辅助变量,它代表了 rhythmic cycle 内的阶段phasetime gate kt 有三个阶段,如下图所示。

      • 在前两个阶段,time gateopenness0 上升到 1 (第一阶段)、以及从 1 下降到 0 (第二阶段)。
      • 在第三阶段,time gate 被关闭,从而保持之前的 cell state
    • α 是一个超参数(一个很小的正数),表示在 time gate 在关闭阶段也是部分活跃的,这类似于 ReLUleaky 参数的作用。

    由于 kt 是线性函数,因此可以高效地进行梯度传播。

    time gate 的周期 τ、相位 s 、打开时间占比 ron 都是从数据中学到的,而不是人工指定的。

  4. 与传统的 RNN 甚至 RNN 的稀疏变体相比,Phased LSTM 中的更新可以选择在不规则采样的时间点 tj 进行。这使得 RNN 可以与事件驱动event-driven的、异步采样的输入数据一起工作。

    为了便于表述,我们用符号 cj 表示时间点 tjcell state (因此标准的记法是 ctj),其它的符号也是类似的记法。引入 time gate 之后,我们重写 LSTM 单元中 cell statehidden state 的更新方程(输入门、输出门、遗忘门的更新方程不变):

    c~j=fjcj1+ijσc(Wx(c)xj+Wh(c)hj1+b(c))cj=kjc~j+(1kj)cj1h~j=ojσh(c~j)hj=kjh~j+(1kj)hj1

    注意:前面提供的 time gate 是一个标量,这里写作向量,因为输入特征向量的每个维度可能来自于不同的数据源因此可能具有不同的time gate 值。如下图 (a) 所示,就是 3 个维度。

    下图是 Phased LSTM 的示意图,以及 cell state 输出的示意图。

    注意:当且仅当 time gate 打开的时候(占比 ron ),Phased LSTM 才能更新 cell statehidden state。大多数 time step 都不会更新 cell statehidden state

    换个思路,是否更新 cell statehidden state 是否可以由 attention 来决定,而不是由 time gate 来决定?

  5. 这种 Phased LSTM 公式的一个关键优势在于 memory decay 的速度。

    考虑一个简单的任务:如果没有收到额外的输入,则保持初始的 memory state c0 一直不变,即在所有 time stepij=0 。一个标准的、具有几乎完全放开的遗忘门(即,fj=1ϵϵ 为一个很小的正数)的 LSTM ,在经过 nstep 之后,其 memory state 为:

    cn=fncn1=(1ϵ)(fn1cn2)==(1ϵ)nc0

    这意味着 memory 随着每个 time step 呈指数级衰减。

    相反,Phased LSTMmemory 仅在 time gateopen 期间衰减,而在 close 期间得到保持。因此,在单个 oscillation 周期的长度 τ 中,单元仅在 ron×τ 的持续时间内更新,这将导致远少于 n 的更新 step 。由于这种 cyclic memoryPhased LSTM 可以通过参数 τ 拥有更长的、可调整的 memory length

  6. oscillation 迫使单元的更新变得稀疏,因此大大减少了网络运行过程中的总更新次数。在训练过程中,这种稀疏性确保了梯度需要通过更少的 updating time-step 进行反向传播、允许无衰减undecayed的梯度通过时间进行反向传播、并允许更快的学习收敛。

    LSTM 的输入门和遗忘门对 cell state ct (及其梯度)的屏蔽类似,time gate 防止外部输入和 time step 来干扰 cell state 的梯度。

    这种屏蔽策略既是优势,也是劣势:

    • 优势如文章所述,使得模型的更新更稀疏,计算效率更高、梯度传播效率更高、收敛速度更快。
    • 劣势是,丢弃了大量的 input 信息,这些被丢弃的信息可能对 label 预测至关重要。

15.2 实验

  1. 在所有实验中,网络是使用 Adam 优化器并采用默认的学习率参数。除非另有说明,否则在训练期间设置 leak rateα=0.001,在测试期间设置 α=0 。每个神经元的 phase shift s 从区间 [0,τ] 中均匀选择。参数 τs 是从训练中学到的,而 open ratio ron 固定为 0.05 并且不作调整(除了在第一个任务中,为了说明模型在学习所有参数时可以成功训练,我们也训练 ron)。

15.2.1 频率识别任务

  1. 第一个实验是识别来自不同频率集合的两类正弦波:第一类正弦波的周期从均匀分布 TU(5,6) 中采样而来,第二类正弦波的周期从均匀分布 T{U(1,5}U(6,100)} 中采样而来。

    该任务说明了 Phased LSTM 的优势,因为它涉及周期性激励并且需要精细的时间识别 timing discrimination

    输入以 pair <y,t> 来给出,其中 y 是样本的幅值、t 是样本的时间戳timestamp ,而样本来自于输入的正弦波。

  2. 下图说明了这项任务:基于样本(以圆圈来表示),蓝色曲线必须与浅色曲线分离。我们评估了对输入信号采样的三种条件:

    • 在标准条件下(图 (a)),正弦波每 1 毫秒被规则地采样。
    • 在过采样条件下(图 (b)),正弦波每 0.1 毫秒被规则地采样,从而得到 10 倍的数据点。
    • 在异步采样条件下(图 (c)),在输入的持续时间内,以异步的时间采集样本。

    此外,正弦波还具有以下特性:

    • 具有一个从所有可能的 shift 中随机均匀采样的 random phase shift
    • 具有从 U(15,125) 中随机采样的数字作为样本总数。
    • 具有从 U(15,125) 中随机采样一个持续时间 duration
    • 具有从 U(0,125duration) 中随机采样一个开始时间 start time

    异步采样和标准采样的样本数量是相等的。样本的类别大致均衡,各占 50% 左右。

  3. 我们在该数据上训练单层 RNN,但是采用不同的 RNN 模型:Phased LSTM、常规 LSTMbatch-normalized(BN) LSTM 。每个模型都重复五次,每次使用不同的随机初始化种子。

    • 对于常规 LSTMBN-LSTM,时间戳被用作额外的输入特征维度。对于 Phased LSTM,时间戳控制 time tate kt
    • LSTMBN-LSTM 的结构为 2-110-2 ,而 Phased LSTM 的结构为 1-110-2
    • Phased LSTMoscillation period τ 在指数空间中均匀地采样,从而提供各种适用的频率,即 τexp(U(0,3)) 。所有其它参数匹配对应的模型。
    • 默认的 LSTM 参数由 Lasagne Theano 实现给出,并在 LSTM, BN-LSTM, Phased LSTM 中保持。
  4. 结果:

    • 正如预期所示,所有三个网络在标准采样条件下都表现出色,如上图 (d left) 所示。

    • 然而,对于相同数量的 epoch,将数据采样增加 10 倍对 LSTMBN-LSTM 都具有毁灭性的影响,从而将它们的准确率降低到几乎是偶然的(图 (d middle))。

      据推测,如果给予足够的训练迭代,它们的准确率将恢复到正常的 baseline 。然而,对于过采样条件,Phased LSTM 实际上提高了准确率,因为它接收到关于基础波形的更多信息。

    • 最后,在异步采样条件下,即使采用与标准采样条件下相同数量的采样点,对于传统的 state-of-the-art 模型而言,这似乎也是相当具有挑战性的(图 (d, right))。

      但是,Phased LSTM 对异步采样的数据没有任何困难,因为 time gate kt 不需要定期更新,并且可以在周期内的任何连续时间正确采样。

  5. 我们通过在由两个正弦波合成的信号上训练相同的 RNN 结构来扩展之前的任务。目标是区分以下两个合成信号:

    • 第一个合成信号是由周期为 T1U(5,6)T2U(13,15) 的正弦波组成,每个正弦波都具有独立的相位。
    • 第二个合成信号是由周期为 T1{U(1,5)U(6,100}T2{U(1,13)U(15,100)} 的正弦波组成,每个正弦波也是具有独立的相位。

    尽管更具有挑战性,但是下图 (a) 展示了与使用完全相同的参数的标准方法相比,Phased LSTM 收敛到正确的解的速度有多快。此外,Phased LSTM 在训练期间似乎表现出非常低的方差。

15.2.2 加法任务

  1. 为了研究在需要 long memory 时引入 time gate 如何帮助学习,我们重新研究了一个称作 adding task 的原始 LSTM 任务。在这个任务中,会展示一个随机数序列、以及一个 indicator 序列。当 indicator 的取值为 0 时,对应的随机数被忽略;当 indicator 的取值为 1 时,对应的随机数被加起来。在过程结束时,网络输出所有被加起来的随机数的 sum

    与之前的任务不同,输入中没有固定的周期性,这是 LSTM 被设计用来解决的原始任务之一。这似乎与 Phased LSTM 的优势相悖,但对于 time gate kt ,使用更长的时间可以允许更有效的训练,因为一个单元在训练期间仅打开少数几个 time step

  2. 在这个任务中,我们从 U(0.5,0.5) 之间随机采样随机数序列(序列长度为 490510 )。随机数序列中只有两个数被标记为相加:

    • 第一个数来自于序列的前面 10%,具体的位置是均匀随机的。
    • 第二个数来自于序列的后面 50%,具体的位置也是均匀随机的。

    这导致生成一个长的、且充满噪音的数据流,其中只有少数几个重要的数据点。更重要的是,这会挑战 Phased LSTM 模型,因为没有固定的周期性,并且每个 time step 都可能包含重要的标记点marked point

  3. 我们使用前面相同的网络架构。周期 τ 在指数范围内均匀采样,并且对比了四个采样区间 exp(U(0,2)),exp(U(2,4)),exp(U(4,6)),exp(U(6,8)) 。注意,尽管 τ 值不同,但是 LSTM 更新的总数仍然大致相同,因为整体稀疏性由 ron 设置。然而,较长的周期 τ 在反向传播中为梯度提供了对过去 time step 的更长的 jump

    此外,我们研究了该模型是否可以在使用更长的周期时更有效地学习更长的序列。通过改变周期 τ ,在上图 (b) 中的结果显示:更长的 τ 加速了网络的训练,从而更快地学习更长的序列。

15.2.3 N-MNIST Event-Based 的视觉识别

  1. 为了测试真实世界异步采样数据的性能,我们利用公开可用的 N-MNIST 数据集来测试 neuromorphic vision 。记录来自于 event-based 的视觉传感器,该传感器对局部时间对比度变化local temporal contrast change很敏感。当像素的局部对比度变化超过阈值时,会从该像素生成事件 event 。每个事件都被编码为一个 4 元组:<x,y,p,t> ,其中 (x,y) 为像素的位置,polarity bit p 表示对比度增加或减少,t 为事件生成的时间戳。

    这些记录由视觉传感器vision sensor生成的事件组成,而传感器面对来自 MNIST 数据集的静态数字执行三个扫视运动saccadic movement (如下图 (a) 所示)。事件响应的例子可以在下图 (c) 中看到。

    在以前的、使用 event-based 输入数据的工作中,有时会删除时序信息,而是通过计算某个时间段内的 pixel-wiseevent-rate 来生成 frame-based representation ,如下图 (b) 所示。注意,下图 (c) 中事件的时空表面 spatio-temporal surface 比模糊的、frame-basedrepresentation 更清楚地解释了数字的细节。Phased LSTM 允许我们直接对此类时空事件流 spatio-temporal event stream 进行操作。

  2. baseline 方法:

    • 一个CNN 网络在 N-MNIST 数字的 frame-based representation 上进行训练。
    • 一个 BN-LSTM 直接在 event stream 上进行训练。
    • 一个 Phased LSTM 也直接在 event stream 上进行训练。

    我们没有展示常规的 LSTM,因为发现它的性能更差。

    CNN 由三组如下的交替层alternating layers组成:一个带 leakyReLU 非线性激活函数的卷积层(85 x 5 的卷积核)、一个 2 x 2 最大池化层。所有的交替层一共 6layer 。然后连接到一个全连接层(隐层维度 256),最后全连接到 10 个输出类。

    事件的像素地址 (x,y) 用于通过一个学到的 embedding 矩阵来生成 40 维的 embedding 向量,并与polarity p 相结合从而生成输入。因此,Phased LSTM 的网络架构为 41-110-10 (时间戳作为 time-gate 而不是 input ),BN-LSTM 的网络架构为 42-110-10 (时间戳作为 BN-LSTM 的额外输入维度)。

  3. 下表总结了三种不同模型的分类结果。结果显式: Phased LSTM 的训练速度比其它模型更快,并且即使在训练的第一个 epoch 内也能以更低的方差实现更高的准确率。

    我们进一步定义一个因子 ρ ,它表示一个事件被包含的概率,即 ρ=1.0 表示包含所有事件。所有 RNN 模型以 ρ=0.75 进行训练和测试,并且 Phased LSTM 的性能再次略高于 BN-LSTM 模型。在 ρ=0.4 (包含较少事件)、以及 ρ=1.0 (包含较多事件)的情况下进行测试而不进行重新训练时,两个 RNN 模型都表现良好并且大大优于 CNN 。这是因为当整体峰值率overall spike rate 发生改变时,CNNframe-based input 的累积统计数据会发生巨大变化。Phased LSTM 似乎已经在输入上学习了一个稳定的 spatio-temporal surface ,并且只通过更多或更少的采样来略微被调整。

    最后,由于 Phased LSTM 的每个神经元仅更新了大约 5% 的时间,与 BN-LSTM 的每个神经元需要 3153 次更新相比,平均只需要 159 次更新。这导致 Phased LSTMrun time 减少了大约 20 倍的计算成本。值得注意的是,Phased LSTM 的结果对于这个数据集而言形成了一个新的 state-of-the-art 准确率。

15.2.4 用于唇读的视觉听觉传感器融合

  1. 最后我们展示了 Phased LSTM 在涉及具有不同采样率的传感器的任务中的使用。很少有 RNN 模型尝试合并不同输入频率的传感器,因为不同传感器的采样率可能会有很大差异。

    对于该任务,我们使用 GRID 数据集。该语料库包含 30speaker 的视频和音频,每个 speaker 说出 1000 个句子,这些句子由固定的语法和 51 个单词的有限词汇组成。数据被随机拆分为 90% 的训练集和 10% 的测试集。

    我们在视频流上使用一个基于 OpenCV 的人脸检测器 face detector 的实现来抽取人脸,然后将其调整为灰度的 48 x 48 像素。这里的目标是获得一个模型,该模型可以单独使用音频、单独使用视频、或者同时使用两个输入来对句子进行可靠的分类。然而,由于单独的音频足以达到 99% 以上的准确率,因此我们在训练过程中将传感器模态 sensor modality 随机 mask 为零,从而鼓励模型对传感器噪音和损失的鲁棒性。

  2. 网络架构首先分别处理视频数据和音频数据:

    • 视频流使用三组这样的交替层alternating layers:一个卷积层(165 x 5 的卷积核)、一个 2 x 2 的池化层。 所有的交替层共计 6layer,将1 x 48 x 48 的输入降低到 16 x 2 x 2 ,然后将连接到 110 个循环单元。
    • 音频流将 39 维的 MFCC13MFCC 及其一阶导数和二阶导数)连接到 150 个循环单元。

    两个 stream 汇聚到具有 250 个循环单元的 Merged-1 层,并连接到具有 250 个循环单元的 Merged-2 层。Merged-2 层的输出全连接到 51 个输出节点,代表 GRID 的词表 vocabulary 。对于 Phased LSTM 网络,所有循环单元都是 Phased LSTM 单元。

    在音频和视频的 Phased LSTM 层中,我们手动将 time gateopen period 与输入的采样时间对齐,并禁用 τs 参数的学习(参考下图 (a))。这可以防止在没有数据的情况下向网络呈现零值或人工插值。然而,在 merged layer 中,time gate 的参数是学到的,Merged-1 层的 period 参数 τ 采样自 U(10,1000)Merged-2 层的 period 参数 τ 采样自 U(500,3000) 。下图 (b) 展示了一帧视频的可视化、以及一个音频样本的完整持续时间。

    在评估过程中,所有网络在 audio-onlyaudio-video 输入上的准确率均超过 98%。然而在具有 audio-video 能力的网络上进行 video-only 评估被证明是最具挑战性的,因此我们没有评估 video-only 的结果。

    即,这里的评估以音频为主、视频作为辅助。

    我们使用两种不同采样率的数据版本, audio-video 输入上的结果如下图 (c) 所示 :

    • 在第一个 low-resolution 版本中(下图(c) 的顶部),MFCC 的采样率与 25fps 视频的采样率相匹配。
    • 在第二个 high-resolution 版本中(下图 (c)的底部,以及下图 (a)),MFCC 的采样率设置为更常见的 100Hz

    较高的音频采样率并没有提高准确性,但是允许更短的延迟(10ms 而不是 40ms)。Phased LSTM 的收敛速度再次显著快于 LSTMBN-LSTM81.15% 的峰值准确率优于 lipreading-focusedstate-of-the-art 方法,同时避免了人工制作的特征。

十六、Time-LSTM[2017]

  1. 循环神经网络 Recurrent Neural Network: RNN 解决方案已经成为序列数据建模的 state-of-the-art 方法。越来越多的工作试图在推荐系统 recommender system: RS 领域找到 RNN solutionRNN 在推荐任务中表现良好的 insight 是:在用户的动作序列中存在一些内在模式 intrinsic pattern ,例如一旦一个人购买了羽毛球拍那么该用户往往在以后倾向于购买一些羽毛球,而 RNN 在建模此类模式时已被证明表现极好。

    然而,推荐系统中的上述 RNN 解决方案都没有考虑用户相邻动作action 之间的时间间隔 time interval ,而这些时间间隔对于捕获用户动作之间的关系很重要。例如,间隔时间很短的两个动作往往是相关的,而间隔时间很长的两个动作往往是针对不同的目标。因此,在建模用户行为时,利用时间信息来提高推荐性能非常重要。我们使用下图来展示时间间隔是什么、以及它如何使得推荐系统与语言模型等传统领域不同。具体而言,在语言模型中没有相邻词之间的间隔的概念(如 w1w2 之间没有间隔),而在推荐系统中相邻动作之间存在时间间隔(如 i1i2 之间的时间间隔 Δt1)。传统的 RNN 架构擅长对下图 (a) 中的序列数据sequential data的顺序信息order information进行建模,但是无法很好地对下图 (b) 中的时间间隔进行建模。因此,需要提出新的模型来解决这个问题。

    人们最近提出的一种模型,即 Phased LSTM ,该模型试图通过向 LSTM 添加一个 time gate 来建模时间信息。在这个模型中,时间戳 timestamptime gate 的输入,其中 time gate 控制了 cell sate, hidden state 的更新从而控制最终输出。同时,仅使用处于模型激活状态model’s active state的样本,导致训练期间的稀疏更新 sparse update 。因此,Phased LSTM 在训练阶段可以获得相当快的学习收敛速度。然而,有一些挑战使得 Phased LSTM 难以成为最适合推荐任务的方法。

    • 首先,Phased LSTM 对时间戳进行建模。时间戳是单个动作的特征,而不是两个动作之间的时间间隔。因此,Phased LSTM 可能无法正确建模动作之间的关系。

    • 其次,在大多数推荐系统中,用户的行为数据通常非常稀疏,而 Phased LSTM 会忽略用户在非激活状态inactive state下的行为,无法充分利用行为信息进行推荐。

    • 第三,之前的研究已经指出,用户的短期兴趣和长期兴趣对于推荐都非常重要,但传统的 RNN 架构(包括 Phased LSTM)并没有旨在同时区分和同时利用这两种兴趣。在这里:

      • 短期兴趣意味着,推荐的 item 应该取决于最近消费的 item。例如,如果用户刚买了一台尼康相机,那么该用户很可能在不久的将来会购买存储卡、镜头、保护套。
      • 长期兴趣是指被推荐的 item 也应该受到用户历史行为的影响,其中历史行为反映了用户的一般兴趣 general interest

    为了应对上述挑战,论文 《What to Do Next: Modeling User Behaviors by Time-LSTM》提出了具有三个版本的 Time-LSTM 来建模用户在推荐系统中的序列动作 sequential actionTime-LSTM 中的 time gate 建模动作的时间间隔,从而捕获动作之间的关系。

    • 第一个版本的 Time-LSTM 只有一个 time gate,这个 time gate 利用时间间隔来同时捕获短期兴趣和长期兴趣。

    • 第二个版本的 Time-LSTM 有两个 time gate

      • 第一个 time gate 旨在利用时间间隔来捕获当前 item recommendation 的短期兴趣。
      • 第二个 time gate 是保存时间间隔,以便建模长期兴趣用于之后的推荐。
    • 第三个版本的 Time-LSTM 使用 coupled input and forget gates减少参数数量,这使得模型更加简洁。

    具有这些 time gateTime-LSTM 可以很好地同时捕获用户的短期兴趣和长期兴趣,从而提高推荐性能。此外,Time-LSTM 没有忽略动作的非激活状态,因此与 Phased LSTM 相比,它可以更好地利用行为信息。论文的实验结果证明了 Time-LSTM 的有效性。

    本文的贡献如下:

    • 所提出的模型 Time-LSTMLSTM 配备了精心设计的 time gate,因此它不仅擅长建模序列数据中的顺序信息,还可以很好地捕获对象之间的时间间隔。这是一个一般general的思想(不限于推荐系统),可以开发 Time-LSTM 的其它变体来建模其它任务中 event-based 的序列数据。

      请注意,与考虑时间戳并可能隐式捕获间隔信息的 Phased LSTM 不同,论文显式地建模时间间隔。此外,与 Phased LSTM 相比,Time-LSTM 利用了更多的样本。

    • 提出了三个版本的 Time-LSTM。与现有的 RNN 解决方案相比,这些 Time-LSTM 版本可以更好地同时捕获用户的短期兴趣和长期兴趣,从而提高推荐性能。

    • 所提出的模型在两个真实世界的数据集上进行了评估,实验结果表明使用 Time-LSTM 的推荐方法优于传统方法。

  2. 相关工作:

    • LSTM 及其变体:

      • LSTMLSTM 最常用的更新方程如下:

        im=σi(Wx(i)xm+Wh(i)hm1+wc(i)cm1+b(i))fm=σf(Wx(f)xm+Wh(f)hm1+wc(f)cm1+b(f))cm=fmcm1+imσc(Wx(c)xm+Wh(c)hm1+b(c))om=σo(Wx(o)xm+Wh(o)hm1+wc(o)cm+b(o))hm=omσh(cm)

        其中:

        • im 为输入门 input gatefm 为遗忘门 forget gateom 为输出门 output gatecmcell activation vectorhmhidden state vectorxminput feature vector
        • σ 为激活函数,其中 σi,σf,σo 通常为 sigmoid 非线性激活函数,而 σc,σh 通常为 tanh 非线性激活函数。
        • Wx(),Wh(),b(),wc() 均为待学习的参数,其中 wc() 是可选的(目前主流的 LSTM 的实现并未引入这一项)。
        • 为逐元素乘积,即 Hadamard product
      • coupled input and forget gatesLSTM 的一种变体是使用 coupled input and forget gates,而不是单独决定要遗忘什么、以及什么新信息要被添加。这个变体丢弃了 fm forget gate ,并调整 cm 的更新方程为:

        cm=(1im)cm1+imσc(Wx(c)xm+Wh(c)hm1+b(c))
      • Phased LSTMPhased LSTM 是一种 state-of-the-artRNN 架构,用于建模event-based 的序列数据。Phased LSTM 通过添加 time gate km 来扩展 LSTMtime gate km 由三个参数来控制:τ,ron,s ,其中:τ 代表模型的总周期 total period 时长,ron 代表 open periodtotal period 的比值,s 代表 phase shiftτ,ron,s 都是通过训练来学到的。

        time gate km 正式定义为:

        ϕm=(tms) mod ττ,km={2ϕmron, if ϕm<12ron22ϕmron, if 12ron<ϕm<ronαϕm,otherwise

        其中:tm 为时间戳,ϕm 为一个辅助变量,αleak rate (在训练阶段取值几乎为零,在测试阶段直接设为零)。leak rate α 类似于 Leaky ReLU ,用于传播梯度信息。

        注意,这里的 km 公式是一个标量,代表单个特征维度的 time gate。考虑到通常有多个特征维度,因此 time gate 是个向量。

        time gate km 有三个 phases:在第一个 phase km0 上升到 1,在第二个 phase km1 下降到 0 (前两个 phase ,模型为激活状态),在第三个 phase km 几乎为零(第三个 phase,模型为非激活状态inactive state )。仅在time gate 激活状态下才更新 cmhm ,因此 Phased LSTMcell statehidden state 更新方程为:

        c~m=fmcm1+imσc(Wx(c)xm+Wh(c)hm1+b(c))cm=kmc~m+(1km)cm1h~m=omσh(c~m)hm=kmh~m+(1km)hm1

        由于设置了 inactive statePhased LSTM 在应用于推荐系统时无法充分利用用户的动作。

    • 推荐系统中的 RNN 解决方案:

      • 《Session-based recommendations with recurrent neural networks》old sessions 中对 item-IDone-hot representation 训练了带 ranking lossRNN 。然后,训练好的 RNN 用于在新的 user session 上提供推荐。
      • 《Parallel recurrent neural network architectures for feature-rich session-based recommendations》《Session-based recommendations with recurrent neural networks》 的扩展,它提出了两项技术(数据增强、以及一种考虑输入数据分布变化的方法)来提高模型的性能。此外,它考虑了一个稍微不同的 setting,其中存在 item 的丰富特征。它引入了 parallel RNN 架构来建模 clicks 以及 item 特征。
      • 《A dynamic recurrent model for next basket recommendation》next-basket recommendation 设计了一种 RNN 方法。

      在本文中,我们探索了在推荐系统社区中具有更常见 settingRNN 解决方案:我们知道 user id,但是不知道 session 信息。此外,前述方法不考虑时间间隔,而我们在 LSTM 中添加 time gate,可以利用时间间隔来推高推荐性能。

    • 短期兴趣和长期兴趣:

      • 推荐系统中的大多数现有算法,如 Bayesian Personalized Ranking: BPR、矩阵分解matrix factorization、张量模型tensor models ,聚焦于建模用户的长期兴趣。
      • 《Personalized news recommendation based on click behavior》 通过 content-based 方法来适配adapt 一种协同过滤方法collaborative filtering从而挖掘用户的当前兴趣。
      • 一些方法应用协同过滤和关联规则association rulematch 用户最近的行为。
      • 《Adaptation and evaluation of recommendations for short-term shopping goals》 提出用户的短期兴趣和长期兴趣在在线购物场景中都很重要,并量化了几种组合策略combining strategy
      • 半马尔可夫过程Semi-Markov Process: SMP 和马尔可夫更新过程Markov Renewal Process: MRP 还旨在建模具有时间间隔的序列过程sequential process。然而,由于 SMPMRP 的马尔科夫特性,它们无法捕获在我们任务中的长期兴趣。

16.1 模型

  1. U={u1,u2,} 为用户集合,I={i1,i2,}item 集合。对每个用户 u ,该用户的消费历史记做 Hu:=[(i1u,t1u),(i2u,t2u),,(inuu,tnuu)] ,其中 (imu,tmu) 表示用户 u 在时刻 tmu 消费了该用户的第 mitem

    我们的任务是在给定用户 up 和给定时刻 tq 的条件下,提供一个推荐列表 IlI

  2. 我们通过两种方法使得 LSTM 适配 adapt 我们的任务:

    • 第一种方法是,我们仅记录 item 的顺序,而不考虑时间信息。因此在我们的任务中,LSTM 更新方程中的 xm 就是 imu (经过 one-hot )。

      这也是大多数现有方法的做法。

    • 第二种方法是,考虑时间信息。我们首先将 Hu 转换为:

      [(i1u,t2ut1u),(i2u,t3ut2u),,(inuu,tqtnuu)]

      那么在我们的任务中,LSTM 更新方程中的 xm 就等价于 (imu,tm+1utmu) 。这里我们对 imu 采用 one-hot representation,对 tm+1utmu 使用一维的实数表示。

      也可以对 (tm+1utmu) 进行离散化,如按照 day/week/month 等离散化,然后转换为 embedding

      这里用下一个时间戳减去当前时间戳,而不是当前时间戳减去上一个时间戳,是因为我们想捕获当前消费的 item 对未来的影响。

    为了适配 LSTM 及其所有变体,模型的输出是由 hm 计算的所有 item 的概率分布。损失函数基于模型的输出和 im+1u

  3. 对于 Phased LSTM 的适配,在我们的任务中,xm 等价于 imu (使用 one-hot representation),time gate 中的 tm 等价于 tm+1u ,即 ϕm=(tm+1us) mod ττ

  4. 当将 LSTM 及其变体应用于推荐系统时:

    • xm 包含用户消费的 last item 的信息。由于这是用户最近 most recent 的动作,我们可以利用 xm 来了解用户当前的短期兴趣。
    • 另一方面,cm1 包含了用户之前行为 previous actions 的信息,因此 cm1 反映了用户的长期兴趣。

    然而,xm 究竟在多大程度上反映了用户当前的短期兴趣,这在不同情况下有所不同。例如,如果 xm 是很久以前消费的,那么就很难反映当前的消费目标 consuming goal 。在 Time-LSTM 中,我们使用 time-gate 来控制 last consumed item xm 对当前推荐的影响。

    此外,这些 time gate 有助于将时间间隔存储在 cm,cm+1, 中,这反映了用户在后续推荐later recommendation中的长期兴趣。因此,在建模用户的长期兴趣时,不仅要考虑用户以前消费过的 item,还要考虑相应的时间间隔。我们设计了三个版本的 Time-LSTM,如下图所示。

    attention-based 模型(如 STAMP 中),是否可以将 xm 和时间间隔同时作为短期兴趣网络的输入,从而捕获 last item 对当前推荐的影响?

16.1.1 Time-LSTM 1

  1. 第一个版本的 Time-LSTM 添加了一个 time gate Tm 。基于 LSTM 的更新方程,我们添加了一个 time gate 的更新,同时调整了 cmom 的更新:

    Tm=σt(Wx(t)xm+σΔt(Wt(t)Δtm)+b(t))cm=fmcm1+imTmσc(Wx(c)xm+Wh(c)hm1+b(c))om=σo(Wx(o)xm+Wt(o)Δtm+Wh(o)hm1+wc(o)cm+b(o))

    其中:

    • ΔtmR1 为时间间隔,σΔt() 为一个 sigmoid 函数,Tmtime gate
    • Wt(t),Wt(o)Rd×1 为时间相关的、待学习的参数。
  2. 可以看到,time gate Tm 在两个方面有帮助:

    • 一方面,σc(Wx(c)xm+Wh(c)hm1+b(c)) 不仅被 input gate im 所过滤,还被 time gate Tm 所过滤。所以,Tm 可以控制 xm 对当前推荐的影响。
    • 另一方面,Δtm 首先被存入 Tm ,然后被传递到 cm ,接着被传递到 cm+1,cm+2, 。因此,Tm 有助于存储 Δtm 从而为后续推荐later recommendation来建模用户的长期兴趣 (cm,cm+1,)

    注意,我们能够以类似的方式将 Tm 推广到其它 RNN 架构,如 GRU

  3. Tm 完全从数据中学习。但是,作为先验知识,我们知道,给定一个 last consumed item,如果它是非常近期消费more recently consumed的,则这个 item 应该对当前推荐有更大的影响。我们希望将这些先验知识融入到 time gate 的设计中。

16.1.2 Time-LSTM 2

  1. 第二个版本的 Time-LSTM 添加了两个 time gate T1m,T2m

    • T1m 控制了 last consumed item 对当前 item recommendation 的影响。
    • T2m 存储了时间间隔来建模用户的长期兴趣用于后续推荐。
  2. 基于 LSTM 的更新方程,我们首先添加了两个 time gate 的更新:

    T1m=σt1(Wx(t1)xm+σΔt(Wt(t1)Δtm)+b(t1))s.t.Wt(t1)0T2m=σt2(Wx(t2)xm+σΔt(Wt(t2)Δtm)+b(t2))

    然后我们调整 cm,om,hm 的更新方程为: