1. 程式人生 > >自然語言處理——CBOW模型

自然語言處理——CBOW模型

CBOW一個用於快速訓練得到詞向量的神經網路模型,它的核心原理是中心詞的前R個詞和後R個詞來預測中心詞。

它的網路模型相比NNLM模型來說,最大的變化是直接去除隱層的非線性啟用過程,以此來加速網路的訓練速度。

CBOW的輸入:
假設中心詞 w i w_{i} 的上下文 C

( w i ) = { w j
j [ i R , i ) [
i + 1 , i + R ) } C(w_{i})=\{w_{j}|j \in [i-R,i) \cap [i+1,i+R)\} ,也就上文為中心詞的前R個詞,下文為中心詞的後R個詞。每次詞的詞向量為 e ( w i ) e(w_{i}) .那麼輸入到網路中的向量是這 2 R 1 2R-1 個上下文詞向量的平均值。即:

X = 1 2 R 1 w C ( w i ) e ( w ) X=\frac{1}{2R-1}\sum_{w'\in C(w_{i})}e(w')
而其中的 e ( w i ) e(w_{i}) 則定義為從詞向量矩陣 W V × D W_{|V|\times|D|} 中取出詞 w i w_{i} 對應的那一行,或者那一列。 V |V| 是這個待研究的預料庫的詞典的大小,一般為4000~7000。 D |D| 是我們選擇的詞向量的長度,一般為50~500即可。

雖然我們知道 e ( w i ) e(w_{i}) 是將詞 w i w_{i} 對應的那一行詞向量取出來,直觀上也覺得很簡單,然而這個“取”的過程並不好實現,尤其是GPU不好實現,GPU最願意看到的是矩陣乘法那樣子的東西。那麼,能不能將這個"取"的過程,寫成一個矩陣乘法的形式呢?

還真可以!

我們知道,某個單位正交基 e i = ( 0 , 0 , 0 , , 1 , , 0 ) \vec{e_{i}}=(0,0,0,\dots,1,\dots,0) ,就是第i列的位置為1,其它位置為0的特殊向量,這個形式剛好又與我們常見到的one-hot向量一樣。而 e i \vec{e_{i}} 左乘一個矩陣 W W ,恰好就是將 W W 的第i行單獨取出來。於是這個將 w i w_{i} 的詞向量從 W V × D W_{|V|\times|D|} "取"出的過程恰好就可以表示為 e i × W V × D \vec{e_{i}}\times W_{|V|\times|D|} e i \vec{e_{i}} 恰好也就是 w i w_{i} 的one-hot向量。
我們再看剛剛的輸入公式:
X = 1 2 R 1 w C ( w i ) e ( w ) X=\frac{1}{2R-1}\sum_{w'\in C(w_{i})}e(w')
把它具體化就是:
X = 1 2 R 1 w C ( w i ) ( w o n e h o t ) × W V × D X=\frac{1}{2R-1}\sum_{w'\in C(w_{i})}(w'的one-hot向量)\times W_{|V|\times\|D|}
而對於這個求和來說,裡面有一個公共的因子 W V × D W_{|V|\times\|D|} 。將它提取出來,原式變成:
X = 1 2 R 1 ( w C ( w i ) ( w o n e h o t ) ) × W V × D X=\frac{1}{2R-1}(\sum_{w'\in C(w_{i})}(w'的one-hot向量))\times W_{|V|\times\|D|}

相關推薦

自然語言處理——CBOW模型

CBOW一個用於快速訓練得到詞向量的神經網路模型,它的核心原理是中心詞的前R個詞和後R個詞來預測中心詞。 它的網路模型相比NNLM模型來說,最大的變化是直接去除隱層的非線性啟用過程,以此來加速網路的訓練速度。 CBOW的輸入: 假設中心詞

自然語言處理---用隱馬爾科夫模型(HMM)實現詞性標註---1998年1月份人民日報語料---learn---test---evaluation---Demo---java實現

fileinput 流程 n) 一次 tostring model pen mem rbd 先放上一張Demo的測試圖 測試的句子及每個分詞的詞性標註為: 目前/t 這/rzv 條/q 高速公路/n 之間/f 的/ude1 路段/n 已/d 緊急/a 封閉/v 。/

自然語言處理詞向量模型-word2vec

技術分享 alt 自然語言 inf bsp word 學習 向量 9.png 自然語言處理與深度學習: 語言模型: N-gram模型: 自然語言處理詞向量模型-word2vec

自然語言處理--LDA主題聚類模型

src 隨機 pos 一個 改變 筆記 整體 應該 定性 LDA模型算法簡介: 算法 的輸入是一個文檔的集合D={d1, d2, d3, ... , dn},同時還需要聚類的類別數量m;然後會算法會將每一篇文檔 di 在 所有Topic上的一個概率值p;這樣每篇

自然語言處理中的語言模型預訓練方法

16px 預測 網絡語言 緩解 lang 大數 一中 標準 小數 自然語言處理中的語言模型預訓練方法 最近,在自然語言處理(NLP)領域中,使用語言模型預訓練方法在多項NLP任務上都獲得了不錯的提升,廣泛受到了各界的關註。就此,我將最近看的一些相關論文進行總結,選取了幾

