基于Mahout的开源推荐系统:Myrrix

jopen 11年前

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

基于Mahout的开源推荐系统:Myrrix

项目主页:http://www.open-open.com/lib/view/home/1372168198150