










開篇:大概介紹了最臨近協(xié)同過濾算法的優(yōu)點缺點。
缺點:對數(shù)據(jù)噪音和稀疏度不能很好處理,有冷啟動問題(是什么?),擴(kuò)展度低(在哪個的拓展度)
優(yōu)點:解決了傳統(tǒng)臨近算法的缺點(哪些缺點?),也保證了比較正確率(怎樣保證的?)
提出目標(biāo):怎樣使用少量數(shù)據(jù)去預(yù)測大量人群的喜好,理解使用潛在的獨立、不相關(guān)的數(shù)據(jù)集去生成推薦,
分析是否能使用專業(yè)的評論很好的預(yù)測普遍行為,討論如何避免傳統(tǒng)的陷阱在cf中
數(shù)據(jù)收集中,采用了爬取網(wǎng)絡(luò)評論方式得到數(shù)據(jù),使用百分之50的電影數(shù)代表了所有電影。因為大多數(shù)評級太低而去除,
最后剩下少量符合標(biāo)準(zhǔn)的數(shù)據(jù)。
數(shù)據(jù)分析:為了比較專家數(shù)據(jù)和普遍數(shù)據(jù)的好壞。
用了CDF圖(概率分布圖),該圖的函數(shù)是F(x)=P(X<=x)
圖1:每部電影的用戶、專家評論數(shù) 每個人的評論的電影數(shù)
結(jié)論:每部電影至少有一個專家評論,且評論數(shù)不會超過100.而用戶評論數(shù)在0-10000不等
每個專家至少評論400個電影,而有的用戶沒有評論過電影。且評論超過400部電影的用戶只有百分之10
專家的系數(shù)系數(shù)更低
圖2:每部電影的平均評級,每個用戶給出的的平均評級(評論的總分?jǐn)?shù)/評論的總電影數(shù))
結(jié)論:用戶對每部電影的平均給分較為集中,百分之10的電影低于0.45,百分之10的大于0.6.而專家對電影平均分比較分散,百分之10低于0.4,百分之10高于0.8
一般用戶評分波動較大,而專家波動較小。這說明一般用戶容易根據(jù)偏好來對電影做評價,而專家更加客觀
圖三:每部電影的評分標(biāo)準(zhǔn)誤差,每個人的評分標(biāo)準(zhǔn)誤差(對誤差的理解是 所給評分較平均值的波動程度)
結(jié)論:專家誤差范圍比較分散在0-0.35。而用戶的誤差最低都是0.2。
對于每個用戶,專家評級波動小,而用戶的評級波動大。
分析結(jié)果:專家集和普通用戶集大有不同。專家集更加的稀疏,專家的評級范圍更大(不止限于某一類)。他們對
好的電影都持幾乎相同的意見。他們的評級偏離更少。
最臨近算法。采用的knn算法。距離取值用的是余弦相似度。但是它應(yīng)該屬于余弦相似度的一個變形,因為考慮到
用戶的共同部分,于是加入了調(diào)整因子。
為了更好的預(yù)測,我們規(guī)定,我們要找出相似度大于δ的值(sim),但是由于這個值會帶來一些患處
如果這些電影沒有當(dāng)前評論(指的是沒有專家的當(dāng)前評論),那么調(diào)整因子都為0,沒有一個sim值會超過閾值。
為了解決這個問題,我們又加入了一個τ作為確信閾值。確保經(jīng)過δ篩選過后的專家集合仍然要大于此值。
如果小于了τ那么返回用戶的均值。如果大于該值,會應(yīng)用一個公式計算預(yù)測該用戶對電影的評級。
預(yù)測出的評級可能會作為一個標(biāo)準(zhǔn),看出用戶的喜好,用于給用戶推薦相關(guān)的電影。
預(yù)測推薦的錯誤率
當(dāng)用專家平均值作為最差預(yù)測情況的時候,我們v把它叫做批判者的選擇,這種時候MAE(平均絕對誤差)高,覆蓋率極高(100)
當(dāng)使用τ= 10 andδ= 0.01, MAE明顯下降而覆蓋率略低
圖5:當(dāng)τ一定時候,MAE和δ成反比關(guān)系。τ一定,覆蓋率隨δ增大而減小。τ增加MAE先減后增
專家集在計算預(yù)測性較高的用戶時準(zhǔn)確性會降低
Top-N推薦的精確度
我對topN理解是,在計算出相似度后找到test集中與該相似度臨近的人群。并通過這些計算出預(yù)測的電影評分,對于評級大于可推薦閾值(σ)的電影進(jìn)行推薦
對于愿意接受任何高于平均項目的推薦的用戶(2.5-3的評級),基于專家的方法似乎表現(xiàn)得與標(biāo)準(zhǔn)NN-CF一樣好。
用戶調(diào)查
通過用戶的親身體驗來驗證推薦的滿意程度。
通過用戶對篩選出的隨機(jī)電影進(jìn)行評論,就可以描繪出其畫像,并對其進(jìn)行推薦。
最后通過用戶的反饋來看好壞程度。我們主要關(guān)注點應(yīng)該是好的評論和壞的評論。
通過圖8可以看出,專家在各個方面的性能都表現(xiàn)突出。
但是由于冷啟動問題,他的平均仍很低,在這里可以回答前面的問題:冷啟動就是在用戶數(shù)據(jù)很少時,判斷結(jié)果準(zhǔn)確度不高
討論
主要是專家的篩選問題:如何篩選出專家
我們在社區(qū)用戶里,選出類似聲望度最高的用戶作為專家。這種方法關(guān)系到了信任度。什么是信任度?我們對這個所謂專家的專業(yè)程度的信任
那我們怎么定義這個信任度?這個方法有多種,比如測量這個專家預(yù)測以前評論的好壞。
討論再次強(qiáng)調(diào)了:專家組并不是為了提高正確率(在我來看已經(jīng)很出色了),而是來解決傳統(tǒng)的一些問題
稀疏矩陣:對于用戶預(yù)測,矩陣十分龐大由于大多用戶對大多電影沒有評論,所以矩陣十分稀疏。但是專家組數(shù)量少,人均電影評論多
所以這個問題在這得到了很好的解決。
噪音影響:很多用戶的胡亂評論對預(yù)測造成了噪音。對于專家組,他們對自己評論一貫認(rèn)真所以降低了這種可能,而且由于數(shù)據(jù)比較少
我們可以認(rèn)為的控制這些因素。
冷啟動:對于少量數(shù)據(jù),我們預(yù)測的準(zhǔn)確度不高,這是CF的整體的問題。專家組用一個少稀疏少噪音的數(shù)據(jù)集去提高啟動效率
擴(kuò)展性:我們會定時的去更新我們的數(shù)據(jù)集。如果用用戶預(yù)測,數(shù)據(jù)量顯得龐大(每個用戶都要對應(yīng)新加入的電影),而對于專家
就減少了很多數(shù)據(jù),提高了效率
私密性:每次為用戶推薦,對于大量數(shù)據(jù)都要先傳到中心節(jié)點進(jìn)行運算再返回。而對于專家組數(shù)據(jù)很少,本地就可以完成運算。