基于Mahout的開源推薦系統:Myrrix

jopen 11年前發布 | 55K 次閱讀 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

基于Mahout的開源推薦系統:Myrrix

項目主頁:http://www.baiduhome.net/lib/view/home/1372168198150

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!