推薦系統:算法概述

現在,許多公司都會開發與本身業務息息相關的推薦系統。先薦做爲第四範式研發的一款智能推薦產品,已爲內容行業的衆多媒體客戶賦能,實現客戶的營收增加。在本文中,咱們將會簡要介紹現有的主要推薦算法及其工做原理。算法

協同過濾

協同過濾(CF)是最經常使用的推薦算法之一,即便推薦系統小白也能夠輕鬆上手,用它來構建屬於本身的我的電影推薦系統。網絡

當咱們想向用戶推薦某些內容時,最合乎邏輯的作法是找到與這個用戶興趣類似的其餘用戶,分析他們的行爲,而後向咱們的用戶推薦相同的物品。或者咱們能夠查看用戶的歷史行爲,推薦與它們相似的物品。函數

以上就是CF中的兩種基本方法:基於用戶(user-based)的協同過濾和基於項目(item-based)的協同過濾。性能

「最類似」在算法中意味着什麼?

已知每一個用戶的偏好向量(矩陣R的每一行)和每一個產品的用戶評級向量(矩陣R的每一列)。
在這裏插入圖片描述學習

首先,只留下已知的兩個向量的值。spa

其次,假設要比較Bill和Jane這兩位用戶,從圖中能夠看到,用戶Bill沒有看過《泰坦尼克號》,用戶Jane也沒看過《蝙蝠俠》,因此咱們只能經過《星球大戰》來測量兩者之間的類似性。至於類似性,通常會採用餘弦類似性或用戶/項目矢量之間的相關性來測量。視頻

最後一步,根據用戶類似度,採用加權算術平均值填充表格中的空白單元格。blog

推薦中的矩陣分解

另外一種方法是使用矩陣分解,這種推薦算法相對更「優雅」。通常來講,當涉及到矩陣分解時,不會過多考慮哪些項目將保留在結果矩陣的列和行中。使用這種推薦算法,咱們能夠看到,u是第i個用戶的興趣向量,v是第j部電影的參數向量。排序

在這裏插入圖片描述
所以,能夠把u和v的點積近似爲x(從第i個用戶到第j個電影的等級),用已知的分數構建向量並用它們來預測未知等級。事件

例如,在矩陣分解後,咱們獲得用戶Ted的矢量(1.4, 0.9)和電影A的矢量(1.4, 0.8),以後只要計算矢量(1.4, 0.9)和(1.4, 0.8)的點積,就能獲得A-Ted的等級,結果是2.68。
在這裏插入圖片描述

聚類

之前的推薦算法至關簡單,這樣的算法一般適用於小型的推薦系統。那麼想象一下,咱們正在建一個大型推薦系統,在這個系統中,協同過濾和矩陣分解會花很長時間。這時候咱們應該作的第一件事就是聚類。

在業務開始時,缺少用戶以前的評分,聚類是最好的方法。

在數據足夠多的時候,最好使用聚類做爲協同過濾中縮小相關選擇的第一步。除此此外,聚類還能夠改善複雜推薦系統的性能。

每一個羣集分別表明一類典型的用戶,基於用戶羣集中用戶的興趣畫像,羣集中的用戶也會收到對應的推薦結果。

推薦中的的深度學習方法

在過去的10年中,神經網絡技術取得了巨大的進步。如今,神經網絡被普遍地應用於各個領域,並逐漸取代傳統的ML方法。接下來咱們就分析一下YouTube是如何使用深度學習方法的。

毫無疑問,因爲用戶規模大、動態語料庫和各類不可控的外部因素,爲這樣的業務場景搭建推薦系統是一項很是具備挑戰性的任務。

據相關研究Deep Neural Networks for YouTube Recommendations,YouTube推薦系統算法由兩組神經網絡組成:一組用於候選生成,一組用於排序。如下是這項研究的主要內容:
在這裏插入圖片描述

將用戶的歷史事件做爲輸入,經過候選生成網絡顯著減小視頻量,而後從大型語料庫中建立一組最相關的視頻。

生成的候選者與用戶相關性最高,以後預測候選者的等級。該網絡的目的是經過協同過濾提供個性化推薦。
在這裏插入圖片描述

在此步驟中會有少許與用戶類似的候選者。接下來咱們須要越加仔細地分析這些候選者,以便作出最好的決策——該任務由排序網絡完成。

排序網絡能夠根據目標函數爲每一個視頻打分,該目標函數使用的是描述視頻的數據和與用戶行爲相關的信息。打分最高的視頻會按分數排序,呈現給用戶。

在這裏插入圖片描述
通過以上這兩個步驟,咱們能夠實現把龐大的視頻集精準推薦給用戶的操做,同時確保少數視頻還是個性化推薦。

文章來源:Recommendation System Algorithms

以上內容由第四範式-先薦編譯。

相關文章
相關標籤/搜索