標籤:

從演算法到案例:推薦系統必讀的10篇精選技術文章

推薦系統近幾年來一直十分火熱,目前幾乎所有的電子商務系統、社交網路,廣告推薦,搜索引擎等等,都不同程度的使用了各種形式的推薦系統。想知道電商如何向你發送廣告的?想了解社交網路怎麼推薦好友的?想自己搭建一個推薦系統?想了解一些演算法或架構從而將自己的推薦系統做得更好?InfoQ為你整理了一系列的有關推薦系統的演算法文章,以及主要從電商和社交網路方面選取了一些優秀的案例,來看看這些關於推薦系統的優秀文章吧。

另外,想迅速了解並掌握推薦系統的同學,可以購買極客時間出品的『推薦系統三十六式』專欄,作者在推薦系統方面有8年的經驗,為推薦系統學習者架構起整體的知識脈絡,並在此基礎上補充實踐案例與經驗,力圖解決系統起步階段 80% 的問題。

推薦系統在各種系統中廣泛使用,推薦演算法則是其中最核心的技術點, 為推薦系統選擇正確的推薦演算法是非常重要的決定。每一種推薦演算法都有其優點和缺點,當然也有其限制條件,在作出決定之前,必須要一一考量。在實踐中,你可能會測試幾種演算法,以發現哪一種最適合你的用戶,測試中你也會直觀地發現它們是什麼以及它們的工作原理。

InfoQ策划了系列文章來為讀者深入介紹。推薦演算法綜述分為五個部分,本文作為第一篇,主要介紹了推薦演算法的主要類型。第二篇 涵蓋了不同類型的協同過濾演算法,突出他們之間的一些細微差別。之後的三篇會陸續發表出來。第三篇詳細介紹了基於內容的過濾演算法。第四篇主要介紹了混合引薦技術和基於流行度的推薦方法。第五篇,在回顧了所有基本的推薦演算法之後,介紹了如何選擇最合適的推薦演算法。這一系列的作者是 Maya Hristakeva 和 Kris Jack,英國的數據科學家,具有豐富的構建推薦系統的經驗,他們共同為世界創建出了一些出色的推薦系統。

雖然也曾從事過技術研發相關的工作,但是對演算法這類很「高深」和數學關係又比較緊密的技術來說,要真正地了解起來確實是一個難度很大的動作。但是在筆者參加了一些和演算法以及推薦系統相關的活動之後,發現這一高深的學問已經被從事軟體開發的朋友應用的非常廣泛。特別是在電商火爆的今天,各種和推薦相關的網站風起雲湧,演算法進入平常百姓家也就是水到渠成了。本文討論了演算法和推薦引起關注的原因,演算法、架構、策略、機器學習之間的關係,學習推薦演算法的幾點經驗等。

現在網上到處都有推薦。比如亞馬遜、Mint.com之類的財務規劃網站、谷歌這些知名公司使用推薦提供情境化的、有相關性的用戶體驗,以提高轉化率和用戶滿意度。這些建議原來一般由每天晚上、每周或每月生成新推薦的批處理作業計算提供。然而對於某些類型的推薦,響應時間有必要比批量處理作業所需的時間更短。本文將會介紹如何使用Kiji框架,它是一個用來構建大數據應用和實時推薦系統的開源框架。通過這篇文章可以了解到如何用Kiji整合數據,模型和演算法來開發一個可以實時刷新推薦的推薦系統。

百分點推薦引擎是國內領先的推薦技術平台,專註於為電子商務和資訊網站提供SaaS模式的個性化推薦服務,提高網站的整站轉化率和用戶黏度。本文將從電子商務網站的實際需求出發,介紹百分點推薦引擎架構設計和搭建。百分點的架構設計包含了存儲層,演算法層,業務層,管理層。演算法層里包含在線演算法和離線演算法。在線演算法包括協同過濾(UserBased/ItemBased CF),基於內容的推薦(Content Based),熱擴散(Heat Diffusion),用戶行為模式分析(Behavior PatterAnalysis)等等。離線演算法包括KNN聚類,基於FP Tree的關聯規則挖掘,基於上下文統計的關聯規則挖掘,序列模式演算法,文檔建模演算法等等。

Netflix的推薦和個性化功能向來精準,他們公布了自己的系統架構。主要從在線,接近在線,離線處理三個方面來講解。

