這節就僅僅簡單地介紹了一下 推薦系統的應用和例項。完全可以略。只需要清楚如何表示 評分還有未評分
上節課談到的電影評分推薦機制是
由使用者已評分過的電影來**使用者未評分過的電影
這節課我們來學習 「基於內容的推薦」
我們首先用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...