Press "Enter" to skip to content

基于用户出行意图建模的百度异地POI推荐

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

 

分享嘉宾:路新江 博士  百度 资深研发工程师

 

编辑 整理 :唐瑄翼 香港中文大学(深圳)

 

出品平台:DataFunTalk

 

导读: 异地 POI推荐旨在为跨城出行的用户提供推荐服务。 而这些用户通常对目的地区域/城市并不熟悉,并没有足够的历史记录可以借鉴,因而异地推荐的主要挑战也是推荐系统中的一个经典问题——冷启动问题。

 

直观上,用户在异地的行为与用户个人的偏好和用户的出行意图密切有关。而且,用户的出行意图复杂多变,也为准确理解异地用户的出行意图增加了难度。为此,本文提出了一种出行意图可感知的异地出行推荐方法。主要内容包括: ① 推荐系统中的冷启动问题解决方案;② 生成模型在推荐系统中的应用;③ 异地POI推荐;④ 神经网络主题模型;⑤ 图神经网络。

 

01

 

背景|异地场景POI推荐待解决难点

 

传统的 POI 推荐系统不能很好地解决异地推荐问题。原因有:

 

兴趣漂移(Interest Drifts):个人的本地偏好不能直接用于异地推荐,因为本地偏好和异地行为之间存在差距;

 

传统方法中往往会忽略影响异地签到行为的出行意图(Travel Intention);

 

不同城市地理等方面存在差异(Geographical Gap)。

 

针对上述问题,我们整合用户偏好、兴趣漂移和复杂的旅行意图为一个整体,提出TRAvel- INtention-aware Out-of-town Recommendation框架,简称TRAINOR。

 

相较于传统的推荐模式,这个方案有以下三点区别:

 

首先,利用图神经网络,通过对历史用户的本地签到行为和异地签到行为进行挖掘,表征用户的本地偏好以及异地的空间地理信息约束;

 

其次,用户的个体出行意图建模为通用出行意图与用户个体偏好的聚合,其中通用出行意图被建模成隐式出行意图的概率分布,并利用主题神经网络模型进行实现;

 

第三,通过多层感知机对本地偏好与异地偏好的迁移进行刻画,同时,利用矩阵分解对异地POI的表征进行估计。

 

最后,通过真实物理世界的跨城出行记录数据进行实验,验证了方法的有效性。而且,该方法所学习到的意图表征可以帮助理解和解释用户的出行意图。

 

 

02

 

问题分解|模型框架综述

 

首先给出问题形式化定义,如下图所示:

 

 

将问题模型的实现如图分解为以下5部分:

 

 

本地偏好建模:输入用户本地打卡地,为每个访问过的 POI 分配一个 d 维嵌入。采用 G-GNN 模型和注意力网络对用户的本地偏好进行编码和聚合。

 

出行意图识别:输入用户在异地访问过的POI,利用NTM 模型来识别一般的旅行意图。通过整合发现的意图和用户的本地偏好,采用另一个注意力网络来总结用户特定的意图。

 

异地偏好建模:为每个用户和异地 POI 分配另外两个 d 维嵌入,并利用 MF 来学习用户和 POI 的潜在表示。为了模拟 POI 的地理影响,利用 GeoConv 来处理与 POI 捆绑在一起的地理信息。

 

偏好转移(本地与异地表征映射):接收本地偏好嵌入,并通过 MLP 捕捉从本地到异地的非线性关系。

 

模型联合训练与推荐:最小化意图推断损失、偏好估计损失和偏好转移损失,以输出训练好的推荐器 F。

 

03

 

技术细节|模型实现

 

1. 本地偏好模型『Home-town Preference Modeling』

 

 

① 构建用户个人check-in有向图

 

取用户半年的打卡记录。将用户本地与异地出行记录全部都取出,比例通常约为3:2。

 

节点:表示各个签到POI,通常为10个左右;

 

有向边:连接相邻两个POI,表示用户打卡次序。

 

② 使用邻接矩阵(adjacent matrix)表示

 

该矩阵由出边和入边构成的两个邻接分块矩阵拼接而成。

 

 

