資源 | 主要推薦系統算法總結及Youtube深度學習推薦算法實例概括

2021-02-15 機器之心

現如今,許多公司使用大數據來做超級相關推薦,並以此來增加收益。在海量推薦算法中,數據科學家需要根據商業限制以及需求來選擇最佳算法。為使其簡單化,Statsbot 團隊為現有的主要推薦系統算法準備了一份概述。

協同過濾

協同過濾(CF)及其變式是最常用的推薦算法之一。即使是數據科學的初學者,也能憑之建立起自己的個性化電影推薦系統,例如,一個簡歷項目。

當我們想要向某個用戶推薦某物時,最合乎情理的事情就是找到與他/她具有相同愛好的用戶,分析其行為,並且為之推薦相同的東西。或者我們可以關注那些與該用戶之前購買物品相似的東西,並推薦相似的產品。

協同過濾(CF)有兩種基本方法,它們分別是:基於用戶的協同過濾技術和基於項目的協同過濾技術。

該推薦算法的以上情形中均包含兩步:

1. 找到資料庫中有多少用戶/項目與目標用戶/項目相似。

2. 在給定與某產品用戶/項目更相似的用戶/項目的總權重時,評估其它用戶/項目,來預測你給用戶的相關產品的評分。

在該算法中,「最為相似」意味著什麼?

我們擁有的是每一位用戶的偏好向量(矩陣 R 的列),以及每一個產品的用戶評分的向量(矩陣 R 的行)。

首先,只留下兩個向量中值都已知的元素。

舉個例子,如果我們想比較 Bill 和 Jane,我們知道的信息是 Bill 沒有看過鐵達尼號,Jane 沒有看過蝙蝠俠,那麼我們只能通過星戰來衡量他們的相似度。怎麼可能會有人不看星戰,對吧?(微笑)

最流行的測量相似度的方法,是測量用戶/項目向量的餘弦相似度(cosine similarity)或相關度(correlations)。最後一步是根據相似程度,採取加權算術平均方法,填滿表中的空單元格。

用於推薦的矩陣分解

另一個有趣的方法是使用矩陣分解。這是一種優雅的推薦算法,因為通常在矩陣分解時,我們不會過多考慮結果矩陣的行列中哪些項(item)會被保留。但使用該推薦工具時,我們可以清楚地看到 u 是關於第 i 個用戶的興趣的向量,而 v 是關於第 j 部電影的參數的向量。

於是我們能夠通過 u 和 v 的點積來估計 x(第 i 個用戶對第 j 部電影的評分)。我們用已知的評分建立這些向量並以此預測未知的評分。

舉個例子,矩陣分解後我們獲得了 Ted 的向量(1.4;.9)和電影 A 的向量(1.4; .8),現在我們可以僅僅通過計算(1.4; .9)和(1.4; .8)的點積來還原電影 A-Ted 的評分,評分結果為 2.68。

聚類

以前的推薦算法比較簡單並且適用於小系統。而且直到現在,我們仍把推薦問題設想成一個監督式機器學習任務。現在是時候用非監督方法來解決此類問題了。

設想一下,我們是正在建造一個大型推薦系統,在此系統中協同過濾和矩陣分解這兩項工作的時間應該更長。而第一種設想就是聚類(clustering)。

在業務的開始階段,往往是缺乏先前用戶的等級劃分的,而聚類則是最好的方法。

但是如果單獨使用,聚類就顯得有一些薄弱了,因為事實上我們所做的事情其實是對用戶組別進行鑑定,並且為本組裡的每一位用戶推薦相同的東西。當我們擁有了足夠的數據的時候,使用聚類方法作為第一步是更好的選擇,這樣可以減少協同過濾算法中的相關近鄰(neighbor)的選擇。它也可以改善複雜推薦系統的性能表現。

每一個群集(cluster)都會被分配有代表性的偏好,這是以屬於該群集的用戶的偏好為基礎的。每一組群集的用戶都會收到在群集層面上計算過的推薦結果。

推薦系統的深度學習方法

