詳解個性化推薦五大最常用演算法

2021-08-08 03:31:04 字數 2163 閱讀 8691

推薦系統,是當今網際網路背後的無名英雄。

我們在某寶首頁看見的商品,某條上讀到的新聞,甚至在各種地方看見的廣告,都有賴於它。

昨天,乙個名為stats&bots的部落格詳解了構建推薦系統的五種方法。

量子位編譯如下:

為了簡化這個任務,statsbot團隊寫了乙份現有的主要推薦系統演算法的概述。

協同過濾(collaborative filtering, cf)及其變體是最常用的推薦演算法之一。即使資料科學的新手也可以用它來構建自己的個人電影推薦系統,起碼可以寫在簡歷上。

我們想給使用者推薦東西,最合乎邏輯方法是找到具有相似興趣的人,分析他們的行為,並向使用者推薦相同的專案。另一種方法是看看用於以前買的商品,然後給他們推薦相似的。

cf有兩種基本方法:基於使用者的協同過濾和基於專案的協同過濾。

無論哪種方法,推薦引擎有兩個步驟:

「最相似」在演算法中是什麼意思?

我們有每個使用者的偏好向量(矩陣r的行),和每個產品的使用者評分向量(矩陣r的列),如下圖所示。

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

例如我們想比較bill和jane,已知比爾沒有看鐵達尼號,jane沒看過蝙蝠俠,於是,我們只能通過星戰來衡量他們的相似度了。誰沒看過星球大戰呢是吧?

測量相似度的最流行方法是余弦相似性或使用者/專案向量之間的相關性。最後一步,是根據相似度用加權算術平均值填充表中的空單元格。

這是乙個非常優雅的推薦演算法,因為當涉及到矩陣分解時,我們通常不會太多地去思考哪些專案將停留在所得到矩陣的列和行中。但是使用這個推薦引擎,我們清楚地看到,u是第i個使用者的興趣向量,v是第j個電影的引數向量。

所以我們可以用u和v的點積來估算x(第i個使用者對第j個電影的評分)。我們用已知的分數構建這些向量,並使用它們來**未知的得分。

例如,在矩陣分解之後,ted的向量是(1.4; .8),電影a的向量是(1.4; .9),現在,我們可以通過計算(1.4; .8)和(1.4; .9)的點積,來還原電影a-ted的得分。結果,我們得到2.68分。

上面兩種演算法都極其簡單,適用於小型系統。在這兩種方法中,我們把推薦問題當做乙個有監督機器學習任務來解決。

現在,該開始用無監督學習來解決問題了。

假設我們正在建立乙個大型推薦系統,這時協同過濾和矩陣分解花費的時間更長了。第乙個浮現在腦海裡的解決之道,就是聚類。

業務開展之初,缺乏之前的使用者資料,聚類將是最好的方法。

不過,聚類是一種比較弱的個性化推薦,因為這種方法的本質是識別使用者組,並對這個組內的使用者推薦相同的內容。

當我們有足夠資料時,最好使用聚類作為第一步,來縮減協同過濾演算法中相關鄰居的選擇範圍。這個方法還能挺高複雜推薦系統的效能。

每個聚類都會根據其中使用者的偏好,來分配一組典型的偏好。每個聚類中的使用者,都會收到為這個聚類計算出的推薦內容。

在過去的十年中,神經網路已經取得了巨大的飛躍。如今,神經網路已經得以廣泛應用,並逐漸取代傳統的機器學習方法。

接下來,我要介紹一下youtube如何使用深度學習方法來做個性化推薦。

毫無疑問,由於體量龐大、動態庫和各種觀察不到的外部因素,為youtube使用者提供推薦內容是一項非常具有挑戰性的任務。

根據《deep neural networks for youtube recommendations》(  ),youtube的推薦系統演算法由兩個神經網路組成:乙個用於候選生成,乙個用於排序。如果你沒時間仔細研究**,可以看看我們下面給出的簡短總結。

這個網路的目標,只是通過協同過濾提供更廣泛的個性化。

進行到這一步,我們得到一組規模更小但相關性更高的內容。我們的目標是仔細分析這些候選內容,以便做出最佳的選擇。

這個任務由排序網路完成。

選擇top n個候選;

排序。如衡量推薦模型的質量?

除了標準質量指標之外,還有一些針對推薦問題的指標:比如說召回率與準確率(還有一些其他的指標,見《軟體工程中的推薦系統》一書第12章(

如果你正在使用分類演算法解決推薦問題,應該考慮生成負例樣本。如果使用者購買了推薦的商品,你應該將其新增為正例樣本,而其他列為負例樣本。

個性化推薦在產品裡都能用在哪呢?

量子位曾報道過知乎、quora、airbnb是如何使用機器學習技術的,推薦系統是其中的重頭戲:

詳解:知乎如何使用機器學習,未來還有哪些想象空間

詳解:估值18億美元的新晉獨角獸quora,如何使用機器學習?

搞日租房的airbnb,如何用機器學習對接上百萬的房東和租客?

【完】

個性化推薦演算法實戰第01章個性化推薦演算法綜述

個性化召回 1 什麼是推薦系統?在介紹推薦演算法之前需要先介紹一下什麼是資訊過載。資訊過載就是資訊的數量遠超於人手工可以遍歷的數量。比如,當你沒有目的性的去逛超市,你不可能把所有的商品都看一遍都有什麼。同樣,無論是去書店看書,還是在電影 上搜尋電影,這些物品的量級對於沒有目的性 需求性的使用者而言都...

個性化推薦演算法比較

推薦技術 背景條件 輸入主要步驟 應用協同過濾 u對i的評價 u對i的評價等級 識別u的鄰居使用者 根據其生成i的評價分 只能推舊品 基於內容推薦 i的特徵屬性 u對i的評價等級 根據u的評價分生成專案的分類器 可以推新品 基於人口統計資訊推薦 u對人口統計資訊及對i的評價 關於u的人口統計資訊 識...

推薦引擎 個性化推薦 常用模型和演算法

背景介紹 技術所要達到的目的為非在合適的地方展現合適的內容。通常有下面的一些技術 1 協同過濾 collaborative filtering 技術 2 自然語言理解技術 人與人交道使用的是人類語言 基本由詞彙及約定俗成的含義構成 人與機器互動通常表現為機器提供特定的介面供人使用,隨著人與機器互動的...