③ 利用G-GNN获得本地签到信息的表征,即用户曾打卡的POI

 

 

上图中, Eq.(1)基 于 . 在 不同 POI 之间传递信息。

 

Eqs.(2) 至(5),与GRU相似。 z v (t) and 为 r v (t) 为update和reset gates, 为logistic sigmoid function。

 

④ 获得用户本地偏好的表征

 

有时候,一部分特征对于最后结果的贡献非常小,甚至近乎零。这些用处不大的特征,我们希望能够将其舍弃,以更方便模型做出决策。因而,我们应用注意力机制『Attention Network』筛选出更重要的本地POI。

 

 

得到为用户的Hometown Preference Embedding。

 

值得注意的是,对Home -town Preference单独做Loss是没必要的,因为我们最终目标是做异地推荐,因而我们把Home-town Preference 和Travel Intention做聚合,本部分的loss会体现在Travel Intention Loss中。

 

2. 用户出行意图识别『Travel intention discovery』

 

 

① 无监督生成通用出行意图『Generic Travel Intentions』

 

我们将通用出行意图建模成隐式出行意图的概率分布,并利用主题神经网络模型进行实现。

 

 

有K个隐式出行意图

 

异地POI-意图的分布Φ【Out-of-town POI-intention distribution】

 

i (1≤i≤K), t i ∈R d 表示第i个出行意图

 

表示异地 POI 嵌入矩阵

 

用户意图分布θ【User Intention Distribution】

 

softmax( F θ (z))

 

F θ 为全连接层【Fully Connected Layer】

 

假设z服从标准正态 分布 p(Z)=N(0,1)

 

事实上,后面我们并没有使用 p(Z) (隐变量空间的分布)是正态分布的假设,而是使用 p(Z|X) (后验分布)是正态分布的假设!

 

让所有的 p(Z|X) 都向标准正态分布看齐,可防止噪声为零,同时保证了模型具有生成能力。如果所有的 p(Z|X) 都很接近标准正态分布 N(0,1) ,那幺根据定义

 

我们就能达到我们的先验假设:p(Z)是标准正态分布。

 

 

作为编码器,将词袋映射为隐变量z分布的均值μ和 方差σ。

 

μ 、 σ2 是由输入词袋向量确定的两个先验参数;

 

F μ 、 F σ 是两个 multi-layer percept ron(MLP); F enc 为encoder layer。

 

为了让所有的 都向 N(0,1) 看齐,在重构误差的基础上中加入额外的loss–近似分布与数据原分布的KL散度(Kullback-Leibler divergence)。

 

KL loss(目的是让均值为0,方差为1),事实上就是相当于对encoder的一个正则项。

 

② 个性化出行意图识别『Personalized Travel Intention』

 

为获得个人化出行意图,我们采用注意力机制,对之前得到的本地签到偏好加以利用,来加强得到个性化出行意图。

 

 

图中 W t ∈ R d   x   d 是一个trainable transition matrix。通过拟合用户的偏好,可以自适应地聚合用户特定的意图embedding  u ( int)

 

3. 异地偏好建模『Out-of-town preference modeling』

 

GEO因素建模:假定不知道用户异地签到记录,因而不能用签到来做建模。我们采用POI天然的自带的地理约束来建模;

 

用户在异地的POI表征 u o ’ :利用矩阵分解,补全missing value对异地POI的表征进行估计。 ReLU 函数又称修正线性单元,是一种人工神经网络中常用的激活函数。 ReLU =max(0,x) 函数不仅很大程度上解决了梯度消失的问题,还有着非常快的计算速度。

 

Score Function:遵循MF的思想,用户对于POI的分数可以看作是user’s latent embedding和POI的内积,定义用户  在异地POI 上的score如下:

s(i,j)=(u i o ’ ) T v j o ’

 

异地偏好Loss: 根据 BPR的假设,观察到的项目应该比未观察到的项目排名更高,对于每个用户u ,我们随机选择用户访问过的固定大小的正样本和用户未签到的对应样本。 基于pairwise comparisons,得到异地偏好损失。

 

 

4. 偏好迁移『Preference transfer(mapping)』

 

