記一次推薦系統對話

兩個禮拜前,網友從谷歌找到接近十年前關於推薦系統評估指標的舊文,跟網友在臉書上聊了幾句,有點意猶未盡;又有點想稍稍彌補當初系列文章泡湯的遺憾,所以又續貂一篇《如何評估推薦系統(二)》。 續貂之後,正在 hands-on 的網友說了幾句他的心得,於是我又多嘴了幾句。所以索性再多寫幾句,為這次對話做個小結。 推薦系統早就遠離 MovieLens 那個時代,基本的框架和演算法,都相對成熟許多。而且因為確實有不少提高業務收入和客戶黏性的具體實例,產學互相刺激促進,已經發展成一個生氣蓬勃又接地氣的領域。 依不才愚見,推薦系統的實務,固然還有許多必須再深究、細究的題目。但是學界角度的研究,則到了一個需要重新盤整的時候了。 不只一位從學界跑到業界的推薦系統大老,說過不要擔心用什麼演算法,先建一個系統起來(Build it and they will come. 的推薦系統版本 ?),有了數據,再慢慢調整演算法和優化實做細節。 有些指標確實對發表論文有顯著意義,但是在真實世界這一個演算法和那個演算法其實沒有什麼差別。真正的現實是,目前比較好的推薦系統實蹟的例子,都有一句隱臺詞沒有說出來,系統背後有一個強大的運營團隊在搞東搞西(說的粗俗一點啦)。 演算法如果循著以前的思路走下去,當然還有許多東西可以深挖,去年 Xavier Amatriaia 在 ACM RecSys 2016 的演講中特別提到隱式回饋(implicit feedback)的問題,設計演算法時用那些數據,不用那些數據,數據怎麼解讀,還有很多地方需要去探索。 從文獻上來看,像 usefulness 、confidence 、serendipity 這些指標的思考角度,其實早在 2004 之前就有學者已經踏出一步了,但是實務界那時還沒顧及到這個層次。 但以目前線上使用的演算法的思路,要顧及再評估系列前文 中談到的 relevance 和 serendipity,恐怕很難。過去的演算法,說穿了本質上,都是 numerical-based reasoning 的思路,促進銷路不能說沒有用,但是在 familiarity、relevance & serendipity 上這些已經觸及人類消費心理疆域的思考上,有對牛彈琴的問題。 ResysChina 的核心團隊中,有人在微信上聊到用 AI 技術,讓推薦系統往前跨一步,從滯後一步的解讀你以前是怎樣的一個人,真正往前跨到預測 你可能變成怎樣的人。竊以為這個想法值得再深鑽下去。 借用 ResysChina 發起人谷文棟兄的說法,做為一個「曾經」的推薦系統選手,心裡確實有許多遺憾,但是實在有許多課要補,才能真正面對推薦系統的詩和遠方這個問題。 至於怎麼補課,天知道咯….

如何評估推薦系統(二)

