基於典型相關分析的詞向量

2020-12-15 雷鋒網

雷鋒網 AI 研習社按:本文為 seaboat 為雷鋒網(公眾號:雷鋒網) AI 研習社撰寫的獨家稿件,未經雷鋒網許可不得轉載。

前言

在 NLP 領域中,為了能表示人類的語言符號,一般會把這些符號轉成一種數學向量形式以方便處理,我們把語言單詞嵌入到向量空間中就叫詞嵌入(word embedding)。

比如有比較流行的谷歌開源的 word2vec ,它能生成詞向量,通過該詞向量在一定程度上還可以用來度量詞與詞之間的相似性。word2vec採用的模型包含了連續詞袋模型(CBOW)和 Skip-Gram 模型,並通過神經網絡來訓練。

但這篇文章不深入講 word2vec 的內容,而是看看另外一種詞向量生成方式——基於典型相關分析的詞向量。

one-hot形式的詞向量

說到詞向量就必須先看詞向量的形式,一般有兩類,分別是 one-hot 形式和分布式形式。前面我們說過詞向量就是用來表示人類語言的一種數學化的方式,最簡單的向量方式即是 one-hot 形式。

它的處理方式簡單粗暴,一般就是統計詞庫包含的所有V個詞,然後將這V個詞固定好順序,然後每個詞就可以用一個V維的稀疏向量來表示,向量中只有在該詞出現的位置的元素才為1,其它元素全為0。比如下面這幾個詞,第一個元素為1的表示中國,第六個元素為1的表示美國,第五個元素為1的表示日本。

從中可以看到 one-hot 形式的維數通常會很大,因為詞數量一般在10W級別,這會導致訓練時難度大大增加,造成維數災難。另外這麼多維只以順序信息並且只用1和0來表示單詞,很浪費空間。再一個是這種方式的任意兩個詞都是孤立的,沒法看出兩個詞之間的相似性。於是看看有沒有改進的方法。

分布式詞向量

鑑於 one-hot 形式詞向量的缺點,出現了另外一種詞向量表示方式——分布式詞向量(distributed word representation)。 分布式詞向量則乾脆直接用普通的向量來表示詞向量,而元素的值為任意實數,該向量的維數可以在事前確定,一般可以為50維或100維。這時的詞向量類似如下(這裡假設用5維來表示):

其中每個元素的具體數值則由訓練來確定。這樣一來就克服了在深度學習中可能的維度災難,而且充分利用了空間,如果使用適當的訓練方法訓練出來的詞向量還可以直接根據兩個詞之間的距離來計算相似性。

典型相關分析

典型相關分析主要用於分析兩組變量之間的關係,通過該方法能有效分析相關關係。

傳統簡單的分析方式是直接用協方差矩陣,比如我們有兩組變量,那麼最原始的方法就是直接計算X和Y的協方差矩陣,矩陣有m*n個值。有了協方差矩陣就得到了兩兩變量之間的相關性,比如就是變量的相關性。但這種方式存在缺點,只考慮了變量之間單個維度之間的相關性,於是可採用經典相關分析改進。

經典相關分析是分別在兩組變量中找出第一對線性組合,使他們具有最大相關性;接著再分別在兩組變量中找出第二對線性組合,使他們具有第二大的相關性,並且它們分別與本組內的第一線性組合不相關。以此類推找出其他線性組合。

該方法的思想與主成分分析的思想相似,而其本質就是從兩組變量中選取若干個有代表性的變量線性組合,用這些線性組合的相關性來表示原來兩組變量的相關性。

核心思想

基於典型相關分析的詞向量的核心思想,它認為一段文字中某個詞的左右兩邊指定長度的窗口內的詞組應該具有關聯,也就是說某個詞的左邊若干單詞組成上文,右邊若干單詞組成下文,從而應該讓上下文的關係儘可能緊密。如圖,假設窗口大小為2,則 w4 的左右兩窗口包含的詞組為上下文,類似的 w5 也有對應的上下文,每個詞都有一個對應的詞向量,那麼要做的事就是最大化上下文兩個矩陣的協方差。

模型訓練

假設我們的語料包含了 n 個單詞,表示為{w1,w2,…wn},我們的詞典大小為 v,窗口大小為 h,再設詞向量的維度為 k。單詞左右兩邊的上下文組成的矩陣我們分別定義為, 和 ,而整個語料的矩陣定義為

