WordPiece
網(wǎng)易一面的面試題,自己當(dāng)時(shí)推了一下,現(xiàn)在看了下答案,發(fā)現(xiàn)自己推的是對(duì)的,再重新整理一下。
WordPiece原理
現(xiàn)在基本性能好一些的NLP模型,例如OpenAI GPT,google的BERT,在數(shù)據(jù)預(yù)處理的時(shí)候都會(huì)有WordPiece的過(guò)程。
WordPiece字面理解是把word拆成piece一片一片,其實(shí)就是這個(gè)意思。
WordPiece的一種主要的實(shí)現(xiàn)方式叫做BPE(Byte-Pair Encoding)雙字節(jié)編碼。
BPE的過(guò)程可以理解為把一個(gè)單詞再拆分,使得我們的詞表會(huì)變得精簡(jiǎn),并且寓意更加清晰。主要用于處理未登錄詞。
比如"loved",“l(fā)oving”,"loves"這三個(gè)單詞。其實(shí)本身的語(yǔ)義都是“愛(ài)”的意思,但是如果我們以單詞為單位,那它們就算不一樣的詞,在英語(yǔ)中不同后綴的詞非常的多,就會(huì)使得詞表變的很大,訓(xùn)練速度變慢,訓(xùn)練的效果也不是太好。
BPE算法通過(guò)訓(xùn)練,能夠把上面的3個(gè)單詞拆分成"lov",“ed”,“ing”,"es"幾部分,這樣可以把詞的本身的意思和時(shí)態(tài)分開(kāi),有效的減少了詞表的數(shù)量,個(gè)人覺(jué)得模型可能還能夠?qū)W習(xí)到一些時(shí)態(tài)信息。
與N-gram的關(guān)系
可以看下這里是如何使用N-gram的。
實(shí)際上,N-gram分割詞是分割成固定的大小,而Wordpiece分割出來(lái)的大小不是固定的,而是將詞本身與時(shí)態(tài)分割開(kāi);但兩者其實(shí)都能在一定程度上解決OOV的問(wèn)題。
蕓蕓補(bǔ)
1、中文wordpiece是怎么做的?
- 中文沒(méi)有wordpiece
2、中文的N-gram是如何做的?
一種基于char,一種基于word的。
基于char:
- 比如一種最傳統(tǒng)的做法就是基于char的。如1-gram,“我來(lái)到北京清華大學(xué)”。即 我 來(lái) 到 北 京 清 華 大 學(xué)。比如2-gram, 我來(lái) 來(lái)到 到北 北京 京清 清華 華大 大學(xué)。
基于word:
- 先中文分詞(jieba分詞),我/ 來(lái)到/ 北京/ 清華大學(xué)。分開(kāi)的每個(gè)都可以當(dāng)做單獨(dú)的token。這么做中文詞表會(huì)非常大。所以需要對(duì)中文詞表設(shè)定最低詞頻和最大詞表大小。
3、oov如何解決?
- wordpiece和N-gram
4、中文oov如何解決?
- 中文如果是oov,不在詞表范圍,其實(shí)也不好解決。之前也有看過(guò)通過(guò)偏旁部首進(jìn)行操作,具體效果也不太確定。
總結(jié)
- 上一篇: [haut] 1281: 邪能炸弹 d
- 下一篇: java lame_音视频编解码——LA