【论文阅读】Empowering next POI recommendation with multi-relational modeling
authors:: Zheng Huang, Jing Ma, Yushun Dong, Natasha Zhang Foutz, Jundong Li
container:: Proceedings of the 45th international ACM SIGIR conference on research and development in information retrieval
year:: 2021
DOI:: 10.1145/3477495.3531801
rating:: ⭐⭐
share:: false
comment:: 强调用户之间的社交关系建模,使用耦合的 RNN 相互更新用户和 POI 表示
前言
2022 年 SIGIR, Empowering next POI recommendation with multi-relational modeling
问题描述
分别给定用户集合U = { u 1 , u 2 , ⋯ , u U } \mathcal{U} = \{ u_1, u_2, \cdots, u_U \} U = { u 1 , u 2 , ⋯ , u U } 以及 POI 集合L = { l 1 , l 2 , ⋯ , l L } \mathcal{L} = \{ l_1, l_2, \cdots, l_L \} L = { l 1 , l 2 , ⋯ , l L } ,其中每个位置l i l_i l i 都有一个对应的( l a t , l o n ) (lat, lon) ( l a t , l o n ) 坐标相关联。
(check-in )一个 check-in 可以表示为c k ( u i ) = ( l k , t k ) c_k(u_i)=(l_k,t_k) c k ( u i ) = ( l k , t k ) ,即用户u i u_i u i 在t k t_k t k 时刻访问地点l k l_k l k 。
(user trajectory )用户轨迹是由特定用户的一系列时间顺序的签到记录来定义的,即C ( u i ) = { c 1 ( u i ) , c 2 ( u i ) , ⋯ , c K ( u i ) } C(u_i) = \{ c_1(u_i), c_2(u_i), \cdots, c_K(u_i) \} C ( u i ) = { c 1 ( u i ) , c 2 ( u i ) , ⋯ , c K ( u i )} 。
(user-user social relations )给定用户之间的P P P 个关系R = { r 1 , r 2 , ⋯ , r P } \mathcal{R}=\{r_1, r_2, \cdots, r_P\} R = { r 1 , r 2 , ⋯ , r P } 。使用三元组表示用户之间的社交关系( u i , u j , r p ) , u i , u j ∈ U , r p ∈ R (u_i, u_j, r_p), u_i, u_j \in \mathcal{U}, r_p \in\mathcal{R} ( u i , u j , r p ) , u i , u j ∈ U , r p ∈ R 。为了简单,假设用户之间的关系是对称的。值得注意的是,用户之间可能有多种关系。
(next POI recommendation )给定每个用户u i u_i u i 从 1 到t t t 时刻的活动轨迹C ( u i ) C(u_i) C ( u i ) ,预测用户u i u_i u i 在下一时刻t + 1 t+1 t + 1 最可能去的 POI top-k k k 。
OverView
论文认为在 POI 推荐任务中仍然存在以下的挑战:
用户的偏好是复杂的,通常不同的社会关系有很强的联系。如下图所示,用户 Jack 从家庭成员那里寻求关于购物中心的建议,而从同事那里寻求关于培训机构的建议。这些异构的社会关系,加上用户访问 POI 所形成的用户-POI 关系,给有效利用嵌入的丰富信息带来了巨大的挑战。
获取用户和 POI 之间关键的、跨时的、相互的影响仍然具有挑战性。在用户-POI 关系中,用户的偏好可能会随时间发生变化。仍以上图为例,假如 Anna 在她最近访问的商场留下了一个正面的评价,或者推荐给其他人,那么,这个 POI 的声誉和受欢迎程度可能会得到提高。反过来,这个 POI 的声誉将影响安娜未来的访问。
为了解决上面这些问题,论文提出了 Multi-Relational Modeling (MEMO),充分利用用户之间的社交关系以及用户与 POI 之间的关系,使用 Graph Convolutional Networks (GCN) 以及 self-attention 进行特征提取。
为了捕获用户和 POI 之间随时间变化的相互影响,论文设计了一个基于耦合的递归神经网络(RNNs)的用户-POI 相互影响建模组件,该网络可以相互更新对方的表示。
MEMO
模型架构如下图所示:
Relation Modeling
为了对用户之间不同的P P P 种关系进行建模,论文建立了P P P 个网络G 1 , ⋯ , G P \mathcal{G}_1, \cdots, \mathcal{G}_P G 1 , ⋯ , G P ,每一个网络都有一个对应的邻接矩阵A 1 , A P \mathbf{A}_1, \mathbf{A}_P A 1 , A P ,其中A p ∈ R U × U \mathbf{A}_p\in\mathbb{R}^{U\times U} A p ∈ R U × U ,若用户u i u_i u i 和u j u_j u j 之间的关系为p p p ,则A p [ i , j ] = A p [ j , i ] = 1 \mathbf{A}_p[i,j]=\mathbf{A}_p[j,i]=1 A p [ i , j ] = A p [ j , i ] = 1 。
类似地,用户-POI 关系矩阵G C \mathcal{G}_C G C 有一个对应的邻接矩阵A C ∈ R ( U + L ) × ( U + L ) \mathbf{A}_C\in\mathbb{R}^{(U+L)\times(U+L)} A C ∈ R ( U + L ) × ( U + L ) 获取用户与 POI 之间的访问关系。总共有P + 1 P+1 P + 1 种关系,包括P P P 种用户-用户社会关系和 1 种用户-POI 关系。
Relation-Specific Representation Learning
为了适应不同类型的关系,论文利用特定关系的表示学习模块,将节点映射到与每个关系分别对应的潜在表示空间中。
首先,对于每个节点v i v_i v i ,随机初始化其嵌入x i \mathbf{x}_i x i 。利用特定关系的转移函数Φ ( ⋅ ) \Phi(\cdot) Φ ( ⋅ ) 将x i \mathbf{x}_i x i 映射新的 embedding x i p \mathbf{x}_i^p x i p 表示第p p p 个关系:
x i p = Φ ( x i ) \mathbf{x}_i^p = \Phi(\mathbf{x}_i)
x i p = Φ ( x i )
在x i p \mathbf{x}_i^p x i p 基础上,论文通过使用 GCN 聚合每个网络G p \mathcal{G}_p G p 上的邻居的嵌入来学习每个节点v i v_i v i 的特定表示h i p \mathbf{h}_i^p h i p 。
感觉论文说得不明不白的,连什么公式都没有。
Aggregation over Different Relation Types
接着,论文利用 self-attention 将每个节点的所有特定关系表示汇总到一个共同的隐藏层空间,以有效捕获每个用户在不同类型关系中的偏好。
具体来说,其实也就是利用 self-attention 计算两个关系之间的相似性:
k i p = W p K h i p q i p = W p Q h i p m i p = W p M h i p \mathbf{k}_i^p = \mathbf{W}_p^K\mathbf{h}_i^p \quad \mathbf{q}_i^p = \mathbf{W}_p^Q\mathbf{h}_i^p \quad
\mathbf{m}_i^p = \mathbf{W}_p^M\mathbf{h}_i^p
k i p = W p K h i p q i p = W p Q h i p m i p = W p M h i p
α ( p 1 , p 2 ) = Softmax ∀ p 2 ∈ [ P + 1 ] ( k i p 2 q i p 1 / d ) \alpha(p_1, p_2) = \text{Softmax}_{\forall p_2\in[P+1]} (\mathbf{k}_i^{p_2} \mathbf{q}_i^{p_1} / \sqrt{d})
α ( p 1 , p 2 ) = Softmax ∀ p 2 ∈ [ P + 1 ] ( k i p 2 q i p 1 / d )
并将所有关系聚合到关系p p p :
h ~ i p = ⊕ p ′ ∈ [ P + 1 ] { α ( p , p ′ ) ⋅ m i p ′ } \tilde{\mathbf{h}}_i^p = \oplus_{p'\in[P+1]} \{ \alpha(p, p') \cdot \mathbf{m}_i^{p'} \}
h ~ i p = ⊕ p ′ ∈ [ P + 1 ] { α ( p , p ′ ) ⋅ m i p ′ }
其中W p K , W p Q , W p M \mathbf{W}_p^K,\mathbf{W}_p^Q,\mathbf{W}_p^M W p K , W p Q , W p M 为可学习权重矩阵。
之后使用多层感知机聚合不同关系类型的表示:
h i = M L P ( [ h ~ i 1 ∥ h ~ i 2 ∥ ⋯ ∥ h ~ i P + 1 ] ) \mathbf{h}_i = MLP([\tilde{\mathbf{h}}_i^1 \Vert \tilde{\mathbf{h}}_i^2 \Vert \cdots \Vert \tilde{\mathbf{h}}_i^{P+1}])
h i = M L P ([ h ~ i 1 ∥ h ~ i 2 ∥ ⋯ ∥ h ~ i P + 1 ])
User-POI Mutual Influence Modeling
在用户-POI 关系中,用户的潜在状态和 POI 的潜在状态可能会随着时间的推移而相互影响。因此,需要更新用户和 POI 的表示,以捕获这样的相互关系。具体来说,论文通过用户 RNN(RNNU _U U )和位置 RNN(RNNL _L L )组成的耦合 RNN,分别学习用户和 POIs 的表示。
RNNU _U U 整合了 POI 表示来更新用户表示,反之亦然。具体来说:
h u t + 1 = σ ( W 1 U h u t + W 2 U h l t + W 3 U z Δ t + W 4 U z Δ d ) \mathbf{h}_u^{t+1} = \sigma(\mathbf{W}_1^U\mathbf{h}_u^t + \mathbf{W}_2^U\mathbf{h}_l^t + \mathbf{W}_3^U\mathbf{z}^{\Delta t} + \mathbf{W}_4^U\mathbf{z}^{\Delta d})
h u t + 1 = σ ( W 1 U h u t + W 2 U h l t + W 3 U z Δ t + W 4 U z Δ d )
其中W 1 U , ⋯ , W 4 U \mathbf{W}_1^U, \cdots, \mathbf{W}_4^U W 1 U , ⋯ , W 4 U 为可学习矩阵,h u t , h l t \mathbf{h}_u^t, \mathbf{h}_l^t h u t , h l t 分别为用户和 POI 的隐藏层表示,z Δ t , z Δ d \mathbf{z}^{\Delta t},\mathbf{z}^{\Delta d} z Δ t , z Δ d 为时空信息。
类似地,RNNL _L L 使用用户表示更新 POI 表示:
h l t + 1 = R N N L ( h l t , h U ( l , t ) t ) \mathbf{h}_l^{t+1} = RNN_L(\mathbf{h}_l^t, \mathbf{h}_{\mathcal{U}(l,t)}^t)
h l t + 1 = RN N L ( h l t , h U ( l , t ) t )
其中U ( l , t ) \mathcal{U}(l,t) U ( l , t ) 表示在t t t 时刻访问了地点l l l 的所有用户。在每个时间步t t t 中,POI l l l 的表示将按用户访问的时间顺序递归地更新U ( l , t ) \mathcal{U}(l,t) U ( l , t ) 次。
Spatio-Temporal Representation
除了用户的关系和发展轨迹外,论文同时纳入了时空信息(时间间隔及空间间隔),以加强下一个 POI 推荐。
具体来说,论文使用t s \mathbf{t}_s t s 和t l \mathbf{t}_l t l 分别表示短时间和长时间的时间间隔:
z Δ t = t ∗ t + tanh ( t ) \mathbf{z}^{\Delta t} = \mathbf{t} * \mathbf{t} + \tanh(\mathbf{t})
z Δ t = t ∗ t + tanh ( t )
t = { t s , Δ t < θ t t t , otherwise \mathbf{t} =
\begin{cases}
\mathbf{t}_s \quad, \Delta t < \theta_t \\
\mathbf{t}_t \quad, \text{otherwise}
\end{cases}
t = { t s , Δ t < θ t t t , otherwise
其中θ t \theta_t θ t 为预设时间阈值,∗ * ∗ 表示对应元素乘法。
类似地,使用空间阈值θ d \theta_d θ d 得到空间间隔表示z Δ d \mathbf{z}^{\Delta d} z Δ d ,其中空间距离使用 Haversine 距离计算。
最后将模型通过全连接得到最后的概率,损失函数为交叉熵损失函数。
实验
Datasets
Results
Ablation Studies
MEMO-NG:去除 relation
MEMO-NA:去除 self-attention
MEMO-NR:去除 RNN 中相互更新部分
MEMO-NTS:去除时空关系表示
总结
论文看的很快,主要是感觉没什么东西,一些细节上的东西都不说清楚,另外数据集也是一个问题,那些常用的公开数据集本身就没有那么丰富的社交关系以供学习,总体感觉一般。
参考资料