推薦系統入門:做爲Rank系統的推薦系統(協同過濾)

         知乎:如何學習推薦系統?            
前端

         知乎:協同過濾和基於內容的推薦有什麼區別算法

         案例推薦系統實戰?  數據準備;實現推薦欄位;重構接口;後續優化。
apache

         簡書:實現實時推薦系統的三種方式?基於聚類和協同過濾;基於Spark;基於Storm;基於Kiji框架。性能優化

         精品博客,事無鉅細:推薦系統:協同過濾collaborative filtering    基於內容的推薦content-based,協同過濾collaborative filtering,隱語義模型(LFM, latent factor model)推薦。這篇博客主要講協同過濾。事無鉅細,有條不紊。                                          
網絡

         自從1992年施樂的科學家爲了解決信息負載的問題,第一次提出協同過濾算法,個性化推薦已經通過了二十幾年的發展。
架構

推薦系統概述和經常使用評價指標框架

1.1 推薦系統的特色dom

在知乎搜了一下推薦系統,果然結果比較少,顯得小衆一些,而後你們對推薦系統廣泛的觀點是:機器學習

(1)重要性:UI >數據 >算法,就是推薦系統中一味追求先進的算法算是個誤區,一般論文研究類的推薦方法有的帶有不少的假設限制,有的考慮工程實現問題較少,推薦系統須要大量的數據整理和轉化,同時更須要考慮公司業務特性以及與現有系統的集成,方能造成推薦系統和業務之間的良性循環;oop

(2)推薦系統離線測試很好,上線後要麼沒有嚴格的測試結果而只能憑感受,要麼實際效果差強人意,我想主要緣於離線測試比較理想,而在線AB冠軍測試不管對於前端仍是後臺要求都很高,沒有雄厚的研發實力難以實現;

(3)推薦系統受到的外部干擾因素特別多(季節、流行因素等),整個系統須要不斷的迭代更新,沒有一勞永逸的事情。

       

Mahout
主頁: Apache Mahout: Scalable machine learning and data mining 語言:Java
        Mahout 是 Apache Software Foundation (ASF) 開發的一個全新的開源項目,其主要目標是建立一些可伸縮的機器學習算法,供開發人員在 Apache 在許可下免費 使用。Mahout項目是由 Apache Lucene社區中對機器學習感興趣的一些成員發起的,他們但願創建一個可靠、文檔翔實、可伸縮的項目,在其中實現一些常見的用於 聚類和分類的機器學習算法。該社區最初基於 Ngetal. 的文章 「Map-Reduce for Machine Learning on Multicore」,但此後在發展中又併入了更多普遍的機器學習 方法,包括Collaborative Filtering(CF),Dimensionality Reduction,Topic Models等。此外,經過使用 Apache Hadoop 庫,Mahout 能夠有效地擴展到雲中。
        在Mahout的Recommendation類算法中,主要有User-Based CF,Item-Based CF,ALS,ALS on Implicit Feedback,Weighted MF,SVD++,Parallel SGD等。

其它

一:混合推薦系統類型        

       (1)加權型:就是將多種推薦技術的計算結果加權混合產生推薦。(2)轉換型:根據問題背景和實際狀況採用不一樣的推薦技術。(3)合併型:同時採用多種推薦技術給出多種推薦結果,爲用戶提供參考。(4)特徵組合:未來自不一樣推薦數據源的特徵組合起來,由另外一種推薦技術採用。(5)瀑布型:後一個推薦方法優化前一個推薦方法。(6)特徵遞增型:前一個推薦方法的輸出做爲後一個推薦方法的輸入。(7)元層次型用一種推薦方法產生的模型做爲另外一種推薦方法的輸入。

二.  推薦系統的十個關鍵點                                       

