機器不學習:基於深度學習CNN的短文本相似度計算方案

2020-12-14 機器學習e

機器學習深度學習乾貨棧 www.jqbxx.com

基於CNN模型的短文本相似度的計算方法可以大致分為兩類:一類是基於Siamese結構的神經網絡模型,先分別學習輸入的文本對兒的句子向量表達,再基於句子向量計算相似度;另一類是直接以詞語粒度的相似度矩陣作為輸入,學習並計算文本相似度。下面將分別展開介紹。

基於Siamese結構的神經網絡模型

如下圖所示,是Severyn發表在2015年SIGIR上的文章[5],並用於TREC上的兩個NLP任務:答案選擇和微博檢索。以答案選擇任務為例,從左至右,作者採用上下並行的雙通道淺層CNN模型來分別學習輸入的問題和答案的句子向量表達,然後經過相似度矩陣M計算相似度,全連接層和隱藏層進行特徵整合和非線性變換,最後softmax層來輸出輸入候選答案被預測為正確或者錯誤的概率。左半部分的雙通道CNN即可理解為學習從詞向量到句子向量的表達模型。

如下圖所示,是Wang發表在2016年COLING的文章[6],同樣應用於答案選擇任務,並在兩個公認基準數據集WikiQA和QASent上進行了測試。文章的核心想法是採用雙通道CNN來抽取輸入問題和答案之間的相似性與不相似性,整合成最終的句子向量並計算相似性。

基於詞語粒度的相似度矩陣直接學習並計算文本相似度

如下圖,Meng在其文章中[7]直接基於詞向量計算輸入文本對兒在單詞粒度上的相似度(計算方式有多種:歐式距離、餘弦距離、參數化的相似矩陣),並以此為後續深層卷積神經網絡的輸入,最終學習得到的向量經過全連接層和softmax層進行預測。

有了前面在深度學習框架下,文本向量學習的背景和基於CNN短文本相似度的現有方法的總結和介紹,終於進入本篇文章的重頭戲,LSF-SCNN模型的介紹。LSF-SCNN模型延續了基於Siamese結構神經網絡模型構建短文本表達模型的總體思路[5],但通過引入三種優化策略:詞彙語義特徵 (Lexical Semantic Feature, LSF)、跳躍卷積 (Skip Convolution, SC)和K-Max均值採樣 (K-Max Average Pooling, KMA) ,分別在詞彙粒度、短語粒度、句子粒度上抽取更加豐富的語義特徵,並在答案選擇AS計算短文本相似度問題上取得了非常好的效果。

下圖展示了LSF-SCNN的整體框架圖,自底向上,LSF-SCNN模型由3個模塊組成:(1)對於輸入的問題和候選答案,我們利用詞彙語義特徵技術為每個單詞計算LSF特徵值,以此來表徵問題與答案之間的語義交互特徵。LSF特徵會和詞嵌入拼接在一起構成詞語粒度上更加豐富的特徵表達,表達詞的向量再次拼接構成句子矩陣。(2)問題和候選答案的句子矩陣經過跳躍卷積層和K-Max均值採樣層,最終形成對問題和答案各自的向量表達,記作Xq和Xa 。(3)Xq和Xa會根據學習得到的相似度計算矩陣M得到一個相似度分數。最後,相似度分數和Xq、Xa整合一起作為分類器的輸入,最終得到輸入候選答案a被預測為正確答案和錯誤答案的概率。接下來,我將一一介紹三個優化技術的實現細節。

詞彙語義特徵技術(Lexical Semantic Feature,LSF)

LSF技術提出的原因:基於Siamese的神經網絡結構有個缺點就是將輸入的文本對兒看做互不相關的句子,相互獨立的用同一套神經網絡結構去學習文本的向量表達。但是在短文本相似度相關任務中,如問題和候選答案,往往是文本對兒間在語義、詞語表達、語序等方面存在關聯,而前人方法忽略了這點。少部分學者注意到了這點,但目前所用方法局限於:藉助額外知識標記近義詞/反義詞、上位詞/下位詞等關係;或者引入字符串匹配信息,嚴格匹配標記為1,其餘為0。因此,本文提出的LSF技術是一項用來構建問題與答案之間的語義交互特徵的技術。LSF核心想法:LSF技術將詞語粒度上的相似性量化細分為t個相似度,從而建立輸入文本對兒之間的語義關聯,為後續神經網絡提供更加豐富的語義特徵輸入。LSF技術可行性分析:LSF技術將詞語粒度上的相似性量化細分為t個相似度,不僅可以包含前人提出的近義詞、反義詞關係,如chairman和chief的LSF為1, 字符串匹配如welch和welch被標記為1,也可以涵蓋更多的相似性。例如,april和when不是近義詞,在字符串上也無法匹配,但LSF可以捕捉到他們之間有6的相似度,而april正是回答該問題的正確答案,

