五星好評出賣你的心!看 Netflix 如何用統計學相關性,精準預測品味 | | 開根好 SquareGood
  • 搜尋
  • 關於

五星好評出賣你的心!看 Netflix 如何用統計學相關性,精準預測品味

五星好評出賣你的心!看 Netflix 如何用統計學相關性,精準預測品味

圖片來源:Gemini
Netflix 推薦系統為何總能打中你的心?背後功臣其實是深奧的統計學演算法。透過分析用戶評分紀錄,系統能計算數據間的相關係數,從海量的電影作品中,精準媒合你的觀影喜好。

Netflix 推播我會喜歡《布托》(Bhutto)這部片子:這是一部紀錄片,會切入「深入而且有時很煽動的觀點,檢視前巴基斯坦總理班娜姬.布托(Benazir Bhutto)的人生及她悲劇性的死亡。」我確實把這部片加入我的播放清單,事實上, Netflix 推薦給我的電影向來很棒,就我已經看過的推薦影片來說,通常都是我真的很喜歡的片子。

Netflix 怎麼辦到的?

他們的企業總部是不是有大量的實習生,使用 Google 搜尋並訪談我的家人朋友,綜合起來判定我可能會喜歡一部講巴基斯坦前總理的紀錄片?當然不是。Netflix 只是非常精通某些巧妙的統計。

Netflix 不認識我,但是知道我過去喜歡哪些影片,因為我有留下評分,只要利用這項資訊,再加上其他顧客的評分與一部強力的電腦,Netflix 就可以非常精準地預測我的影片品味。以上的重點就是,這一切都是以相關性為憑據。

▌衡量兩種現象彼此的相關程度

Netflix 會推薦的影片,是和我喜歡的其他影片很類似的影片,以及評分模式跟我相似的其他顧客評為高分的影片。平台推薦《布托》,是因為我給了另外兩部紀錄片五顆星:《安隆風暴》(Enron: The Smartest Guys in the Room)和《戰爭迷霧》(Fog of War)。

相關性(correlation)衡量兩種現象彼此的相關程度。舉例來說,夏天的氣溫和冰淇淋銷量之間有相關性,一個上升,另外一個也跟著起來。如果一個變數的變動和另一個變數的變動同方向,這兩個變數叫正相關(positively correlated),比方說身高和體重之間的關係。高的人比較重(平均而言),矮的人比較輕。如果一個變數的正向變動和另一個變數的負向變動相關,這兩個變數就是負相關(negatively correlated),比方說運動和體重之間的關係。

這種關係的微妙之處是,不是每一個觀察點都可以套進關係裡。

有些矮的人比高的人更重。有時候,不運動的人比一直運動的人更苗條。然而,體重和身高、運動和體重之間仍有著有意義的關係。

如果我們把一群隨機抽樣的美國成人身高體重畫出點狀散布圖,可以預期會看到如下圖所示。

如果我們要畫出「運動」(以每星期激烈運動的分鐘數衡量)和「體重關係」的點狀散布圖,可以預期會看到負相關,多運動的人多半體重比較輕。然而,用包含了分散在整個頁面上的散布點的模式來看,實在是不太好用的工具,如果 Netflix 試著畫出千百萬顧客給幾千部影片的評分分布狀況來為我推薦電影,這些點狀圖會多到把他們的企業總部都埋藏起來,很難從中挖出結論。反之,我們可以把相關性當成一種統計工具,其威力就在於我們可以把兩個變數之間的關係濃縮為單一的描述性統計量:相關係數(correlation coefficient)。

▌相關係數的兩大吸引力

相關係數有兩個極具吸引力的特色。第一,這是一個範圍從 -1 到 1 的數字。如果相關係數為 1,通常說成是完全正相關(perfect correlation),代表一個變數的任何變動會導致另一個變數發生「同向且相等」的變動。相關係數為 -1 ,或者說是完全負相關,代表一個變數的任何變動都會導致另一個變數發生「反向但相等」的變動。

愈接近 1 或 -1 ,兩者的關係愈強烈。相關性為 0(或接近 0),代表變數之間並無太多有意義的關係,比方說鞋子的尺碼和升學考試分數的相關性。

相關係數第二個迷人的特質,是沒有單位的問題。就算身高是用英寸為單位、體重是以磅為單位,我們還是可以計算身高和體重的相關性。相關係數所做的事幾乎可以用神奇稱之:這個統計量把一群用不同單位衡量的大量數據(比方說我們的身高體重點狀圖)合併成一個單一、簡練的描述性統計。

▌怎麼辦到的?

