一、简述
这几天在看《推荐系统实战》这本书。其中,基于领域的算法是推荐系统中最基本的算法,什么是基于领域的算法呢?简单来说就是基于用户(或物品)的协同过滤算法,所谓的协同的意思就是需要用户(或物品)共同参与。从而通过用户的行为,推荐和他兴趣相似的其他用户喜欢的物品或他自己之前喜欢的物品的相似的物品。这里有一个查找物品或用户兴趣的相似性,就是我们今天讨论的主题相似性的度量。
二、协同过滤算法
我们有时会遇到你的朋友向你询问:“我现在在学习XXX,能推荐什么专业的书籍吗?”,这个时候你一般都会给他一些推荐或建议,这其实就是一个个性化的推荐的例子。在这个例子中,你的朋友之所以会向你询问,最终做出决定。主要的原因还是你与他可能有共同的爱好或研究领域,并且信任你。那么,在一个在线的个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、且用户A没有看过的物品推荐给他。这种方法就是基于用户的协同过滤算法。总结一下主要包括两个步骤:
- 找到和目标用户兴趣相似的用户集合
- 找到这个集合中的用户喜欢的,且目标用户没有看到过的物品推荐给他
这里协同过滤算法主要是利用行为的相似度计算兴趣的相似度。
给定用户u和用户v,令N(u)表示用户u曾经有过行为(浏览或购买)的物品集合,令N(v)表示用户v曾经有过行为的物品集合。那么,我们可以给出简单的计算u与v兴趣相似度的公式: