论文笔记 2016-CIKM Learning Graph-based POI Embedding for Location-based Recommendation

终于受不了有道云笔记了...然而印象+马克飞象的组合是要收费的呵呵哒,那就干脆来cnblog写笔记好了。

Problem

问题还是那个问题,推荐系统万变不离其宗:

给定一个用户的历史check-in行为数据,以及该用户当前的时空坐标\((l,\tau)\),然后推荐用户最可能感兴趣的\(Top-k\)的POIs. 其中用户的位置\(l\)被映射到了某一region,时间\(\tau\)被映射到了某一time slot,以便于找到它们的embedding表示。

后文会解释时间片和区域时如何做embedding的。

Challenges

  1. 数据稀疏性:这里的稀疏,是相对于传统的电影、音乐、商品等推荐系统而言的。其一,相较于前者,POI的访问需要物理世界中的移动、消费,时间和物质成本都要更高;其二,即使用户访问了某POI,也有可能因为隐私、安全的考虑而不产生签到(评价)行为,甚至我认为当用户对POI的体验比较中庸——既不喜欢也不讨厌——的时候,他们也有可能懒得签到(评价)。
  2. Context Awareness:翻译成“对环境的感知性”比较合适,就是说做POI推荐时,用户的时空位置对推荐的影响更大一些。
  3. 冷启动:传统推荐系统中的cold start分为用户和商品两种,这里的冷启动对应后者,即POI的冷启动问题。每天都会有新的POIs被添加到数据库中,他们没有被用户访问过。
  4. 用户偏好的动态性:文章给的例子是,当一个用户有孩子之前和之后,他对POI的喜好会发生重大变化。这个观点的intuition来自于和电影、音乐推荐系统的比较,因为这类更加反映用户精神偏高、高层次需求的商品,受到生活节奏变化的影响会比较小。但POI这类明显更“接地气”的商品,更会随着用户在物理世界中的活动而变化。

Factors/Features exploited

做POI推荐时利用到的特征也是近几年常用的几种。

  1. 签到顺序:用户在POIs之间的迁移,往往表现出一定的顺序规律。
  2. 地理位置:用户当然更倾向于访问位置更近的POI。
  3. 时间周期性:也好理解,一个人在一天中,早晨吃早饭赶公交,中午吃午饭,晚上购物娱乐回家,访问的POI具有按天的周期性;周中家、公司、餐厅三点一线,周末去公园、健身房,又具有周的周期性。
  4. POI语义:作者从别人的研究中发现, 用户访问的POIs之间,存在语义(功能、性质等)上的相似性,这是废话,但可能很有用。

Important Notations


这里面需要解释一下的是\(W_v\),每个POI都会有分类、标签,这些词就构成了该POI的word set. 其余的notations均可通过表格理解。

Concepts of the 4 Graphs

作者用一个有向图、三个二部图描述了POI-POI、POI-Region、POI-Time、POI-Word之间的关系,其中POI-POI的有向图也可以构造成一个二部图。

  1. POI-POI Graph:有向图,用来描述用户访问POIs的顺序规律。图中,一个节点代表一个POI,如果用户依次连续访问了\(POI_1,POI_2\),并且两次访问的时间间隔没有超过阈值\(\Delta T\),那么在节点\(v_1,v_2\)之间添加一条指向后者的边,边的权重是这个pattern出现的次数。可以理解,时间间隔阈值\(\Delta T\)是一个时效性限制,如果两次访问间隔太久,那么没有什么规律性可言。
  2. POI-Region Graph:二部图,直接描述的是POI是否归属于某个区域;结合embedding,它最终描述的是,当用户处于区域\(r_j\)时,访问POI \(v_i\)的可能性。二部图左侧节点是regions,右侧节点是POIs,如果POI归属于某region,那么它们的节点之间添加一条连线,并且权重值就是1.
  3. POI-Time Graph:二部图,直接描述的是用户在时间片\(t_j\)内访问POI \(v_i\)的频率。二部图左侧节点是time slots,右侧节点是POIs,如果在时间片\(t_j\)内有POI \(v_i\)的访问记录,就连一条边,权重就是访问的次数。
  4. POI-Word Grapg:二部图,描述的是POI的词汇集\(W_{v_j}\)与所有词汇的关系。二部图左侧是词汇全集,右侧是POIs,如果某词汇出现在\(W_{v_j}\)当中,那么它和\(v_j\)间添加一条边。边的权重要靠tf.idf方法来计算,有时间再写。注意,文章中的标号可能有问题,应该把\(D_{v_j}\)替换为\(W_{v_j}\),才能对应到表格中定义的notation.

