【转】自然语言系列学习之表示学习与知识获取(二)word2vec
自然語言處理相關的對象包括詞匯,詞義,短語,實體,句子,文檔,還有比如說社會網絡,知識表示等等。
本文通過詞匯表示的基本知識介紹分布式表示的基本的思想和特點。 在詞匯表示方面的經典模型是2013年google實習生Tomas Mikolov 在nips上發表論文《Efficient Estimation of Word Representation in Vector Space》,立刻引起了工業界和學術界的關注。首先,word2vec可以在百萬數量級的詞典和上億的數據集上進行高效地訓練;其次,該工具得到的訓練結果——詞向量(word embedding),可以很好地度量詞與詞之間的相似性。隨著深度學習(Deep Learning)在自然語言處理中應用的普及,很多人誤以為word2vec是一種深度學習算法。其實word2vec算法的背后是一個淺層神經網絡。另外需要強調的一點是,word2vec是一個計算word vector的開源工具。
其背后用于計算word vector包括(上圖)兩個模型:跳字模型(右側,skip-gram model)和連續詞袋模型(左側,continuous bag of words model,簡稱CBOW model)。這兩個模型的基本思路非常簡單,與傳統的語言模型相比它忽略了詞與詞在句子里面的順序關系,直接利用在大規模文本中每一個詞上下文互相之間預測任務,去學習每一個詞的分布式表示。
如左邊圖是continuous bag of words 模型,對于文本中每一個ttt位置上的詞是利用上下文,也就是當目標詞前面出現的兩個詞和后面出現的兩個詞,通過相加出現四個詞向量的和,利用和去預測中間中間目標詞的向量,通過最大化的預測概率,就是在所有的數據集上,就可以學習到每一個詞向量的信息。
如右圖skip-gram模型,正好與continuous bag of words 模型相反,用中間的目標詞去預測上下文的詞。
Word2vec的優勢在于:
一.它沒有考慮句子里詞與詞之間順序的關系
二.由于它取消了傳統的神經網絡的非線性的操作,極大提升了整個模型的計算效果,能夠在大規模的數據上非常快的學習出一個高效的詞匯表示模型。 利用這種詞匯的表示,就可以很好的計算任意兩個詞之間的語義相似度,也就是說任意給兩個詞都可以去計算它們之間在這個空間里面的Proximity, 通過計算Proximity,可以給每一個詞找到在這個空間里面距離最近的那些詞。
那么你可以看到,如上圖china這個詞,找出最相關的詞其實都是一些國家和地區的名字,基本上能夠很好的去反映這些詞匯背后的語義信息,這屬于分布式表示一個非常好的特點。
那么word2vec另外一個非常有意思的發現,是在于它能夠自動的發現詞匯之間的隱含關系,譬如word2vec學習結束之后,可以看到非常多的國家,還有這些國家對應首都的名字,它們之間在空間里的相對位置是保持固定方向,也就是說我們可以得到china vector減去北京的vector約等于japan vector減去tokyo vetor,也就是說它能夠智能的發現國家和首都之間的隱含關系,這是word2vec一個非常重要的特點,這個特點實際上被很多學者充分的利用,如來自于哈爾濱工業大學的盧婷老師團隊的付瑞吉老師,就是利用word2vec的這個特點來自動的去發現這種詞匯之間的上下位的關系。
比如狗和警犬,兔和長毛兔,馬和斑馬,那么他們之間其實都是存在的上位和下位的關系,這種關系也可以看成是前面有某一種隱含的關系,通過用word2vec自動的去發現這種詞匯之間的隱含關系,那么就可以自動的去發現更多的這種帶有上下位關系,這對于構建知識庫其實是非常重要的。
word2vec是啟發知識表示學習的一個非常重要思想來源。
總結
以上是生活随笔為你收集整理的【转】自然语言系列学习之表示学习与知识获取(二)word2vec的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做牙套的牙齿里面有声音怎么办
- 下一篇: 【转】自然语言系列学习之表示学习与知识获