FastText模型原理

2021-09-11 06:50:39 字數 2596 閱讀 8105

預備知識

n-gram模型

對句子或單詞的所有長度為n的子句或子字串進行操作,如2-gram中,對「girl」的字串為「gi」,「ir」,"rl"進行操作,通常有操作如下:

cbow模型

是把單詞的高維稀疏的one-hot向量對映為低維稠密的表示的方法。

模型架構如下:

(此處有圖)

\,x_c\} h=

1c∑i

=1cx

iwh = \frac\sum_^c x_iw

h=c1​i

=1∑c

​xi​

w v ou

t=hw

′=[u

1,u2

,...

,uv]

v_=hw'=[u_1,u_2,...,u_v]

vout​=

hw′=

[u1​

,u2​

,...

,uv​]yi

=exp

(ui)

∑j=1

vexp

(uj)

y_i=\frac^v exp(u_j)}\\

yi​=∑j

=1v​

exp(

uj​)

exp(

ui​)

​[1]中提出了fasttext模型,類似cbow模型,使用n-gram特徵代替單個詞的特徵,提取序列資訊,效果與深度學習分類器持平,但速度快得多。其模型架構如下:

損失函式為對數似然函式取負,即 min

−1n∑

i=1n

yilo

g(f(

baxi

))其中

,xi為

第i個文

檔正則化

/規範化

後的特徵

向量(b

agof

feat

ures

)a和b

是兩個權

重矩陣min-\frac\sum_^n y_ilog(f(bax_i))\\ 其中,x_i為第i個文件正則化/規範化後的特徵向量(bag\ \ of\ \ features)\\ a和b是兩個權重矩陣

min−n1

​i=1

∑n​y

i​lo

g(f(

baxi

​))其

中,xi

​為第i

個文件正

則化/規

範化後的

特徵向量

(bag

offe

atur

es)a

和b是兩

個權重矩

陣nce loss(noise-contrastive estimation),雜訊對比估計。

當類別數很大時(cbow中是單詞數),softmax複雜度很高,為了更高效地進行,將softmax計算過程轉化為二分類(lr)。具體地,將單詞與真實類別的true pair、單詞與隨機類別的randomly corrupted pair送入分類器,待優化的分類器只需判斷輸入的pair是真或假即可。(主要思想與負取樣和層次softmax相同)

word2vecslightlycustomizes the process and calls itnegative sampling.

def

nce_loss

(weights,

#[num_classes, embed_size]

biases,

#[num_classes]

inputs,

#[vocab_size, embed_size]

labels,

#[vocab_size, num_true]

num_sampled, num_classes, num_true=1,

sampled_values=

none

, remove_accidental_hits=

false

, partition_strategy=

"mod"

, name=

"nce_loss"

)

個人理解:對input中的每個詞,選擇對應的標籤構成正樣本對,再隨機選擇num_sampled個標籤與該詞構成負樣本對。對每個單詞對,在weights和biases中找到對應標籤的w和b,用邏輯回歸進行二分類,每個分類問題計算交叉熵

[1] bag of tricks for efficient text classification

[2] 自然語言處理中的n-gram模型詳解

[3]

fasttext工作原理

fasttext 是facebook於2016年開源的乙個詞向量計算和文字分類工具,在文字分類任務中,fasttext 淺層網路 往往能取得和深度網路相媲美的精度,卻在訓練時間上比深度網路快許多數量級,在標準的多核cpu上,能夠訓練10億詞級別語料庫的詞向量在10分鐘之內,能夠分類有著30萬多類別的...

fasttext 安裝 fasttext使用筆記

這裡記錄使用fasttext訓練word vector筆記 gitclone cdfasttext make make報錯 原因gcc版本過低 gcc v 公升級版本 參考 1.新增源 首先新增ppa到庫 sudo add apt repository ppa ubuntu toolchain r ...

筆記整合三 fastText原理剖析

一 邏輯回歸 1.1 從線性回歸到邏輯回歸 線性回歸的模型求出的是輸出特徵向量與輸入樣本矩陣x之間得線性關係係數k,即我們的y是連續的,假設我們想要y離散的話,那麼思路可以為對這個y在做一次函式,由此得到乙個 分類函式。邏輯回歸即對線性回歸的結果做了乙個sigmoid函式,將其結果整合到了 0,1 ...