有了用户历史轨迹的模型,我们可以用多种算法(如 FP-growth、Closet+等)来挖掘这个数据中的频繁项集。如用户 A 经常在周末早上去中关村、用户 A 经常在周五晚上去超市等。进一步,这些频繁模式,可以相互组合和连接,从而发现一些表征了用户生活、行为规律的顺序模式(sequential pattern)。比如,通常用户 A 在周末早上会去中关村看电影,然后下午去西单买东西。当然,这些学习到的模式将受到隐私保护,并只为用户个人所用。
2) 相似序列的长度。同一图层上两幅图的相似性,可表示为这两个图共享序列的相似性的和。而序列的相似性,又取决于序列的长度。因此,用户共享的序列越多,序列的长度越长,则这两个图的相似性越大。如 A、B 和 C 三个用户,A 和 B 共同走过了一个长度为 2 的序列 ,而 A 和 C 两个共同走过一个长度为 3 的序列 。显然,与 B 相比,用户 C 更加跟 A 相似。
图 3. 利用层次图来比较用户的相似性
1) 利用用户的历史轨迹计算出用户之间的相似性(参见上一节描述的方法),为某个用户找出最相似的 n 个人作为潜在的朋友,完成个性化朋友推荐。也许他们在现实生活中多次插肩而过,却从来没有认识的机会。由于他们具有相同的兴趣爱好,因此,当在论坛中发起一些活动的时候(如自驾游和登山等),用户能更加精准地找到一些兴趣相投的人。