推薦系統分爲基於用戶和基於物品
舉個例子,用戶A喜歡給《上海堡壘》打高分,用戶B也喜歡給《上海堡壘》高分,我們可以看出A,B臭味相投,A喜歡的電影也可以推薦給B,這就是基於用戶的推薦系統。如果A喜歡電影《上海堡壘》,而《上海堡壘》和《富春山居圖》很類似,由此推斷,用戶A也可能喜歡《富春山居圖》這是基於物品的推薦系統。
基於用戶的協同過濾算法
這裏只介紹餘弦相似性算法:
下面給出一個例子:
上面分別是A與B和C的餘弦相似性,例如:上面的4*5是A,B都看過魔法石,分母是A,B的模。
A,B 的相似度低於A,C。根據我們的判斷,A,B的相似度是要大於A,C的。我們仔細看錶格,A喜歡的基本上C都不喜歡,而A喜歡的和B喜歡的評分差不多。綜上,這種算法是不合理的。
下面我們需要改進這種算法,引入了Pearson相似性算法
Pearson相似性算法
求的平均值,第一行10 表示 4+5+1,3表示看了3部電影(魔法石,火焰杯,鳳凰社)
每一行評分減去平均值得到上面那個表格,再對錶格來進行上面的餘弦相似度算法計算。
基於物品的協同過濾算法
用戶A喜歡物品A和C,用戶C也喜歡物品A和C。所以我們推測物品A和C有很大的相似度。所以當用戶B也喜歡物品A時,而用戶B不瞭解物品C時,我們自動的將物品C推薦給用戶B。
下面給出一個例子:
我們用pearson算法計算下面五部電影和哈利波特的相似度,得到右邊那個表格,哈利波特和自身是1。
用下面的公式來計算評分:
這裏之所以選擇阿甘和星際是因爲這兩部電影相似度和哈利波特是最高的。