共計 923 個字符,預計需要花費 3 分鐘才能閱讀完成。
基于 itemBase 的協(xié)同過濾是怎么樣的,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
一、什么是協(xié)同過濾
舉個簡單的例子,我們網(wǎng)購的時候當我們購買了一件物品 A, 網(wǎng)站基本上都會做這樣一個提示,購買該物品的人還購買了。。然后是一個推薦清單,這就是典型的協(xié)同過濾,這具體是怎樣實現(xiàn)的呢?下面是我自己實現(xiàn)一個協(xié)同過濾的案例。
二、算法原理
基于 item 的協(xié)同過濾,通過用戶對不同 item 的評分來評測 item 之間的相似性,基于 item 之間的相似性做出推薦。簡單來講就是:給用戶推薦和他之前喜歡的物品相似的物品。
對購買了物品 A 的用戶 C 做推薦時:對于物品 A 和物品 B 在用戶 B 同現(xiàn)共 1 次,對于物品 A 和物品 C 在用戶 A、B 同現(xiàn)共 2 次,所以物品 A 和 C 的相似度 2 大于物品 A 和 B 的相似度 1,所以將物品 C 推薦給用戶 C。
那么,問題來了如果用戶 C 表現(xiàn)出對物品 B 的喜好程度程度大于對物品 C 的喜好程度,那么我們再用戶 C 做推薦時是推薦物品 B 還是推薦物品 C 呢?
三、矩陣模型
為了解決上述問題,引入了用戶評分矩矩陣。(上圖)左側(cè)是物品的同現(xiàn)矩陣,中間是用戶對物品的評分矩陣,這樣一來物品之間的相似度和用戶對物品的喜好程度兩個維度就都有了,兩個矩陣相乘得到物品的推薦矩陣。物品之間的相似度越高左側(cè)對應的值就越大;用戶對物品的的喜好度越大則用戶評分矩陣中對應的值也就越大;最終二者乘積就越大,這樣在推薦矩陣中分值越高的推薦度也就越大。
四、實現(xiàn)步驟
建立物品的同現(xiàn)矩陣
建立用戶對物品的評分矩陣
計算得出推薦結(jié)果矩陣
推薦結(jié)果矩陣 = 物品的同現(xiàn)矩陣 * 用戶對物品的評分矩陣
過濾與排序
五、mapreduce 的 job 流程及進出數(shù)據(jù)格式
第二個 job:計算物品同現(xiàn)次數(shù),得到物品的同現(xiàn)矩陣
第三個 job:用戶的評分矩陣(根據(jù)用戶點擊、收藏、購買等行為得到用戶對物品的打分情況,具體分值根據(jù)具體情況自定義)
第四個 job:矩陣相乘得到推薦矩陣
第五個 job:過濾(過濾掉已經(jīng)購買過的 item)與排序(降序)
看完上述內(nèi)容,你們掌握基于 itemBase 的協(xié)同過濾是怎么樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!