BERT中怎么實現(xiàn)嵌入層

本篇文章為大家展示了BERT中怎么實現(xiàn)嵌入層,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供清鎮(zhèn)企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站設(shè)計、HTML5、小程序制作等業(yè)務(wù)。10年已為清鎮(zhèn)眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

Token嵌入

目的

如前一節(jié)所述,token嵌入層的作用是將單詞轉(zhuǎn)換為固定維的向量表示形式。在BERT的例子中,每個單詞都表示為一個768維的向量。

 

實現(xiàn)

假設(shè)輸入文本是“I like strawberries”。下圖描述了token嵌入層的作用:

BERT中怎么實現(xiàn)嵌入層

在將輸入文本傳遞到token嵌入層之前,首先對其進行token化。另外,在tokens的開始([CLS])和結(jié)束([SEP])處添加額外的tokens。這些tokens的目的是作為分類任務(wù)的輸入表示,并分別分隔一對輸入文本(更多細節(jié)將在下一節(jié)中介紹)。

tokens化是使用一種叫做WordPiece token化的方法來完成的。這是一種數(shù)據(jù)驅(qū)動的token化方法,旨在實現(xiàn)詞匯量和非詞匯量之間的平衡。這就是“strawberries”被分成“straw”和“berries”的方式。對這種方法的詳細描述超出了本文的范圍。感興趣的讀者可以參考Wu et al. (2016)和Schuster & Nakajima (2012)中的第4.1節(jié)。單詞token化的使用使得BERT只能在其詞匯表中存儲30522個“詞”,而且在對英語文本進行token化時,很少會遇到詞匯表以外的單詞。

token嵌入層將每個wordpiece  token轉(zhuǎn)換為768維向量表示形式。這將使得我們的6個輸入token被轉(zhuǎn)換成一個形狀為(6,768)的矩陣,或者一個形狀為(1,6,768)的張量,如果我們包括批處理維度的話。

 

Segment嵌入

 

目的

BERT能夠解決包含文本分類的NLP任務(wù)。這類問題的一個例子是對兩個文本在語義上是否相似進行分類。這對輸入文本被簡單地連接并輸入到模型中。那么BERT是如何區(qū)分輸入的呢?答案是Segment嵌入。

 

實現(xiàn)

假設(shè)我們的輸入文本對是(“I like cats”, “I like dogs”)。下面是Segment嵌入如何幫助BERT區(qū)分這個輸入對中的tokens :

BERT中怎么實現(xiàn)嵌入層

Segment嵌入層只有兩個向量表示。第一個向量(索引0)分配給屬于輸入1的所有tokens,而最后一個向量(索引1)分配給屬于輸入2的所有tokens。如果一個輸入只有一個輸入語句,那么它的Segment嵌入就是對應(yīng)于Segment嵌入表的索引為0的向量。

 

Position嵌入

 

目的

BERT由一堆Transformers 組成的,廣義地說,Transformers不編碼其輸入的順序特征。在這個博客文章:https://medium.com/@init/how-self-attention-with-relatedposition-representations-works-28173b8c245a的動機部分更詳細地解釋了我的意思。總之,有Position嵌入將允許BERT理解給定的輸入文本,比如:

I think, therefore I am

第一個“I”不應(yīng)該與第二個“I”具有相同的向量表示。

 

實現(xiàn)

BERT被設(shè)計用來處理長度為512的輸入序列。作者通過讓BERT學習每個位置的向量表示來包含輸入序列的順序特征。這意味著Position嵌入層是一個大小為(512,768)的查找表,其中第一行是第一個位置上的任意單詞的向量表示,第二行是第二個位置上的任意單詞的向量表示,等等。因此,如果我們輸入“Hello world”和“Hi there”,“Hello”和“Hi”將具有相同的Position嵌入,因為它們是輸入序列中的第一個單詞。同樣,“world”和“there”的Position嵌入是相同的。

 

合并表示

我們已經(jīng)看到,長度為n的token化輸入序列將有三種不同的表示,即:

  • token嵌入,形狀(1,n, 768),這只是詞的向量表示
  • Segment嵌入,形狀(1,n, 768),這是向量表示,以幫助BERT區(qū)分成對的輸入序列。
  • Position嵌入,形狀(1,n, 768),讓BERT知道其輸入具有時間屬性。

對這些表示進行元素求和,生成一個形狀為(1,n, 768)的單一表示。這是傳遞給BERT的編碼器層的輸入表示。

上述內(nèi)容就是BERT中怎么實現(xiàn)嵌入層,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁名稱:BERT中怎么實現(xiàn)嵌入層
標題來源:http://www.muchs.cn/article6/ijcpig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、App設(shè)計、自適應(yīng)網(wǎng)站、全網(wǎng)營銷推廣、網(wǎng)站營銷電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化