吳恩達《Machine Learning》精煉筆記 11:推薦系統

紅色石頭發表於2021-03-02

系列文章:

吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習

吳恩達《Machine Learning》精煉筆記 2:梯度下降與正規方程

吳恩達《Machine Learning》精煉筆記 3:迴歸問題和正則化

吳恩達《Machine Learning》精煉筆記 4:神經網路基礎

吳恩達《Machine Learning》精煉筆記 5:神經網路

吳恩達《Machine Learning》精煉筆記 6:關於機器學習的建議

吳恩達《Machine Learning》精煉筆記 7:支援向量機 SVM

吳恩達《Machine Learning》精煉筆記 8:聚類 KMeans 及其 Python實現

吳恩達《Machine Learning》精煉筆記 9:PCA 及其 Python 實現

吳恩達《Machine Learning》精煉筆記 10:異常檢測

本週中主要講解了推薦系統的相關知識。推薦系統應該是目前機器學習領域或者說人工智慧領域最熱門的方向之一,還有NLP、CV等,主要內容包含:

  • 推薦系統簡介
  • 基於內容的推薦系統
  • 協同過濾

推薦系統

推薦系統概述

常見的推薦系統有三種主要的應用常景:

  • 個性化推薦:常以“推薦”、“猜你喜歡”、“發現”等形式出現,一般放在首頁位置
  • 相關推薦:常以“相關推薦”、“看了還看”等形式出現,一般放在內容詳情頁
  • 熱門推薦:基於各種資料進行計算,得到的排行榜,支援全域性排行以及分類排行等,位置不限

推薦系統對使用者的核心價值,主要表現在:

1.幫助使用者便捷、快速地篩選出感興趣的內容

2.在使用者陌生的領域裡面提供參考意見

3.滿足使用者的好奇心

推薦系統的主要工作是:

  • 首先它基於使用者的興趣,根據使用者的歷史行為做興趣的挖掘,把物品和使用者的個性化偏好進行匹配。
  • 然後通過推薦演算法或者技術把資訊進行過濾,解決使用者的過載問題。
  • 當使用者有新的行為發生時,比如點選或者搜尋之後,能及時進一步捕捉使用者的興趣。
  • 選擇合適的場景,個性化或者相關的、熱門的,來給使用者進行推薦。

個性化推薦系統解決的是使用者很內容的關聯關係,它是二者之間的橋樑。基於使用者的興趣偏好,把使用者感興趣的物品或者視訊、資訊等推薦給使用者,給使用者帶來沉浸式的體驗。

問題形式化

推薦系統應用的十分廣泛:如果你考慮網站像亞馬遜,或網飛公司或易趣,或iTunes Genius,有很多的網站或系統試圖推薦新產品給使用者。如,亞馬遜推薦新書給你,網飛公司試圖推薦新電影給你,等等。

這些推薦系統,根據瀏覽你過去買過什麼書,或過去評價過什麼電影來判斷。這些系統會帶來很大一部分收入,比如為亞馬遜和像網飛這樣的公司。

因此對推薦系統效能的改善,將對這些企業的有實質性和直接的影響。

通過一個栗子來了解推薦系統

假使我們是一個電影供應商,我們有 5 部電影和 4 個使用者,我們要求使用者為電影打分

前三部是愛情片,後面兩部是動作片。Alice和Bob更傾向於愛情片,Carol和Dave更傾向於動作片。一些標記

  • nu使用者的數量
  • nm電影的數量
  • r(i,j)如果使用者j給電影i評過份則r(i,j)=1
  • y(i,j)代表的是使用者j給電影i的評分
  • mj表示的是使用者j評過分的電影總數

基於內容的推薦系統Content Based Recommendations

在一個基於內容的推薦系統演算法中,我們假設對於我們希望推薦的東西有一些資料,這些資料是有關這些東西的特徵。現在假設電影有兩個特徵:

  • x1浪漫程度
  • x2動作程度

那麼每部電影都有一個特徵向量,如第一部電影的是[0,9 0]

針對特徵來構建一個推薦系統演算法。假設使用的是線性迴歸模型,針對每個使用者使用該模型,θ(1)表示的是第一個使用者的模型的引數。定義如下:

  • θ(j)第j個使用者的引數向量
  • x(i)電影i的特徵向量

針對電影i和使用者j,該線性迴歸模型的代價為預測誤差的平方和,加上正則化項:

其中 i:r(i,j)表示我們只計算那些使用者 j 評過分的電影。在一般的線性迴歸模型中,誤差項和正則項應該都是乘以1/2m,在這裡我們將m去掉。並且我們不對方差項θ0進行正則化處理。

針對所有使用者的代價函式求和:

協同過濾Collaborative Filtering

上面基於內容的過濾演算法是通過電影的特徵,使用特徵來訓練出每個使用者的引數。相反,如果使用使用者的引數,也可以學習得出電影的特徵:

如果沒有使用者的引數和電影的特徵,協同過濾演算法便可以同時學習這兩者

對代價函式求出偏導數的結果是:

協同過濾演算法的過程:

1.初始化x,θx,θ為很小的值
2.使用梯度下降演算法最小化代價函式minJ(x,θ)minJ(x,θ)
3.訓練完演算法後,預測使用者j給電影i的評分

協同過濾演算法

協同過濾的優化目標:

向量化:低秩矩陣分解Vectorization_ Low Rank Matrix Factorization

協同過濾演算法可以做的事情:

1.給出一件商品,找到與之類似的商品
2.當一個使用者瀏覽了一件產品,找出類似的商品推薦給他

假設5部電影,4位使用者,存放在矩陣中:

推出相應的評分

找出類似的影片

均值歸一化Mean Normalization

上圖中,假設新來個使用者Eva,他沒有對任何的電影進行評分,那我們以什麼依據來給他推薦電影呢?

  • 對上面的Y矩陣進行均值歸一化,將每個使用者對某一部電影的評分減去所有使用者對該電影評分的平均值,得到如下的矩陣:

  • 利用新的矩陣Y來訓練演算法。如果我們要用新訓練出的演算法來預測評分,則需要將平均值重新加回去,模型會人為其給每部電影的評分都是該電影的平均分。

本文首發於公眾號:AI有道(ID: redstonewill),歡迎關注!

相關文章