了解關於系統推薦演算法的知識,有什麼好的資源推薦?

我是個學生,想更多的了解關於系統推薦演算法的一切,但是由於信息閉塞,或者說現在的網路還不能為我,祈求人工推薦..

如推薦這領域的牛人們的個人Blog,這領域的論壇社區,及其他.......

如:

谷文棟

http://www.guwendong.com/

2011推薦系統論壇

Resys China :http://www.resyschina.com/


從大方向上看推薦演算法可分為兩種:行為挖掘推薦和內容挖掘推薦。行為推薦主要是演算法思想是協同過濾,包括user-based,item-based,slopone。內容推薦一般設計文本挖掘的知識,比如你看過某篇文章,系統會通過文本相似度或者分類演算法為你做推薦。當然純粹的演算法推薦還是不夠,還需要一些補白的措施。我目前在為某大型通信公司做只能推薦系統項目,如果你感興趣,以後可以多交流。


首先,去關注 @ResysChina 的微信公眾號【ResysChina】,還有微博:http://weibo.com/resys

每次看到類似這樣的問題,我都會莫名的悲哀,「授人以漁」的事情我愛干,但「授人以魚」神馬的最討厭了。

從方法論上,進入一個新領域,並希望長期深入下去,需要作下面幾件事情。

  1. 找幾本經典的書,認認真真讀一下。我自己偏實踐派,這樣比較容易獲得成就感。因此我會推薦首先看《集體智慧編程》,《Algorithms.of.the.Intelligent.Web》(這本中文版快出來了,豆瓣大牛翻譯的)或者《Collective.Intelligence.in.Action》都行,這些比較簡單,但常用的方法都照顧到了,書中通常都配有實例,上手快。但是,我見過的所有真正的高手,都不是這麼乾的!他們會首先看一本大部頭的經典,系統化的把理論體系基礎先夯實,這方面據說《Recommender Systems Handbook》應該不錯,但我自己還沒看過。這是個浮躁的年代。
  2. 找出這個領域的專家,理清派系和方法論的區別,看他們的Paper。尤其是經典的Paper,看完了順著參考文獻繼續看。有一個八卦啊,斯坦福有兩個學生,為了畢業就這麼整天看Paper看參考文獻繼續看Paper看參考文獻,有始無終。然後哥倆被逼瘋了,一氣之下寫了個演算法,想看看文獻的終點在哪裡,然後就有了PageRank,然後後面的故事地球人都知道了。好吧,這是我瞎編的。我之前整理過一個資料,http://www.guwendong.com/post/2008/recommendation_resources.html,不過久未更新了,抱歉。
  3. 找機會參加頂級的會議,看看牛人們現在都在幹什麼,把握時代發展的潮流。如果有像Netflix Prize這樣的頂級大賽,更不要猶豫了,立馬全力投入進去就好了。這個時候需要你動腦筋考驗判斷,選對方向你就是未來的大牛。
  4. 最後,還得回到我們老祖宗的古訓,「言傳身教」。跟志同道合的人在一起,共同探索和努力,這個才是最行之有效的方法。比如說,可以加入我們團隊,我真正的想法是不會在這裡說的,和我一起把事情給辦了!我們絕對是一個靠譜的團隊,正在招聘演算法研究員,工程師,產品經理,設計師,不要再猶豫啦!哦耶!

當然了,其實我也總問「魚」的問題,人都愛走捷徑,都喜歡偷懶。我要鄙視一下我自己。


今年ACM的Recsys會議 http://recsys.acm.org/2011/index.shtml

多看論文,看論文的時候自然就會發現對哪個地方感興趣,然後順藤摸瓜,自己google,自己去作者的主頁上去看,總會找到適合自己的感興趣點和研究方向。

其實,你既然知道了2011推薦系統論壇了,上面的很多人都做的非常棒,從他們入手找資源也會很豐富的。


首先去找推薦系統相關的會議,接著按年份在相關的會議上找文章, http://www.cnblogs.com/zz-boy/archive/2012/11/05/2755591.html這是我的一篇博客文章,整理了一些推薦系統的資源,包括博客,論文集,相關會議,數據集,可以參考~


谷文棟已經寫的很詳細了。既然被邀請回答了,我就說一下我自己的想法吧。個人覺得學習推薦可以分四個階段

第一個階段,看一看像《集體智慧編程》這種書,它更像是一本入門工具書。能讓你對推薦系統有一個籠統的認識,寫一些簡單的,可以運行的推薦系統。但是如果想讓你的推薦系統在真實環境中運用,書里的內容遠遠不夠。

等你過了這個階段,就應該看一些基礎的理論書籍,具體哪本就看你自己選了,總之最好還是看國外的,如果能看原版的就更好了

第三個階段,可以去看一些paper,然後一定要自己思考,一般這些paper都是為了解決某種特定的問題,不一定完全適用你的問題,但裡面會提供很好的思路,這些思路是可以參考的。

最後就可以實戰江湖了。

當然這幾個階段並不是完全串列的,我覺得可以顛倒順序或者並行,都沒有問題


你應該多用谷歌,多搜recommender system這個詞。多用http://scholar.google.com,多搜 recommender system, collaborative filtering 等詞語


