做者:王新欣web
整理:AIFounder算法
AI算法在雲音樂搜索的應用網絡
分爲幾大模塊app
分別爲歌曲、UGC歌單、評論、社區Mlog、視頻、直播框架
1 用戶需求僅僅是一首歌曲? 學習
2 如何理解用戶並匹配? 優化
3 如何給用戶更好的資源? ui
4 如何給業務賦能?spa
基於以上的內容,本文會着重介紹兩大模塊設計
1 Query的理解
2 排序模型
2.1.1 意圖識別:深度學習對意圖識別的完善
爲何作意圖識別?不一樣意圖,對應不一樣的域,召回的內容相關與否,直接影響用戶體驗雲音樂query意圖佔比 6月份爲例,當時,依然有51%的query意圖不明
雲音樂的Query量千萬級別,人工標註耗時耗力 ,如何快速擴展?須要藉助技術來實現
2.1.2 意圖識別 - 擴展樣本
舉例:
2.1.3 意圖識別 - 在線識別
線上預測:TextCnn , Fasttext, LSTM, RCNN, C-LSTM , XLNet +TextCNN ,Bert +ABSA
使用:Fasttext.
優勢:魯棒性更強,速度快,精度高。
2.1.4 使用異質圖網絡HGAT作意圖識別
步驟:
一、經過用戶行爲,異質圖構建
二、使用Bert進行初始化
三、使用鄰居節點表示當前節點
四、節點分類
2.1.5 Tag類示例
2.2 傳統相關性匹配
特色:
1)純字面匹配 - 沒法獲得語義層面的信息
2)引擎側能夠支持必定模糊度 - 但泛化能力較差,人工經驗多
3)常常會出現召回的內容差的狀況
4)排序側,人工設計特徵:字段、匹配度等
2.3 基於點擊的相關性演進
2.3.2 基於點擊的相關性—Graph Embedding
Graph Embedding簡述
目標:節點以低維稠密向量的形式進行表達
認爲:圖中類似,映射到低維度空間類似
圖中每一個圓圈表明一個節點
音樂搜索場景的應用
query和item抽象爲圖中的節點,經過用戶行爲鏈接
應用:
2.3.2 Graph Embedding —Node2vec
那該怎麼控制走向呢?
遊走結果示例:
2.3.2 Graph Embedding —Node2vec
基於邊的權重進行隨機遊走
1、過程 對每一個節點n有 Repeat 1 以n0爲初始點,根據邊的權重選擇一個與之鏈接的節點neighbor1 加入walk中
2 以walk隊列中最後的那個做爲起始,持續1的動做
3 根據指定條件終止
2、權重計算 (共同決定:但願walk節點內聚,相關性高 ) α: 控制廣度、深度優先的偏執係數 α
w:實現差別化的節點與節點之間的權重w
深、廣度做用:
深度優先:防止walk掉頭,促使walk走向更遠的地方 廣度優先:促進遊走不斷的回頭,去訪問上一步結點的其餘鄰居結點(雲音樂)
2.3.2 Graph Embedding —Node2vec
使用word2vec訓練節點向量
總結
一、假設節點、query分佈一致,符合模型 理論基礎,適合Emb計算
二、轉成word2vec計算embedding,獲取 相關性
三、霍夫曼樹層次softmax的分類樹,減小 分類的所需的資源
四、與DeepWalk相比,由於邊的權重控制, 模型受離羣點影響小,更具內聚性
2.3.2 Graph Embedding —Node2vec
2.3.1 基於深度模型的語義表徵
2.3.2 基於深度模型的語義表徵
2.3.3 基於深度模型的語義表徵
示例 :
1、背景:1 時序模型特色:刻畫 「事件」演進,理解用戶興趣變動;將NLP「時序」 學習,遷移到CTR;不一樣模型刻畫程度不一樣 2 相似商品,用戶的聽歌時序,也是在不斷演進的 2、優化幾點Tip: 1 從用戶的角度出發,能夠建多條不一樣興趣的隊列,也能夠給業務建 興趣隊列 2 時間的選取上能夠進行細分 3 將時間分桶,進行位置「表徵」
初版,點擊率1%,收藏率1.5%提高。
背景:1 某場景的體驗優化,同時要兼顧業務A的產出 2 效果與業務在一個空間下,差別性:多了一個業務側的用 戶畫像、Item畫像 3 一樣是CTR到CVR的轉化,典型的CVR樣本稀疏
歷程:
樣本採起上的改進:
模型改造:
具備區分度:
背景:
1 雲音樂內容類型多,用戶不一樣意圖、不一樣時刻,對內容的 需求不一樣,須要讓用戶偏好的資源排在首屏、第二屏
2 多內容,具備區分度,又有關聯性。內容彼此比較有難度
3 綜合頁的內容排序具備流量分配的做用。提升效能的同時 也能爲業務賦能
多內容排序實例
問題:
用戶行爲序列是否須要區分不一樣資源類型?
用戶行爲序列是否須要區分不一樣的消費類型?
Transformer Layer Position Embedding表達?
不一樣模塊特徵表達, User-Model共享?
實踐:
1 User-Model的共享,採用MV-DNN
2 Position Embedding採用logtime的離散化embedding表達
3 序列:用戶搜下下的資源消費行爲序列+全站消費序列、中長期序列表達
4 採用統一的序列建模,保證資源序列的完整性
內循環(算法體系)帶動外循環(業務體系)