更別緻的詞向量模型(一):simpler glove
如果問我哪個是最方便、最好用的詞向量模型,我覺得應該是word2vec,但如果問我哪個是最漂亮的詞向量模型,我不知道,我覺得各個模型總有一些不足的地方。且不說試驗效果好不好(這不過是評測指標的問題),就單看理論也沒有一個模型稱得上漂亮的。
本文討論了一些大家比較關心的詞向量的問題,很多結論基本上都是實驗發現的,缺乏合理的解釋,包括:
如果去構造一個詞向量模型?
為什麼用餘弦值來做近義詞搜尋?向量的內積又是什麼含義?
詞向量的模長有什麼特殊的含義?
為什麼詞向量具有詞類比性質?(國王-男人+女人=女王)
得到詞向量後怎麼構建句向量?詞向量求和作為簡單的句向量的依據是什麼?
這些討論既有其針對性,也有它的一般性,有些解釋也許可以直接遷移到對glove模型和skip gram模型的詞向量性質的詮釋中,讀者可以自行嘗試。
圍繞著這些問題的討論,本文提出了一個新的類似glove的詞向量模型,這裡稱之為simpler glove,並基於斯坦福的glove原始碼進行修改,給出了本文的實現,具體程式碼在Github上。
為什麼要改進glove?可以肯定的是glove的思想是很有啟發性的,然而儘管它號稱媲美甚至超越word2vec,但它本身卻是一個比較糟糕的模型(後面我們也會解釋它為什麼糟糕),因此就有了改進空間。
內容概覽:
1 對語言進行建模
1.1 從條件概率到互資訊
1.2 互資訊的可加性
1.3 插播:番外篇2 描述相關的模型
2.1 幾何詞向量
2.2 機場-飛機+火車=火車站
2.3 模型的形式
2.4 忘記歸一化3 模型的求解
3.1 損失函式
3.2 互資訊估算
3.3 權重和降取樣.
3.4 Adagrad4 有趣的結果
4.1 模長的含義
4.2 詞類比實驗
4.3 相關詞排序
4.4 重新定義相似.
4.5 關鍵詞提取
4.6 句子的相似度.
4.7 句向量
轉載到請包括本文地址:
相關推薦
更別緻的詞向量模型(一):simpler glove
如果問我哪個是最方便、最好用的詞向量模型,我覺得應該是word2vec,但如果問我哪個是最漂亮的詞向量模型,我不知道,我覺得各個模型總有一些不足的地方。且不說試驗效果好不好(這不過是評測指標的問題),就單看理論也沒有一個模型稱得上漂亮的。 本文討論了一些大家比較關心的詞
[Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec詞向量模型
www. 頻率 cbo homepage 算法 文章 有一個 tro 概率 閱讀目錄 1. 詞向量 2.Distributed representation詞向量表示 3.詞向量模型 4.word2vec算法思想 5.doc2vec算法思
自然語言處理詞向量模型-word2vec
技術分享 alt 自然語言 inf bsp word 學習 向量 9.png 自然語言處理與深度學習: 語言模型: N-gram模型: 自然語言處理詞向量模型-word2vec
Skip-Thought詞向量模型實現Sent2Vec
一、原理 skip-thought模型結構藉助了skip-gram的思想。在skip-gram中,是以中心詞來預測上下文的詞;在skip-thought同樣是利用中心句子來預測上下文的句子,其資料的結構可以用一個三元組表示 (st−1,st,st+1)(st−1,st,st+1)&nb
Ubuntu下GloVe中文詞向量模型訓練
開啟美好的九月 最近在學習textCNN進行文字分類,然後隨機生成向量構建embedding網路的分類效果不是很佳,便考慮訓練Glove詞向量來進行訓練,整個過程還是有遇到一些問題,希望懂的旁友能來指點下~ 關於GloVe GloVe,全稱是Global Vectors fo
使用 rnn 訓練詞向量模型
詞向量說明如下: 詞向量模型表徵的是詞語與詞語之間的距離和聯絡,詞向量也叫詞嵌入 word embedding CBOW 模型: 根據某個詞的上下文,計算中間詞出現的概率,預測的是中心詞 Skip-Gram 模型: 跟據中間詞,分別計算它的上下文概率,與 CBOW 模型相反
詞袋模型和詞向量模型
在自然語言處理和文字分析的問題中,詞袋(Bag of Words, BOW)和詞向量(Word Embedding)是兩種最常用的模型。更準確地說,詞向量只能表徵單個詞,如果要表示文字,需要做一些額外的處理。下面就簡單聊一下兩種模型的應用。 所謂BOW,就是將文字/Query看作是一系列詞的集合
C++11 併發指南七(C++11 記憶體模型一:介紹)
第六章主要介紹了 C++11 中的原子型別及其相關的API,原子型別的大多數 API 都需要程式設計師提供一個 std::memory_order(可譯為記憶體序,訪存順序) 的列舉型別值作為引數,比如:atomic_store,atomic_load,atomic_exchange,atomic_compa
文字深度表示模型——word2vec&doc2vec詞向量模型(轉)
深度學習掀開了機器學習的新篇章,目前深度學習應用於影象和語音已經產生了突破性的研究進展。深度學習一直被人們推崇為一種類似於人腦結構的人工智慧演算法,那為什麼深度學習在語義分析領域仍然沒有實質性的進展呢? 引用三年前一位網友的話來講: “Steve Renals算了一下icassp錄取文章題目中包含
[Algorithm & NLP] 文字深度表示模型——word2vec&doc2vec詞向量模型
深度學習掀開了機器學習的新篇章,目前深度學習應用於影象和語音已經產生了突破性的研究進展。深度學習一直被人們推崇為一種類似於人腦結構的人工智慧演算法,那為什麼深度學習在語義分析領域仍然沒有實質性的進展呢? 引用三年前一位網友的話來講: “Steve Renals算了一下icassp錄取文章題目中
關於詞向量的一篇好的入門文章
很好,正好可藉此機會介紹詞向量、word2vec以及DeepNLP整套相關的東西: 文章很長,是從CSDN上寫好複製過來的,亦可直接跳到部落格觀看: here we go. ·············································border···············
自然語言處理Word2Vec詞向量模型
1.自然語言處理與深度學習 2.語言模型 3.N-gram模型 4.詞向量 5.神經網路模型 6.Hierarchical Softmax 7.CBOW模型例項 8.CBOW求解目標 9.梯度上升求解
Word2Vec詞向量(一)
一、詞向量基礎(一)來源背景 word2vec是google在2013年推出的一個NLP工具,它的特點是將所有的詞向量化,這樣詞與詞之間就可以定量的去度量他們之間的關係,挖掘詞之間的聯絡。雖然原始碼是開源的,但是谷歌的程式碼庫國內無法訪問, &
使用Google word2vec訓練我們自己的詞向量模型
主要內容 這篇文章主要內容是介紹從初始語料(文字)到生成詞向量模型的過程。 詞向量模型 詞向量模型是一種表徵詞在整個文件中定位的模型。它的基本內容是詞以及它們的向量表示,即將詞對映為對應的向量,這樣就可以被計算機識別和計算。它的檔案字尾名是.bin。
詞向量原始碼解析:(6.1)fasttext原始碼解析
fasttext是word2vec的作者mikolov參與的製作的一個工具包,可以用來訓練詞向量和進行文字分類。目前已經引起了廣泛的關注。這個工具包在github上面的地址是 https://github.com/facebookresearch/fastText 這個專案
詞向量原始碼解析:(1)詞向量(詞表示)簡單介紹
在未來的一段時間內,我會全面細緻的解析包括word2vec, GloVe, hyperwords, context2vec, ngram2vec等一系列詞向量(詞表示)工具包。用合理的向量去表示單詞是自然語言處理(NLP)領域中很經典很基本的一個任務。 一份高質量的詞向
狄利克萊過程模型(一):非引數貝葉斯無限混合模型和Dirichlet過程
[作者按] 這篇文章是根據edwin Chen的部落格 http://blog.echen.me/2012/03/20/infinite-mixture-models-with-nonparametric-bayes-and-the-dirichlet-process/ 和
word2vec查詢詞向量時報錯:'utf-8' codec cann't decode bytes in position 96-07:unexpected end of data
載入word2vec模型時報錯: model_path = "model/Hanlp_cut_news.bin" w2v_dict = word2vec.load(model_path) print(w2v_dict["奧運"])
字和詞語聯合訓練的詞向量模型
今天又讀了一篇劉知遠老師團隊2015年在頂會Ijcai上發表的論文《Joint Learning of Character and Word Embeddings》,同樣是有關於在詞向量生成部分進行了改進,引入了詞語組成成分的單個漢字的資訊(論文主要針對的是中文
詞向量原始碼解析:(6.7)fasttext原始碼解析之詞向量1
下面我們看一下怎麼用fasttext生成詞向量。我們執行word-vector-example.sh檔案可以得到考慮了subword的詞向量。首先看一下這個指令碼。首先是下載語料和測試集,下載語料的以後解壓並且用wikifil.pl對語料進行預處理,得到純文字 if [ !