為甚麼只有準確率是不夠的?

推薦系統(recommendation system; recommender)的好壞、優劣,究竟該用什麼標準來評估,與評估者的身份有關,從經營者的角度來看,有兩個問題是企業最關心的,一是消費者究竟是否「喜歡」推薦服務?其次是推薦系統究竟能為企業「增加」多少營收?

如果想知道消費者對於推薦系統評價最好(?)的方法當然是直接詢問使用者(user evaluation)。通常,提供推薦商品機制的購物網站會透過正規的問卷調查或在推薦商品的網頁上下功夫,希望消費者表達對推薦品項的意見,下圖就是網路書店 Amazon 在每個推薦項目下詢問消費者對於推薦商品意見的例子。
Amazon.com 詢問消費者對於推薦商品的意見
直接與消費者溝通的想法雖然好,但這樣的想法未必能落實,因為消費者填寫問卷的意願普遍不高,縱然是像上圖顯示的那種舉手之勞,消費者點選的意願也未必夠高,更別說一份正式、完整,有時甚至會有點冗長的問卷了。換言之,我們能藉著這個方式收集的資料的質和量,很難預料和保證。

因此我們需要設計開發一套(因為使用的量尺未必只有一種)僅根據消費紀錄與會員資料,就能評估推薦系統表現的評估方式與量尺,這是不得已但卻絕對必要的。

推薦系統的準確度(accuracy),自然是我們心頭浮現的第一個想法。在一月底,我整理了學界曾經使用過的準確度指標,這些指標的道理都不難理解,計算方式也不複雜。但是,經過實證與分析,我們發現準確度並不是頂有用的量度標準。

在學術界,對於準確度的不足已經漸漸形成共識([1],[2]),在產業界與Blogosphere 都很活躍的 Greg Linden 也曾經為文指出 Predictive Accuracy is not Enough,他引述在 Sub Lab 工作的 Paul Lamere 的意見,好的推薦系統要經得起 familiarity、novelty、relevance 三個角度的檢驗:
  • familiarity - to help us gain trust in the recommender
  • novelty - without new music, the recommendation is pointless
  • relevance - the recommended music has to match my taste

簡單的說,推薦系統的推薦項目不僅能正確反應出消費者的嗜好、口味,也要能找出消費費者本來可能會忽略或沒有足夠時間去找的商品項目,這樣才是一個好的推薦系統。

準確率指標可以充說明推薦項目與消費者的喜好相似的程度,但是沒辦法正確反映出推薦項目是不是在消費者原本的購物清單裡,換個角度來看,準確率不能說明推薦項目是不是促進了長尾(long tail)的實現(我曾經討論過推薦系統與長尾的關係,有興趣的人請參閱前作)。

我們用實際的例子,能更清楚的看出準確率指標無法反應推薦系統對消費者是否有幫助的缺陷。

首先我們來看一個武俠小說的例子,在今日中生代的成長過程裡,金庸的武俠小說絕對扮演著一個重要的角色,就是在整個華文世界,他的小說也有相當的份量。假設某個網路書店的推薦系統從購物資料中判斷某位消費者是金庸小說迷(用比較現代的話要說粉絲嗎?),所以推薦系統向這位消費者推薦「天龍八部」、「鹿鼎記」,這位消費者也如推薦系統先前判斷的揭露了他很喜歡這兩部小說的訊息。

從準確率的角度來看,這個推薦的準確度的確很高,但是這個推薦是否「有用」呢?既然消費者如系統判斷的確是個不折不扣的金庸小說迷,他很可能已經擁有這兩套小說;第二種情況是雖然他沒有這兩套小說,無論系統推薦與否,他本來就已經決定要買這兩套小說;第三種情況才是他受了推薦系統的影響,從而決定要購買「天龍八部」;第四種情況雖然發生機會較小,但是不見得不會發生,就是他完全不考慮系統所推薦任何的商品。

從以上的分析看來,準確率無法充分反應「命中率」與「購物意願」間的關聯,在很多情況下,準確的猜測,完全沒有增加消費者的消費意願。換句話說,這樣的推薦是否能稱之為「有效」,大有商榷餘地。

我們再來看第二個例子。假設有個網路書店的推薦系統的推理規則很簡單,推薦商品清單就是銷售量排行榜前五十強,推薦清單既然反應了大眾(集合起來的)口味,從機率的角度來看,消費者認同推薦名單的機會比較大,所以「準確率」指標應該會維持在某個相對較高的水準。

但從經營者的角度來看,這樣的推薦系統對企業的營收是否有助,是個極大的問號。首先,銷售排行榜是相當基本的資訊,也是很傳統的行銷手段,如果推薦系統所能做的與行銷人員用資料庫和試算表做出來的結果是相同的,這種「準確率」的成本也未免太高。再者,在推薦清單只有排行榜前五十或一百強的情況下,只有少數商品的資訊能呈現在消費者面前,在消費者口味日益分眾化的今日,消費者必須自己動手搜尋他感興趣商品的資訊,這種情況對於銷售是不利的。簡單的說,這和長尾理論所描述的情況,恰恰是相反的。

上面這兩個例子,可以很清楚的解釋準確率這個指標的不足之處。從經營者的角度來看,建設推薦系統的目的是促使消費者(多)掏錢購買商品,準確度(accuracy)無法說明(解釋)、預估推薦系統的經營效益(多賺了多少錢),所以是個不充分、不夠好的評估指標。

事實上,我們必須承認目前還沒有夠好的方法,量測或驗證有推薦系統的情況,比沒有推薦系統的情況,能多賺多少錢。但是準確度指標的不足,在學界或業界都應是已知的共識了。

為了彌補準確量尺的不足,我們必須設計其他的量度方式,取代準確度量尺或是與準確度搭配運作,以取得更有用的推薦系統評估結果。

覆蓋率(coverage)和 Novelty/Serendipity 是各種嘗試中,比較容易理解,也比較有用的指標,接下來,我想談談這兩個指標的概念和相關的議題。

參考資料:

[1] J. L. Herlocker, J. A. Konstan, L. G. Terveen, and J. T. Riedl, "Evaluating collaborative filtering recommender systems," ACM Trans. Inf. Syst., vol. 22, no. 1, pp. 5-53, January 2004. [Online]. Available: http://portal.acm.org/citation.cfm?id=963772

[2] S. M. Mcnee, J. Riedl, and J. A. Konstan, "Being accurate is not enough: how accuracy metrics have hurt recommender systems," in CHI '06: CHI '06 extended abstracts on Human factors in computing systems. New York, NY, USA: ACM, 2006, pp. 1097-1101. [Online]. Available: http://portal.acm.org/citation.cfm?id=1125659

Comments

Popular posts from this blog

如何評估推薦系統(一)

備忘:在 Mac OS 環境安裝 Python 開發工具

[詩戀] 鄭愁予/定