Myrrix——基于Mahout的开源推荐系统
2013-06-25 18:27
363 查看
Myrrix简介
Myrrix是一个完整的、实时的、可扩展的集群和推荐系统,基于Mahout实现。主要架构分为两部分:服务层:在线服务,响应请求、数据读入、提供实时推荐;计算层:用于分布式离线计算,在后台使用分布式机器学习算法为服务层更新机器学习模型。Myrrix使用这两个层构建了一个完整的推荐系统,服务层是一个HTTP服务器,能够接收更新,并在毫秒级别内计算出更新结果。
服务层可以单独使用,无需计算层,它会在本地运行机器学习算法。
计算层也可以单独使用,其本质是一系列的Hadoop jobs。
Myrrix优点
1.No RatingsMyrrix提供了一个广义的模型,可以处理任何事件,不止是评分,还可以是点击、浏览等。
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
3.计算层
Documents
Quick Startclient API
clinet JavaDoc
rest-api
相关文章推荐
- 20个基于PHP的开源内容管理系统推荐
- 基于Mahout的电影推荐系统
- 20个基于PHP的开源内容管理系统推荐
- 基于Mahout的电影推荐系统
- 基于Mahout的电影推荐系统(MVC架构)
- 基于user的推荐系统--以Mahout为实例
- 基于Apache Mahout和Elasticsearch推荐系统介绍
- 基于Mahout的电影推荐系统
- 基于Mahout的电影推荐系统
- 基于Mahout的电影推荐系统
- 推荐系统思考小结(基于Mahout)
- 基于开源HUSTOJ的ACM在线测评推荐系统 (基于物品的协同过滤/KNN)
- 基于hadoop下的mahout推荐系统实现
- 推荐系统思考小结(基于Mahout)
- 基于Mahout的电影推荐系统
- 基于Mahout的图书推荐系统
- 基于Mahout实现协同过滤推荐算法的电影推荐系统
- 基于Mahout的电影推荐系统
- 基于Mahout的电影推荐系统实现
- 推荐系统思考小结(基于Mahout)