Graph Embedding Model

  1. Bipartite Graph Embedding
    如上文所言,将POI-POI的有向图也转换为二部图之后,我们手里面就有了四张二部图,因此它们做embedding的形式就可以统一。对于二部图中左、右侧的节点,我们分别用embedding vector \(v_i,v_j\)来表示。
    接下来,我们构造两种分布,来描述二部图左侧节点\(v_i\in V_A\)、右侧节点\(v_j\in V_B\)的关系,首先是:
$p(v_j|v_i) = \frac{exp(\overrightarrow{v}_j^T \cdot \overrightarrow{v}_i )}{\sum_{v_k\in V_B}exp(\overrightarrow{v}_k^T \cdot \overrightarrow{v}_i )}$
另一方面,我们定义上述条件概率分布的经验分布为:
$\hat{p}(v_j|v_i) = \frac{w_{ij}}{deg_{i}}$
其中$w_{ij}$是两个顶点之间边的权重,$deg_i=\sum_{j}w_{ij}$是归一化参数。
  1. 最小化目标
    总体思路就是,令上面构造的两种分布的\(KL-Divergence\)尽可能小,公式如下:

    其中\(d(\cdot | \cdot)\)代表KL-Divergence,\(\lambda_i\)表示节点\(v_i\)的重要程度,在此我们以\(deg_i=\sum_j w_{ij}\)表示,即节点\(v_i\)处所有边的权重之和。上式可整理为

    通过优化目标函数,我们可以学习到最优的\(v_i\),得到POIs、regions、time slots、words的最佳embedding vector表示,这些嵌入向量,就是该模型的最终产出。

  2. 优化策略
    优化的过程,就是所谓的“嵌入”的过程。事实上,我们有四张二部图的embedding模型需要优化,最符合直觉的学习策略,就是将四张图的向量嵌入过程合并,即构造一个新的目标函数:

    其中


    优化的过程涉及到了negative sampling,有时间可以整理一下。
    最终,我们得到的是\(\{v_i\}, i=1,2,...,|V|\)\(\{r_i\},i=1,2,...,|R|\)\(\{t_i\},i=1,2,...,|T|\),以及\(\{w_i\},i=1,2,...,|W|\). 至此,我们就得到了各POI、各区域、各时间片、各个描述POI的词汇的“嵌入向量”,在同一个embedding空间中来表征这些不同的要素。

  3. 用户偏好的表征
    系统的数据库中,记录着用某户访问过的POI,及其时间戳信息。这里,作者将这些用户访问过POI的嵌入向量求加权和,用加权和来表示用户对POIs的偏好:

    其中的权重,是一个时间衰减因子,可以看出用户访问POI时间越早,则该POI的嵌入向量权重越小,反之访问时刻离现在越近,那么该POI权重越大。

  4. 用Graph Embedding Model推荐POI
    终于,我们来到了收获的时刻。用之前构造的四类嵌入向量,以及用户偏好描述,我们可以对单个用户对每个POI的感兴趣程度打分:

    之后,按分数降序排序,得到分数最高的\(k\)个点,作为推荐的POIs.

Experiment and Conclusion

关于测试结果,比较有价值的是作者通过实验,定量地给出了各个Feature对POI推荐准确率的影响(贡献),文章给出的结果是:\(Sequential\gt Temporal\gt Content\gt Geographical\). 这一点对于该领域后续的工作有很强的指导意义。
读完文章再回顾,在我看来它的Contributions主要就是:用四个二部图模型,将POI check-in sequential patterns、check-in frequency in different time slots、distributions of in different regions、semantic contents of POIs这些用来做推荐的feature,embed到同一个低维空间中,分别得到向量表示。这样一来,不仅方便了表示用户的偏好,也方便了对“用户-POI”的关联度打分,从而便捷地得到推荐结果。

Todo List

  1. tf.idf
  2. negative sampling

Reference

Xie M, Yin H, Wang H, et al. Learning graph-based poi embedding for location-based recommendation[C]//Proceedings of the 25th ACM International on Conference on Information and Knowledge Management. ACM, 2016: 15-24.

欢迎转载交流,请注明出处。

posted @ 2017-09-08 15:37  幻灭的星星  阅读(1562)  评论(0编辑  收藏  举报