通过多层感知机对本地偏好与异地偏好的迁移进行刻画:

 

把本地偏好Home-town Preference和出行意图Travel Intention映射到异地偏好Out-of-town Preference;

 

继而用MLP 非线性预测函数,进一步增加loss function

 

 

5. 联合训练与推荐『Joint training & recommendation』

 

结合intention inference loss, preference loss 和 transfer loss得到

 

进行最优化optimization,学得最终recommender。

 

根据估计分数 选择前 k 个异地 POI 推荐给异地用户u*。

 

 

04

 

实验验证|定量与定性分析

 

1. 定量分析

 

① 选用三个爬虫获得的真实出行记录,包括2019年7月至12月北京—上海,上海—杭州和广州—佛山的出行记录。

 

② Baseline选用传统模型方法(TOP,SR-GNN,LA-LDA,EMCDR等),同时通过去掉重要模块(如出行意图识别模块和地理因素建模)构成参照。

 

 

 

③ 召回率与准确率分析

 

在实际搭建推荐系统时,召回更多的POI,得到的收益更高;

 

在本实验中,我们认为比起check-in的顺序正确,召回足够多的POI更重要;

 

因而,在precision相当时,我们更关注recall(召回率)。

 

具体实现Implementations.

 

对于所有latent representations,令the hidden size=128;在travel intention discovery module中, 令主题数 K =15;在joint training阶段, 设置λ1 =λ2 =λ3 =1;我们使用Adam optimizer来训练,初始学习率为0.001,L2正则化权重为10-5。当评估性能推荐时,使用不同的数据拆分重复测试 5 次,给出平均值。

 

实验结果详情如下图:

 

 

针对[email protected]指标,TRAINOR基本上始终优于其他模型。

 

而UCF、LA-LDA和BPR-MF的表现相对较差。UCF和BPR-MF基于 协同过滤算法 ,由于数据稀疏问题,不能直接应用于异地推荐。而 LA-LDA 虽考虑了地域差异,但在差异较大时(例如跨城市),仍然不足以对个人兴趣漂移进行建模,这使得它们在异地推荐方面的效果不佳。

 

TOP 并不是一种个性化的推荐方法,它仅根据历史记录中 POI 的流行度进行推荐,但其性能却比一些个性化方法要好得多。可能的原因有异地出行行为通常以旅游为主,因而一些热门景点(如着名地标)是异地用户经常光顾的地方。

 

GRU4Rec 和 SR-GNN 是两个session-based的深度推荐系统,分别考虑了顺序和结构信息。然而,他们忽略了用户的兴趣漂移和本地和异地之间的差异。

 

EMCDR 是一种领先业界的跨域推荐框架。由于其将特征从源域到目标域的非线性映射的能力,EMCDR 在进行异地推荐时表现出了几乎最好的排序性能。一个可能的原因是,我们的TRAINOR框架,与EMCDR相比,本地偏好建模中没有采用负采样策略,这可能导致本地区一些负例的排名更高,并可能对排名表现MAP产生负面影响。然而,TRAINOR在召回率方面优于EMCDR,这表明TRAINOR在检索相关异地POI方面更有效,并且在实践中更有益于异地推荐。

 

对于 TRAINOR的变体,我们有以下发现:

 

考虑[email protected]指标,TRAINOR 的表现优于 TRAINOR-I,表明了考虑用户异地意图的意义。但当使用旅行意图识别模块时,MAP 略有下降。原因可能是当模型试图将每个推荐条目放在正确的排名中时,意图可能会成为干扰。

 

通过比较TRAINOR-IC和TRAINOR-I之间的结果,GeoConv的去除降低了所有指标的性能。然而,当旅行意图识别模块存在时,GeoConv 对性能几乎没有贡献,因为 GeoConv 可能导致过拟合。

 

2. 定性分析

 

定性分析用于判断推荐效果是否有可解释性,是否得到有意义的,具有可解释性的结果。可解释性(可增加AI可信度)越高,人们越能相信推荐系统的结果是有效的,鲁棒的。

 

