Myrrix

一、

http://www.open-open.com/lib/view/open1372168198150.html

Myrrix是一个完整的、实时的、可扩展的集群和推荐系统,基于Mahout实现。

主要架构分为两部分:服务层:在线服务,响应请求、数据读入、提供实时推荐;计算层:用于分布式离线计算,在后台使用分布式机器学习算法为服务层 更新机器学习模型。Myrrix使用这两个层构建了一个完整的推荐系统,服务层是一个HTTP服务器,能够接收更新,并在毫秒级别内计算出更新结果。

服务层可以单独使用,无需计算层,它会在本地运行机器学习算法。

计算层也可以单独使用,其本质是一系列的Hadoop jobs。


Myrrix优点

    1.No Ratings
    Myrrix提供了一个广义的模型,可以处理任何事件,不止是评分,还可以是点击、浏览等。
    2.Cold Start
    Myrrix基本上解决了用户冷启动问题,当用户第一个行为数据进入Myrrix后推荐就会生成。
    3.Temporary Users
    Myrrix提供了特殊的支持为游客进行推荐。
    4.Non-numeric Data
    Myrrix中不用再像Mahout中那样硬性规定userID或itemID必须是数字,userID也可以用字符串表示,例如“Jane”。
    5.Privacy & Security
    Myrrix中可以不用将真实的用户或物品数据发送给服务端,代替做法客户端可以发送不透名的散列。

Myrrix功能

    1.客户端功能 
    可以通过MyrrixRecommender接口实现类对用户进行推荐,方法如下: 
    setPreference userID itemID [value] 
    removePreference userID itemID 
    ingest csvFile.csv(.gz|.zip) [csvFile2 ...] 
    estimatePreference userID itemID1 [itemID2 ...] 
    recommend userID 
    recommendToAnonymous itemID1 [itemID2 ...] 
    mostSimilarItems itemID1 [itemID2 ...] 
    similarityToItem toItemID itemID1 [itemID2 ...] 
    recommendedBecause userID itemID 
    refresh 
    isReady 
    getAllUserIDs 
    getAllItemIDs 
    getNumUserClusters 
    getNumItemClusters 
    getUserCluster n 
    getItemCluster n 
    2.服务层API 
    与客户端API相对应: 
    Set / Add Preference 
    Remove Preference 
    Ingest 
    Set User Tag 
    Set Item Tag 
    Refresh 
    Ready 
    Recommend 
    Recommend To Many 
    Recommend To Anonymous 
    Most Similar Items 
    Similarity To Item 
    Get # User Clusters 
    Get # Item Clusters 
    Get User Cluster 
    Get Item Cluster 
    Estimate 
    Estimate For Anonymous 
    Because 
    Most Popular Items 
    Get All User IDs 
    Get All Item IDs

二、

http://my.oschina.net/toeoso/blog/101443

偶然在google看到推荐系统。

Myrrix:基于mahout做的一个推荐系统。是有mahout的作者Sean Owen做的

于是去官网下载demo学习下。

http://myrrix.com/

然后按照 http://myrrix.com/quick-start/ 上面说的弄。

1,下载一个单机版本的

http://myrrix-recommender.googlecode.com/files/myrrix-serving-0.9.jar

2,启动 sudo java -Xmx512m -jar myrrix-serving-x.y.jar

我是debian系统。正好用,会占用80端口,必须用sudo。没有错误信息说明启动成功。

启动的其他参数:http://myrrix.com/documentation-serving-layer/

开始一头雾水,不知道怎么用:启动界面如下:

仔细看queckstart,才知道要下载demo数据

http://dom2bevkhhre1.cloudfront.net/audioscrobbler-data.subset.csv.gz

然后在 /ingest 这个后面有一个上传按钮。经过几分钟后数据导入。cpu狂转。

3,数据查询。

我本机是查不到用户推荐的。但其他的可以查询下:

 感慨,界面做的真是非常的精简阿。。

[[599,0.001297476],[1000028,0.0012238749],[1198,0.0012229452],[1006612,0.0012176759],[189,0.0011773851],[1329,0.0011433166],[1001909,0.0011263272],[831,0.0011136419],[1616,0.0011055669],[1207970,0.0010956447]]
这个接口就返回了id和相似度两个数据呢!!

查询接口: http://localhost/recommendToAnonymous/1394/

匿名推荐。貌似速度还是灰常快呢。

4.下载源代码分析.

一共分为 5 个小项目或jar包。

common online online-local  web  client 

其中common是基础包,很小很精湛,需要依赖很少的jar包:

commons-math3-3.1.jar guava-13.0.jar jewelcli-0.8.3.jar mahout-core-0.7.jar slf4j-api-1.7.2.jar slf4j-jdk14-1.7.2.jar

web是本地运行的展示界面。启动web需要tomcat。修改module_web.xml 里面的tomcat路径

就可以启动了

ant artifact.web-local

具体其他代码以后再学习分析。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值