一、充分運用顯式\隱式反饋數據:數據是一切推薦系統的基礎。良好的推薦效果必定是來自於豐富而準確的數據。
二、 多種方法的融合
通過多年的發展,不少種推薦算法被提出來。常見的推薦方法,從大類上分,有基於歷史行爲(Memory-based)的方法、基於模型(Model-based)的方法、基於內容(Content-based)方法等。在Memory-based方法這個方向,又可進一步細分爲基於物品的協同過濾算法(item-based collaborative filtering)、基於用戶的協同過濾算法(user-based collaborative filtering)、關聯規則(association rule)等;Model-based方法經常使用的包括Random Walk、pLSA、SVD、SVD++等。每種方法在具體實施時,針對不一樣的問題又有不少不一樣的實現方案,例如在基於物品的協同過濾算法(item-based collaborative filtering)中,item之間類似度計算公式(Similarity)也可能有不少不少種變化。
在系統推薦的結果之外,還有一類傳統的方式是經過專家進行推薦。這些專家能夠是一些有經驗的編輯,也能夠是社區中意見領袖等。這些領域專家推薦的結果,在不少實際應用中,能夠做爲算法推薦結果的有益補充。
事實上,在實踐中並無任何一種方法在實踐中始終佔據壓倒性的優點,它們各有千秋,分別有其各自合適的應用場景,所以因地制宜根據不一樣的場景,挑選不一樣的方法,並有機的結合起來,能讓推薦效果獲得極大的提高。常見的融合方法包括Restricted Boltzmann Machines(RBM), Gradient Boosted Decision Trees(GBDT),Logistic Regression(LR)等,這方面歷次推薦競賽中有不少相關文章,能夠看到爲了提高推薦效果,將不一樣算法的結果可以取長補短,各自發揮價值,是極爲有效的。
三、重視時間因素:用戶的行爲是存在很強的時間規律的。
四、特定推薦場景使用地域特徵:有一些推薦場景是和用戶所處地域密切相關的,尤爲對一些LBS、O2O的應用來講,一旦離開地域這個特徵,那麼智能推薦的效果根本就無從談起。
五、 SNS關係的使用:社交網絡近年來獲得了日新月異的發展,用戶再也不是單純的內容接收者,而是可以主動的創建用戶之間的關係。
六、 緩解冷啓動問題:冷啓動是推薦系統最爲悠久的一個問題,伴隨推薦系統誕生至今。這是由於推薦系統效果提高的關鍵自然在於數據,而當新用戶、或新物品等剛上線時,因爲積累的數據極爲稀少,大量方法在最初這段時間難以生效。
七、 推薦結果的展示方式:推薦系統毫不僅僅侷限於推薦算法和架構,而是一個完整的系統。其中推薦結果的展示方案是這個系統中極爲重要的一環。
八、明確優化目標和評估手段:在原有推薦效果的基礎上精益求精,更進一步。優化目標和評估手段的肯定是解決這個問題的關鍵所在。
九、時效性問題:正所謂「天下武功,惟快不破」,推薦系統要能及時捕捉用戶需求的變化,反饋到模型中,並及時響應用戶請求,實時提供在線服務。
10 、大數據挖掘和性能優化
總結
:智能推薦系統是一個系統工程,依賴數據、架構、算法、人機交互等環節的有機結合,造成協力。


3、基於物品的協同過濾的Item協同系統的MapReduce實現   

        文章的UML圖比較好看.....

 

4、搜索引擎的查詢意圖分析(關聯分析)  

通用搜索VS垂直搜索:

        通用搜索特色:
                抓取互聯網上一切有價值的頁面,贊成創建索引,以關鍵字匹配爲基本檢索方式,以網頁title和summary爲展示方式
                google, 百度,搜狗,搜搜,有道
        垂直搜索特色:
                以一特定類別爲主題,只抓取與主題相關信息,根據主題特色有針對性的創建相應的索引檢索方式,篩選方式,以及展示方式
                機票搜索,地圖搜索,購物搜索(一淘)……               

解決方法:通用搜索引擎 + 垂直搜索引擎         意圖識別        

相關文章
相關標籤/搜索