在過去十年,神經網絡的發展已經有了巨大的飛躍。現在它們正被應用於各種各樣的應用,並且正在逐漸代替傳統的機器學習方法。下面我將展示深度學習方法是如何在 Youtube 中被使用的。

毋庸置疑,由於其規模大,語料庫不斷變化,以及種種不可觀測的外部因素,為這樣的服務項目製作推薦系統是一項極具挑戰性的任務。

根據「YouTube 推薦系統的深度神經網絡」的相關研究,YouTube 推薦系統算法包含兩部分神經網絡:一個是用於候選集生成(candidate generation),另一個則是用於排序。如果你沒有足夠的時間,我將在這裡給你進行一個簡要的概括。

使用用戶的歷史作為輸入,候選集生成網絡(candidate generation network)顯著地減少了視頻的數量,並且可以從一個大型語料庫中選取一組最相關的視頻集。生成的候選集對用戶來說是最為相關的,此神經網絡的目的僅僅是為了通過協同過濾來提供一個寬泛的個性化服務。

在這一步中,我們擁有了更少量的候選結果,這些結果與用戶需求更加接近。我們現在的目的是仔細地分析所有候選結果,這樣我們就可以做出最好的決策。此任務是由排序網絡(ranking network)來完成的,它可以根據一個期望的目標函數為每一個視頻都分配一個分數,這個目標函數是使用數據來對有關用戶行為的視頻和信息來進行描述的。

使用兩階段法(two-stage approach),我們就能夠從很大的視頻語料庫中做出視頻推薦,然而可以確信的是,這些推薦結果中只有少量是個性化的,而且是被用戶真正進行應用的。這一設計也能使我們把其它資源生成的結果和這些候選結果混合在一起。

推薦任務就像是一個極端的多類別分類問題,預測問題變成了一個在給定的時間 t 下,基於用戶(U)和語境(C),對語料庫(V)中數百萬的視頻類別(i)中的一個特定視頻(wt)進行精準分類的問題。

在創建你自己的推薦系統前要注意的要點:

如果你擁有一個很大的資料庫,並且你要用它進行在線推薦,最好的方式就是把這個問題分成兩個子問題:1)選擇前 N 個候選結果,2)對它們進行排序。

你怎樣衡量你的模型的質量?除了標準化的質量指標,還有一些用於推薦問題中特定的指標:Recall@k,Precision@k也可看一下推薦系統的最佳描述指標。

如果你正在使用分類算法解決推薦問題,你應該考慮生成負樣本(negative samples)。如果一個用戶買了一件推薦的商品,你不應該把它當做正樣本(positive sample)來進行添加,也不應該把其餘作為負樣本來處理。

考慮一下你的算法質量的在線與離線評分。一個僅基於歷史數據的訓練模型可以產生簡單的推薦結果,因為該算法並不會知道未來的新趨勢與偏好。

原文連結:https://blog.statsbot.co/recommendation-system-algorithms-ba67f39ac9a3

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權

✄---

加入機器之心(全職記者/實習生):hr@jiqizhixin.com

投稿或尋求報導:editor@jiqizhixin.com

廣告&商務合作:bd@jiqizhixin.com


點擊閱讀原文,查看機器之心官網↓↓↓

