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