一、概述
名称:A Contextualized Temporal Attention Mechanism for Sequential Recommendation
作者:Jibang Wu, Renqin Cai, Hongning Wang
文献类型:会议论文 www2020
年份:2020年1月
源码网站:https://github.com/Charleo85/seqrec
二、主要解决问题
大多数顺序推荐系统的算法关注于对用户行为的结构,但是却忽略了时间和上下文的信息。作者认为用户过去的行为对现在行为的影响会随着时间和上下文发生变化。
=>挖掘用户历史行为中的temporal和context信息。
=>利用Contextualized Temporal Attention Mechanism来学习用户过去行为的权重(不仅关注行为本身,还关注其发生的时间和原因)。
三、解决思路
1、模型描述
-
用户空间U,大小为U;物品空间V,大小为V。
用户的行为序列 C = { S 1 , S 2 , . . . , S U } \mathbf{C} = \{ \mathbf{S}^1, \mathbf{S}^2,..., \mathbf{S}^U\} C={ S1,S2,...,SU},其中 S u = { ( t 1 u , s 1 u ) , ( t 2 u , s 2 u ) , . . . } \mathbf{S}^u = \{ (t^u_1,s^u_1), (t^u_2, s^u_2), ... \} Su={ (t1u,s1u),(t2u,s2u),...}, t j u t^u_j tju表示时间戳, s j u s^u_j sju表示用户u所操作的物品。 -
模型共分为三个部分:content-based attention,temporal kernels和contextualized mixture。
-
输入:原始输入包括窗口大小为L的用户历史记录 { ( t i , s i ) i = 1 L } \{(t_i,s_i)^L_{i=1}\} { (ti,si)i=1L}和当前需要推荐的时间戳 t L + 1 t_{L+1} tL+1。输入序列的embedding表示:
X = [ s 1 , . . . , s L ] ⋅ E i n p u t ∈ R L × d i n \mathbf{X} = [s_1, ..., s_L] \cdot E_{input} \in R^{L \times d_{in}} X=[s1,...,sL]⋅Einput∈RL×din
同时将输入序列的时间信息使用时间戳差来表示:
T = [ t L + 1 − t 1 , . . . , t L + 1 − t L ] ∈ R L × 1 \mathbf{T} = [t_{L+1} - t_1,...,t_{L+1} - t_L] \in R^{L \times 1} T=[tL+1−t1,...,tL+1−tL]∈RL×1 -
三层模型可以表示为:
α = M α ( X ) → β = M β ( T ) → γ = M γ ( X , β , α ) \mathbf{\alpha} = M^{\alpha}(\mathbf{X}) \rightarrow \mathbf{\beta} = M^{\beta}(\mathbf{T}) \rightarrow \mathbf{\gamma} = M^{\gamma}(\mathbf{X, \beta, \alpha}) α=Mα(X)→β=Mβ(T)→