新聞推薦系統

簡信昌
mirrormedia
Published in
4 min readMar 11, 2018

推薦系統,這個在機器學習領域好像一直是熱門議題。當然在電子商務上更是幾乎被視為是標準配備。而在媒體圈,卻因為近來備受爭議的「臉書演算法」,而有點被視為同溫層的始做俑者。可是回頭來研究使用者習慣,準確的推薦系統確實可以助長使用者的停留時間。

而且這個是經過線上實測的結果,當我們使用編輯挑選的新聞列表和經由機器學習算出的推薦內容來進行測試時,經由系統推薦的新聞確實可以獲得使用者更高的點擊。而且其實從紐約時報的官方部落格看來,他們其實很早以前就都使用自己的推薦系統了:

要打造一個推薦系統其實是有趣的,但並不容易的一件事。尤其如果你只是把工程師當成 Snow fall 這種技工的話,那大概也很難想像怎麼需要工程師來幫忙實作推薦系統。

其實沿著紐約時報這篇部落格來看,用內容分類來進行推薦是最基本的。用最簡單的白話文解釋,也就是我們需要先找出每篇文章的關鍵詞可以來描述文章本身,有點類似為文章下標籤。這在英文文章還稍微容易一點,不過中文其實是相當複雜的,而相較之下,簡體中文的相關資源還是豐富一些。

當我們為每篇文章取得標籤之後,就可以用每篇文章中每個標籤的分數,來計算文章跟文章間的相關程度。這樣一來,就可以取得每篇文章的相關文章,作為以內容相關性作為推薦的最簡單條件。

當然,雖然是最基本的文章相關性判斷,其中還是會有不同的演算法可以來進行測試。這時可能就會根據文章屬性或文章整體的性質,可以來測試怎麼樣的演算法得到的相關新聞會比較吸引讀者。

單純以文章的分群完成之後,接下來就可以進行使用者的行為分群。其實這時候你應該會發現你們的前、後端工程師都很重要,畢竟要能收集跟分析使用者行為不是只做 Snow fall 就可以的。而且這裡所謂的收集使用者行為的資料並不是單純把 google 的 GA 程式放上就可以的。

當你們一天有幾百萬的 pageview 時,需要把使用者每一個行為都收集,接下來進行分群就變得很重要。這個其實用個簡單例子來看,就是大概十多年前亞馬遜推出的「買了這件商品的客戶,也買了以下幾件商品」的模式。而在文章的推薦模型,我們可以把使用者跟文章分群,這在假設某些閱讀習慣接近的讀者(同溫層)會看同一群的文章。

但是無論是使用者或是文章的分群並不是那麼簡單,例如當分群(無論是使用者或是文章)要分多細,因為在最極端的例子,每個使用者自己是一個群,每一篇文章也是單獨一個群。這些都需要數據分析作為基礎來研究跟測試。

前幾天看到有人在指責 Facebook 的演算法決定了人們看什麼,並說其實最後影響所有人看到什麼內容的是寫演算法的人。這種說法從表面上聽起來好像沒錯,但是最後決定看到什麼內容的還是閱讀的人自己。而其實所謂寫演算法的人大概也就是測試怎麼樣的排列組合會得到最多的 clicks。

而我們現在也有把 content base 的相關新聞模組開放出來了,基本上是採用了目前也是 open source 的 jieba 斷詞模組,萌典的字典檔,搭配 TF-IDF 做詞頻分析。也歡迎各位新聞媒體使用,也歡迎送 pr。

--

--

簡信昌
mirrormedia

工程師 / 攝影師 / 資料新聞 各種興趣,目前擔任資料新聞媒體《READr》總編輯。對於新聞媒體未來想像充滿興趣,也希望透過技術改變新聞媒體的為來樣貌。同時也思考著如何以鏡頭與藝術創作面對自己的人生。