谷歌:Transformer在音樂推薦中的實踐
大模型的輸入并不一定只是文本token序列,它也可以是一切需要提取前后Token相關性的場景。
近日,谷歌工程師Anushya Subbiah和Vikram Aggarwal在谷歌官方技術博客刊載他們將Transformer應用到音樂推薦的實踐分享。他們提出了一種音樂推薦系統,該系統使用 Transformer 模型來更好地理解基于當前用戶上下文的用戶操作序列行為特性進而提升推薦體驗。
用戶有比以往任何時候更多的選擇來收聽音樂。流行的服務擁有龐大而多樣的類目(catalog)。例如,YouTube 音樂類目在全球擁有超過 1 億首歌曲。因此,類目推薦是這些產品的核心部分。推薦系統使物料類目(item catalog)變得有意義,并且對于調整類目以滿足用戶的口味和需求至關重要。在提供推薦的產品中,用戶對曲目的操作——例如 跳過,喜歡 或 不喜歡 ——提供了關于用戶偏好的重要信號。觀察和學習這些行為(action)可以獲得更好的推薦系統。在YouTube Music,利用這些反饋對于理解用戶的音樂品味至關重要。
考慮一個場景,即用戶通常喜歡慢節奏的歌曲。當播放快節奏的歌曲時,用戶通常會跳過它。然而,在健身房進行鍛煉時,他們喜歡更快節奏的音樂。在這種情況下,我們希望繼續從他們以前的歷史中學習以理解他們的音樂偏好。同時,我們希望在健身時推薦音樂時忽略先前跳過的快節奏歌曲。
下面我們用圖來解釋用戶的音樂聆聽體驗,其中音樂曲目顯示為條目,用戶的操作顯示為下面的文本。在不考慮更廣泛上下文的當前推薦系統中,我們預測用戶會跳過一首快節奏的歌曲,從而降級一個可能相關且有價值的歌曲。
下圖顯示了與之前相同的用戶旅程,但在不同的情況下,其中快節奏音樂可能更相關。我們仍然利用他們以前的音樂收聽歷史,同時推薦接近他們平常音樂收聽習慣的快節奏音樂。實際上,我們正在學習哪些先前的操作在當前音樂排序任務中是相關的,哪些操作是不相關的。
一個典型的用戶將執行數百次 喜歡 ,不喜歡 和 跳過 操作,并且這序列的輸入數據雖然信息豐富,但很快變得難以管理。為了增加這種復雜性,用戶執行的操作數量不同。雖然典型用戶可能有數百次操作,但用戶行為可能在少量操作和大量操作之間變化,一個好的排序系統必須能夠靈活處理不同大小的輸入。
在這篇文章中,我們討論了如何應用 transformers,它們非常適合處理輸入數據的序列,以改進 YouTube Music 中的推薦系統。該推薦系統包括三大關鍵階段: 項目檢索,項目排序和過濾。先前的用戶操作通常作為輸入特征添加到排序模型中。我們的方法使用了從生成模型中適應的 Transformer 架構來理解用戶行為的順序特性,并將其與個性化排序模型結合。使用 transformers 根據當前用戶上下文集成不同的用戶操作有助于直接將音樂推薦引導到用戶的當前需求。對于已登錄的用戶,這種方法允許我們在不明確識別用戶歷史記錄中哪些對排序任務有價值的情況下納入用戶的歷史記錄。
檢索,排序和過濾
在現有模型中,很難識別哪些用戶操作與用戶的當前需求相關。要理解這些模型,我們需要看典型的推薦系統。這些系統通常設置為三個不同的階段。首先,檢索 系統從大型語料庫中檢索數千個相關item(文檔,歌曲等)。其次,排序系統 對檢索結果進行評估,以便更符合和重要用戶需求的項目獲得更高的分數。排序的主要復雜性來自于概念之間的價值判斷,如相關性,重要性,新穎性,并為這些模糊概念分配數值。最后,過濾 階段按分數對排序列表進行排序,并將排序后的列表減少為顯示給用戶的簡短列表。在設計和部署排序模型時,從用戶可能執行的數百或數千個操作中手動選擇并應用相對權重是非常困難的。
Transformers 理解序列
Transformers 非常適合于需要理解輸入數據序列的一類問題。雖然 transformers 已經用于改進排序功能,但之前的方法并未關注用戶行為: Transformer 模型如 RankFormer 使用項目候選者(而不是用戶操作)作為輸入,經典語言transformers 如 BERT用于排序語言輸出,或者 BERT-like 模型用于推薦,如 Bert4Rec。
Transformer 架構由自注意力層組成,能夠理解順序輸入。Transformer 模型在翻譯或分類任務中展現了驚人的性能,即使在輸入文本模棱兩可的情況下也是如此。自注意力層捕捉句子中文本單詞之間的關系,這表明它們也可能解決用戶行為之間的關系。transformers 中的注意層學習輸入(tokens)之間的注意權重,這類似于輸入句子中文單詞之間的關系。
這就是我們如何使用 Transformer 架構來編碼 YouTube Music 上的用戶行為。在上述涉及快節奏音樂的用戶旅程中,我們看到了一些操作比其他操作重要性較低。例如,當用戶在健身房聽音樂時,用戶可能更喜歡通常會跳過的高能量快節奏音樂,因此相關操作(例如在本示例中的跳過操作)應獲得較低的注意權重。然而,當用戶在其他環境中聽音樂時,用戶的操作應得到更多的關注。應根據用戶執行的活動來確定應用于音樂上下文和用戶音樂歷史的注意權重。例如,當用戶在健身房時,他們可能會聽更快節奏的音樂,但不會離他們平常聽的音樂太遠。或者當他們在開車時,他們可能更喜歡探索更多新音樂。
Transformers 在 YouTube Music 中的排序應用
我們的架構將 Transformer 與現有排序模型結合,以學習最好地結合用戶操作與聆聽歷史的綜合排序(見下圖)。在此圖中,信息從底部流向頂部: Transformer 的輸入顯示在底部,產生的排序分數顯示在頂部。“item”在這里是我們希望排序的音樂曲目,目標是為給定的每個音樂“item”生成一個排序分數,并將其他信號(也稱為特征)作為輸入提供。
聯合音樂推薦任務中的 Transformers 和 Ranker
以下是描述每個時間步驟的用戶操作的信號:
操作意圖: 中斷音樂曲目,選擇要收聽的音樂曲目,自動播放。
行動的顯著性: 播放了音樂曲目的比例,距離上一次用戶操作的時間。
其他元數據: 藝術家,音樂的語言。
音樂曲目: 與用戶操作對應的音樂曲目標識符。
與用戶操作對應的音樂曲目用稱為曲目嵌入的數字向量表示。此音樂曲目嵌入用作 Transformer 和現有排序模型的輸入。用戶操作信號如意圖和元數據被轉換為與曲目嵌入長度相同的向量。這種操作稱為投影,使我們可以通過簡單地添加兩個向量: 用戶操作信號和曲目嵌入來結合這些信號,生成 Transformer 的輸入向量(稱為 tokens)。提供給 Transformer 的 tokens 用于評分檢索的音樂項目。考慮用戶的歷史時,我們包括以前的用戶操作和用戶當前正在收聽的音樂,因為兩者都捕捉了有價值的用戶上下文。來自 Transformer 的輸出向量與現有排序模型輸入結合,使用多層神經網絡。Transformer 與排序模型共同訓練,以實現多個排序目標。
離線分析和現場實驗表明,使用這種 Transformer 顯著提高了排序模型的性能,導致跳過率降低和用戶聽音樂時間增加。跳過較少頻繁表明平均而言,用戶更喜歡推薦。會話時間增加表明用戶對整體體驗更滿意。這兩個指標表明用戶對 YouTube Music 的滿意度有所提高。
未來工作
我們看到兩個主要的機會來建立在這項工作的基礎上。第一個機會是在推薦系統的其他部分(例如檢索模型)中適應該技術。我們還在探索如何將先前排序模型中使用的各種非順序特征作為輸入。目前,這些在 Transformer 階段后被組合,我們預測在 Transformer 內部結合它們將允許在順序特征(如用戶操作)和非順序特征之間實現改進的自注意力,例如藝術家受歡迎程度,用戶語言,音樂受歡迎度等。
原文鏈接: https://research.google/blog/transformers-in-music-recommendation/
本文轉載自 ??AI工程化??,作者: ully
