重磅乾貨-史上最全推薦系統資源分享

作者:grahamjenson

深度學習與NLP編譯

參與:lqfarmer,Addis

推薦系統(或推薦引擎)是非常有用且有趣的軟體。原本想比較下不同的推薦系統之間的區別,但卻找不到一個合適的列表,所以乾脆自己整理了一個,同時,歡迎大家請更正、補充。(文末附帶鏈接版文章下載地址)

軟體即服務類推薦系統

SaaS推薦系統在開發過程中遇到很多挑戰,比如必須處理多租戶(multi-tenancy),存儲和處理大量數據以及其他軟體相關的問題,如在遠程伺服器上保護客戶敏感數據的安全。

使用SaaS推薦系統的好處是,可以以較低的開銷來獲取價值,而不需要大量的前期投入,它們通常具有明確的集成方式提供給用戶使用,並且在使用它時,可以對其進行開發和改進。

SaaS推薦系統有:

SuggestGrid:改進自Rcmmndr。SuggestGrid是一個通用推薦系統。它基於Apache Spark,但有很多改進。

Peerius:一個封閉的、專註於產品和電子商務的實時電子郵件推薦系統。非常活躍並且看起來很有趣,儘管關於其實際產品以及它如何工作的信息很少。

Strands:同樣是一個封閉的、專註於產品和電子商務的推薦系統。它可以通過在網站上添加跟蹤腳本(Google Analytics)和推薦小部件來工作。但最吸引人的是,Strands發布的他們的研究案例,例如Wireless Emporium和白皮書,如《The Big promise of recommender system》。雖然這些討論沒有提供的確切解決方案,但他們很好地敘述了他們提出推薦的願景和目標。

SLI Systems Recommender:一個專註於電子商務,搜索和移動的封閉推薦系統。

Google Cloud Prediction API:Google提供的雲計算預測API

Using Hadop Google Cloud:一個使用Google cloud的示例,其中包含推薦系統的benchmarks。

ParallelDots: 工具,用來關聯已發布的內容

Amazon Meachine Learning:機器學習平台,用於對數據進行建模並創建預測

Azure ML:機器學習平台,用於對數據進行建模並創建預測

Gravity R&D:由2009年Netflix的一些獲獎者創建的公司。主要提供解決方案,為網站用戶提供有針對性的定製建議。他們有一些非常大的客戶,包括DailyMotion和一個描述他們的架構、演算法和出版物(publication)列表的技術頁面。

Dressipi Style Advisor:一個與服裝相關的推薦系統。它融合了專家領域知識和機器學習,可以找到適合場合或情緒的服裝。

Sajari:一個搜索,推薦和匹配(如約會網站)服推薦系統。在他們的網站上,也匯總了一些有用的數據集。

IBM Watson:可通過Watson Developer Cloud獲得,Watson Developer Cloud提供REST API(Bluemix上的Watson API)以及使用認知計算解決複雜問題的SDK。

Recombee:提供REST API,多語言SDK和評估結果的圖形用戶界面。主要功能是實時模型更新,易於使用的查詢語言,根據複雜的業務規則和高級功能(如獲取多樣化或輪流推薦的選項)進行過濾和提升。Recombee提供每月100k免費推薦請求的即時帳戶。

Segmentify:推薦引擎,個性化和實時分析工具。

Mr.Dlib:數字圖書館和reference manager等學術機構類的推薦系統。Mr.DLib提供「相關文章」的推薦,是開源的,並公布了大部分數據。

開源的推薦系統

大多數的非SaaS推薦系統都是開源的。這是因為這些推薦系統被簡化,更適用於client,因此不容易製作成產品。

開源推薦系統有:

PredictionIO:基於Apache Spark,Apache HBase和Spray技術構建。一個機器學習server,可用於搭建推薦系統。Github地址,看起來非常活躍。

Raccoon Recommendation Engine:是一款基於Node.js的開源協同過濾器,使用Redis作為存儲。

HapiGER:一個開源的Node.js協作過濾引擎,可以使用內存,PostgreSQL或rethinkdb。

EasyRec:基於Java和Rest的推薦。已被棄用。

Mahout:Hadoop /線性代數的數據挖掘

Seldon:基於Apache Spark的技術構建的Java預測引擎。提供了一個演示電影推薦應用:在這裡。

LensKit:一個基於Java的推薦系統,適用於中小規模。

Oryx v2:用於機器學習和預測的大型架構(由Lorand提出)

RecDB:一個PostgreSQL擴展,用於將推薦演算法(如協作過濾)直接添加到資料庫中。

Crab:基於熱門軟體包NumPy,SciPy,matplotlib的python推薦系統。已經被棄用。