相關焦點

  • 推薦系統產品與算法概述
    目前深度學習算法、強化學習算法、遷移學習算法也在推薦系統中得到大規模採用。 基於模型的推薦算法基於用戶歷史行為數據、標的物metadata、用戶畫像數據等構建一個機器學習模型,利用數據訓練模型,求解模型參數。最終利用該模型來預測用戶對未知標的物的偏好。下面圖12就是基於模型的推薦系統模型訓練與預測的流程。
  • 破解YouTube、Facebook推薦系統背後的那些算法
    關於Facebook的算法,我在《推薦系統36式》專欄裡都有提到,你也可以看下圖,總結了推薦系統背後的那些算法,都是需要你花時間去學習和實踐的。        我們產品這個階段需要上線推薦系統嗎?推薦系統前期投入大嗎?2. 推薦系統這事容易整嗎?裡面那些算法到底是怎麼回事?3. 搭建一個推薦系統,這裡面有哪些坑?4.
  • 深度學習在推薦領域的應用:Lookalike 算法
    本文選自《深度學習算法實踐》,曾發表於《程式設計師》雜誌。了解本書詳情請點擊閱讀原文。在神經網絡和深度學習算法出現後,提取特徵任務就變得可以依靠機器完成了,人們只要把相應的數據準備好就可以了,其他數據都可以提取成向量形式,而社交關係作為一種圖結構如何表示為深度學習可以接受的向量形式,而且這種結構還能有效還原原結構中位置信息?這就需要一種可靠的向量化社交關係的表示方法。基於這一思路,在2016 年的論文中出現了一個算法node2vec,使社交關係也可以很好地適應神經網絡。
  • YouTube深度學習推薦系統的十大工程問題
    文 | 王喆源 | https://zhuanlan.zhihu.com/p/52504407這篇文章主要介紹了YouTube深度學習系統論文中的十個工程問題,為了方便進行問題定位,我們還是簡單介紹一下背景知識,簡單回顧一下YouTube的深度推薦系統論文Deep Neural Networks
  • 為什麼YouTube懂你想要看什麼?從算法論文反推其推薦機制...
    去年,在波士頓舉辦的第10屆ACM推薦系統大會(ACM’s RecSys 『16)上,來自Google的一個研究團隊公布了YouTube推薦系統的深度學習論文:論文作者是Google的軟體工程師 Jay Adams 與高級軟體工程師 Paul Covington、Embre Sargin,他們向業界展示了YouTube在機器學習推薦算法上的深度神經網絡使用情況。
  • 推薦系統遇上深度學習(二十)--貝葉斯個性化排序(BPR)算法原理及實戰
    排序推薦算法大體上可以分為三類,第一類排序算法類別是點對方法(Pointwise Approach),這類算法將排序問題被轉化為分類、回歸之類的問題
  • Bandit算法與推薦系統
    前者涉及到平衡準確和多樣,後者涉及到產品算法運營等一系列。Bandit算法是一種簡單的在線學習算法,常常用於嘗試解決這兩個問題,本文為你介紹基礎的Bandit算法及一系列升級版,以及對推薦系統這兩個經典問題的思考。為選擇而生我們會遇到很多選擇的場景。
  • 為了讓人們更容易上癮,YouTube正嘗試新推薦算法
    推薦算法是當今最強大的機器學習算法之一,因為它們決定了我們看到的信息。YouTube的推薦算法影響力尤其巨大。據估計,該平臺在網絡流量方面僅次於谷歌,70%的用戶觀看的內容是通過推薦算法提供給他們的。近年來,這種影響受到了密切關注。
  • 如何破解YouTube視頻推薦算法?
    本文翻譯自Frederator Networks的前副總裁Matt Gielen,相信能夠讓你對Youtube背後的算法略知一二。陳開江@刑無刀,個性化推薦產品技術愛好者和從業者。為個性化推薦付出了這些的青春:0)讀研研究NLP(句法分析方向);1)新浪微博資深推薦算法工程師,先後負責微博反垃圾、基礎數據挖掘、智能客服平臺、個性化推薦等產品的後端算法研發;2)考拉FM算法主管,為考拉FM從0構建了個性化音頻推薦系統;3)「邊逛邊聊」app(原名wave)聯合創始人兼技術負責人。
  • 新手入門 | 算法書籍推薦
    這周空閒時間我就大概在網上整理了一下,由於每個人的性格、學習習慣都不一樣,不能針對個人情況來推薦,所以這裡給的算法書籍僅做參考哦。                另外需要注意的是,這裡給的書籍路線更偏向於普通意義的學習,而不僅僅是針對算法競賽,公眾號前期還是主要針對大學剛入門的同學,這樣對於公眾號來說,也能做到由淺入深,自成體系,我自己也是溫故知新,後面會慢慢加深內容。
  • 深度學習在推薦系統上的應用
    確實深度學習很火,近期深度學習的戰火燒到推薦系統,其強大的表徵能力和低準入門檻,已經成為各大高校和中國人改網絡發paper的紅利時代。可是我還沒能發上那麼幾篇,之前面試大廠的AI labs被總監虐,感覺工作之後被壓榨太多,快幹了。推薦系統為什麼引入深度學習?
  • 推薦算法工程師的成長之道
    為什麼說推薦算法是好的職業選擇深度學習技術的逐步成熟,推動了AI第三次浪潮的到來,縱觀目前AI在網際網路行業上的應用,有比較好的產品落地及商業化價值的應用主要有7個大方向:7大方向1.搜索、推薦在工程實現上都是分為召回和排序兩個階段,在實現算法上除了常用的機器學習算法,深度學習、強化學習等都在這三個領域得到了很好的應用。隨著移動網際網路的深入發展及產品創新,目前這3個方向有更多更深入的交叉。
  • 深度強化學習算法與應用研究現狀綜述
    深度強化學習主要被用來處理感知-決策問題,已經成為人工智慧領域重要的研究分支。
  • 機器學習算法集錦:從貝葉斯到深度學習及各自優缺點
    選自static.coggle.it機器之心編譯在我們日常生活中所用到的推薦系統、智能圖片美化應用和聊天機器人等應用中,各種各樣的機器學習和數據處理算法正盡職盡責地發揮著自己的功效。本文篩選並簡單介紹了一些最常見算法類別,還為每一個類別列出了一些實際的算法並簡單介紹了它們的優缺點。
  • 重讀 Youtube 深度學習推薦系統論文,字字珠璣,驚為神文
    這裡是王喆的機器學習筆記,每隔一到兩周我會站在算法工程師的角度講解一些計算廣告、推薦系統相關的文章。
  • 資源│機器學習、深度學習、算法工程師等 AI 相關崗位面試需要知識
    Deep Learning Interview 深度學習面試題目匯總https://github.com/ShanghaiTechAIClub/DLInterview深度學習面試要點總結(面試題)https://zhuanlan.zhihu.com/p/62935978深度學習相關的面試考點https://zhuanlan.zhihu.com
  • CB算法:基於內容的推薦算法的基本原理
    推薦系統能有效幫助用戶快速發現感興趣和高質量的信息,增加用戶使用產品的時長。推薦系統越精準,用戶的使用體驗就越好,產品越容易留住用戶。近幾年,今日頭條、抖音等產品的誕生,也使得基於內容的推薦算法這一古老算法的崛起。本文將簡要闡述基於內容的推薦算法的基本原理,enjoy~基於內容的推薦算法是眾多推薦算法中的一種,是一種機器學習算法。
  • 年終總結 & 算法數據的思考,豆瓣眾人推薦好文~
    推薦系統在最近的三四年時間裡,我的主要工作就是搭建推薦系統,這幾年來不說看了上千篇論文也有數百篇了,這種專注讓我自認為在推薦系統領域至少處在一個業界相對領先的水準,但是也恰恰是這段經歷讓我被打上了深深的標籤:他是一個「推薦系統專家」。既然這樣,那我就先來說說推薦系統吧。
  • 重讀Youtube深度學習推薦系統論文,字字珠璣,驚為神文
    AI 前線導讀:2016 年,Youtube 發布了一篇深度推薦系統論文《Deep Neural Networks for YouTube Recommendations》,按照今天的標準來看,已經沒有什麼新穎的地方。
  • 【全面】人工智慧技術棧與學習路線:機器學習 深度學習 視覺 NLP 推薦系統
    一些必備算法:廣度優先搜索深度優先搜索背包問題動態規劃蟻群問題等三 人工智慧基礎原理這門課,你將學習:知識系統:分為確定性只是系統和不確定性知識系統 你將學習基礎的知識表示和推理方式智能搜索技術:你將學習啟發式搜索算法例如A*算法和博弈樹以及遺傳算法