你能運用微軟的 Excel 計算兩個變數的相關性。同樣的,背後的直覺不難懂。計算相關係數的公式做了以下幾件事:

  1. 計算兩個變數的均數和標準差。如果我們盯著身高體重的範例,就可以算出樣本人群的平均身高、樣本人群的體重以及身高體重的標準差。

  2. 轉換所有數據,每一個觀察點都用和均數之間的距離(標準差)來表示。假設樣本的平均身高是 66 英寸(標準差為 5 英寸),平均體重是 177 磅(標準差是 10 磅),現在,假設你身高是 72 英寸,體重是 168 磅。我們也可以說你的身高比平均數高了 1.2 個標準差 ([72-66]/5),體重比平均數低了 0.9 個標準差,為了要套進公式裡,我們可以說是 - 0.9 個標準差([72-66]/5)。沒錯,身高高於平均但體重低於平均的人不常見,但請注意,你的身高體重之前是用英寸和磅來計算,現在已經變成了 1.2-0.9,這就是讓單位消失的辦法。

  3. 軟體裡的方程式會計算樣本裡所有人的身高與體重之間的關係,以標準單位衡量。假設樣本裡的有些人都很高,比方說比均數高了 1.52 個標準差,若以和體重平均數之間的標準差來衡量,他們的體重通常是多少?有些人的身高很接近平均數,以標準單位衡量的話,他們的體重又是多少?

如果一個變數與均數之間的距離,和另一個變數與其均數的距離大致維持一致關係,例如,無論是高於還是低於均數,身高與均數差距多少,他們的體重多半和均數之差也大致相當,而且方向相同,如此就可預期會看到很明顯的正相關。

如果一個變數和均數之間的距離對應另一個變數與其均數的距離多半相似,但方向相反,例如,一個人的運動時間比均數高愈多,他們的體重多半也比均數低很多,如此就可預期會看到很明顯的負相關。如果兩個變數和均數的差距並沒有顯現出任何有意義的模式,例如鞋子的尺碼和運動時間,如此就可預期會看到少有或幾乎沒有相關性。

有了以上觀念,我們回頭來看 Netflix 推薦電影的事件上。

我在幾天前開始寫這一章,之後剛好有機會看《布托》這部紀錄片。哇!這真是一部講述一個了不起家庭的了不起電影。這部原創影片從 1947 年印度和巴基斯坦分裂開始講起,一直講到 2007 年班娜姬.布托遇刺,精彩非凡。以演講和訪談呈現的布托的聲音,巧妙地貫穿全片。反正,我給了這部影片五顆星,Netflix 大概也預期到了。

▌你的五顆星出賣你的心

從最根本的層次來說,Netflix 是極盡能事利用相關性的概念。

一開始,我給了一些電影評分。Netflix 拿我的評分和其他顧客比較,看看哪些人的評分和我的很有相關性,這些顧客很可能也喜歡我喜歡的電影。比對出來之後,Netflix 可以把我還沒看過、但其他和我興趣相同的顧客評分高的電影推薦給我。

這是背後的「大局」,實際上的方法複雜多了。事實上,2006 年時 Netflix 舉辦一場比賽,邀請大眾設計出至少能將 Netflix 現有推薦結果強化10%的機制,也就是說,系統在預測一位顧客觀影之後會給電影多高的評等時,準確程度可以提高 10%。優勝者會贏得 100 萬美元獎金。

每一個報名參加比賽的個人或團隊都會拿到「訓練數據」,裡面有 48 萬個 Netflix 顧客對 18,000 部影片所做的 1 億次評分。另外還有一套 280 萬次的評等紀錄「被鎖住」,意即 Netflix 知道顧客對這些電影的評分,但參加比賽的人不知道。

評判參賽者的標準,是用他們的演算法預測這些被鎖住影片的顧客評分時有多準確。3 年來,有來自 180 國、數千個隊伍提出比賽計畫。要參加比賽要符合兩個標準,第一,優勝者必須將演算法授權給 Netflix;第二,優勝者必須「向全世界說明你是如何做到的,這套系統又是如何運作的。」

2009Netflix 宣布優勝名單:是一個由來自美國、奧地利、加拿大和以色列的統計學家和電腦科學家組成的 7 人團隊。Netflix 這套推薦的品質讓我大為嘆服。同樣的,這套系統雖然超級炫,但也還是根據自電影問世以來人們都在做的事稍做變化:找到品味類似的人,請對方推薦。

你多半喜歡我喜歡的,不喜歡我不喜歡的。

那麼,你對喬治.克隆尼(George Clooney)的影片有何看法?

這就是相關性的本質。


本文摘自 今周刊出版《把統計學剝光光》 查爾斯.惠倫 著

►購買連結:五車商城博客來

►延伸閱讀:你先自律、才有自由 — NETFLIX 的零規則管理法
►延伸閱讀:訂閱經濟:悄悄佔據你我生活的消費模式