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

Myrrix简介

    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
    
    3.计算层     

Documents

    Quick Start
    client API
    clinet JavaDoc
    rest-api

你可能感兴趣的:(Mahout,推荐系统,个性化推荐,myrrix)