當前位置:編程學習大全網 - 源碼下載 - BERT 結構與原理(1)--Embedding

BERT 結構與原理(1)--Embedding

BERT主要是多個Transformer的Encoder作為主題,主要包含Embedding層,Encoder層。

?BERT中的Embedding主要有3種:

?Token Embedding 是對詞向量進行編碼。原始的輸入是[batch,seq_len]。經過 Token Embedding 後數據的維度為[batch,seq_len,d_model]。

?在BERT中Token Embedding的內部計算流程是初始化壹個二維數組,大小為[vocab_size,d_model],然後將輸入的數據進行one-hot編碼,維度為[batch,seq_len,vocab_size],進行tensor的乘法。驗證如下:

可以看見兩者的結果是壹樣的,所以猜測embedding內部就是先將句子中每個詞的索引表示轉化為one-hot表示,然後對編碼後的數據進行矩陣的變換,其中參數開始是輸出化的,後面訓練的時候可以用來學習。編碼後的輸出為[batch,seq_len,d_model]

?BERT中的Position Embedding和Transformer不壹樣,transormer中式直接利用公式,計算出對用維度的值。在BERT中是要學習的。比如說d_model的大小為512,那麽每個句子就會生成壹個[0,1,2,...511]的壹維數組,然後重復batch次,因此實際的輸入為[batch,d_model],將其送到one_hot中進行編碼,具體的編碼過程和Token Embedding壹樣,然後最後的輸出為[batch,seq_len,d_model]。和Token Embedding輸出的維度壹樣。

壹般是不用的,只在句子對的時候采用。其編碼後的維度也是[batch,seq_len,d_model]。

  • 上一篇:諾基亞的所有照片 滑蓋手機型號(老款紅色5300滑蓋手機)
  • 下一篇:如何使用SQL Developer執行SQL語句
  • copyright 2024編程學習大全網