並且他們指出構建一個好的推薦系統需要具備使用複雜機器學習演算法的能力,這些演算法要可以適應高度複雜性,可以處理大量數據。還要能夠提供靈活、敏捷創新的架構,新的方法可以很容易在其基礎上開發和插入。而且,需要推薦結果足夠新,能快速響應新的數據和用戶行為。找到這些要求之間恰當的平衡並不容易,需要深思熟慮的需求分析,細心的技術選擇,戰略性的推薦演算法分解,最終才能為客戶達成最佳的結果。

個性化推薦引擎已經在雅虎的首頁、新聞、體育、財經等很多頻道,以及雅虎的Email、用戶訂閱的郵件內容等方面使用。個性化推薦引擎推薦的內容有雅虎編輯原創的內容,也有雅虎購買版權的內容,還有從Web上抓取的內容,包括新聞、圖片、博客、輕博客等形式。現在已經在歐洲等地方做全球化的推廣,並且統計發現個性化推薦引擎對於用戶粘性的提升已經超過了100%。本文從數據收集,新模型/演算法的評估上線,關於用戶粘度三個方面講解了雅虎推薦引擎的系統架構。

與傳統的推薦引擎不同,人人網的社會化推薦考慮了人與人之間的關係,通過真實的人際關係,提高推薦結果的精準度。例如,好友推薦的目的是幫助用戶找到好友,迅速構建用戶社交圖譜,形成可持續發展的網路生態圈。社會化推薦對傳統的推薦引擎提出了新的需求和挑戰,具體體現在其個性化和複雜性上。本文從社交圖譜的建立和社會化過濾方法的應用兩個方面講解了人人網社會化推薦框架。

為了保證用戶體驗和使用效果,推薦系統中的機器學習演算法一般都是針對完整的數據集進行的。然而,隨著推薦系統輸入數據量的飛速增長,傳統的集中式機器學習演算法越來越難以滿足應用需求。因此,分散式機器學習演算法被提出用來大規模數據集的分析。作為全球排名第一的社交網站,Facebook就需要利用分散式推薦系統來幫助用戶找到他們可能感興趣的頁面、組、事件或者遊戲等。Facebook就在其官網公布了其推薦系統的原理、性能及使用情況。在工作原理方面,Facebook推薦系統採用的是流行的協同過濾(Collaborative filtering,CF)技術。具體讀者可以自行看看文中的敘述。

微博(Weibo)是一種通過關注機制分享簡短實時信息的廣播式社交網路平台。微博用戶通過關注來訂閱內容,在這種場景下,推薦系統可以很好地和訂閱分發體系進行融合,相互促進。微博兩個核心基礎點:一是用戶關係構建,二是內容傳播,微博推薦一直致力於優化這兩點,促進微博發展。

在微博推薦發展的過程中遇到體系方向的變化、業務的不斷更迭、目標的重新樹立,其產品思路、架構以及演算法也隨之進行變遷。本文講了微博推薦架構的演進過程:獨立式的1.0版本,分層式的2.0版本和平台式的3.0,架構組成分為應用層,計算層,數據層和基礎服務,並在3.0中解決了推薦候選/排序/訓練的演算法最重要的問題。具體可以點擊鏈接閱讀。

隨著移動互聯網迅速發展,大數據技術為企業帶來了前所未有的發展機遇,然而中小企業和傳統行業由於其數據量缺乏且單一,技術投入不足的劣勢,面對大數據技術發展帶來的紅利只能望洋興嘆。本文介紹微信即將推出的微信斑馬系統,該系統旨在為中小企業和傳統行業提供基於微信大數據分析技術的受眾分析,精準推廣,激活留存和商業智能決策的全套解決方案。

推薦演算法綜述(一) www.infoq.com圖標一次推薦演算法的普及性討論 www.infoq.com圖標用Kiji構建實時、個性化推薦系統 www.infoq.com圖標百分點推薦引擎——從需求到架構 www.infoq.com

Netflix公布個性化和推薦系統架構 www.infoq.com圖標雅虎個性化推薦引擎的工程實踐 www.infoq.com圖標社會化推薦在人人網的應用 www.infoq.com

Facebook如何向十億人推薦東西 www.infoq.com圖標微博推薦架構的演進 www.infoq.com圖標微信斑馬系統:微信朋友圈廣告背後的利器 www.infoq.com圖標

最後推薦極客時間的專欄「推薦系統三十六式」,三十六篇文章,帶你從零開始構建自己的推薦系統:

推薦閱讀:

TAG:推薦系統 |