目錄
- 人類(lèi)語(yǔ)言和詞語(yǔ)含義
- 詞向量
- Word2Vec語(yǔ)言模型介紹
- 優(yōu)化方法:梯度下降法
人類(lèi)語(yǔ)言和詞語(yǔ)含義
1.如何表示一個(gè)詞
定義詞語(yǔ)的meaning:
- 用單詞夕吻、詞組表示概念
- 用單詞、符號(hào)表達(dá)觀點(diǎn)
- 通過(guò)寫(xiě)作揪胃、藝術(shù)表達(dá)內(nèi)容
...
最具一般性的解釋是(denotational semantics用語(yǔ)言符號(hào)對(duì)語(yǔ)義進(jìn)行轉(zhuǎn)化):
signifier(symbol)?signified(idea or thing)
2.如何在計(jì)算機(jī)中使用語(yǔ)義
-
WordNet
WordNet是一個(gè)詞庫(kù)斥赋,包含了單詞的同義詞和上位詞缰猴,是一種詞語(yǔ)間關(guān)系的描述,例如:
“good”的同義詞:
“panda”的上位詞(上位詞是指概念上更廣的主題詞疤剑,比如熊貓的上位詞有哺乳動(dòng)物等):
然而這種表示存在一些問(wèn)題:
1. 詞庫(kù)追求全面洛波,但是有的詞語(yǔ)之間作為同義詞只是在特定場(chǎng)景下
2. 缺少新興詞匯、網(wǎng)絡(luò)詞匯
3. 如果添加新詞匯骚露,需要大量人工去不斷調(diào)整
4. 比較主觀(缺少客觀性)
5. 難以計(jì)算詞語(yǔ)間的語(yǔ)義相似度
- 將單詞表示為離散符號(hào)
在傳統(tǒng)的NLP中蹬挤,我們將單詞視作離散的符號(hào),也就是one-hot表示棘幸,這樣可以將單詞表示成向量的形式焰扳,這在NLP中是非常基礎(chǔ)和常用的表示形式误续,例如:
motel = [0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]
hotel = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]
我們首先建立一個(gè)詞典吨悍,詞典中的單詞通過(guò)占1位的向量來(lái)表示,所有單詞的向量維度是一樣的蹋嵌,這個(gè)維度就是字典中單詞的個(gè)數(shù)育瓜。這樣做可以將單詞離散表示,便于編程處理栽烂,但是有個(gè)很大的問(wèn)題是沒(méi)有辦法表示單詞的語(yǔ)義躏仇,比如motel和hotel是近義詞恋脚,然而很難計(jì)算二者的語(yǔ)義相似度(兩個(gè)向量正交,而且one-hot表示也天然不具備相似度的概念)焰手。 - 基于上下文的單詞表示
這里引入一個(gè)概念糟描,分布語(yǔ)義(Distributional semantics):一個(gè)單詞的含義由經(jīng)常出現(xiàn)在附近的單詞給出。
- “You shall know a word by the company it keeps” (J. R. Firth 1957: 11)
- 這是現(xiàn)代統(tǒng)計(jì)NLP領(lǐng)域中最成功的方法之一
這是什么意思呢书妻?就是說(shuō)一個(gè)單詞w出現(xiàn)在文本中船响,它的上下文是指它的臨近詞組成的集合。我們可以根據(jù)w的多個(gè)上下文來(lái)構(gòu)建其表示方式躲履。這也就是接下來(lái)要說(shuō)的重點(diǎn)见间,詞向量。
詞向量
詞向量是通過(guò)單詞的上下文環(huán)境構(gòu)建的一個(gè)稠密向量工猜,具有相似上下文環(huán)境的單詞具有相似性缤剧。詞向量(Word Vector)也經(jīng)常被稱(chēng)作Word Embeddings或是Word Representations,總之都是一個(gè)意思域慷,也可以被稱(chēng)作分布式表示(distributed representation)荒辕。
詞向量相比One-hot,具有兩個(gè)優(yōu)點(diǎn):①詞向量是更加稠密的向量犹褒,維度也相對(duì)更低抵窒,信息密集且浪費(fèi)的空間比較少;②由于是通過(guò)上下文環(huán)境的構(gòu)建叠骑,相似的單詞具有相似的上下文環(huán)境李皇,因此可以將相似度進(jìn)行量化(比如可以用向量?jī)?nèi)積的方式)。接下來(lái)我們看一下如何構(gòu)建詞向量宙枷。
- 概覽
Word2Vec(Mikolov et al. 2013)是一個(gè)經(jīng)典的掉房、可學(xué)習(xí)的詞向量框架。它基本的ideas是:
龐大的文本語(yǔ)料庫(kù)需要處理
詞表中的每一個(gè)單詞通過(guò)一個(gè)向量表示
文本中的每一個(gè)位置t慰丛,都有一個(gè)中心詞c卓囚,和一個(gè)上下文環(huán)境(outside)o
通過(guò)使用o和c的詞向量相似度,來(lái)計(jì)算給定o時(shí)诅病,求c的概率(或者相反)P(c|o)
詞向量應(yīng)當(dāng)是可學(xué)習(xí)的哪亿,這樣就可以通過(guò)調(diào)整o和c來(lái)最大化概率P
這里舉個(gè)栗子,用中心詞來(lái)計(jì)算上下文的概率P(Wt+j|Wt)贤笆,這里的上下文用滑動(dòng)窗口表示蝇棉,Window size=2。我們通過(guò)最大化每一個(gè)位置和它上下文的條件概率芥永,就可以得到每個(gè)單詞的最佳的詞向量篡殷,詞向量的模型就是這樣的。
- 目標(biāo)函數(shù)
那么如何對(duì)模型進(jìn)行求解呢埋涧?這里用到了極大似然的概念板辽。對(duì)于每一個(gè)位置t=1..T奇瘦,給定中心詞Wj,預(yù)測(cè)一個(gè)固定尺寸為m的窗口的上下文戳气,求這個(gè)概率的極大似然估計(jì):
其中,θ是所有的可學(xué)習(xí)的參數(shù)巧鸭,這樣我們就可以定義一個(gè)目標(biāo)函數(shù)J(θ)了:
我們最小化目標(biāo)函數(shù)瓶您,也就是最大化概率的似然估計(jì),將問(wèn)題轉(zhuǎn)換成了一個(gè)最優(yōu)化的問(wèn)題纲仍。如何計(jì)算這個(gè)目標(biāo)函數(shù)呢呀袱?重點(diǎn)在于w和P的表示形式。原文使用兩個(gè)矩陣來(lái)分別表示每一個(gè)單詞w處于兩種情景時(shí):
vw表示w是中心詞時(shí)的向量
uw表示w是外部詞時(shí)的向量
那么概率P可以表示為:
很明顯郑叠,這里的概率公式就是Softmax函數(shù)夜赵,這是一個(gè)很經(jīng)典的函數(shù)(參考)。在這里我們使用它是因?yàn)榭梢院芎玫谋磉_(dá)概率計(jì)算乡革。uTv可以看做是計(jì)算uv向量的相似度寇僧,越大的相似度代表了越大的概率,exp()函數(shù)可以保證相似度計(jì)算的值是整數(shù)沸版,分母是求和當(dāng)前中心詞關(guān)于整個(gè)詞表的概率計(jì)算嘁傀,具有歸一性。
這里有一個(gè)問(wèn)題是為什么越大的相似度代表了越大的概率视粮,按理說(shuō)越大的相似度不是代表了兩個(gè)詞語(yǔ)義上越相近嗎细办,相鄰詞匯未必是相近的,為什么這里是最大化相似度蕾殴?我的理解是這樣的:詞向量是通過(guò)外部詞的概率和計(jì)算的而來(lái)的笑撞,對(duì)于每一個(gè)樣本來(lái)說(shuō),我們是在計(jì)算每一個(gè)中心詞和一組外部詞的似然估計(jì)钓觉,通過(guò)對(duì)目標(biāo)函數(shù)的優(yōu)化茴肥,結(jié)果是一組外部詞和中心詞的相似度之和應(yīng)當(dāng)是最大的(而不是外部詞中的一個(gè)相似度最大化),這也符合我們最初的定義:即通過(guò)上下文信息表征詞向量荡灾。
優(yōu)化方法:梯度下降法
有了模型炉爆,有了算法,那么接下來(lái)就是求最優(yōu)化過(guò)程了卧晓。這里介紹的是最基礎(chǔ)的梯度下降法芬首。對(duì)于詞向量模型而言,θ表示了模型的所有參數(shù)(即我們的U和V矩陣)逼裆,我們可以把θ表示成一個(gè)向量:
每一個(gè)單詞都有兩個(gè)向量郁稍,我們沿著梯度下降的方法,來(lái)優(yōu)化這些參數(shù)胜宇。
上述就是求導(dǎo)過(guò)程耀怜,可以看到恢着,對(duì)于第一個(gè)偏導(dǎo),第一項(xiàng)uo可以看做是實(shí)際外部詞财破,第二項(xiàng)是預(yù)測(cè)的外部詞掰派,模型預(yù)測(cè)是逐漸靠攏兩項(xiàng)的值。對(duì)于第二個(gè)偏導(dǎo)左痢,當(dāng)P(o|c)趨近于1時(shí)靡羡,梯度下降停止,而這時(shí)我們也可以成功預(yù)測(cè)外部詞俊性。