LSF特徵怎樣計算得到?問題和答案中的每一個單詞都會有一個LSF特徵,具體來說是一個[0,t]上的整數值。LSF的計算過程可通過下面一個例子說明,當我們想要求解問題中general一詞的LSF特徵時,第一步我們需要計算general與答案中每一個詞的餘弦相似度並選取其中的最大值,因此chief被選取出來。第二步,餘弦相似度值的最大值0.79將通過一個映射函數映射為一個[0,t]區間的整數,當我們假定t=10,最終計算得到general的LSF特徵為3。這是合理的,general和chief一定程度上是近義詞。

跳躍卷積技術(Skip Convolution,SC)

SC技術核心想法: 在短語粒度上,我們提出跳躍卷積SC技術。下圖展示了以the cat sat on the mat為例,設定卷積窗口長度為4時,且步長為1跳躍一次,跳躍卷積方式在傳統卷積方式上的改進:

傳統卷積方式將取得如下短語特徵:{the cat sat on, cat sat on the, sat on the mat}跳躍卷積將取得如下短語特徵{the cat sat on, the cat sat the, the cat on the, the sat on the, cat sat on the, cat sat on mat, cat sat the mat, cat on the mat, sat on the mat }。SC的技術實現:如上圖所示,左側傳統卷積方式將卷積窗口作為一個整體,自左向右每次移動一個單詞的步長進行卷積操作。相比而言,跳躍卷積則是同樣自左向右每次移動一個單詞的步長,但移動的並非卷積窗口的整體,而是整體中的一列。例如,上圖右側,初始卷積抽取了短語「the cat sat on」(紫色框)的特徵;而後將覆蓋在「on」上的卷積窗口的那一列向右移動一個單詞的步長,從而得到短語「the cat sat the」(藍色框)的特徵;接著,將覆蓋在「sat」上的一列向右移動一個單詞的步長,從而得到短語「the cat on the」(綠色框)的特徵,以此類推。SC技術可行性分析:傳統卷積方式只允許在特定大小的卷積窗口中對相鄰的詞語進行卷積,而跳躍卷積可以通過跳躍停用詞如the、形容詞等,在特定大小的卷積窗口中將抽取到包含更完整更濃縮的主體語義信息的短語特徵如『cat sat on mat』,從而提升了短語粒度上特徵的豐富性。雖然,跳躍卷積相比於傳統卷積方式,也會額外抽取到許多無用的短語的特徵。但實驗結果證明,跳躍卷積技術對增加短語特徵豐富性的幫助,要大於額外增加的無用短語特徵帶來的噪音的影響。

SC技術實現可以參考[8]。Lei的文章應用於情感分類 (sentiment classification) 和新聞分類 (news categorization) 任務,而本文應用於答案選擇任務。

K-Max均值採樣技術(K-Max Average Pooling,KMA)

K-Max均值採樣提出的背景:卷積神經網絡中的池化層,也稱採樣層,主流有兩種方法:最大值採樣 (max pooling) 和均值採樣 (average pooling)。但上述兩種方法也存在一定的局限性,由此,Zeiler and Fergus[9]提出了對於最大值採樣的一些改進技術,Kalchbrenner[10]提出了動態k-max採樣技術。K-Max均值採樣的核心思想:本文提出的K-max均值採樣技術結合了最大值採樣和均值採樣。具體而言,對於卷積層傳入的特徵矩陣(feature map),K-Max採樣技術選取其中最大的前K個值,並取其平均值作為最終的採樣結果。K-Max均值採樣的好處,一方面可以減少異常噪音點的影響,另一方面可以保留表現比較強的特徵的強度。雖然想法簡單,但實驗證明對模型的提升效果較好。

本文主要介紹了LSF-SCNN模型,即基於詞彙語義特徵的跳躍卷積模型 (Lexical Semantic Feature based Skip Convolution neural network ),基於卷積神經網絡模型引入三種優化策略:詞彙語義特徵 (Lexical Semantic Feature, LSF)、跳躍卷積 (Skip Convolution, SC)和K-Max均值採樣 (K-Max Average Pooling, KMA) ,分別在詞彙粒度、短語粒度、句子粒度上抽取更加豐富的語義特徵,從而更好的在向量空間構建短文本語義表達模型,並在答案選擇 (Answer Selection) 問題上進行了實驗驗證。

其中詞彙語義特徵LSF技術可以更廣泛的應用於基於神經網絡結構學習文本對兒間向量表達的相關任務。跳躍卷積SC技術和K-Max均值採樣技術更廣泛的使用於存在卷積層和採樣層的神經網絡結構中。三種技術既可以根據需要單獨使用,也可以相互助益共同提升模型整體效果

