推薦系統的工作原理:"猜你喜歡”是怎么猜中你心思的?(2)

發表于:2012-12-13來源:果殼作者:ccyou點擊數: 標簽:推薦
降維算法:把事物特征一般化 不過,用戶關聯算法和物-物關聯算法還存在一個比一致性更大的問題:它們太死了。就是說,它們能發現都喜歡同一樣東西

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

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

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

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

  然而,使用這個矩陣的推薦算法并不關心你給哪種食物評了多少顆星。它想要了解的是你一般而言的喜好,這樣它可以將這個信息應用到更豐富多樣的食物上。比如說,基于你上面給出的信息,算法可能會認為你喜歡牛肉、咸的東西和烤制菜品,不喜歡雞肉和任何油炸的東西,不喜歡也不討厭蔬菜,依此類推。你愛吃的食物所擁有的特點或者說維度,它的數量和符合你要求的食物的數量比起來要小得多——至多可能 50 或 100。通過查對這些維度,推薦算法可以迅速決定你是否會喜歡一種新的食物(比方說鹽焗排骨),方法就是把這種食物的各項維度(咸的、牛肉做的、不是雞肉、不是炒的、不是蔬菜、不是烤的)同你的資料進行比對。這種更為一般性的呈現使得推薦算法能準確的發現有著相似但不同喜好的用戶。而且,它大幅壓縮了矩陣的規模,使算法變得更加高效。

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

  不像上面例子中說的那樣,計算用的維度既不是描述性的,也一點兒都不直觀;它們是純抽象的值。這并沒有什么,只要這些值最終生成準確的推薦結果就行了。這種方法的主要缺點是,創建矩陣所需要的時間會隨著客戶和產品數量的增多而飛速增長——創建一個擁有 2.5 億名客戶和 1000 萬種產品的矩陣,需要花上創建一個 25 萬名客戶和 1 萬種產品的矩陣 10 億倍那么多的時間。而且這一過程還需要經常重復。一旦收到新的評分,矩陣就已經過時;在像亞馬遜這樣的公司,每一秒鐘都會收到新的評論。幸運的是,就算略微過時,矩陣仍然能以一個挺不錯的水平運作。研究人員們也已經在設計新的算法,為奇異值分解提供可用的近似值并顯著縮短計算時間。

  Joseph A. Konstan 和 John Riedl 都是美國明尼蘇達大學的計算機科學教授。身為 IEEE 高級會員的 Konstan 和 IEEE 會士的 Riedl 參與創建了 MovieLens 推薦系統。在接下來的文章里面,兩位作者將繼續介紹, 推薦算法絕對不會向你推薦的是什么 。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97