??本章講的是評(píng)分預(yù)測(cè)問題,也就是如何通過已知的用戶歷史評(píng)分記錄預(yù)測(cè)未知的用戶評(píng)分記錄。
評(píng)測(cè)算法
1. 平均值
??取平均值作為預(yù)測(cè)結(jié)果是最簡單有效的一種統(tǒng)計(jì)方法,取平均值的方式有:全局平均值、用戶評(píng)分平均值、物品評(píng)分平均值和用戶分類對(duì)物品分類的平均值(同類用戶對(duì)同類物品的評(píng)分平均值)。
2. 基于鄰域的方法
??基于用戶的鄰域方法認(rèn)為預(yù)測(cè)一個(gè)用戶對(duì)一個(gè)物品的評(píng)分,需要參考和這個(gè)用戶相似的用戶對(duì)該物品的評(píng)分。用戶之間的相似度計(jì)算可以通過皮爾遜系數(shù)計(jì)算:而基于物品的鄰域算法則是在預(yù)測(cè)用戶對(duì)物品的評(píng)分時(shí)會(huì)參考用戶對(duì)和物品相似的其他物品的評(píng)分,此時(shí)物品之間的相似度可以用3種衡量方式:余弦相似度、皮爾遜系數(shù)和帶修正的余弦相似度。3種衡量方式的公式對(duì)比如下圖:
隱語義模型和矩陣分解模型
??這兩種方法其實(shí)都是通過降維的方法將評(píng)分矩陣補(bǔ)全。怎么樣補(bǔ)全才算是對(duì)矩陣擾動(dòng)最小呢?一般認(rèn)為如果補(bǔ)全后矩陣的特征值和補(bǔ)全前矩陣的特征值相差不大,就算是擾動(dòng)比較小。SVD分解是早期常用的矩陣分解方法,其缺點(diǎn)在于計(jì)算復(fù)雜度很高,而且占用很大的存儲(chǔ)空間。隱語義模型(LFM)就是將大的稀疏矩陣用兩個(gè)小的矩陣相乘來表示,此時(shí)就不需要用大量存儲(chǔ)空間來保存原始評(píng)分矩陣,此時(shí)兩個(gè)小的矩陣一般使用隨機(jī)數(shù)填充,根據(jù)經(jīng)驗(yàn)隨機(jī)數(shù)需要1/sqrt(F)成正比(F就是隱類的個(gè)數(shù))。LFM通過隱類將用戶和物品聯(lián)系在一起。但是一般來說,一個(gè)評(píng)分系統(tǒng)有些固有屬性和用戶物品無關(guān),而用戶也有屬性和物品無關(guān),物品也有屬性和用戶無關(guān)。此時(shí)就需要對(duì)三者加上偏置,即:,其中
、
、
就分別代表了系統(tǒng)、用戶和物品的固有屬性。
??當(dāng)然還可以對(duì)LFM繼續(xù)改進(jìn),比如考慮鄰域影響,其實(shí)就是在上面公式(2)的基礎(chǔ)上再加上Item CF預(yù)測(cè)的評(píng)分結(jié)果,不過此時(shí)這個(gè)評(píng)分結(jié)果不是統(tǒng)計(jì)的,而是利用可學(xué)習(xí)的參數(shù)計(jì)算出來的。此時(shí)新的優(yōu)化公式如下:N(u)就是和物品相似的物品集合,公式后面這一部分就體現(xiàn)出了鄰域物品的影響。而且上面公式對(duì)鄰域影響矩陣進(jìn)行分解,從而大大降低了參數(shù)的數(shù)量和存儲(chǔ)空間。
加入時(shí)間信息
??有兩種方式加入時(shí)間信息,一種是基于鄰域的模型融合時(shí)間信息,一般是將時(shí)間信息融合到基于物品的鄰域模型中,其實(shí)就是對(duì)相似物品的評(píng)分貢獻(xiàn)加上時(shí)間權(quán)重。之前可以視為所有的相似物品評(píng)分貢獻(xiàn)權(quán)重都是1,但是考慮了時(shí)間因素后就需要提高用戶最近的評(píng)分行為對(duì)推薦結(jié)果的影響,也就是加大近期行為物品的評(píng)分貢獻(xiàn)權(quán)重。
??另一種是基于矩陣分解的模型融合時(shí)間信息,此時(shí)用戶評(píng)分矩陣不再是一個(gè)二維矩陣,而是變成了一個(gè)三維矩陣。三維矩陣的分解可以參考這篇論文,評(píng)分優(yōu)化公式如下:書上說的是
建模了用戶興趣隨時(shí)間影響的效應(yīng)。