最近有網友看了舊文《如何評估推薦系統(一) 》,詢問這文章是否有續集。依印象所及,續集是有的,只是打散了,分成幾篇短文。想想又覺得似乎少了什麼東西,於是翻了以前 Google+ 的私人訊息,實驗室的學弟五年前就問過我第二篇怎麼不見了,我在 blogger 後台找了又找,無奈發現真的不見了,究竟是我半夜夢遊把文章殺了,還是系統資料庫的異常,已經不可考。 之所以確定真的有第二篇,是因為在私訊中,我們討論了第二篇中我談到某個罕見指標 confidence 的參考文獻,因為找不到第二篇筆記原稿,只好找了 2004 最早談 confidence 原始概念的文章,讓學弟自己循線鑽下去。 不管怎麼呼天搶地,沒有存檔讓整件事情完全無解,只好摸摸鼻子認了。時間久了,我自已也忘了這件公案,若不是網友詢問,我自己都忘了這件事。 後來我寫了幾篇短文,談常見數字指標之外,商業意義更濃的幾個指標,只是沒有再用數字二、三、四為文章編號下去。 這篇自白,就權當評估系列的第二篇吧。 我承認,確實有些數字指標的定義還沒寫進如何評估系列,比如機器學習領域著名部落格 FastML 的文章 Evaluating recommender systems 介紹的 NDCG 和 MAP 。有些已經談過的指標,其實還有未盡之意,比如 ResysChina 知乎專欄,有篇文章《多高的 AUC 才算高》就把 ROC/AUC 的統計意義和陷阱說的透徹許多。既然已經有更好的資訊源,我就不做沒必要的複製貼上了。 在第一篇文章最後,我說接下來要討論的是推薦系統的 usefulness ,但關於推薦系統效用的討論後來分成幾篇短文,沒有彙整成一篇比較全面的長文。 所謂「有沒有用」這檔事,很難量化,至少都目前為止,我們沒有精準度量用戶情緒和感覺的辦法。如何解讀用戶與系統的互動、用戶對接收到訊息的回饋的複雜與困難,從之前 Netflix 為什麼改變用戶評分機制的討論,和去年 Xavier Amatriaia 在 RecSys 2016 的演講 Lessons Learned from Building Real­-Life Recommender Systems 中特別提到隱式回饋(implicit feedback)的重要性這兩件事,可見到冰山一角。 儘管如此,推薦系統的研究者還是很努力的抓出一些所謂的共性和特徵,比如據說曾經存在的第二篇文章談過的…

使用 Likert Scale 的陷阱

之前談 Netflix 為什麼要更改評分機制時,提到分數制的幾個缺點,其中一個是分數的差距影響 RMSE 的計算,那時我是這麼說的: 以前整理推薦系統文獻的時候,我還想過幾個可能。一是評分制可能扭曲 RMSE 的計算,1-2 和 3-4 的差距都是 1,但是在實際情況裡,前者是無論如何都不愛,後者是從猶豫到堅定,說不定就聽了商家的推薦,心安理得的「手滑」一下了。所以數字指標不能說明系統的表現好壞。 今早想起,在 2011 年整理資料的時候,我就思考過這問題,而且整理了一份筆記。當初寫的筆記,原文重貼於下,筆記中提到的 Xavier Amatrian 現在已經轉戰 Quora 了。      ~ original published on blurkerlab.blogspot.com at Apr 10, 2011   在西班牙電信公司 Telefonica 研究院 工作的學者 Xavier Amatriain,前幾天在網誌上發表了一篇文章 Recommender Systems: We’re doing it (all) wrong ,談到研究推薦系統的學者和開發者,在使用數據時,務必要注意數據的性質。 很多人使用 Likert Scale 做評分(Ratings)的量表基礎,比如說像「非常不喜歡、喜歡、無所謂、不喜歡、非常不喜歡」這樣的評分表就極爲常見,但是 Xavier 提醒我們 Likert Scale 的數據是 ordinal data ,這種數據僅僅表達次序關係,但是兩兩評分之間未必是 equidistant 的。若用這樣的數據計算距離(計算距離是相似性的基礎),其結果可能是失真的,循此邏輯推演下去,計算推薦系統準確率的指標 RMSE 的意義也可能失準。 從數學的角度來看,誤用定義當然是極爲嚴重的基本功的失誤,但是若從實務上考量,把 Likert 式評分當做 internal…

Netflix 為什麼要改變評分機制