本实验中,我们从同一数据集中选取三个用户,从表格中我们可以推断出,u1 去上海度假,u2为购物,u3为商务。根据用户意图的推断(见右图),我们可以清楚地看出 u1 和 u2 之间的差异很小,而 u3 和 u1/u2 之间的差异很大。

 

代表性 POI 的意图分布也是可区分的(见左图)。例如,景区和购物中心的分布对意图#2、#4、#8等的权重更大,而功能设施(如酒店和企业)的分布对意图#5、#6、#10、#14 等的权重更大。因此,我们可以得出结论,前一组意图更与休闲相关,而后者更与功能性设施相关。

 

 

05

 

问答环节

 

Q:构建Check-in graph时,节点通常有多少?

 

Ans:平均每个用户节点数为10个左右,graph规模并不大。

 

Q:Check-in graph取多长时间的check-in记录构建?

 

Ans:半年时间。并且将用户本地与异地记录都取出来了,但大部分用户本地的签到行为要多于异地,比例约为3:2。

 

Q:Check-in graph是由每个用户所有签到行为构成的吗?

 

Ans:当用户下一次POI和此次不在同一个城市时,我们会截取前面的check-in记录作为本地签到记录。我们采取这种方法,自适应地动态地截取用户本地签到记录,因而每个用户的check-in记录长短不一,起止时间也不一样。

 

Q:本地出行记录是否会先去除常去的地方?

 

Ans:没有这个限制。

 

Q:本地偏好模型用G-GNN如何训练?

 

Ans:消息传递的更新机制写好,嵌入到端到端传统模型,和训练传统模型一样进行优化,得到优化模型。值得注意的是,对Home-town Preference单独做Loss是没必要的,因为我们最终目标是做异地推荐,因而我们把Home-town Preference 和Travel Intention做聚合,本部分的loss会体现在Travel Intention Loss中。

 

Q:G-GNN有什幺优化处理方式?

 

Ans :将Home -town Preference作为输入的因素放到其他loss(例如:Travel Intention Discovery Loss)里,composite loss function通过端到端的方式就可以对GGNN的参数进行优化。

 

Q:在Home-town Preference Model中是否有尝试GEO因素的建模?

 

Ans:曾私下做实验尝试,结果表明对于本地签到,地理因素上的约束加进来意义不大。考虑Check-in behavior更有效,因而去掉了地理因素。模型足够复杂,不想加进更多的参数。

 

Q:Transfer Loss的目的具体是什幺?

 

Ans:Transfer Loss可实现较好的推荐,解决本地异地存在差异的问题。

 

异地本地gap需要弥合:由Home-town Preference估计到用户在异地的偏好,本地与异地偏好间存在gap,行为是有兴趣漂移的。例如,下面实验提及的EMCDR,即是没有对本地异地做modeling的推荐系统,作为简化版系统,结果非常好,甚至MAP比我们的模型都要好,因而Transfer Loss很有用。

 

Q:冷启动问题的解决方案和业内相比有哪些优势?

 

Ans:异地推荐(典型的,冷启动问题比较突出的应用之一)问题之前都是采用LA-LDA等传统方法,没有对Travel Intention做很好的建模;我们考虑的因素是最全的,Framework考虑的因素最多。

 

还没有验证是否通用于其他的cross-domain推荐,目前着重于用户异地出行。

 

06

 

References

 

1. Xin, Haoran & Lu, Xinjiang & Xu, Tong & Liu, Hao & Gu, Jingjing & Dou, Dejing & Xiong, Hui. (2021). Out-of-Town Recommendation with Travel Intention Modeling.

 

2. 全球人工智能顶会AAAI2021部分收录论文解析:

 

https://m.gmw.cn/baijia/2021-02/03/34596357.html

 

3. Im, D. J. , Ahn, S. , Memisevic, R. , & Bengio, Y. . Auto-Encoding Variational Bayes.

 

4. 苏剑林. (Mar. 18, 2018). 《变分自编码器(一):原来是这幺一回事 》[Blog post]. Retrieved from https://www.spaces.ac.cn/archives/5253

 

5. Li, Y. , Tarlow, D. , Brockschmidt, M. , & Zemel, R. . (2015). Gated graph sequence neural networks. Computer Science.

分享嘉宾:

 

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注