iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
AI & Data

那些在科技公司和 app 背後的資料科學系列 第 12

[Day 12] Spotify 怎麼知道要在「每週新發現」推薦什麼歌給你?(下)Bart Model

  • 分享至 

  • xImage
  •  

打開 Spotify,我們會看到許多推薦歌單和 Podcast 節目,他們怎麼知道用戶會喜歡什麼呢?

music

資料

Spotify 不遺餘力地搜集各式各樣的資料,資料分為 internal data 和 external data。

  • Internal data
    • 來自演唱者:歌曲名稱、敘述、種類、圖片和歌詞。
    • 來自用戶:聆聽紀錄、跳過的歌、歌的播放頻率、儲存的歌單、下載的歌曲和社群互動行為(如分享的歌或歌單)。
  • External data:新聞、部落格、和歌曲或演唱者有關的文章。

推薦演算法

誠如昨天所述,multi-armed bandit 是在平衡 exploitation 和 exploration。昨天是以挑選餐廳舉例,回到 Spotify,他們有以下兩種行為:

  • Exploitation:根據用戶過往的播放清單,預測其會喜歡的音樂,並有高度信心。
  • Exploration:預測用戶會喜歡的音樂,但帶有不確定性。

讓我們先退一步來思考,為什麼不能只 exploit 呢?如果已經根據用戶的播放紀錄,建立預測模型,不能只推薦有十足把握、認為用戶會喜歡的歌嗎?為什麼要加上 explore 呢?

只有 exploitation

倘若只有 exploit,則模型只有兩種選擇:exploit 或 ignore
以下圖為例,在模型有高度信心(圖的右半邊)時,較不相關的內容(右上)可以直接忽略,因為其真實值(ground truth)也真的是低相關。
然而,在模型的信心較低(左半邊)時,有時會忽略真實是高相關的內容(左下)。

https://ithelp.ithome.com.tw/upload/images/20220922/20152325vfFc57nAyA.png

多了 exploration

如果新增 exploration 的選項,就不會有忽略高相關內容(左下)的問題。因為在左半邊的兩格中,儘管預測模型的信心都不高,但是由於都會 explore,不用擔心會被忽略的問題
儘管 exploration 是帶有不確定性的,然而對於新用戶、新項目(如音樂或影片)而言,還是重要的探索。

https://ithelp.ithome.com.tw/upload/images/20220922/20152325VpU9G6Sj78.png

如果再加上 explanation

再者,Spotify,發現,如果能夠告知推薦原因,能讓使用者更理解推薦系統的邏輯,讓他們更願意相信、提升參與度,並提升滿意度跟說服力。
因此,除了原本的 multi-armed bandit 以外,Spotify 加入 explanation,建構出 Bart 模型(BAndits for Rescplanations, Rescplanations 是 explanation for a recommendation 的縮寫 )。


Bart

資料型態

  • i ∈ J:要被推薦的歌曲項目 item, i
  • e ∈ E:每個 item 的解釋 explanation, e
  • u ∈ U:使用者 user, u
  • x ∈ X:脈絡 context, x

訓練資料的建構方式是將使用者 u 和解釋 e 配對,再將其對應到相應的歌曲清單 J

