作者:Edwin Chen
編譯:ronghuaiyang
用CTR來評估推薦算法是一個非常常用的度量,但並非是最好的度量。
假設你正在為一個新在線網站構建一個推薦算法。你如何衡量它的質量,以確保它發送給用戶相關和個性化的內容?剛開始的時候,你希望點擊率可以進行衡量,但經過一番思考,它到底是不是最好的衡量標準還不清楚。
以谷歌的搜尋引擎為例 在很多情況下,提高搜索結果的質量會降低點擊率!例如,對於像 Barack Obama 什麼時候出生?用戶永遠不需要點擊,因為問題在頁面上就得到回答了。
以 Twitter 為例,有一天它可能會向你推薦有趣的 tweet 像點擊率這樣的指標,甚至是收藏和轉發的數量,可能會優化以顯示快速的笑話和有趣的貓的圖片。但是,像 reddit 這樣的網站是 Twitter 真正想要的嗎?對很多人來說,Twitter 最初是一個新聞網站,所以用戶可能更喜歡看到更深入、更有趣的內容的連結,即使他們不太可能點擊每一條推薦。
以 eBay 為例,它可以幫你找到你想買的產品 CTR 是個好方法嗎?也許不是:更多的點擊可能表明你很難找到你要找的東西。收入怎麼樣?這可能也不太理想:從用戶的角度來看,希望以儘可能低的價格進行購買,通過優化收益,eBay 可能會將你轉向更昂貴的產品,從長遠來看,這將使你成為非常用客戶。
等等。
因此,在許多網站上,還不清楚如何使用諸如點擊率、收入、停留時間等指標來衡量個性化和推薦的質量。工程師該做什麼?
那麼,考慮一下這樣一個事實:其中許多是「相關性」算法。谷歌希望向你顯示相關的搜索結果。Twitter 想向你展示相關的推文和廣告,Netflix 想向你推薦相關的電影。LinkedIn 希望找到相關的人關注你。那麼,為什麼我們不去衡量我們的模型的相關性呢?
所以為了解決這個問題,我要講一個人類的評估方法來度量個性化和發現產品的性能。我會使用 Amazon 上相關書籍推薦的例子來貫穿文章的剩餘部分。
(讓我們繼續討論為什麼基於日誌的度量常常是不完善的相關性和質量度量,因為這一點很重要,但是很難理解。)
所以,以亞馬遜的顧客為例,他們買了這個商品,也買了這個功能,它會向你展示相關的書籍。
要度量它的有效性,標準的方法是進行一個現場實驗,並度量收入或 CTR 等指標的變化。
但想像一下,我們突然把亞馬遜所有的圖書推薦都換成了色情內容。會發生什麼?
或者假設我們把亞馬遜所有的相關書籍都換成更炫、更貴的商品。同樣,隨著更炫的內容吸引眼球,點擊率和收入可能會增加。但這只是短期的刺激嗎?從長遠來看,這種變化可能會降低總銷售額,因為消費者開始發現亞馬遜的產品對他們的口味來說太貴了,於是他們轉向了其他市場。
像這樣的場景是機器學習的模擬,把廣告變成閃爍的幕布。雖然一開始它們可能會增加點擊量和瀏覽量,但它們可能不會為將來優化用戶的幸福度或網站的質量。那麼,我們如何才能避免這些問題,並確保我們的建議始終保持高質量呢?畢竟,這是一個與書籍相關的算法 —— 那麼,為什麼我們堅持使用實際的實驗和類似於 CTR 的指標,卻沒有檢查我們的推薦的相關性呢?
解決方案:讓我們將人員注入到流程中。計算機不能度量相關關係,但人當然可以。
例如,在下面的截圖中,我讓一名工作人員(在我自己建立的一個眾包平台上)給前三名購買了這款產品的顧客評分,這些顧客既買了這本書,還買了推薦的書。
從截圖中複製文本:
這些建議還不錯,但我們已經看到了一些改進的方法:
CTR 和 revenue 當然不會給我們提供這麼多的信息,也不清楚他們是否能告訴我們,我們的算法在一開始就產生了不相關的建議。並沒有地方明確指出其中兩本書是系列的一部分,因此這兩本書的 CTR 將與系列介紹一樣高。如果收入較低,就不清楚這是因為推薦不好,還是因為我們的定價算法需要改進。
所以一般來說,這裡有一個方法來理解一個算法的質量:
讓我們把這個過程具體化。假設我是負責亞馬遜客戶推薦購買產品的新副總裁,我想了解產品的缺陷和亮點。
我首先讓我的幾百名員工拿一本他們去年喜歡的書,然後在亞馬遜上找到它。然後他們會從不同的作者那裡得到前三個相關書籍的推薦,在接下來的表中對它們進行評分,並解釋他們的評分。
(註:我通常更喜歡 3 分或 5 分的表來度量)
例如,下面是一位評審人員對 Anne Rice 的The Wolves of Midwinter相關書籍的評論。
那麼亞馬遜的推薦有多好呢?事實上,相當不錯:47%的評分員說他們肯定會買第一本相關的書,另外 29%的評分員說他們可能會買,只有 24%的評分員不喜歡這個推薦。
第二和第三本書的推薦,雖然有點糟糕,但似乎也表現得很好:大約 65%的評分者對它們的評價是正面的。
我們能從糟糕的評級中學到什麼?我進行了一項後續任務,要求工作人員對相關的不好的推薦書籍進行分類。
因此,為了改善他們的推薦,亞馬遜可以嘗試改進其主題模型,在其圖書中添加基於年齡的特徵,區分教科書和小說,並投入資源做一個系列檢測器。(當然,據我所知,他們已經這麼做了。)
現在,我們已經大致了解了亞馬遜的相關書籍推薦,以及如何改進這些推薦,就像我們可以引用一個類似於 6.2%的點擊率之類的指標一樣,我們現在也可以引用一個「相關性得分」,為 0.62(或其他)。那麼,讓我們來看看亞馬遜與其他在線書店如 Barnes & Noble 和谷歌 Play 相比如何。
我採取了與上述相同的任務,但這次要求評分員也審查這兩個網站的相關推薦。
簡單來說
為什麼 Play Store 的推薦這麼差?讓我們看幾個例子。
這是 John Green 的The Fault in Our Stars的頁面,這是一本深受評論家喜愛的關於癌症和愛情的書(現在也是一部電影)。
其中兩個建議完全是隨機的:一個是評級很差的 Excel 手冊,另一個是評價很差的性健康教科書。其他的則是完全不相干的牛仔書,作者是另一位 John Green。
這是 The Strain的頁面。這裡,所有的推薦都是不同的語言的書!而且只有四個。
再一次要求評分員將 Play Store 所有不好的推薦進行分類……
因此,儘管谷歌在其他地方擁有最先進的機器學習技術,但它的 Play Store 推薦實在是糟透了。
讓我們後退一步。到目前為止,我一直專注於一種「絕對」的判斷範式,在這種範式中,法官在絕對範圍內評估一本書與原著的相關性。這個模型對於理解 Amazon 相關書籍算法的整體質量非常有用。
然而,在許多情況下,我們希望使用人類評價來「比較」實驗。例如,在很多公司里,這樣的事情很常見:
對於這類任務,更可取的往往是並排模式,即給評委兩個選項,然後問他們哪個更好。畢竟,比較判斷往往比絕對判斷容易得多,而且我們可能希望在比絕對尺度更精細的層次上發現差異。
我們的想法是,我們可以給每一個評級賦值(例如,如果評分者更喜歡控制項,則為負,如果評分者更喜歡實驗項,則為正),我們將這些數據匯總,形成並排的總分。然後,就像 CTR 的下降可能會阻礙實驗的啟動一樣,負的人工評估分數也應該引起人們的擔憂。
不幸的是,我沒有一個簡單的方法來生成並排的數據(儘管我可以在 Amazon 和 Barnes & Noble 上並排執行),所以我將省略一個例子,但是思想應該很清楚。
這是另一個微妙變化。在上面的例子中,我讓評分員自己挑選一本書(一本他們在過去一年中讀過並喜歡的書),然後評分,他們個人是否願意閱讀相關的推薦。
另一種方法是為評分者挑選書籍,然後更客觀地對相關推薦進行評分,方法是試著設身處地為那些對起始書籍感興趣的人著想。
哪種方法更好?正如你可能猜到的,沒有明確的答案——這取決於手頭的任務和目標。
第一種方法的優點:
第二種方法的優點:
讓我們回顧一下到目前為止所討論的內容。
有什麼好處和應用?
英文原文:http://blog.echen.me/2014/10/07/moving-beyond-ctr-better-recommendations-through-human-evaluation/