如何做能切換語言的網(wǎng)站網(wǎng)站建設(shè)公司哪家好?
ELMO
前情回顧
- NNLM模型:主要任務(wù)是在預(yù)測下一個(gè)詞,副產(chǎn)品是詞向量
- Word2Vec模型:主要任務(wù)是生成詞向量
- CBOW:訓(xùn)練目標(biāo)是根據(jù)上下文預(yù)測目標(biāo)詞
- Skip-gram:訓(xùn)練目標(biāo)是根據(jù)目標(biāo)詞預(yù)測上下文詞
ELMO模型的流程
- 針對Word2Vec模型的詞向量不能表示多義詞的問題,產(chǎn)生了ELMO模型,模型圖如下:
- 通過不只是訓(xùn)練單單一個(gè)單詞的Q矩陣,而是把這個(gè)詞的上下文信息也融入到這個(gè)Q矩陣中,從而解決一詞多義的問題
- 注意:左側(cè)的LSTM是融入上文信息,右側(cè)的LSTM是融入下文信息。E已經(jīng)是將獨(dú)熱編碼經(jīng)過一層Q矩陣得到的
- 在我們做具體任務(wù)T時(shí),會(huì)先將E1、E2、E3三層的特征信息做一個(gè)疊加之后,得到新的詞向量K,其中(E2、E3為雙向的句法和語義特征),所以K1為第一個(gè)詞的詞向量,且包含了這個(gè)詞的單詞特征、句法特征、語義特征
- 注意:在Word2Vec中,只是單純將幾個(gè)連續(xù)的單詞按順序拼接輸入,所以只有這個(gè)單詞的詞向量,并沒有上下文信息的疊加
ELMO模型怎么使用
- 雖然同一個(gè)詞的單詞特征相同,但是在不同句子中的上下文信息會(huì)不同,也就代表著最后的詞向量K會(huì)不同,如下:
- 我們可以用訓(xùn)練好的ELMO模型,去掉該模型針對任務(wù)的改造部分,比如只選用T層往下的部分,用它來替換下圖其他任務(wù)中的W到e的這一部分,即替換之前Word2Vec預(yù)訓(xùn)練部分,從而實(shí)現(xiàn)ELMO模型的預(yù)訓(xùn)練效果,解決一詞多義問題:
Attention注意力機(jī)制
- 我看這張圖,注意力可以被可視化為下圖:
- 其中:想要查詢這張圖中的部分原始圖像(查詢對象Q),這張圖中紅色的部分(Key),紅色部分所具體指的在原圖中的部分(Value)
- 注意:Key和Value有著某種聯(lián)系,是可以做對應(yīng)的。如由于原圖中有很多的信息(Values),這些Values可以拆分為Key-Value鍵值對
- 所以,查看哪些V對Q比較重要,即哪些V與Q相似,就可以轉(zhuǎn)換成查看哪些K與Q相似,而計(jì)算相似度我們一般采用點(diǎn)乘的方法
- 所以QK點(diǎn)乘才能近似于QV點(diǎn)乘,即才能知道哪些V比較重要
- 上圖的流程為:傳入一個(gè)查詢Q,計(jì)算Q和K的點(diǎn)乘s(K與V有對應(yīng)關(guān)系),進(jìn)行softmax歸一化得到對應(yīng)概率a,乘上對應(yīng)V,最后做一個(gè)匯總,得到整體的V’,即最后的注意力V‘,公式如下:
V ′ = ( a 1 , a 2 , ? , a n ) ? + ( v 1 , v 2 , ? , v n ) = ( a 1 ? v 1 + a 2 ? v 2 + ? + a n ? v n ) V' = (a_1,a_2,\cdots,a_n)*+(v_1,v_2,\cdots,v_n) = (a_1*v_1+a_2*v_2+\cdots+a_n*v_n) V′=(a1?,a2?,?,an?)?+(v1?,v2?,?,vn?)=(a1??v1?+a2??v2?+?+an??vn?) - 而這個(gè)新的V’就包含了原圖中,哪些重要,哪些不重要的信息,最后就可以用帶有注意力的圖來代替原圖
- 這里softmax要除 d k \sqrt{d_k} dk??是因?yàn)?#xff0c;在softmax中,如果兩個(gè)數(shù)的差距比較大,那么歸一化后,概率差距會(huì)特別大,這很不合理,所以我們通過除 d k \sqrt{d_k} dk??來縮小兩個(gè)數(shù)之間的差距,這樣能減小它們之間的概率差距,如下圖:
參考文獻(xiàn)
- 08 ELMo模型(雙向LSTM模型解決詞向量多義問題)
- 09 什么是注意力機(jī)制(Attention )