天天看點

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

系列文章: 吳恩達《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 個使用者,我們要求使用者為電影打分

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

前三部是愛情片,後面兩部是動作片。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動作程度
吳恩達《Machine Learning》精煉筆記 11:推薦系統

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

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

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

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

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

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

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

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

協同過濾Collaborative Filtering

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

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

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

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

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

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

協同過濾算法的過程:

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

協同過濾算法

協同過濾的優化目标:

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

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

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

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

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

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

推出相應的評分

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

找出類似的影片

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

均值歸一化Mean Normalization

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

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

  • 對上面的Y矩陣進行均值歸一化,将每個使用者對某一部電影的評分減去所有使用者對該電影評分的平均值,得到如下的矩陣:
吳恩達《Machine Learning》精煉筆記 11:推薦系統
  • 利用新的矩陣Y來訓練算法。如果我們要用新訓練出的算法來預測評分,則需要将平均值重新加回去,模型會人為其給每部電影的評分都是該電影的平均分。