经过这一段时间的研究,主要对easyRec 和mahout的研究,有了一点心得体会,赶紧记录下了万一以后忘了。
1.easyRec 我觉得的主要特点就是安装特别简单,并且有可视化界面可以看和操作,只需要在自己的项目中调用指定的API就可以轻松获取各种推荐数据。并且这个推荐系统的一大优势就是离线分析,当时因为一个离线分析让我研究了好久,想不清楚这是怎么个离线分析。后来研究了一下源码,大概了解就是:view 、buy 、rate 这几个操作就是正常的记录到数据库中,然后程序在后台自己计算各种推荐结果,我们调用推荐API的时候其实只是访问已经算好的值并且存在数据库中,所以不存在当数据量很大的时候获取一个推荐结果需要很久的问题。我个人还是觉得这个最方便,也好用。
2.当时没能解释清楚离线分析是怎么个过程,并且easyRec 使用的是MySQL数据库,担心计算过程长,运算时间慢,所以想要使用mahout来代替。这个mahout是真麻烦啊,首先这个单机也能运行,下载jar包放在工程里,怎么用还没研究清楚但是网上例子一大堆,但是 我们真正使用肯定是在大数据的前提下,单机是肯定不行的,就需要结合Hadoop,进行分布式运算,经过这几天研究,Hadoop主要是HDFS用来大数据存储、MapReduce用来大数据运算。这两个的环境我都安好了,可惜到测试的时候死活出不来,我就想着用Java来操作,可惜这一块也是片的坑,网上大多数的例子都是单机运行的,结合Hadoop的实在很少,而且操作起来都很复杂,实在想放弃,或许也是没找对门路。。
以上就是近段时间对这两个的研究,纯属个人见解,欢迎指正。