度量學習筆記(一) | Metric Learning for text categorization

2021-01-10 人工智慧遇見磐創

作者| Walker

編輯| 安可

出品| 磐創AI技術團隊

目前,機器學習中的K近鄰(KNN)分類算法和支持向量機(SVM)算法被認為是處理文本分類的最好方法。但KNN分類算法有以下的缺陷:

KNN是基於近鄰度量的一種模式分類算法,它高度依賴於數據間的相似度度量,簡單的歐式距離在實際應用時,由於不考慮不同維度之間對分類的影響以及輸入數據數據維數高的問題,往往不能取得良好的分類效果。

KNN 分類算法雖然可以一定情況下克服數據偏斜帶來的分類誤差,但是這也是造成它對樣本密度分布敏感的主要原因,當類間密度高度分布不均時,分類效果會有較大的影響。

解決方案:要想提高KNN文本分類的準確率,首先要解決的是距離度量的問題,於是我們就要用到距離度量算法,其中的大邊界最近鄰算法(Large Margin Nearest Neighbor, LMNN)是一類專門改進K 近鄰分類算法的距離度量算法。

那麼什麼是度量學習呢?度量學習(Metric Learning) 是人臉識別中常用的傳統機器學習方法,由Eric Xing在NIPS 2002提出,可以分為兩種:一種是通過線性變換的度量學習,另一種是通過非線性變化的度量。其基本原理是根據不同的任務來自主學習出針對某個特定任務的度量距離函數。後來度量學習又被遷移至文本分類領域,尤其是針對高維數據的文本處理,度量學習有很好的分類效果。

LMNN是最常使用的一種度量學習算法,其可以通過對訓練集學習來得到一種原始數據的新度量,這種方法可以在一定程度上對原始數據分布進行重構,得到一個更加合理的數據分類空間。其次,要解決的就是樣本密度分布不均的問題,在應用LMNN 算法時我們注意到可能會加劇樣本的密度分布不均衡,我們通常採用裁剪或是填充的方案。

大邊界最近鄰算法(LMNN)是用於度量學習的統計機器學習算法。它學習了為k近鄰分類設計的偽測量,是以監督方式學習該全局(偽)度量的算法,以提高k最近鄰規則的分類準確性。該算法基於半定規劃,是凸優化的子類。LMNN背後的主要直覺是學習偽測量,在該偽測量下,訓練集中的所有數據實例被至少k個共享相同類標籤的實例包圍,該算法學習該類型的偽測量:

矩陣M 需要是正半正定的。歐幾裡德度量是一個特例,其中M是單位矩陣。這種概括通常被稱為Mahalanobis度量。

LMNN樣本訓練前後的示意圖如下所示:

基於LMNN 算法的文本分類:文本分類首先要對文本進行特徵提取將待測試文本和訓練文本表示成向量空間模型(Vector Space Model, VSM),定義

表示訓練文本集合,

為類別集合,其中

表示第i篇文章,di表示文本向量的第i維,此處採用IG算法作為特徵提權算法,然後採用LMNN方法對訓練數據集進行重構,最後使用K 近鄰分類器來實現文本分類,評價標準使用F1值和查準率、查全率。

算法流程:

(1)首先,對中文文本文本進行分詞、去停用詞等預處理。

(2)對文本進行特徵選擇,本文選用了IG 這種常用的的特徵提取算法來對文本進行特徵提取。

(3)構造向量空間模型(Vector SpaceModel,VSM),本文所採用的是經典TF*IDF 法。

(4)對訓練樣本以歐氏距離用留一法計算出訓練集中每個數據點的先驗知識K近鄰,並做好標籤,設定此K 值為Kp 。

(5)利用LMNN 算法對訓練集進行學習,求出映射矩陣L。

(6)對訓練樣本和測試樣本分別作映射。

(7)跟據上一節中所提出的基於LMNN 的文本分類算法對測試集進行分類。