[NLP自然語言處理]谷歌BERT模型深度解析

BERT模型程式碼已經發布,可以在我的github: NLP-BERT--Python3.6-pytorch 中下載,請記得start哦 目錄 一、前言 二、如何理解BERT模型 三、BERT模型解析       論文的核心:詳解BE

斯坦福大學-自然語言處理入門 筆記 第十一課 最大熵模型與判別模型(2)

一、最大熵模型 1、模型介紹 基本思想:我們希望資料是均勻分佈的,除非我們有其他的限制條件讓給我們相信資料不是均勻分佈的。均勻分佈代表高熵(high entropy)。所以,最大熵模型的基本思想就是我們要找的分佈是滿足我們限制條件下,同時熵最高的分佈。 熵:表示分佈的不

斯坦福大學-自然語言處理入門 筆記 第八課 最大熵模型與判別模型

一、生成模型與判別模型 1、引言 到目前為止,我們使用的是生成模型(generative model),但是在實際使用中我們也在大量使用判別模型(discriminative model),主要是因為它有如下的優點: 準確性很高 更容易包含很多和

斯坦福大學-自然語言處理入門 筆記 第四課 語言模型

一、介紹N-grams 1、概率語言模型 對每個句子給出一個概率,用以判斷機器翻譯中哪個句子是最佳的選擇,拼寫校準中哪個句子可能出現錯誤。 目標:計算句子或者是一系列單詞的概率

《NLP漢語自然語言處理原理與實踐》第四章 NLP中的概率圖模型

目前最流行的演算法思想包含如下兩大流派:基於概率論和圖論的概率圖模型;基於人工神經網路的深度學習理論。 4.1概率論迴歸  4.1.1 多元概率論的幾個基本概念  4.1.2  貝葉斯與樸素貝葉斯演算法      

python 自然語言處理 統計語言建模 - (n-gram模型

N-gram語言模型 考慮一個語音識別系統,假設使用者說了這麼一句話:“I have a gun”,因為發音的相似,該語音識別系統發現如下幾句話都是可能的候選:1、I have a gun. 2、I have a gull. 3、I have a gub. 那麼問題來了,到底哪一個是正確答案呢?

自然語言處理-LDA主題模型

一、LDA主題模型簡介 LDA(Latent Dirichlet Allocation)中文翻譯為:潛在狄利克雷分佈。LDA主題模型是一種文件生成模型,是一種非監督機器學習技術。它認為一篇文件是有多個主題的,而每個主題又對應著不同的詞。一篇文件的構造過程,首先是以一定的概率

自然語言處理之Bag-of-words,TF-IDF模型

轉自:https://blog.csdn.net/m0_37744293/article/details/78881231 Bag-of-words,TF-IDF模型 Bag-of-words model (BoW model)忽略文字的語法和語序,用一組無序的單詞(words)來表達一段文

斯坦福大學-自然語言處理與深度學習(CS224n)筆記 第十課 神經機器翻譯(neural machine translation)與attention模型

本課概要 1、機器翻譯(MT) 2、帶attention的序列模型 3、序列模型解碼器(decoder) 一、機器翻譯(MT) 機器翻譯是一個十分經典的語言理解的測試,涉及語言分析(language analysis)與語言生成(language generat

python自然語言處理-馬爾科夫模型

1.概念學習     馬爾科夫模型常用於分析大量隨機事件,隨機事件的特點是一個離散事件發生之後,另一個離散事件將在前一個事件的條件下以一定的概率發生。以天氣的馬爾科夫模型為例: 在這個天氣系統模型中

自然語言處理中CNN模型幾種常見的Max Pooling操作

CNN是目前自然語言處理中和RNN並駕齊驅的兩種最常見的深度學習模型。圖1展示了在NLP任務中使用CNN模型的典型網路結構。一般而言,輸入的字或者詞用Word Embedding的方式表達,這樣本來一維的文字資訊輸入就轉換成了二維的輸入結構,假設輸入X包含m個字元,而每個

自然語言處理(四)神經網路語言模型及詞向量

神經網路語言模型 用句子 S S S的概率

自然語言處理(三)語言模型

文章目錄 語言模型基本概念 n元文法(n-gram) 語言模型引數估計 引數估計 資料平滑 效能評價 語言模型應用 改進的語言模型 n-gram存在的問題

自然語言處理中的詞袋模型

詞袋模型 from sklearn.feature_extraction.text import CountVectorizer import os import re import jieba.posseg as pseg # 載入停用詞表 stop_

深度學習與自然語言處理(7)_斯坦福cs224d 語言模型,RNN,LSTM與GRU

說明:本文為斯坦福大學CS224d課程的中文版內容筆記,已得到斯坦福大學課程@Richard Socher教授的授權翻譯與發表 1.語言模型 語言模型用於對特定序列的一系列詞彙的出現概率進行計算。一個長度為m的詞彙序列{w1,…,wm}的聯合概率被表示為