聊聊文本的分散式表示: Distributional Representation和Distributed Representation的區別

一、文本表示

首先,我們先來看下什麼是文本表示。文本表示,也可以稱為語言表示,是對人類語言的一種描述或約定,是認知科學和人工智慧等多個領域共同存在的問題。在認知科學裡,語言表示是語言在人腦中的表現形式,關係到人類如何理解和產生語言(註:配圖就出自於今年很轟動的那篇大腦辭彙圖的論文)。在人工智慧里,語言表示是主要指用於語言的形式化或數學的描述,以便在計算機中表示語言,並能讓計算機程序自動處理。我們常說的詞向量就是向量的形式來表示一個詞。

語言具有一定的層次結構,並且可以劃分為不同的語言粒度(比如,詞、短語、句子、段落以及篇章)。這些不同的粒度文本都有相對應的表示。

二、文本分散式表示

說到文本的分散式表示,有一定NLP背景的人都會想到兩個不同英文術語。一個是Distributional Representation,另一個是Distributed Representation。這兩個術語都翻譯為分散式表示,因此很多人混淆。但是,這兩個術語的含義和出發點完全不一樣。

Distributional Representation是從分散式假設(即如果兩個詞的上下文相似,那麼這兩個詞也是相似的)的角度,利用共生矩陣來獲取詞的語義表示,可以看成是一類獲取詞表示的方法。這裡的「分布」帶有統計上分布的意思。我們可以構建一個大小為W×C的共現矩陣F,其中W是詞典大小,C是上下文數量。上下文的類型可以為相鄰詞、所在句子或所在的文檔等。共現矩陣的每一行可以看作對應詞的向量表示。基於共現矩陣,有很多方法來得到連續的詞表示,比如潛在語義分析模型(Latent Semantic Analysis, LSA)、潛在狄利克雷分配模型(Latent Dirichlet Allocation,LDA)、隨機索引(random indexing)等。

而Distributed Representation中的distributed 沒有統計上的「分布」含義,而是「分散」、「分配」的意思。一段文本的語義分散在一個低維空間的不同維度上,相當於將不同的文本分散到空間中不用的區域。Distributed Representation是文本的一種表示形式,具體為稠密、低維、連續的向量。向量的每一維都表示文本的某種潛在的語法或語義特徵。Distributed Representation翻譯為分散式表示可能理解起來會更明確些。

我經常會以下面這幅圍棋棋盤來說明是什麼是Distributed Representation。以詞為例,如果我們有100個詞,相當於100個棋子。如果用onehot方式來表示,我們需要建立100維的空間。但是現在,我們只需要建立一個二維的空間,在里劃分很多格子(格子數量大於100個),然後把這些棋子(詞)分散地放在不同的格子上。格子的坐標代表了相應的棋子(詞)的向量表示。這樣就相當於在兩維的空間中表示了100個棋子(詞)。

這裡需要強調一點的是,這種「分散式表示」只要在低維的空間中能夠區分出兩個詞的不同就夠了。不一定非得要求意義相近的詞距離也相近。因為上層的神經網路可以具有高度非線性,完全可以將原始的表示空間高度扭曲。所以,從Distributed Representation本身來講,我們不要給它附加太多的意義,比如要滿足man?woman ≈ king –nqueen之類的。Distributed Representation就是將文本分散在低維空間中的很多點上,只要這些點有一定區分性就夠了。說得極端一點,我們的詞向量都是隨機產生的稠密向量,這也是一種distributed表示,不需要有語義上解釋(比如分散式假設)。只要後續的模型足夠強大,一樣可以做的很好。

總之,Distributional Representation指的是一類獲取文本表示的方法,而Distributed Representation指的是文本表示的形式,就是低維、稠密的連續向量。

但這兩個並不對立。比如Skip-Gram、CBOW和glove等模型得到詞向量,即是Distributional Representation,又是Distributed Representation。

未完待續。

5月份以來做了幾個關於文本分散式表示的報告,一直想整理一篇比較系統文章,但是一直犯懶沒寫。今天興趣來先寫一部分佔個坑,以後逼著自己勤快些。

推薦閱讀:

理解樸素貝葉斯分類的拉普拉斯平滑
隱馬爾可夫模型的預測問題----維特比演算法
A Dataset for Research on Short-Text Conversation
PaperWeekly 第47期 | 開學啦!咱們來做完形填空:「訊飛杯」參賽歷程

TAG:深度学习DeepLearning | 自然语言处理 | 文本数据分析 |