此外,在LMNN的基礎上,又有人提出了基於密度加權的LMNN 分類算法(DLMNNC):這是因為在將LMNN 算法與KNN 結合時由於LMNN 算法的特點在很大程度上可能會增加樣本密度分布不均勻,在應用於文本分類仍然會有較大的誤差。

針對此,我們又提出了基於密度加權的K 近鄰分類算法和LMNN 文本分類算法相結合,稱之為DLMNNC 算法.可以一定程度上解決上述由於LMNN 的引入所造成的密度分布更加不均勻問題。例如某網站中娛樂類新聞明顯要比歷史類新聞要多的多,這就有可能造成經特徵提取後的數據點在某種度量意義下密度分布不均衡,特別地在應用LMNN算法來對樣本點進行距離度量學習時:

描述了了在目標樣本i x 在其K 個近鄰中噪聲點(impostor)的標準,並且以此定義非等價約束條件,對近鄰中的異類點有一個推力作用,使其在馬氏距離度量意義下遠離目標樣本。

密度公式:

其中,i x 為j x 的K 近鄰點,(,) Dx c i i 表示K 近鄰中類標籤為i y 向量的密度,K 為最近鄰數,i n 為類標籤為i y 的K 近鄰中向量個數,K近鄰決策公式表示為:

基於餘弦的距離度量學習(CS-LMNN)算法:對於文本數據餘弦距離度量要比歐式距離度量要好一些,這主要因為:對於不同向量,方向性要比數值更加重要,而傳統的歐氏距離度量標準只對數值敏感,並沒有利用向量之間的方向性。而餘弦相似度和歐式距離度量相比較,更加注重兩個向量在方向上的差異,而非距離或長度。

根據類標籤相同的點應儘量相近,類標籤不同的點應儘量遠離這兩個條件我們提出了一種新的基於餘弦的距離度量學習算法,稱之為CS-LMNN 算法。該算法和LMNN 算法類似,也需要訓練集的K 近鄰先驗知識同樣以Kp表示,它根據餘弦夾角的性質,即任意夾角的餘弦值不可能大於1,這一條件來構造非等價性約束,然後,在最優化表達式中,通過最小化近鄰同類標籤樣本的餘弦距離來構造等價性條件。最終,將兩條件改寫為一個最優化問題進行求解。具體算法流程如下:首先,定義餘弦距離度量,在訓練集D中任意兩點,i j x x 間的餘弦距離度量表達式:

目標樣本i x 具有類標籤i c 在其K 近鄰點中有l x 類標籤為l c ,定義噪聲點為對任意目標樣本i x 有l i c c ≠,滿足:

損失函數:

基於餘弦距離度量(CS-LMNN)的文本分類算法的具體流程如下:

PFLMNN:Parameter Free Large Margin Nearest Neighbor for DistanceMetric Learning:PFLMNN(無參數大邊界最近鄰)是一種新的度量學習算法,不同於LMMN將目標鄰居拉到一起,同時將冒名頂替者推開,我們的方法只考慮將冒名頂替者推出鄰居的行為。這種方式與LMNN相比,我們簡化了我們的優化問題的任務。

為了提高k個最近鄰之間的距離和查詢的能力,PFLMN是一種利用LMNN忽略的冒名者之間的幾何信息推送冒名者的新方法。簡而言之,僅考慮每個查詢的最近活動冒名頂替者。根據距離度量,當最近的冒名頂替者不在附近時,所有其他冒名頂替者都不在。通過這種方式,減少了由冒名頂替者顯示的需要被推動的約束,使得所提出的模型在不削弱其約束能力的情況下將更加簡單。

因此,與LMNN相比,PFLMNN模型更容易被優化。此外,由於模型只包含一個項,因此不需要調整成本函數中的參數,使得該方法更便於使用。我們比較一下LMNN與PFLMNN的異同,LMNN是k=3鄰域在小半徑內被拉在一起,而具有不同標記的輸入被從小半徑內拉出有限邊距。

LMNN原理圖
PFLMNN原理圖

