Apache Mahout的推薦引擎Taste介紹

jopen 11年前發布 | 40K 次閱讀 推薦引擎 Apache Mahout

Taste Apache Mahout 提供的一個個性化推薦引擎的高效實現,該引擎基于java實現,可擴展性強,同時在mahout中對一些推薦算法進行了MapReduce編程模式轉化,從而可以利用hadoop的分布式架構,提高推薦算法的性能

 

在Mahout0.5版本中的Taste, 實現了多種推薦算法,其中有最基本的基于用戶的和基于內容的推薦算法,也有比較高效的SlopeOne算法,以及處于研究階段的基于SVD和線性插值的算法,同時Taste還提供了擴展接口,用于定制化開發基于內容或基于模型的個性化推薦算法。

 

Taste 不僅僅適用于 Java 應用程序,還可以作為內部服務器的一個組件以 HTTP Web Service 的形式向外界提供推薦的邏輯。Taste 的設計使它能滿足企業對推薦引擎在性能、靈活性和可擴展性等方面的要求。

 

下圖展示了構成Taste的核心組件:

 

Apache Mahout的推薦引擎Taste介紹

 

從上圖可見,Taste由以下幾個主要組件組成:

 

DataModelDataModel是用戶喜好信息的抽象接口,它的具體實現支持從指定類型的數據源抽取用戶喜好信息。在Mahout0.5中,Taste 提供 JDBCDataModel FileDataModel兩種類的實現,分別支持從數據庫和文件文件系統中讀取用戶的喜好信息。對于數據庫的讀取支持,在Mahout 0.5中只提供了對MySQLPostgreSQL的支持,如果數據存儲在其他數據庫,或者是把數據導入到這兩個數據庫中,或者是自行編程實現相應的類。

 

    UserSimilaritItemSimilarity前者用于定義兩個用戶間的相似度,后者用于定義兩個項目之間的相似度。Mahout支持大部分駐留的相似度或相關度計算方法,針對不同的數據源,需要合理選擇相似度計算方法。

 

    UserNeighborhood:在基于用戶的推薦方法中,推薦的內容是基于找到與當前用戶喜好相似的“鄰居用戶”的方式產生的,該組件就是用來定義與目標用戶相鄰的“鄰居用戶”。所以,該組件只有在基于用戶的推薦算法中才會被使用。

     RecommenderRecommender是推薦引擎的抽象接口,Taste 中的核心組件。利用該組件就可以為指定用戶生成項目推薦列表

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

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