LINE DEV DAY 2019 - Timeline Post Recommender System

大家好,我是卡米哥,LINE 官方認證的 API 專家,LINE API Expert。目前在維護知名 Node.js 聊天機器人框架 Bottender

身為 LINE API Expert 的我,受邀參加 LINE DEVELOPER DAY 2019,這是 LINE 每年都會舉辦的開發者大會,發表 LINE 所研發以及使用的技術,這麼棒的研討會,當然不能只有我聽到。

本文不是講座翻譯,為了讓大家理解,除了幾個重要的專有名詞之外,我會避免使用專有名詞,增加說明和省略細節。

這場議程的講者 Jihong Lee 以十分沉穩的英文語調,每張投影片,每句話都做了良好的停頓,給予聽眾一點時間思考,卻能帶出極大量的資訊,這是一場精彩的議程。議程內容主要是在解說 Timeline Post Recommender System 當中幾個重要的細節。

講者想要解決的問題

講者想要做一個用在 LINE Timeline 上面的推薦系統 (Recommender System)。讓我先說明一下 LINE Timeline 和推薦系統是什麼。

LINE Timeline 在 LINE App 下方主選單正中間的頁面,台灣的翻譯是「貼文串」,看起來很像 Facebook 的塗鴉牆。

推薦系統在現代已經是個很常見的系統,比方說 Netflix、Youtube、Spotify 都會在首頁或者其他地方,提供一些節目給你看/聽,每個人看到的首頁內容都會不同,通常會寫著「為您推薦」字樣。

講者想要用推薦系統來決定用戶會看見哪些貼文或廣告,以及控制排序。簡單講就是讓電腦透過某種通靈來猜你想看的內容。

講到這裡就想到一篇 PTT 文章:某位鄉民看到在某 blog 上有色情廣告,覺得這很不妥,於是截圖在 PTT 上詢問,結果被推文推爆後,他才知道其實每個人看見的廣告內容是不一樣的,什麼人就會看見什麼廣告,笑死。

推薦系統的作法

Collaborative filtering 是一個很常用的解法,只要提供一個機制讓用戶評分,接著去找到兩個評分相似的用戶,假設他們的偏好相同,就讓用戶去互相推薦。

舉個例:上圖中的小綠看過電影 A 和電影 B,小橘也看過電影 A 和電影 B,而且他們對電影 A、B 的評價完全相同,所以我們假設小綠跟小橘有相同的偏好。我們可以發現到小綠看過電影 C 但小橘還沒有看,所以就能大膽推薦小橘去看電影 C,我們可以預期他應該會給出 5 分的評價。

使用 Collaborative filtering 需要大量的用戶標記,要不然你很難找到兩個相似的用戶,這是 Collaborative filtering 的缺點,但他的優點是不需要了解電影之間的關係。

還有一種方法稱為 Content-based filtering,這是一個基於內容的推薦系統,僅需要少量的用戶標記,但是需要大量的內容屬性標記。以電影為例,這個方法是將一部電影的各種屬性打個分數,分數相近的電影就是類似的電影,然後根據用戶喜歡的電影來推薦用戶類似的電影。

在講者的案例當中,Timeline 並沒有評價機制,所以是根據用戶看完貼文後有沒有點擊貼文來判斷用戶的喜好。聽講者的描述,我認為講者是在兩種方法都試過後,決定採用 Content-based filtering 來做,因為他們的案例的用戶標記太少了,所以在 Collaborative filtering 上的表現不好。

推薦結果的更新方式

講者提到,推薦系統是要根據用戶每天的操作來計算新的推薦結果,但推薦系統上線後,用戶的行為將會受到推薦系統的影響,也許用戶並不喜歡這樣的內容,但由於推薦系統的介入,導致用戶點擊的機率上升。換句話說,做推薦系統的時候,只要一個不小心,很可能就會陷入自我感覺良好的情況。

為了避免這種情況,只要是由推薦系統所推薦的貼文,不論是否被用戶點擊,這樣的資料是不具有參考價值的,所以需要被排除,不能被用來計算新的推薦結果。

講到這裡,其實才只到講座內容的 40%,這場講座的資訊量實在是多到爆,講座內容還有「如何幫一個推薦系統打分數」、「如何微調推薦系統的結果」、以及「如何加速運算效率」等等,就請大家自行看投影片欣賞囉。

我認為

這是場深入淺出、十分精彩的講座。講者在極短的時間內,使用接近政治人物的語速,竟然能傳達如此大量的資訊。講者提及的內容不僅僅是考量技術面,同時也考量到商業面,展現了多面向的知識以及良好的資訊傳達技巧,這不是只專研技術的工程師就能辦到的。這麼棒的講座,要多少錢才能聽得到呢?LINE DEV DAY 是免費報名,大家有空的話,真的應該要來聽一下。

參考連結

LINE DEV DAY Session
講者投影片

在追求真理的道路上

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store