上禮拜,Netfilx 揚棄了五星制的評分機制,改成喜歡/不喜歡的二元式評分,聲稱使用者的評分其實沒有你想的那麼重要(not relevant)。就我印象所及,普遍對這個改變的反應都蠻正面的,連包山包海的 John Gruber 都毫不猶豫的給個讚。 把分數制改成好惡兩分,不是新鮮事,早在 2009 年,YouTube 就這麼幹了。那時 YouTube 為了解釋為何把五分制改成 Thumbs Up / Down,在公司部落格上公佈他們的數據,在1到5的評分制度下,絕大多數的人都給5分,要不然就不給分,還有少量的人給 1 分, 2 – 4 分確實是不折不扣的無關緊要(not relevant)。下圖就是 YouTube 自己公佈的圖形,2 – 4 分的數據點幾乎就要黏上座標軸了。 Source:YouTube Official Blog 以前整理推薦系統文獻的時候,我還想過幾個可能。一是評分制可能扭曲 RMSE 的計算,1-2 和 3-4 的差距都是 1,但是在實際情況裡,前者是無論如何都不愛,後者是從猶豫到堅定,說不定就聽了商家的推薦,心安理得的「手滑」一下了。所以數字指標不能說明系統的表現好壞。 我還聽過一個說法,評分制還要考慮政經、社會、文化的發展與取向,在一個只講中庸,不想做出頭搋子的社會裡,大家都點 3 分,1 分和 5 分是不是反而變得無用了。 信馬由繮,跑得太遠,回到主題來,評分制度這個主題,項亮的這段話,講的頂靠譜。這是真正打過仗,有實戰經驗的牛人才能說出的真知。 我一直觉得Netflix Prize其实误导了整个推荐系统的发展。当然应该说是更早的MovieLens就误导了,只是Netflix Prize没有纠正过来。这个误导就是,评分预测其实不是重要的问题,反而是一个很次要的问题。因为,当人民群众拿着Netflix Prize的算法准备用在自己的系统里时,顿时傻眼了,因为没有评分数据。他们有的只是观看数据,点击数据,购买数据等等。这些数据有一个特点,就是user-item矩阵中所有的非missing值,都是1。而不是Netflix Prize里面的评分。 總之,不管是 5 分和 10 分也好,主要有幾個問題:…

長樂路的故事

奉命幫寒舍領導收集英文演講比賽的教材範例,在 YouTube 上發現 Rob Schmitz 在《一席》的演講《敲開中國鄰居的門》,演講內容是介紹他 2016 年 5 月出版以中國為主題的新書《Street of Eternal Happiness: Big City Dreams Along a Shanghai Road 》,演說內容和他所說的故事的背景,在部落格文章《被禁止的記憶》和壹讀的文章中有詳細說明。 我蠻喜歡 Rob Schmitz 在演說中說故事的方法,娓娓道來,非常有魅力。我很喜歡這樣的「演講」,但是現在學校裡面的演講訓練,還是這一夜誰來說相聲裡面語言的藝術那一套。過去幾年,常常被拉伕接送參加比賽的孩子們,於是在語文比賽現場旁聽不只一回,每每最令我做嘔的「演講」者,就是當屆分數最高的那一位。我想,我不只是一肚子不合時宜,連耳朵也和這時代格格不入。 人微言輕改變不了什麼,小小抱怨一下,純發洩,純 XX。閒話休表,還是來聽聽 Rob Schmitz 怎麼說故事吧 Rob Schmitz 與 Peter Hessler 是 1996 年同批抵達中國的 Peace Corps 志願工作者,Peter Hessler 被分發到涪陵,Rob Schmitz 被分發到自貢。他們兩人在完成兩年志願工作後,都繼續深造新聞寫作,然後回到中國擔任重量級(傳統)媒體的中國特派員。Peter 的中國三部曲,早就在兩岸讀書人中膾炙人口,Rob 的《長樂路:一條上海馬路上的大城市夢》,則是他的第一本書。 有段時間,追了很多所謂的中國書寫,比如傅高義的《鄧小平時代》、何偉的中國三部曲、《野心時代》等等,後來一則因為興趣越發廣泛,再則中國主題的好書,自認開發的差不多了,壹讀文章裡介紹的中國觀察書籍,除了 Michael Meyer 的書之外,我都購買了 Kindle 版本。所以漸漸不再放太多心思在這類主題上,於是中國觀察在我的 Amazon 推薦書單逐漸消失。若不是這回在…