我古狗了一下,看到这篇文章。地址是
http://articles.e-works.net.cn/oa/Article42868_4.htm
基于聚类的(Cluster-based)协同过滤推荐算法提出了另外一种解决方案。将整个用户空间根据用户的购买习惯和评分特点划分为若干个不同的聚类,从而使得聚类内部用户对项的评分尽可能相似,而不同聚类间用户对商品的评分尽可能不同。根据每个聚类中用户对商品的评分信息生成一个虚拟用户,虚拟用户代表了该聚类中用户对商品的典型评分,将所有虚拟用户对商品的评分作为新的搜索空间,查询当前用户在虚拟用户空间中的最近邻居,产生对应的椎荐结果。相对于原始的用户空间而言,虚拟的用户空间要小得多,因此最近邻查询的效率也高得多,可以有效提高推荐算法的实时响应速度。
聚类分析在数据挖掘领域进行了深入研究。K-means聚类算法是最简单同时也是非常有效的聚类算法。采用K-means聚类算法对整个用户空间进行聚类的主要步骤如下:
1) 随机选择k个用户作为种子节点,将k个用户对项的评分数据作为初始的聚类中心。
2) 对剩余的用户集合,计算每条用户与k个聚类中心的相似性,将每个用户分配到相似性最高的聚类中。
3) 对新生成的聚类,计算聚类中所有用户对项的平均评分,生成新的聚类中。
4) 重复以上2到3步,直到聚类不再发主改变为止。
生成聚类之后,Cluster-based协同过滤推荐算法可以分为如下两步:
1) 虚拟用户集主成:根据不同的聚类生成对应的聚类中心,聚类中心与聚类中其他用户的距离之和最小,代表该聚类中用户对商品的典型评分。将所有的聚类中心作为虚拟的用户集合。
2) 推荐产生:在虚拟的用户集合上使用各种相似牲度量方法搜索当前用户的若干最近邻居,然后根据最近邻居对商品的评分信息产生对应的推荐结果。最近邻搜索和推荐产生的方法跟协同过滤推荐算法类似,在此不再赘述。