機器學習深度學習乾貨棧 www.jqbxx.com

相關焦點

  • Kaggle文本語義相似度計算Top5解決方案分享
    id=8問題相似度計算,即給定客服裡用戶描述的兩句話,用算法來判斷是否表示了相同的語義。智能客服聊天機器人場景中,待客戶提出問題後,往往需要先計算客戶提出問題與知識庫問題的相似度,進而定位最相似問題,再對問題給出答案。本次比賽的題目便是問 > 題相似度算法設計。數據集經過脫敏處理,問題由數字標示 為保護用戶隱私並保證比賽的公平公正,所有原始文本信息都被編碼成單字ID序列和詞語ID序列。
  • 【深度學習】textCNN論文與原理——短文本分類(基於pytorch)
    前言前文已經介紹了TextCNN的基本原理,如果還不熟悉的建議看看原理:【深度學習】textCNN論文與原理[1]及一個簡單的基於pytorch的圖像分類案例:【深度學習】卷積神經網絡-圖片分類案例(pytorch實現)[2]。
  • 短文本相似度在金融智能客服中的應用 - 專注金融科技與創新 未央網
    短文本相似度,顧名思義是指長度較短文本(在中文中一般小於50個字符)的相似度計算,一般用於搜尋引擎、智能問答、知識檢索、信息流推薦等系統中的召回、排序等階段。1. 短文本相似度基本介紹短文本相似度的計算方式,最基本的分為無監督和有監督兩種方式。
  • 文本分類實戰--從TFIDF到深度學習CNN系列效果對比(附代碼)
    此外,還是用cnn卷積神經網絡實現了中文的文本分類,效果要優於上述算法。完整源碼(包括冠軍源碼) 獲取方式:關注微信公眾號 datayx  然後回復 文本分類 即可獲取。然後就可以訓練了,這裡使用隨機初始化的詞向量,讓其隨模型訓練,效果不錯,測試集精確度達到了82%以上,之後我還嘗試了一下使用char-cnn模型,但是效果不太好,根本就沒有辦法收斂,可能是參數選擇的不對或者訓練集太小了,但是到這比賽就結束了,我也沒有時間和機會去嘗試更所得模型和參數==5,冠軍的方法賽後,舉辦方請第一名的選手分享了方法和經驗,我發現他也是使用的卷積神經網絡,不過分詞的時候加入了詞性標註
  • 計算文本相似度常用的四種方法
    在這篇博文中,作者比較了各種計算句子相似度的方法,並了解它們是如何操作的。詞嵌入(word embeddings)已經在自然語言處理領域廣泛使用,它可以讓我們輕易地計算兩個詞語之間的語義相似性,或者找出與目標詞語最相似的詞語。然而,人們關注更多的是兩個句子或者短文之間的相似度。如果你對代碼感興趣,文中附有講解細節的Jupyter Notebook地址。以下是論智的編譯。
  • 基於Text-CNN模型的中文文本分類實戰
    word2ve工具,它是一種無監督的學習模型,可以在一個語料集上(不需要標記,主要思想是「具有相似鄰近詞分布的中心詞之之間具有一定的語義相似度」),實現詞彙信息到語義空間的映射,最終獲得一個詞向量模型(每個詞彙對應一個指定維度的數組)。
  • 【論文】文本相似度計算綜述
    文本相似度計算中還有一個重要的概念是文本表示,代表對文本的基本處理,目的是將半結構化或非結構化的文本轉化為計算機可讀形式。文本相似度計算方法的不同本質是文本表示方法不同文本相似度計算方法文本相似度計算方法文本相似度計算方法可分為四大類:基於字符串的方法該方法從字符串匹配度出發,以字符串共現和重複程度為相似度的衡量標準。
  • 使用gensim進行文本相似度計算
    評論和商品描述的相似度越高,說明評論的用語比較官方,不帶太多感情色彩,比較注重描述商品的屬性和特性,角度更客觀。再比如知乎、貼吧等問答社區內問題下面有很多回復者,如何快速過濾掉與問題無關的回答或者垃圾廣告??那麼Python 裡面有計算文本相似度的程序包嗎,恭喜你,不僅有,而且很好很強大。
  • 自然語言處理之文本相似度計算
    、英文還是標點符號,都是機器無法直接做計算的,需要先將文本轉化為可計算和比較的數學表示的形式。人們能想到最簡單的方式就是統計一句話有多少個詞;然後很自然的比較兩句話的相似程度就看它們有多少個詞一樣就好了;再比上兩個句子的總詞數,就能得到一個 0-1 之間的相似度了。這就是 Jaccard 相似度計算方法:僅從一個詞語是否出現的角度,進行數學表示,進而進行相似度計算顯然是沒有充分利用文本中的信息的。
  • Facebook基於機器學習的應用程式
    原文連結:http://aiehive.com/facebooks-human-like-learning-applications/研究人員越來越傾向用機器學習的方法來解決現實世界的問題
  • 深度學習應用於機器翻譯的魔力
    事實證明,在過去兩年中,深度學習完全改寫了我們的機器翻譯方法。對語言翻譯幾乎一無所知的深度學習研究人員正在將相對簡單的機器學習解決方案放在一起,這些解決方案擊敗了世界上最好的專家構建的語言翻譯系統。這一突破背後的技術稱為序列到序列學習。這是用於解決多種問題的非常強大的技術。
  • 超詳綜述 | 基於深度學習的命名實體識別
    序列標註標籤方案7. 四類NER常用方法8. 基於規則的NER方法9. 基於無監督學習的NER方法10. 基於特徵的有監督學習NER方法(傳統機器學習)11.其中 F1 值又可以分為 macro-averaged 和 micro-averaged,前者是按照不同實體類別計算 F1,然後取平均;後者是把所有識別結果合在一起,再計算 F1。這兩者的區別在於實體類別數目不均衡,因為通常語料集中類別數量分布不均衡,模型往往對於大類別的實體學習較好。2.
  • 漫談語義相似度
    常規的語義相似度架構語義相似度架構其實非常簡單,簡單地說就是兩個句子進去,進行特徵抽取,簡單到BOW、TF-IDF,複雜的就是bert(跳過word2vector、elmo???),然後進行相關性匹配計算,這塊也花樣繁多,簡單的就是餘弦相似、歐氏距離等,複雜的可以矩陣相乘等,最終到達標籤,完成一次語義相似度評估計算。OK,上圖:
  • CNN與RNN中文文本分類-基於TensorFlow 實現
    摘要:本文是基於TensorFlow在中文數據集上的簡化實現,使用了字符級CNN和RNN對中文文本進行分類,達到了較好的效果。
  • 深度學習:基於語境的文本分類弱監督學習
    深度學習:基於語境的文本分類弱監督學習 丁磊 發表於 2021-01-18 16:04:27 高成本的人工標籤使得弱監督學習備受關注。seed-driven 是弱監督學習中的一種常見模型。
  • 搜狐黨磊:深度學習在短文本分類中的應用
    2015年研究生畢業後加入搜狐視頻,曾負責短視頻推薦的召回模型、排序模型、短視頻播放質量評價體系、短視頻分類等項目,目前主要研究方向為將深度學習算法應用到視頻推薦系統中。正文大家下午好,我是來自搜狐視頻的黨磊,接下來為大家介紹深度學習在搜狐短視頻、短文本分類上的應用。我今天的分享主要包括項目需求、可選擇解決方案以及模型訓練部署三部分。
  • 基於CNN的中文文本分類算法(可應用於垃圾文本過濾、情感分析等場景)
    傳統機器學習的做法是先進行特徵工程,構建出特徵向量後,再將特徵向量輸入各種分類模型(貝葉斯、SVM、神經網絡等)進行分類。隨著深度學習的發展以及RNN、CNN的陸續出現,特徵向量的構建將會由網絡自動完成,因此我們只要將文本的向量表示輸入到網絡中就能夠完成自動完成特徵的構建與分類過程。就分類任務而言,CNN比RNN更為合適。
  • 深度學習—應用於機器視覺領域的卷積神經網絡(CNN)簡介
    深度學習通過模擬類似人腦的層次結構建立從低級信號到高層語義的映射,以實現數據的分級特徵表達,具有強大的視覺信息處理能力,因而, 在機器視覺領域,深度學習的代表--卷積神經網絡(Convolutional Neural Network, CNN)得以廣泛應用。
  • 一文講述常見的文本相似度計算方法
    在對語料進行預處理的時候,我們需要給予文本的相似度,把相似度高的重複主題過濾掉。總之,相似度是一種非常有用的工具,可以幫助我們解決很多問題。任務目標一般來說,是比較兩個物體(商品,文本)之間的相似度。這裡的相似度是一個抽象的值,它可以抽象成估計的百分比。在推薦工程中,計算相似度是為了給用戶推送一定量的物品。即把所有的相似度排序,然後選出最高的那幾個物品。
  • 基於深度學習的商品檢索技術
    目前就職於百度深度學習研究院。主要從事商品檢索技術的研發。所在的識圖策略組包括商品搜索、相似搜索、相同搜索與圖像猜詞等方向。摘要商品檢索是一門綜合了物體檢測、圖像分類以及特徵學習的技術。近期,很多研究者成功地將深度學習方法應用到這個領域。