「猜你喜歡」是怎麼猜中你心思的?

2022-04-15 11:59:03 字數 2040 閱讀 8597

這些年來,推薦系統有了相當的進展。開始時它們還相對較為粗糙,往往對行為做出不準確的**;但隨著更多的和不同型別的**使用者資料變得可用,推薦系統得以將創新演算法應用於這些資料之上,它們迅速得到了改善。今天,推薦系統都是些極其複雜和精專的系統,常常看起來比你自己還要了解你。同時,推薦系統正在向零售**以外的領域拓展:大學用它們來引導學生選課,移動**公司靠它們來**哪些使用者有可能轉投另一家**商,會議主辦方也測試過用它們來分配**給審稿專家。

下面就是我們所看到的。

推薦演算法是怎麼「猜你喜歡」的?

你有沒有想過自己在亞馬遜眼中是什麼樣子?答案是:你是乙個很大、很大的**裡一串很長的數字。這串數字描述了你所看過的每一樣東西,你點選的每乙個鏈結以及你在亞馬遜**上買的每一件商品;**裡的其餘部分則代表了其他數百萬到亞馬遜購物的人。你每次登陸**,你的數字就會發生改變;在此期間,你在**上每動一下,這個數字就會跟著改變。這個資訊又會反過來影響你在訪問的每個頁面上會看到什麼,還有你會從亞馬遜公司收到什麼郵件和優惠資訊。

user-user 演算法:計算使用者之間的相似度

grouplens 和 ringo 都使用了一種簡單的協同演算法,被稱為 「使用者關聯」(user-user)的演算法。這種型別的演算法會計算一對使用者之間的 「距離」,根據的是他們對同一物品打分的相似程度。舉例來說,如果吉姆和簡都給《電子世界爭霸戰》(tron)這部電影打了 5 分,那麼他們之間的距離就是 0。如果吉姆給它的續集《創:戰紀》(tron: legacy )這部電影打了 5 分,而簡只打了 3 分,那麼他們之間的距離就變大了。按照這樣的計算得出來品味相對 「靠近」 的使用者,我們把他們稱之為共有乙個 「鄰集」(neighborhood)。

item-item 演算法:計算物品之間的關聯使用者關聯演算法和物-物關聯演算法都有的乙個問題,是使用者評分的不一致性。當給他們機會再評一次分時,使用者往往會對同一件物品給出不同的得分。品味在變、心情在變,印象也在變。mit 在上世紀 90 年代進行的一項研究表明,在最初打分一年以後,使用者的評分會發生平均 1 分(滿分 7 分)的變動。研究人員們也在一直在嘗試不同的方法在模型中納入這一變數;比如說,如果使用者給某個商品了打乙個分,但這個評分與推薦演算法所了解的關於這個人和這個商品的所有其他資訊不相符,有的推薦演算法就會邀請使用者再次對這個商品進行評價。

降維演算法:把事物特徵一般化

不過,使用者關聯演算法和物-物關聯演算法還存在乙個比一致性更大的問題:它們太死了。就是說,它們能發現都喜歡同一樣東西的人,但卻忽略了愛好非常相似的潛在使用者組合。比如說你喜歡莫奈的睡蓮。那麼,在這個法國印象派大師畫的 250 幅睡蓮中,你最喜歡哪一幅?在一群喜歡莫奈的人當中,完全可能每個人喜歡的睡蓮都不相同,而基本的演算法就有可能識別不出這些人都有著共同的愛好。

大約十年前,研究者們想出了乙個辦法,通過乙個叫降維(dimensionality reduction)的過程,把事物更一般化的表現出來。這種方法在計算量上比使用者關聯和物-物關聯演算法要密集得多,因此也就沒有那麼快的得到採用。但隨著計算機變更快更便宜,降維演算法也逐步取得了一些進展。

為了弄清降維演算法是怎麼工作的,我們來看看你愛吃的東西,以及如何把它跟其他一百萬人愛吃的東西做比較。你可以把這些資訊用乙個巨型矩陣表示出來,每一條豎線代表一樣食物,每個人愛吃什麼東西就自然形成了一行。在你的這一行上面或許會顯示你給了烤牛排 5 顆星、紅燒小排 4 星半、烤雞翅 2 顆星、凍豆腐卷 1 顆星、乳酪烤蘑菇 5 顆星、鹽水毛豆 4 顆星,等等。

這是乙個很酷的解決方案。不過,你愛吃的食物的維度該上哪兒去找呢?肯定不是去問廚師。推薦系統會使用一種稱為奇異值分解的數學方法來計算維度。這種方法涉及到把最初的乙個巨型矩陣分解為兩個 「口味矩陣」——其中乙個包含了所有的使用者和 100 項口味維度,另乙個則包含了所有的食物和 100 項口味維度——再加上第三個矩陣,當乘以前面兩個矩陣中的任意乙個時,會得到最初的那個矩陣(※此處已更改)。

joseph a. konstan 和 john riedl 都是美國明尼蘇達大學的電腦科學教授。身為 ieee 高階會員的 konstan 和 ieee 會士的 riedl 參與建立了 movielens 推薦系統。在接下來的文章裡面,兩位作者將繼續介紹,

推薦演算法絕對不會向你推薦的是什麼 。

RN 中製作猜你喜歡

步驟一 產生一定數量的不重複的隨機數 licked data return arr panduan data,arr return true 步驟二 把產生的隨機數作為index,下標判斷遍歷陣列 scrollview horizontal showshorizontalscrollindicato...

喜歡你,也喜歡你的雀斑

每每看書 加班到深夜,感到疲倦甚至煩躁的時候,就習慣看老婆 她好友的qq空間和blog,放鬆一下。呵呵,大多時候都有些不屑的感覺,怎麼女人天天都是情啊 愛啊 感覺啊,用我的話說就是太多文人的酸腐氣,還有林黛玉的多愁善感,或傷落葉之痛,或悲小貓之死,有時甚至覺得無聊透頂。我常對老婆開玩笑說 這些人都是...

我喜歡你是寂靜的

i like for you to be still,it is as though you were absent 我喜歡你是寂靜的 彷彿你已不在 and you hear me from far away and my voice does not touch you 你在遠處ling聆聽 而我...