week 9 推薦系統

2022-04-02 22:25:44 字數 2240 閱讀 8184

這節就僅僅簡單地介紹了一下 推薦系統的應用和例項。完全可以略。只需要清楚如何表示 評分還有未評分

上節課談到的電影評分推薦機制是

由使用者已評分過的電影來**使用者未評分過的電影

這節課我們來學習 「基於內容的推薦

我們首先用x_1,x_2來表示一部電影是屬於愛情電影還是動作電影的比率,也就是成分

然後,每部電影我們都可以用乙個特徵向量來表示

所以,我們可以把對每個觀眾打分的**,當成乙個獨立的線性回歸問題,具體來說,比如對每乙個使用者j,我們都學習出乙個引數\(\theta^\) ,在這裡是乙個三維向量。 當然,普遍來說是n+1維向量

如圖所示:

總結:

那麼,問題來了,如何來計算 \(\theta\)?

計算\(\theta\)本質上就是乙個基本的最小二乘回歸或者線性回歸

在這裡可以把前面的常數項去掉

再重複一下:

所以,可以採取和線性回歸一樣的優化方法:(梯度下降)

與線性回歸的唯一區別就是 :沒有1\m項!

注:在這裡摘抄一下別人的筆記:

也就是 相似推薦? 例如你買了一本書,然後買完後,會顯示:買了這本書的使用者也買了其他書。

現在我們的情況:

然後通過使用者對不同種類的電影的評價得到:

讓我們寫正式一點:

對於乙個的時候:

當然,我們面對多個的時候:

這時候,我們需要的梯度下降規則就是:

總結:這相當於從theta推導x,

上次我們是從x來推導theta

那麼,如何同時計算出theta和x呢?

我們可以發現,這兩項本質上是一樣的:

所以,要同時計算theta和x就可以優化這個函式:

以前是雞生蛋蛋生雞,現在是一起生。

不過要注意的是,在新的演算法中,

我們要去掉x_0 = 1 這個前提,因為

x和\theta此時變成n維

總結:「

注意,使用新演算法的時候,開始的時候由於2個引數都沒有計算出來,也沒有得到,所以要隨機初始化!!!

先看乙個例項:

所以這時候y就包含了這些資料了

然後,如圖所示,可以將這個矩陣分解:

這種方法也叫:low rank matrix factorization

低秩矩陣分解

如何應用?

細節介紹:均值歸一化

例子:有乙個使用者沒有給任何乙個電影評分

這樣我們就要採用均值歸一化了

然後。使用均值歸一化:

然後,使用過均值歸一化後,我們要對這個矩陣進行操作,像之前一樣用協同過濾演算法

如圖:最後,感覺這一周學得不是很好,特別是推薦演算法這一節,概念還是很模糊,可能是由於前面的下線性回歸演算法沒有搞清楚吧。

做程式設計作業的時候一定要搞清楚!!!

秒殺系統挑戰與對策(week 9)

秒殺大家都很熟悉,它就是在某一時刻大量請求同時搶購某一商品並完成交易的過程。作為乙個支援秒殺活動的系統,面臨哪些挑戰,又有什麼對策呢?相較於平時的售賣,秒殺最大的特點就是高併發 瞬時的高併發。由於秒殺商品的超高價效比,大量的買家湧入,給系統貢獻了第一波併發使用者 除此之外,還有薅羊毛黨利用機械人 殭...

Python學習筆記 week 9

函式 作用time.time 返回當前unix紀元的秒數時間 time.sleep 5 暫停程式執行鍵入的5秒 round x,2 四捨五入到小數點後兩位 函式作用 datetime.datetime.now 返回乙個包含年月日時分秒和微妙的datetime物件 datetime.datetime....

(week 9)第九周總結

由於手動貼圖太過粗糙而且效果一般,所以我們打算寫成obj檔案和mtl檔案放入maya中自動完成貼圖 我負責的是mtl檔案的編寫 建立檔案 file open hsy.mtl a 讀入原圖 import cv2 import numpy as np matplotlib inline import m...