POI推荐算法
这里介绍的算法是基于地点相似度的POI推荐。
该算法非常简单,在某些数据场景中十分有效。
基本的想法是:
将POI名称作为标签处理
一群用户对某个地点感兴趣,那么这群用户中的一部分人感兴趣的其他地点可能与该地点相似;
算法流程:
1)输入地点a, 用户集合X,地点集合Y、用户和地点关系集合
2)找到对a感兴趣的用户子集U;
我们可以粗略的认为,某个用户去地点a的次数超过一个阈值,他就对a感兴趣
3)分别找到U中用户感兴趣的地点,组成地点子集A
4)分别计算A中元素e和a的相似度
sim = |U中去过e的人次| / sqrt(|X中去过a的人次| * |X中去过e的人次|)
这里用了人次,而没有用人数
5)按sim对A中元素从大到小排序,取sim最大的n个地点作为a的相似地点子集S
6)输出S
这样,如果某个用户已经对地点a感兴趣,就可以为他推荐S中他没去过的地点。
参考:
http://en.wikipedia.org/wiki/Cosine_similarity
http://en.wikipedia.org/wiki/Jaccard_index