現在我們要做的就是找出兩個分別能最好代表左邊窗口的矩陣 L 和右邊窗口矩陣 R 的方向,這兩個方向應該使得這兩個矩陣分別在對應方向上的投影的協方差最大,投影可以看成是在這兩個方向保留了兩個窗口矩陣的最具代表性的信息。於是最大化目標可以表示為

其中 E 表示經驗期望,另外我們用 表示矩陣 L 和矩陣 R 的協方差矩陣,用  表示矩陣 L 和矩陣 L 之間的協方差矩陣,用表示矩陣 R 和矩陣 R 之間的協方差矩陣,則有 

通過轉換,上述最大化目標的解可以由下面等式給出,

解上述方程,分別取得 k 個最大特徵值的特徵向量,組成左右窗口兩個方向向量,它們的結構為(vh × k)。然後將左窗口矩陣 L 和右窗口矩陣 R 分別投影到兩個方向向量上,即,得到單詞對應的隱狀態 S 矩陣,S 則是用 k 個最相關的成分來表示單詞。最後再對 S 和語料矩陣 W 做典型相關分析,即 CCA(S,W),得到最終的詞向量嵌入矩陣,結構為(v × k),此即為用 k 維向量表示原來的 v 個單詞,實現詞嵌入。

雷鋒網特約稿件,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 典型相關分析
    當同時研究兩個變量組X和Y之間關係時候,不僅要考慮單個Xi和Yj之間的相關,也要考慮X和Y變量組內各個變量間的相關性,針對此類問題,Hotelling於1936年在主成分分析和因子分析的基礎上提出典型相關分析(Canonical Correlation Analysis, CCA)方法[2]。
  • 關於詞向量工作原理的理解
    在知乎網站上看到一個關於詞向量的問題:詞向量(Distributed Representation)工作原理是什麼,哪位大咖能否舉個通俗的例子說明一下
  • 保險業發展與政府財政互動關係——基於典型相關分析
    摘要:本文根據我國不同地區的保險業發展與政府財政收支的截面數據,利用典型相關分析方法對保險業發展水平與政府財政結構展開相關性研究,對政府財政與保險業相互影響進行定量分析。
  • 詞向量的訓練
    文本表示的方法基於one-hot、tf-idf 的bag-of-words;主題模型:LSA(SVD)、pLSA、LDA;基於詞向量的固定表徵:word2vec、fastText、glove基於詞向量的動態表徵:elmo、GPT、bert各種詞向量的特點詞向量的訓練
  • 除了簡單相關分析,我還會典型相關分析
    言歸正傳,接下來帶你學習典型相關分析和SPSS的操作。理論介紹:在一元統計分析中,研究兩個隨機變量之間的線性相關關係,可以用簡單相關係數;研究一個隨機變量與多個隨機變量之間的線性相關關係,可用復相關係數。但如果要研究兩組變量的相關關係時,這些統計方法就無能為力了。
  • 深度學習筆記 | 第13講:word2vec詞向量
    本節小編將繼續和大家一起學習基於神經網絡模型的詞向量表徵方法,其中的代表模型就是著名的 word2vec。所以,基於監督學習的思想,本文的主角——word2vec 便是一種基於神經網絡訓練的自然語言模型。
  • 賽爾原創 | 基於連通圖的篇章級事件抽取與相關度計算
    摘要:事件抽取及基於此的事件相關度計算在自然語言處理領域有著非常廣泛的應用前景。
  • 情感分析的新方法基於Word2Vec/Doc2Vec/Python
    然而,即使上述模型對詞向量進行平均處理,我們仍然忽略了單詞之間的排列順序對情感分析的影響。作為一個處理可變長度文本的總結性方法,Quoc Le 和 Tomas Mikolov 提出了 Doc2Vec方法。除了增加一個段落向量以外,這個方法幾乎等同於 Word2Vec。
  • 【CS224N筆記】詞向量和詞義
    使用c和o的詞向量相似性來計算給定c和o的概率    1. U的每一行都是一個單詞的詞向量,點乘之後通過softmax可以得到概率分布,從而得到上下文分布。但是該分布和你在上下文哪個位置是無關的,    2.
  • 【Hello NLP】CS224n學習筆記[3]:共現矩陣、SVD與GloVe詞向量
    基於共現矩陣的詞向量我們再回顧一下Word2Vec的思想:讓相鄰的詞的向量表示相似。我們實際上還有一種更加簡單的思路——使用「詞語共現性」,來構建詞向量,也可以達到這樣的目的。即,我們直接統計哪些詞是經常一起出現的,那麼這些詞肯定就是相似的。
  • 文本深度表示模型——word2vec&doc2vec詞向量模型
    此外,這種表示方法還容易發生維數災難,尤其是在Deep Learning相關的一些應用中。  Word2vec輸出的詞向量可以被用來做很多 NLP 相關的工作,比如聚類、找同義詞、詞性分析等等。如果換個思路, 把詞當做特徵,那麼Word2vec就可以把特徵映射到 K 維向量空間,可以為文本數據尋求更加深層次的特徵表示 。
  • 文本深度表示模型—word2vec&doc2vec詞向量模型
    Distributed representation 最大的貢獻就是讓相關或者相似的詞,在距離上更接近了(看到這裡大家有沒有想到普通hash以及simhash的區別呢?有興趣的同學請見博客《[Algorithm] 使用SimHash進行海量文本去重》)。向量的距離可以用最傳統的歐氏距離來衡量,也可以用 cos 夾角來衡量。
  • 第五講 典型相關分析——數據結果分析(一)
    在Syntax窗口中,先選擇改程序,然後點擊如圖1中紅色橢圓標識的三角形按鈕(Run Current),典型相關分析即可運行,並會輸出結果(如圖2所示)。    需要注意的是,典型相關分析的輸出結果並不是我們常見的表格形式輸出。一般是以文本的形式輸出的,需要我們對數據結果進行重新整理和分析。
  • 第五講 典型相關分析——案例介紹
    但是由於已有研究在對二者之間關係的分析中採用了簡單相關分析的方法,只能解釋擇業價值觀和求職效能感各維度之間的兩兩相關,其不能有效揭示二者之間的整體關係。正是因為如此,為了揭示變量之間的整體關係,研究者應用了典型相關分析技術,試圖分析擇業價值觀與求職效能感之間的整體關係。
  • 基於用戶畫像與新聞詞向量的個性化新聞推薦模型
    摘要:目前,由於用戶行為數據的高維稀疏特點以及衡量新聞內容相似性的複雜度較高,本文針對這兩個問題,從分類角度考慮,提出一種基於用戶畫像與新聞詞向量的個性化新聞推薦模型,對用戶的行為數據等進行分析,構建用戶畫像模型,提取用戶畫像特徵,並使用指數衰減模型的Word2Vec框架進行詞向量訓練,結合文本特徵的向量空間模型構建新聞全局特徵
  • MOE:抗拼寫錯誤的詞向量
    字幕組雙語原文:抗拼寫錯誤的詞向量英語原文:New Model for Word Embeddings which are Resilient to Misspellings (MOE)翻譯:雷鋒字幕組(wiige)傳統的詞嵌入擅長處理大部分自然語言處理(NLP)領域的下遊問題,比如文檔分類和命名實體識別(NER)。
  • 大數據分析中的向量表示方法
    去年,我在編寫《網際網路大數據處理技術與應用》一書時也意識到向量在大數據分析挖掘中的重要性,書中也特意圍繞著向量的相關處理方法展開。本文就圍繞向量(Vector)來闡述相關研究及其發展,也算是對本書的一個導讀吧。
  • 中文情感分析之TextCNN
    情感分析在工業領域有著廣泛的應用場景。例如,電商網站根據商品評論數據提取評論標籤,調整評論顯示順序;影評網站根據電影評論來評估電影口碑,預測電影是否賣座;外賣網站根據菜品口味、送達時間、菜品豐富度等用戶情感指數來改進外賣服務等。情感分析應用場景情感分析方法情感分析方法可以分為兩大類:一是基於情感詞典的方法,一是基於機器學習算法的方法。
  • 基於PaddlePaddle的詞向量實戰 | 深度學習基礎任務教程系列
    所以,僅僅給定兩個詞,不足以讓我們準確判別它們是否相關。要想精確計算相關性,我們還需要更多的信息——從大量數據裡通過機器學習方法歸納出來的知識。基於具體的應用場景,每一項可以是一個字母、單詞或者音節。N-gram 模型也是統計語言模型中的一種重要方法,用 N-gram 訓練語言模型時,一般用每個 N-gram 的歷史 n-1 個詞語組成的內容來預測第 n 個詞。
  • NLP、KG相關軟體、工具、資源匯總
    其內核為基於BERT的聯合模型,其在13個語料庫中進行訓練,可處理中文分詞、詞性標註、依存分析、命名實體識別四項任務。TextBlob(https://github.com/sloria/TextBlob)基於NLTK和pattern構建的文本處理庫,可以處理詞性標註、名詞短語抽取、情感分析、文本分類、翻譯等任務