如圖所示,與LMNN不同的是,PFLMNN只採取拉不同標記輸入的動作。以有限的餘量從小半徑中拉出來,這樣模型更加簡單,易被優化。

相關焦點

  • 近13年來在 deep metric learning 領域的進展實際並不存在?
    Facebook AI 和 Cornell Tech 的研究人員近期發表研究論文預覽文稿,聲稱近十三年 (deep) metric learning 領域的研究進展(ArcFace, SoftTriple, CosFace 等十種算法) 和十三年前的基線方法(Contrastive, Triplet) 比較並無實質提高。真是這樣的嗎?
  • 用正確方法對度量學習算法進行基準測試
    但是在基準度量學習論文中並非如此:1.網絡架構並沒有保持不變。有些論文用 GoogleNet,而最近的許多論文都在使用 BN-Inception,有時被稱為 batch 標準化的開端「Inception with Batch Normalization」。2017 年一篇被廣泛引用的論文使用 ResNet50,然後聲稱獲得了巨大的性能提升。
  • Facebook 爆錘深度度量學習:該領域13年來並無進展!網友:滄海橫流...
    作者 | 蔣寶尚編輯 | 賈偉近日,Facebook AI 和 Cornell Tech 的研究人員近期發表研究論文預覽文稿,聲稱近十三年深度度量學習(deep metric換句話說損失函數在度量學習中起到了非常重要的作用。很多深度度量學習的損失函數構建在樣本對( pair ) 或者樣本三元組 ( triplet ) 之上。隨著深度學習在眾多領域出色表現,逐漸這種方法對度量學習產生了影響,於是度量學習將深度學習方法結合了起來,產生了一個新的領域,即深度度量學習。
  • 小樣本學習(Few-shot Learning)綜述
    本文先介紹Few-shot Learning定義;由於最近幾年Few-shot Learning在圖像領域的進展領先於在自然語言處理領域,所以第二部分結合其在圖像處理領域的研究進展,詳細介紹Few-shot Learning的三類典型方法及每種方法的代表性模型;接下來介紹在自然語言處理領域的研究進展以及我們對 metric-based 的方法進行系統總結後提出的 few-shot learning
  • 吳恩達deeplearning.ai五項課程完整筆記了解一下?
    自吳恩達發布 deeplearning.ai 課程以來,很多學習者陸續完成了所有專項課程並精心製作了課程筆記,在此過程中機器之心也一直在為讀者推薦優質的筆記。上個月,deep learning.ai 第五課發布,該系列課程最終結課。Mahmoud Badry 在 GitHub 上開源了五項課程的完整筆記,介紹了包括序列模型在內的詳細知識點。
  • ​大牛的《深度學習》筆記,Deep Learning速成教程
    例如,單詞集合和句子的對應是多對一的,句子和語義的對應又是多對一的,語義和意圖的對應還是多對一的,這是個層級體系。敏感的人注意到關鍵詞了:分層。而Deep learning的deep是不是就表示我存在多少層,也就是多深呢?沒錯。那Deep learning是如何借鑑這個過程的呢?畢竟是歸於計算機來處理,面對的一個問題就是怎麼對這個過程建模?
  • 【機器學習基礎】常見二分類損失函數、距離度量的 Python 實現
    import numpy as np1.歐氏距離(Euclidean distance) 歐幾裡得度量(euclidean metric)(也稱歐氏距離)是一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。
  • 【機器學習基礎】常見二分類損失函數、距離度量的Python實現
    import numpy as np1.歐氏距離(Euclidean distance) 歐幾裡得度量(euclidean metric)(也稱歐氏距離)是一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。
  • 相似度距離度量公式
    常用的相似度度量距離有:歐幾裡得距離、餘弦相似度距離、曼哈頓距離、閔可夫斯基距離、切比雪夫距離、Jaccard相似係數、皮爾森相關係數。
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。
  • 深度學習筆記8:利用Tensorflow搭建神經網絡
    作者:魯偉 一個數據科學踐行者的學習日記。
  • R相關與回歸學習筆記(三十五)——樣條函數變換、線性可加模型(一)
    (一)——相關分析R相關與回歸學習筆記(二)——相關與因果、相關係數大小、相關係數的檢驗R相關與回歸學習筆記(三)——相關陣、一元回歸分析R相關與回歸學習筆記(五)——回歸有效性R相關與回歸學習筆記(六)——R程序R相關與回歸學習筆記(七)——回歸診斷(一)R相關與回歸學習筆記(七)——回歸診斷(二)
  • 用Numpy手寫各種距離度量
    本文用Numpy實現了常見的幾種距離度量。
  • 302頁吳恩達Deeplearning.ai課程筆記,詳記基礎知識與作業代碼
    原標題:302頁吳恩達Deeplearning.ai課程筆記,詳記基礎知識與作業代碼 機器之心整理 作者:Wan近日,來自重慶大學的 Wan Zhen 製作了一份深度學習專項課程筆記,該筆記從神經網絡與深度學習基礎、提升深度神經網絡性能和卷積神經網絡三門課程出發詳細解釋了關鍵概念與作業代碼。本文概括性地介紹了這三課的主要內容,並選擇每個課程主題比較有意思的知識點進行介紹。
  • 與模型無關的元學習,UC Berkeley提出一種可推廣到各類任務的元...
    人們正在開發多種技術來解決此類問題,我將在本文中對其進行概述,同時也將介紹我們實驗室開發的最新技術「與模型無關的元學習」(model-agnostic meta-learning)。元學習方法通常屬於下面三個範疇中的一個:循環模型(recurrent model)、度量學習(metric learning)和學習優化器(learning optimizer)。 循環模型 這種元學習方法訓練一個循環模型(即 LSTM),模型從數據集中獲取序列輸入,然後處理任務中新的輸入。
  • Go語言學習筆記之字符串一
    這裡列舉一些 Go 語言的特點: 簡化問題,易於學習 內存管理,簡潔語法,易於使用 快速編譯,高效開發 高效執行 並發支持,輕鬆駕馭, 靜態類型 標準類庫,規範統一 易於部署 文檔全面 免費開源學習go語言有幾天了,今天突然想到把學的寫成筆記,記錄一下。如有不正確的請指教。
  • CFA二級思維導圖分享:機器學習(Machine Learning)
    CFA二級思維導圖分享:機器學習(machine learning)Reading7主要了解機器學習的一些常見概念,主要分類、了解常用算法的原理及其用途。監督學習和非監督學習的主要區別在於訓練樣本是否已經標定了結果,。打個簡單的類比來說,監督學習就是給你一堆習題,這些習題是有標準答案的,學習(算法)完之後給一張考卷,測驗考試成績。
  • 潛圖學習:流形學習新視角
    DGM提供了學習圖形的優勢,這可能傳達了對於特定診斷任務某些功能如何相互依賴的見解。作為獎勵,DGM在點雲分類遊戲中也擊敗了動圖CNN,儘管只是稍有下降。動圖CNN和DGM在概念上與稱為流形學習或非線性降維的一系列算法相似,這些算法在我2000年代當學生時在機器學習中非常流行,並且仍用於數據可視化。多種學習方法的基礎假設是具有固有的低維結構的數據。
  • 電子郵件分類的最佳機器學習算法
    中國郵箱網訊 11月3日消息 電子郵件分類是一個機器學習問題,屬於監督學習範疇。這個電子郵件分類的小項目的靈感來自J.K.Rowling以筆名出版的一本書。Udacity的「機器學習簡介」提供了算法和項目的全面研究:https://www.udacity.com/course/intro-to-machine-learning--ud120幾年前,羅琳寫了一本書《布穀鳥的呼喚》,作者名是羅伯特·加爾布雷思。這本書受到了一些好評,但是沒有人關注它,直到Twitter上的一位匿名線人說這是J.K.羅琳。