自动推荐技术现在已经越来越成熟了。国内有淘宝,豆辨;国外有Amazon。但是这些自动推荐的算法的代码都无法得知;Apache Mahout 是 一个较新的开源项目,提供机器学习领域的一些经典算法的高效实现,里面的taste包就实现了自动推荐技术。自动推荐技术有基于内容本身的和基于协同过滤两大部分。这里主要说明基于协同过滤的开源实现。协同过滤这里有基于用户相似度(user-base)和基于作品相似度的(item-base)两种方法。基于用户相似度的推荐实现了例如“豆瓣猜你可能感性趣的书”这种功能,原理其实就是找出与你最相似的用户,把你没有看过的书但是其他用户看过的书推荐给你。基于作品相似度推荐实现了例如豆瓣的“喜欢xxx此本书的人也喜欢...."的功能,实现原理其实就是统计一下看过此本书用户同时也可看了哪些书,把看到那些书的量进行排序。
 

    基于用户相似度的推荐类在mahout里面是GenericUserBasedRecommender,基于作品相似度实现的推荐类GenericItemBasedRecommender;我们只需要新建以上类,然后调用recommend的函数就可以实现这么复杂的推荐功能。如果想深入里面的原理,也可以看源代码和文档。在这里,真的很感谢开源社区。下面贴出实践的链接,和本人收集的文档。

基于 Apache Mahout 构建社会化推荐引擎