Predictor:一個基於Ruby的推薦系統。

Surprise: 用於構建和分析(協作過濾)推薦系統的Python scikit。內置各種演算法,重點是評級預測。

LightFM:基於Python實現一系列基於協作和基於內容的,從學習到排名的推薦演算法。使用Cython,可以輕鬆擴展到多核機器上,處理非常大的數據集,包括Lyst和Catalant在內的許多公司,用於實際生產。

Rexy:一個基於一般用戶-產品-標籤概念和靈活結構的開源推薦系統,該結構已被設計為可與多種多樣的數據模式相匹配。Rexy由Python-3.5,以高度優化的Pythonic和全面的方式編寫而成,使其對非常靈活。使用Aerospike作為高速,可擴展,可靠的NoSQL資料庫的資料庫引擎。

QMF:用於隱式反饋矩陣分解模型的快速且可擴展的C++庫。

tensorrec:Python語言的TensorFlow推薦演算法和框架。

hermes:PySpark中協作過濾和基於內容的演算法的推薦框架。已被放棄。

非SaaS產品的推薦系統

非SaaS非開源推薦系統並不常見。主要是 Dato:

Dato:一家提供用於商業機器學習的python包和伺服器的公司,其中包括許多用於推薦的預測演算法。他們還與Apache Spark集成,並且有很棒的博客文章,比如為什麼構建自定義推薦系統很難?它必須是?。他們的客戶包括Pandora和StumbleUpon,必須是一個好產品。

學術型的推薦系統

推薦系統在學術界是一個非常活躍的研究領域,儘管很多系統主要在實驗室使用,很少用於工業生產。

Duine Framework:已被放棄的基於Java的推薦系統

MyMediaLite:基於C#的內存推薦系統。已被放棄

LibRec:一個基於Java的推薦引擎,帶有大量的演算法實現。

RankSys:Java編寫的推薦系統,非常新穎性和多樣。

LIBMF:推薦系統的矩陣分解庫

proNet-core:一種通用網路嵌入框架,為推薦系統提供了幾種基於分解的模型。

Benchmarking類推薦系統

構建推薦系統的benchmarking是非常困難的,這不僅因為獲得好的數據集很難,而且不同的方法和演算法具有難以揭示的不同的優缺點。

以下是一些benchmarking工具列表:

TagRec:標籤推薦基準框架

RiVaL:推薦系統評估的開源工具包。一些結果發布在這裡。

Idomaar:推薦演算法測試的參考框架。它是在CrowdRec項目的框架內開發的。

媒體類推薦系統

除了通用推薦系統之外,這裡還添加一個應用列表,其中推薦是核心產品,特別是在媒體推薦領域:

Yeah,Nah:基於GER的電影推薦應用

Jinni:電影推薦網站

Gyde:流媒體推薦

TasteKid:電影,書籍,音樂推薦。

Gnoosic:音樂推薦系統。

Pandora:基於喜歡或不喜歡的歌曲推薦系統

Criticker:遊戲和電影協作推薦。

movielens.org:電影和書籍推薦系統。

MAL:基於用戶協同過濾推薦系統。

書籍

Practical Recommender Systems:由Kim Falk編寫(曼寧出版社)。第1章

由Ricci,F等人撰寫的Recommender Systems Handbook 帶鏈接版文章下載地址

鏈接: pan.baidu.com/s/1WjGjEy

密碼: m93n

往期精彩內容推薦

2018年10篇最值得閱讀的深度學習文章

精品推薦-2018年Google官方Tensorflow峰會視頻教程完整版分享

千萬不要錯過!ICLR-2018精品論文解析

純乾貨18 - 2016-2017深度學習-最新-必讀-經典論文

麻省理工學院-2018年最新深度學習演算法及其應用入門課程資源分享

歷史最全GAN網路及其各種變體整理(附論文及代碼實現)

純乾貨-17 分散式深度學習原理、演算法詳細介紹

深度學習中如何選擇一款合適的GPU卡的一些經驗和建議分享

模型匯總23 - 卷積神經網路中不同類型的卷積方式介紹

AI、神經網路、機器學習、深度學習和大數據的核心知識備忘錄分享

模型匯總22 機器學習相關基礎數學理論、概念、模型思維導圖分享

ICML 2017 深強化學習,決策和控制簡化教程分享

純乾貨11 強化學習(Reinforcement Learning)教材推薦


推薦閱讀:

優秀的機器學習模型,可以用一輩子
預告片:《立刻上手機器學習》
使用 Fisher Vector 得到文本向量
Paper Reading | 多角度講解自動駕駛中的激光雷達感知系統
感知機(PLA)

TAG:深度學習DeepLearning | 機器學習 | 推薦系統 |