入門的話, 可以看以下書籍:

  1. Segaran T. Programming collective intelligence: building smart web 2.0 applications[M]. O』Reilly Media, 2007.寓教於樂的一本入門教材,附有可以直接動手實踐的toy級別代碼
  2. Shapira B. Recommender systems handbook[M]. Springer, 2011. 推薦系統可做枕頭,也應該放在枕邊的書籍,看了半本多。如果將該書及其中的參考文獻都看完並理解,那恭喜你,你已經對這個領域有深入理解了
  3. Jannach D, Zanker M, Felfernig A, et al. Recommender systems: an introduction[M]. Cambridge University Press, 2010. 可以認為是2010年前推薦系統論文的綜述集合
  4. Celma O. Music recommendation and discovery[M]. Springer, 2010. 主要內容集中在音樂推薦,領域非常專註於音樂推薦,包括選取的特徵,評測時如何考慮音樂因素
  5. Word sense disambiguation: Algorithms and applications[M]. Springer Science+ Business Media, 2006. 如果涉及到關鍵詞推薦,或是文本推薦, 則可以查閱該書

需要深入研究的話,結合之前這方面的工作及交流整理了一些論文及業界應用, 可以參見:http://semocean.com/%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F%E7%BB%8F%E5%85%B8%E8%AE%BA%E6%96%87%E6%96%87%E7%8C%AE%E5%8F%8A%E8%B5%84%E6%96%99/


LibRec 是領先的推薦系統Java開源演算法工具庫,覆蓋了70餘個各類型推薦演算法,有效解決評分預測和物品推薦兩大關鍵的推薦問題。推薦系統是機器學習和大數據技術的經典實際應用,旨在提供高效準確的個性化物品推薦,是現代Web應用的重要組件。

項目結構清晰,代碼風格良好,測試充分,注釋與手冊完善。目前項目使用GPL3.0協議開源在github中,歡迎大家試用。

Librec: http://www.librec.net/

Github Repo: https://github.com/guoguibing/librec

Doc Link: http://wiki.librec.net/doku.php

特色功能:

l 豐富的演算法集

截止到目前,LibRec已經集成了70餘個各類型推薦演算法。具體來說,分為基準演算法、協同過濾演算法、基於內容的演算法、情景感知演算法、混合演算法和其它擴展演算法等。在2.0版本中,增加了40餘個新演算法,包括概率圖模型、張量分解模型、因子分解機、基於評論的模型、深度學習模塊(RBM)等新穎的演算法。團隊的每個核心開發人員往往負責某一類型演算法的開發和測試工作。

l 良好的模塊化

相對於LibRec 1.x,新版本在底層結構上做了非常深入的優化,尤其是模塊化方面。新版本的推薦庫可分為以下三部分:數據預處理、推薦演算法和訓練後處理。在數據預處理模塊,主要是數據的轉換與分割。支持兩種格式數據的輸入和轉換,一個是常見的 User-Item-Rating 格式,另一個是更通用的ARFF格式,用戶還可以擴展新類型的數據以增強現有的ARFF格式。在數據分割方面,支持按Ratio,Given-N,k-fold Cross validation, Leave-one-out等方式。在推薦模型模塊,包括情景感知和演算法集成。情景感知指的是演算法依賴的情景信息,如用戶相似度;演算法集成則是演算法的邏輯實現。在模型訓練之後,LibRec支持兩種操作:一是對測試集進行評估,得到如MAE、RMSE、AUC、MAP、NDCG等測試結果;二是對給定的用戶(或情景)進行評分預測或物品推薦等查詢操作,用戶可以通過實現filter介面自定義更多的過濾操作。

l 靈活的框架配置

LibRec新版本承襲了基於配置的特點,但是有所更新和發展。新的配置實現參考了其它知名數據挖掘工具庫的實現特點,在靈活性上得到了有效的提高。具體來說,我們抽取出很多公共的配置項,也為獨立的演算法保留了特定的配置參數。為了提高演算法的易配置性,我們為大多數演算法保留了可用的供參考配置設置。

l 高效的執行性能

LibRec一直非常注重演算法執行的高效性,並儘可能地優化框架結構和演算法實現。與其它的推薦演算法庫相比,LibRec能夠在得到相當的推薦性能的前提下,在更短的時間內執行完成。

l 簡單的框架用法

LibRec早期版本只能獨立運行,難以集成在其它工程中使用。由於良好的模塊結構,新版本既可以單獨運行,也能夠作為依賴庫應用於其它工程中

l 良好的可擴展性

良好的易擴展性。LibRec提供了很好的公共介面以便用戶進行個性化擴展。包括數據類型、推薦演算法、輸出類型、評估因子、過濾器等的擴展介面。使用LibRec開發新演算法,用戶通常只需要關注新演算法的邏輯實現,而不需要擔心其它部分的實現。


你好,推薦去科學網周濤(http://blog.sciencenet.cn/home...),張子柯(http://blog.sciencenet.cn/blog-210...)的博客作為入口,了解更多的信息。此外有他們參與的項目牛贊網,你也可以註冊申請,體會一下推薦系統是如何發揮作用的。


周濤和張子柯他們的博客確實不錯,他們把推薦系統用在牛贊上了


我不做推薦系統,不過確實很熱門的方向,與數據挖掘相關度較大,不過要會機器學習的東西,那更好了


推薦閱讀:

從原理上來說,GBDT 和 SVM 哪個更強?為什麼?
南京大學LAMDA(周志華)組的實力如何?
目前大數據交易平台的主要目標用戶是誰?
如何去分析和獲取iTunes中每個應用的下載量以及不同分類的下載總量、收費和不收費的分別的下載量等等?從哪獲取這些數據呢?

TAG:演算法 | 數據挖掘 | 推薦系統 | 模式識別 | 個性化推薦 | 推薦演算法 |