機器經過閱讀大量的words,將每個單詞用vector表示,vector的dimension表達着這個單詞的屬性,意思相近單詞,dimension就會呈現出來。vector就是word embedding。
為了表示每個單詞之間有聯系,用二維vector來表示單詞。可以更直觀的看出每個單詞的所屬的類或者具有某種共同點。
machine 在學習這倆個詞語的時候,了解到都有520宣誓的字樣,所以他認為他倆的vector應該相似。
根據上下文來找到vector,有以下倆種方法。
Count 找到一組V(wi)V(wj)進行內積計算之后與他倆在文章里出現的次數Nij作比較最相近的。
Prediction based 給機器input詞匯,讓機器訓練一個網絡能夠輸出下一個,output vector dimension由世界上可以出現的詞匯數目決定。用Minmizing cross entropy 讓output與target(指的就)接近,進行調參,找到最適合的neural network。
推文接話就是用的prediction方法。
prediction 句子出現的概率,Neural network是推文接龍網絡,直接拿來進行預測。output 出現下一個target單詞的概率,之后一起進行相乘。(這種技術用於speech recognition和機器翻譯)。
每一個word vector 乘以 matrix(相當於進行降維或者linear transformation
操作)得到由z1,z2等等組成的vector輸入神經網絡hidden layer中,幾個隱藏層不等,最后輸出下一個word的概率也是vector。 下邊坐標圖將每一個word vector的z1,z2…提取到坐標中,然后就可以看出同樣的word有相近的特性。 這已經是learning好的network。
下邊解釋為什么learning好的network輸出vector。只有一個hidden layer的,並且是linear activate fuction。
為什么用shall netwrok呢?
第一:因為有大量word vector的時候shall network train的快,並且效果和DNN是一樣的。
第二:提取的線性變換之后的word vector(就是坐標軸中的vector)來當做NLP(自然語言處理)的input。
tie一起就是權值共享,不管你輸入的word vector多長,w都不變的,參數不增加,可以一次輸入十個或者二十個vector,計算z公式如下,之后再讓之后的layer來尋找下一個預測的wi。
相同顏色的共用一個weight,減少了參數,並且不同位置的相同的word vector經過線性變換能夠得到相同的word embedding。每一組詞匯有固定的word embedding。
各種各樣的prediction如下:
其他的例子關系
推論問題的例子:
機器進行如下計算並且推論出word w。
用綠色的英文與中文learning transform,之后將黃色的英文丟到learning好的transform中。就會在相應的最接近的中文旁邊。
用Bag-word描繪那篇文,每一dimension代表某詞匯出現的次數。丟到network中輸出word embedding。
詞的數目bag-word一樣但是順序不一樣,表達的語義不一樣。
獲取以上文本PPT請點擊這里
————————————————
版權聲明:本文為CSDN博主「一雙單眼皮」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_44479403/article/details/103466928