【BigData】Netflix如何猜到你喜歡看什麼電影?

撰文:吳俊熙
出版:更新:

奇妙電視將開台,現在還有多少香港人看電視?自大學時期,筆者已經是Netflix的用戶。那時的Netflix,不像現在一樣,提供網路影片串流服務。那時仍然是租DVD的年代,選好想看的電影,DVD會連一個回郵信封寄到家中,看畢後寄回。
每次選電影時,Netflix會推敲觀眾喜歡的電影,就如 Spotify 會估計聽眾想聽甚麼歌,ASOS會提供衣服配件作參考,Amazon會猜讀者想看甚麼書一樣,所以才有「購買這本書的讀者,亦會購買那一本書」,務求促成下一次交易。

大學時期,筆者已經是Netflix的用戶。那時的Netflix,不像現在一樣。(資料圖片)

全個地球每分每秒均有人在為電影評分,Netflix的自家程式Cinematch把這大量的數據收集,組成一個很大的矩陣(matrix),這個矩陣不斷在變,而且內存的數據不斷增加,Cinematch務求幫觀眾找出「喜歡這齣電影的人,亦覺得那套好看」。這種在大量數據中找關聯的方式,稱為data mining,常見於數學、統計或電腦的大學課程。Netflix其中一個創辦人Reed Hastings本科時主修數學,曾當數學教師,所以data mining於他而言,不會陌生。

評分系統誤差嚴重

過去,Netflix以五星評分,這種評分是很個人化的,即重點是系統推測你會認為某電影所值的評分,而非電影所值的真正評分,所以科幻電影愛好者看到「星球大戰」的評分,與非愛好者看到的會不一樣。Netflix程式Cinematch與Amazon一樣,使用data mining中常見的一個技巧,稱為k-nearest-neighbor algorithm (中譯「最近鄰居法」,簡稱k-NN)。2006年,Cinematch的誤算為0.9525(其實是root mean square error,RMSE),很接近1,即以5星為滿分,如果Cinematch推測你會認為Guardians of the Galaxy Vol. 2值4星,那事實上可能是3星或5星。

百萬美元比賽減誤差

因為誤差大,所以他們推出一個一百萬美元的比賽,以減低這個誤差。要取得百萬美元,需要把誤算降至0.8563。參賽者來自世界各地,當中有大學的教授與學生。2009年,由包括AT&T Labs科學家的隊伍BellKor's Pragmatic Chaos以0.8567勝出,這些科學家最先亦是從k-NN出發,致勝一招為Singular value decomposition (SVD),SVD不是他們發明的,在大學一年級修線性代數(linear algebra)基本上必讀,而且應用甚廣。只是大部分人均以為課本——特別是數學課本的內容,與世事無關。他們的致勝秘笈可見這連結 。類似Netflix的比賽經常出現,NASA早前推出了一個15,000美元的比賽,目的亦是加快他們的FUN3D軟件。

Netflix最近把這系統改為「按讚」即俾like功能。(資料圖片)

五星改按讚功能

縱然Netflix曾經以「超過一半的用戶曾為最少五十齣電影評分」為宣傳,許多人誤以為自己看到的星星評分是一個大家投票後,電影所值分數的平均數,故此不願投票。其實用戶評分可以幫忙系統更了解他的喜好,讓以後的推算更加準確。故此Netflix最近把這系統改為「按讚」即俾like功能,Netflix會依據用戶過去的瀏覽及搜尋歷史、觀看片種,以及與用戶選擇喜好相似的觀眾來提供一個百分比,就如交友網推算合襯度一樣。這項改變讓願意評分的人多了兩倍,然而,目前許多人仍未習慣新的評分系統,抱怨聲音不絕,看來,Netflix要加把勁收集大眾喜好的資訊。

識玩一定玩Data

談電腦講程式,許多人會以為只是coding。事實上,Coding是把數學邏輯以電腦明白的方式寫出來,方法要快推算要準仍是以數學技巧取勝。這世代識玩data,從大量數據中找關聯,可能已經是必要技能,而data scientist 亦為市場渴求的人才,基本上所有科技公司均會羅致大量data scientists,LinkedIn 或Facebook的data scientists年薪最少為百萬港元。上述提及的數學如SVD,必須先讀矩陣(Matrix)。DSE中的矩陣範圍不多,若大學數學並非熱門學科,香港學生未有機會修讀高等數學。港大剛取消的天文,其實亦會教授數據分析,試想想,望遠鏡接收外太空來的大量訊息,要從中找出關聯,就離不開數學。NASA及SETI(尋找外太空文明)亦會借用民間電腦,分析數據。大學短視,未來實在很難培訓人才發展高科技。

(文章純屬作者意見,不代表香港01立場。)