4.1 协同过滤思想简介

从字面上理解,协同过滤包括协同和过滤两个操作。所谓协同就是利用群体的行为来做决策(推荐),生物上有协同进化的说法,即通过协同的作用,让群体逐步进化到更适应环境的状态。对于推荐系统来说,基于用户的持续协同操作,给用户的推荐最终会越来越准。而过滤,就是从可行的决策(推荐)方案(标的物)中将用户喜欢的方案(标的物)找(过滤)出来的过程。

具体来说,协同过滤的思路是通过群体的行为来找到某种相似性(用户之间的相似性或者标的物之间的相似性),然后通过该相似性来为用户做决策和推荐。

现实生活中有很多协同过滤的案例及思想体现,除了前面提到的生物的进化是一种“协同过滤”作用外,人类在寻找配偶时希望相亲对象“门当户对”,其实也是一种协同过滤思想的反映。“门当户对”实际上是针对相亲男女的一种“相似度”(家庭背景、出身、生活习惯、为人处世、消费观、价值观等各个维度的相似性)的描述,给自己找一个门当户对的伴侣就是一种“过滤”,当双方“门当户对”时,各方面的习惯及价值观会更相似,未来幸福的概率也会更大。如果整个社会具备这样的传统和风气,而且在真实婚姻生活案例中“门当户对”的夫妻确实会更和谐,那么通过社会认知的“协同进化”作用,大家会越来越认同这种方式。

协同过滤利用了两个非常朴素的自然哲学思想:“群体的智慧”和“相似的物体具备相似的性质”。群体的智慧从数学上讲应该满足一定的统计学规律,是一种朝平衡稳定态发展的动态过程,越相似的物体,其化学及物理组成越一致,当然表现的外在特性也会更相似。虽然这两个思想很简单,也很容易理解,但是正因为思想很朴素,价值反而非常大。协同过滤算法原理很简单,但是效果很不错,而且也非常容易工程实现。

协同过滤分为基于用户的协同过滤和基于标的物(物品)的协同过滤这两类算法。下面针对协同过滤的算法原理来做详细的介绍。