如下圖為例,解釋 e 為「你朋友喜歡的電影(Movies your friends love)」,使用者 u 為 user123,對應到的歌曲清單 J 則為「受到 user123 朋友歡迎的電影(Movies that are popular with user123's friends)」。

https://ithelp.ithome.com.tw/upload/images/20220922/20152325SidGf1gTnV.png

你可能會有一個疑問,為什麼不直接把所有歌曲清單 J 都跟每個解釋 e 配對呢?因為有些解釋只適合某些特定的清單,不適用於全部。舉例而言,「因為你最近讀過歷史小說(because you recently read historical fiction)」是和歷史小說有關清單的唯一解釋,不適用於其他清單。

在建構好資料樣貌之後,Spotify 希望能夠建立一個機器學習模型,客製化地排序解釋和推薦清單,並要考量到脈絡,脈絡包使用者特徵、推薦清單特徵、一天當中的時間、播放平台等等。

Bart 模型

Bart 的目的是預測任意歌曲清單(i ∈ J)、解釋(e ∈ E) 和脈絡(x ∈ X) 的結合之使用者滿意度(e.g., click through rate、消費的可能性),其 reward function r 為 J x E x X。

主要建構於 MAB(multi-armed bandit) 上,MAB 的目的是最大化最後的 reward。如前一天介紹過的,有不同架構,例如 epsilon-greedy 或 upper confidence bound。

然而,MAB 被批評說會忽略脈絡,因此提出一個新的概念為 contextual bandit,這個會在做行為之前先考慮並觀察 X。

Contextual Bandit

結合脈絡(context)後,reward function 最終形態如下:

https://ithelp.ithome.com.tw/upload/images/20220922/20152325656TXBRKp7.png

Spotify 比較三種不同模型/reward functions 的成效,分別為logistic regression 和兩個不同加權脈絡 x 的方式。
(1) Logistic regreesion:利用 logistic regression 的分數排序
(2) Bart 2nd order:Bart 模型,使用 2nd order factorization machine reward function
(3) Bard 3rd order:Bart 模型,使用 3rd order factorization machine reward function

計算細節我們不會在此討論,有興趣了解的人可以去參考原始 paper。

總之,為了簡化模型,MAB 使用 epsilon-greedy 架構,並使用 counterfactual risk minimization (CRM) 訓練模型。

好了,說了這麼多,讓我們來看結果吧!


結果

實驗場景分為 offline 和 online,在兩個場景中,顧客參與度都有大量提升。
所謂的 offline 就是用過往留存的資料,用已知資料預測用戶行為,再比對他們的實際狀況。而 online 模型就是真的在用戶使用時即時搜集資料。

來看幾個有趣的發現。

Offline

虛無假說一:解釋和清單流量是獨立、互不影響的

下圖是他們比較的七種解釋,並在做卡方檢定後,結果顯示可以拒絕此虛無假設(不知道這是什麼嗎?Day 8 的文章有詳盡解釋)。換句話說,不同解釋和流量是有關的。

https://ithelp.ithome.com.tw/upload/images/20220922/20152325uxWy7mYpzk.png

但是,說不定只是歌曲清單內容本身吸引人,跟放什麼解釋無關,因此他們又做了以下的假設。

虛無假說二:用戶是否要收聽這個歌單和放什麼解釋無關

他們針對有多個不同解釋的歌曲清單做研究,共有兩個清單:

  1. 第一個清單的解釋為:{day-of-the-week, inspired-by-rescent-listening, because-user-likes-genre, popular}
  2. 第二個清單的解釋為:{mood, focus}

結果顯示,第一組清單的虛無假設被推翻,所以儘管歌曲內容完全相同,不同解釋是會影響用戶的收聽意願
然而,第二組的虛無假設無法被推翻,但是也很合理,因為 mood 和 focus 都是相對相似,且較模糊的敘述。

Online A/B testing

最後,來看功能實際上線的結果,可以看到無論是以上三組的有比較好的播放流量!

https://ithelp.ithome.com.tw/upload/images/20220922/20152325Gn3vLDkH2h.png


以上,Spotify 使用 Bart 模型,利用 multi-armed bandit 方法,同時 exploit 用戶過往的播放歷史,和 explore 新的內容。並且,再結合 explanation,增加用戶的信任度和收聽意願,製作出許許多多的播放清單。


謝謝讀到最後的你,如果喜歡這系列,別忘了按下喜歡和訂閱,才不會錯過最新更新。
也歡迎到我的 medium 逛逛!


Reference:
J. McInerney et al., “Explore, exploit, and explain: personalizing explainable recommendations with bandits,” in Proceedings of the 12th ACM Conference on Recommender Systems, Vancouver British Columbia Canada, Sep. 2018, pp. 31–39. doi: 10.1145/3240323.3240354.


上一篇
[Day 11] Spotify 怎麼知道「每週新發現」中要推薦什麼歌給你?(上)Multi-Armed Bandit
下一篇
[Day 13] 更貼近消費者需求的購物網站搜尋結果 - Alicoco
系列文
那些在科技公司和 app 背後的資料科學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言