閱讀356 返回首頁    go 阿裏雲 go 技術社區[雲棲]


如何用Word2vec輕鬆處理新金融風控場景中的文本類數據



“在當前更加普惠的市場環境下,新金融服務的客群和範圍進一步下沉擴大,業務形態也趨於更加小額分散、高效率和規模化,這對傳統風控提出了更大的挑戰,一方麵針對此類客群的高價值金融數據覆蓋率大為降低,另一方麵業務專家在麵對更多非結構化數據時到底該如何與風險掛鉤也存有諸多疑惑。事實上,這些不同於傳統強征信的數據在新金融風控業務中正顯現出越來越重要的作用,大量成熟場景中的實踐也證明合理地運用和發揮其價值往往能為整體風控效果帶來超出想象的提升。”




0?wx_fmt=jpeg


◆ ◆ 

One Hot Vector與Distributed Representation


問你這樣一個問題:如果有幾個詞語擺在你麵前,你希望你的計算機能夠理解每個詞,你可能會采取哪種方式?當然方法有很多種,這裏小氪為大家介紹一種稀疏表達的方式——one hot vector,也就是以下這種向量表示:


0?wx_fmt=png


這種表示方式解決了我們的問題,但也存在一定缺陷,即每個詞語都是一個維度,如果詞語數量急劇增加,就會形成維度災難,給我們的建模過程造成較大的困難。這個時候你可能會換另外一種思路,僅用4個維度來分別識別性別、老年、成年、嬰兒基礎信息,這樣也可以表示出所有詞語,這種表示方法叫做distributed representation,也稱詞向量:


0?wx_fmt=png



◆ ◆ 

詞向量


深度學習出來之後,由於突破計算瓶頸,詞向量概念也火了起來。首先大家都有這樣一種認知假設,即意思相近的詞語,它在文本中出現的上下文也是相似的,也就是說,相似的詞語擁有相似的語境。因此,我們可以利用一個詞語的上下文,如一個詞語與其它詞語共同出現的次數,這樣一個次數組成的向量,來表示這個詞語。當然,如果句子特別長,我們可以限定窗口,隻取該單詞前後n個單詞的詞共現次數來表示這個單詞。


比如,僅有以下三個句子的一個語料庫:

I like deep learning.

I like NLP.

I enjoy modeling.


取窗口長度n=1,則下圖每一列都是該列單詞的詞向量。


0?wx_fmt=jpeg



◆ ◆ 

Word2vec


下麵就是我們的主角word2vec出場啦,與之前一般的共現計數不同,word2vec作為現在主流的詞嵌入算法,主要是通過預測一個窗口長度為c的窗口內每個單詞的周邊單詞概率,來作為這個單詞的詞向量。通過這種方式,把單詞映射到一個高維向量空間,借此可以計算單詞之間的距離,即計算語義相似性。


在word2vec中使用最重要的兩個模型分別是CBOW和Skip-gram模型,前者是利用詞的上下文預測當前的單詞,後者則是利用當前詞來預測上下文。


我們先以CBOW為例,CBOW全稱是Continuous Bag-of-Words Model,即連續的詞袋,因為它用連續空間來表示詞,而且這些詞的先後順序並不重要。它的神經網絡結構設計如下:


0?wx_fmt=jpeg


輸入層:詞w的上下文一共2c個詞的詞向量

投影層:將輸入層的2c個向量做求和累加

輸出層:一個霍夫曼樹,其中葉子節點是語料中出現過的詞,權重是出現的次數


上麵的CBOW輸出層為什麼要建成一個霍夫曼樹呢?因為我們要基於訓練語料得到每一個可能的w的概率。具體怎麼得到?我們先來看一下這個霍夫曼樹的例子。比如句子為:我,喜歡,觀看,巴西,足球,世界杯;W=足球。


0?wx_fmt=jpeg


在這個霍夫曼樹中,詞“足球”走過的路徑圖上容易看到,其中非根節點上的θ表示待訓練的參數向量,也就是要達到這種效果:當在投射層產出了一個新的向量x,那麼我通過邏輯回歸公式(以下公式可根據興趣跳過):

σ(xTθ) = 1/(1+e^(-xTθ))


就可以得出在每一層被分到左節點(1)還是右節點(0)的概率分別是

p(d|x,θ) = 1-σ(xTθ)

p(d|x,θ) = σ(xTθ)


那麼就有:


p(足球|Context(足球)) = ∏ p(d|x,θ)


現在模型已經有了,接著通過語料來訓練v(Context(w))、x和θ就可以進行調整優化,由於篇幅原因,具體公式不再贅述。


同樣的道理,對於Skip-gram模型,即Continuous Skip-gram Model,利用已知當前詞來預測上下文的推理過程和CBOW也是大同小異的。



◆ ◆ 

實際效果舉例


說了這麼多,word2vec到底有多神奇呢?小氪以中文維基百科作為訓練語料庫,給大家看一下直觀的例子:比如我們想要看一下和“語言學”語義相似性最高的幾個詞及其概率,得到結果如下:


0?wx_fmt=png


又比如我們想要看一下和習大大語義相似性最高的幾個詞及其概率,得到結果如下:


0?wx_fmt=png


更有趣的是,如下圖,X(KING) – X(QUEEN) ≈ X(MAN) – X(WOMAN),這裏X(w)表示利用word2vec學習得到的單詞w的詞向量。也就是說,詞向量能夠捕捉到KING和QUEEN之間、MAN和WOMAN之間某種相同的隱含語義關係。


0?wx_fmt=png



◆ ◆ 

新金融風控場景的成熟應用案例


事實上,在新金融風控場景中,諸如文本等數據往往蘊含著與違約風險深度關聯的深層含義,而通過傳統統計、標記甚至正則等人工定義的方式往往都難以充分挖掘其風險價值,目前氪信已經和多家大型領先的金融機構合作深入探索詞嵌入算法在風控領域的成熟前沿應用。如下圖所示,通過複雜的詞向量模型將文本轉化為計算機能夠“理解”和計算的詞向量表征,並基於深度學習技術對其進行特征提取,我們就可以運用成熟的分類器網絡將文本數據與違約風險實現高度的風險掛鉤。


0?wx_fmt=jpeg


而氪信在大型成熟風控場景中的實踐也發現,對於新金融業務形態下越來越多的諸如文本、時序、影像等非結構化數據,通過充分的價值挖掘正顯現出對風控效果超出想象的提升。目前氪信正通過前沿的深度學習和複雜集成學習等技術不斷幫助金融客戶融合、運用、優化數據使用的方式,基於金融風控業務深度定製化的非或然引擎也在全方位為客戶完成傳統特征工程到人機特征融合的數據處理能力升級,實現新金融風控業務的快速成型及風控決策體係的持續迭代優化。

原文發布時間為:2016-12-01


本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號

最後更新:2017-05-31 11:04:24

  上一篇:go  《Spring實戰(第4版)》——2.4 通過XML裝配bean
  下一篇:go  Linux 服務器安全簡明指南