摘要:DSSM 用字向量作為輸入既可以減少切詞的依賴,又可以提高模型的泛化能力,因為每個漢字所能表達的語意是可以復用的,
本文分享自華為云社區《深度學習應用篇-推薦系統[12]:經典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型對比》,作者:汀丶,
1.DeepFM模型
1.1模型簡介
CTR預估是目前推薦系統的核心技術,其目標是預估用戶點擊推薦內容的概率,DeepFM模型包含FM和DNN兩部分,FM模型可以抽取low-order(低階)特征,DNN可以抽取high-order(高階)特征,低階特征可以理解為線性的特征組合,高階特征,可以理解為經過多次線性-非線性組合操作之后形成的特征,為高度抽象特征,無需Wide&Deep模型人工特征工程,由于輸入僅為原始特征,而且FM和DNN共享輸入向量特征,DeepFM模型訓練速度很快,
注解:Wide&Deep是一種融合淺層(wide)模型和深層(deep)模型進行聯合訓練的框架,綜合利用淺層模型的記憶能力和深層模型的泛化能力,實作單模型對推薦系統準確性和擴展性的兼顧,
該模型的Paddle實作請參考鏈接:PaddleRec版本
1.2DeepFM模型結構
為了同時利用low-order和high-order特征,DeepFM包含FM和DNN兩部分,兩部分共享輸入特征,對于特征i,標量wi是其1階特征的權重,該特征和其他特征的互動影響用隱向量Vi來表示,Vi輸入到FM模型獲得特征的2階表示,輸入到DNN模型得到high-order高階特征,
DeepFM模型結構如下圖所示,完成對稀疏特征的嵌入后,由FM層和DNN層共享輸入向量,經前向反饋后輸出,
為什么使用FM和DNN進行結合?
- 在排序模型剛起步的年代,FM很好地解決了LR需要大規模人工特征交叉的痛點,引入任意特征的二階特征組合,并通過向量內積求特征組合權重的方法大大提高了模型的泛化能力,
- 標準FM的缺陷也恰恰是只能做二階特征交叉,
所以,將FM與DNN結合可以幫助我們捕捉特征之間更復雜的非線性關系,
為什么不使用FM和RNN進行結合?
- 如果一個任務需要處理序列資訊,即本次輸入得到的輸出結果,不僅和本次輸入相關,還和之前的輸入相關,那么使用RNN回圈神經網路可以很好地利用到這樣的序列資訊
- 在預估點擊率時,我們會假設用戶每次是否點擊的事件是獨立的,不需要考慮序列資訊,因此RNN于FM結合來預估點擊率并不合適,還是使用DNN來模擬出特征之間的更復雜的非線性關系更能幫助到FM,
1.3FM
FM(Factorization Machines,因子分解機)最早由Steffen Rendle于2010年在ICDM上提出,它是一種通用的預測方法,在即使資料非常稀疏的情況下,依然能估計出可靠的引數進行預測,與傳統的簡單線性模型不同的是,因子分解機考慮了特征間的交叉,對所有嵌套變數互動進行建模(類似于SVM中的核函式),因此在推薦系統和計算廣告領域關注的點擊率CTR(click-through rate)和轉化率CVR(conversion rate)兩項指標上有著良好的表現,
為什么使用FM?
- 特征組合是許多機器學習建模程序中遇到的問題,如果對特征直接建模,很有可能忽略掉特征與特征之間的關聯資訊,一次可以通過構建新的交叉特征這一特征組合方式提高模型的效果,FM可以得到特征之間的關聯資訊,
- 高維的稀疏矩陣是實際工程中常見的問題,并且直接導致計算量過大,特征權值更新緩慢,試想一個10000100的表,每一列都有8中元素,經過one-hot編碼之后,會產生一個10000800的表,
而FM的優勢就在于對這兩方面問題的處理,首先是特征組合,通過兩兩特征組合,引入交叉項特征(二階特征),提高模型得分;其次是高維災難,通過引入隱向量(對引數矩陣進行分解),完成特征引數的估計,
FM模型不單可以建模1階特征,還可以通過隱向量點積的方法高效的獲得2階特征表示,即使交叉特征在資料集中非常稀疏甚至是從來沒出現過,這也是FM的優勢所在,
單獨的FM層結構如下圖所示:
1.4DNN
該部分和Wide&Deep模型類似,是簡單的前饋網路,在輸入特征部分,由于原始特征向量多是高緯度,高度稀疏,連續和類別混合的分域特征,因此將原始的稀疏表示特征映射為稠密的特征向量,
假設子網路的輸出層為:
DNN網路第l層表示為:
再假設有H個隱藏層,DNN部分的預測輸出可表示為:
DNN深度神經網路層結構如下圖所示:
1.5Loss及Auc計算
DeepFM模型的損失函式選擇Binary_Cross_Entropy(二值交叉熵)函式
對于公式的理解,y是樣本點,p(y)是該樣本為正樣本的概率,log(p(y))可理解為對數概率,
Auc是Area Under Curve的首字母縮寫,這里的Curve指的就是ROC曲線,AUC就是ROC曲線下面的面積,作為模型評價指標,他可以用來評價二分類模型,其中,ROC曲線全稱為受試者作業特征曲線 (receiver operating characteristic curve),它是根據一系列不同的二分類方式(分界值或決定閾),以真陽性率(敏感性)為縱坐標,假陽性率(1-特異性)為橫坐標繪制的曲線,
可使用paddle.metric.Auc()進行呼叫,
可參考已有的資料:機器學習常用評估指標
1.6與其他模型的對比
如表1所示,關于是否需要預訓練,高階特征,低階特征和是否需要特征工程的比較上,列出了DeepFM和其他幾種模型的對比,DeepFM表現更優,
如表2所示,不同模型在Company*資料集和Criteo資料集上對點擊率CTR進行預估的性能表現,DeepFM在各個指標上表現均強于其他模型,
參考文獻
[IJCAI 2017]Guo, Huifeng,Tang, Ruiming,Ye, Yunming,Li, Zhenguo,He, Xiuqiang. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
2.DSSM
以搜索引擎和搜索廣告為例,最重要的也最難解決的問題是語意相似度,這里主要體現在兩個方面:召回和排序,
在召回時,傳統的文本相似性如 BM25,無法有效發現語意類 query-Doc 結果對,如"從北京到上海的機票"與"攜程網"的相似性、“快遞軟體"與"菜鳥裹裹"的相似性,
在排序時,一些細微的語言變化往往帶來巨大的語意變化,如"小寶寶生病怎么辦"和"狗寶寶生病怎么辦”、“深度學習"和"學習深度”,
DSSM(Deep Structured Semantic Models)為計算語意相似度提供了一種思路,
該模型的Paddle實作請參考鏈接:PaddleRec版本
2.1DSSM模型結構
DSSM(Deep Structured Semantic Models)的原理很簡單,通過搜索引擎里 Query 和 Title 的海量的點擊曝光日志,用 DNN 把 Query 和 Title 表達為低緯語意向量,并通過 cosine 距離來計算兩個語意向量的距離,最終訓練出語意相似度模型,該模型既可以用來預測兩個句子的語意相似度,又可以獲得某句子的低緯語意向量表達,
DSSM 從下往上可以分為三層結構:輸入層、表示層、匹配層
2.1.1 輸入層
輸入層做的事情是把句子映射到一個向量空間里并輸入到 DNN 中,這里英文和中文的處理方式有很大的不同,
英文
英文的輸入層處理方式是通過word hashing,舉個例子,假設用 letter-trigams 來切分單詞(3 個字母為一組,#表示開始和結束符),boy 這個單詞會被切為 #-b-o, b-o-y, o-y-#
這樣做的好處有兩個:首先是壓縮空間,50 萬個詞的 one-hot 向量空間可以通過 letter-trigram 壓縮為一個 3 萬維的向量空間,其次是增強范化能力,三個字母的表達往往能代表英文中的前綴和后綴,而前綴后綴往往具有通用的語意,
這里之所以用 3 個字母的切分粒度,是綜合考慮了向量空間和單詞沖突:
如上表,以 50 萬個單詞的詞庫為例,2 個字母的切分粒度的單詞沖突為 1192(沖突的定義:至少有兩個單詞的 letter-bigram 向量完全相同),而 3 個字母的單詞沖突降為 22 效果很好,且轉化后的向量空間 3 萬維不是很大,綜合考慮選擇 3 個字母的切分粒度,
中文
中文的輸入層處理方式與英文有很大不同,首先中文分詞是個讓所有 NLP 從業者頭疼的事情,即便業界號稱能做到 95%左右的分詞準確性,但分詞結果極為不可控,往往會在分詞階段引入誤差,所以這里我們不分詞,而是仿照英文的處理方式,對應到中文的最小粒度就是單字了,
由于常用的單字為 1.5 萬左右,而常用的雙字大約到百萬級別了,所以這里出于向量空間的考慮,采用字向量(one-hot)作為輸入,向量空間約為 1.5 萬維,
2.1.2表示層
DSSM 的表示層采用 BOW(Bag of words)的方式,相當于把字向量的位置資訊拋棄了,整個句子里的詞都放在一個袋子里了,不分先后順序,
緊接著是一個含有多個隱層的 DNN,如下圖所示:
用WiWi? 表示第 i 層的權值矩陣,bibi?表示第 i 層的偏置項,則第一隱層向量 l2(300 維),第 二個隱層向量 l3(300 維),輸出向量 y(128 維),用數學公式可以分別表示為:
用 tanh 作為隱層和輸出層的激活函式:
最終輸出一個 128 維的低緯語意向量,
2.1.3 匹配層
Query 和 Doc 的語意相似性可以用這兩個語意向量(128 維) 的 cosine 距離來表示:
?通過softmax 函式可以把Query 與正樣本 Doc 的語意相似性轉化為一個后驗概率:
其中 r 為 softmax 的平滑因子,D 為 Query 下的正樣本,D-為 Query 下的負樣本(采取隨機負采樣),D 為 Query 下的整個樣本空間,
在訓練階段,通過極大似然估計,我們最小化損失函式:
殘差會在表示層的 DNN 中反向傳播,最終通過隨機梯度下降(SGD)使模型收斂,得到各網路層的引數{Wi,bi}{Wi?,bi?},
負樣本出現在計算softmax中,loss反向傳播只用正樣本,
2.1.4優缺點
優點:DSSM 用字向量作為輸入既可以減少切詞的依賴,又可以提高模型的泛化能力,因為每個漢字所能表達的語意是可以復用的,另一方面,傳統的輸入層是用 Embedding 的方式(如 Word2Vec 的詞向量)或者主題模型的方式(如 LDA 的主題向量)來直接做詞的映射,再把各個詞的向量累加或者拼接起來,由于 Word2Vec 和 LDA 都是無監督的訓練,這樣會給整個模型引入誤差,DSSM 采用統一的有監督訓練,不需要在中間程序做無監督模型的映射,因此精準度會比較高,
缺點:上文提到 DSSM 采用詞袋模型(BOW),因此喪失了語序資訊和背景關系資訊,另一方面,DSSM 采用弱監督、端到端的模型,預測結果不可控,
參考文獻
[1]. Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]// ACM International Conference on Conference on Information & Knowledge Management. ACM, 2013:2333-2338.
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555770.html
標籤:其他
上一篇:自然語言處理 Paddle NLP - 情感分析技術及應用-理論
下一篇:返回列表
