最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

53 語(yǔ)言模型【動(dòng)手學(xué)深度學(xué)習(xí)v2】

2022-07-18 10:50 作者:如果我是泡橘子  | 我要投稿

語(yǔ)言模型

  • 語(yǔ)言模型是 NLP 中最經(jīng)典的模型,假設(shè)給定長(zhǎng)度為 T 的文本序列 x1,x2, ... ,xT(可能是詞序列,也可能是字符序列),xt (1 <= t <= T)可以被認(rèn)為是文本序列在時(shí)間步 t 處的觀測(cè)或者標(biāo)簽。語(yǔ)言模型的目標(biāo)是估計(jì)序列的聯(lián)合概率 p(x1,x2, ... xT)
  • 序列模型的核心就是整個(gè)序列文本所出現(xiàn)的概率



語(yǔ)言模型

  • 目前所面對(duì)的問(wèn)題是如何對(duì)一個(gè)文檔,甚至是一個(gè)詞元序列進(jìn)行建模
  • 為了訓(xùn)練語(yǔ)言模型,需要計(jì)算單詞的概率以及給定前面幾個(gè)單詞后出現(xiàn)某個(gè)單詞的條件概率(這些概率本質(zhì)上就是語(yǔ)言模型的參數(shù))


假設(shè)訓(xùn)練數(shù)據(jù)集是一個(gè)大型的文本語(yǔ)料庫(kù),訓(xùn)練集中詞的概率可以根據(jù)給定詞的相對(duì)詞頻來(lái)計(jì)算:一種稍微不太精確的方法是統(tǒng)計(jì)單詞在數(shù)據(jù)集中的出現(xiàn)次數(shù),然后將其除以整個(gè)語(yǔ)料庫(kù)中的單詞總數(shù)

  • 由于連續(xù)單詞對(duì)的出現(xiàn)頻率出現(xiàn)頻率低得多,特別是對(duì)于一些不常見(jiàn)的單詞組合,要想找到足夠的出現(xiàn)次數(shù)來(lái)獲得準(zhǔn)確的估計(jì)可能都不容易
  • 對(duì)于三個(gè)或者更多的單詞組合,情況可能會(huì)變得更糟,許多合理的三個(gè)單詞所組成的單詞組合可能是存在的,但是在數(shù)據(jù)集中可能找不到
  • 對(duì)于上述情況,如果數(shù)據(jù)集很小,或者單詞非常罕見(jiàn),那么這類單詞出現(xiàn)一次的機(jī)會(huì)可能都找不到,除非能夠提供某種解決方案將這些單詞組合指定為非零計(jì)數(shù),否則將無(wú)法在語(yǔ)言模型中使用它們
  • 一種常見(jiàn)的策略是執(zhí)行某種形式的拉普拉斯平滑(Laplace smoothing),在所有的計(jì)數(shù)中添加一個(gè)小常量。但是這樣的模型很容易變得無(wú)效,因?yàn)樾枰鎯?chǔ)所有的計(jì)數(shù),而且完全忽略了單詞的意思,最后,長(zhǎng)單詞序列大部分是沒(méi)出現(xiàn)過(guò)的,因此一個(gè)模型如果只是簡(jiǎn)單地統(tǒng)計(jì)先前看到的單詞序列頻率,那么模型面對(duì)這種問(wèn)題肯定是表現(xiàn)不佳的





語(yǔ)言模型的應(yīng)用


  • 做預(yù)訓(xùn)練模型(如 BERT,GPT-3):給定大量的文本做預(yù)訓(xùn)練,然后訓(xùn)練模型預(yù)測(cè)整個(gè)文本出現(xiàn)的概率,因此能夠得到比較多的訓(xùn)練數(shù)據(jù)(文本不需要進(jìn)行標(biāo)注,因此會(huì)比圖像便宜,只需要拿出一定量的文本即可)來(lái)做比較大的模型
  • 生成文本,給定前面幾個(gè)詞,不斷使用 xt ~ p( xt | x1,x2, ... x(t-1) ) 來(lái)生成后續(xù)文本(給定前面幾個(gè)詞,不斷地采樣下一個(gè)詞,然后一直預(yù)測(cè)下去)對(duì)模型的要求比較高,否則誤差會(huì)不斷累積
  • 判斷多個(gè)序列中哪個(gè)更常見(jiàn):使用語(yǔ)言模型判斷哪一個(gè)序列出現(xiàn)的概率更高(在打字的時(shí)候,輸入法自動(dòng)補(bǔ)全也是根據(jù)語(yǔ)言模型來(lái)判斷句子出現(xiàn)的概率,還可以針對(duì)特定用戶打字的習(xí)慣來(lái)進(jìn)行個(gè)性化定制,根據(jù)用戶之前的使用習(xí)慣來(lái)進(jìn)行補(bǔ)全和糾錯(cuò))





使用計(jì)數(shù)來(lái)建模

  • 語(yǔ)言模型可以使用計(jì)數(shù)來(lái)進(jìn)行建模


假設(shè)序列長(zhǎng)度為 2 ,可以預(yù)測(cè)

  • n:總詞數(shù)(或者 token 的個(gè)數(shù)),也就是采集到的所有樣本
  • n(x):x 在整個(gè)詞中出現(xiàn)的個(gè)數(shù)
  • n(x,x'):連續(xù)單詞對(duì)的出現(xiàn)次數(shù)
  • P(x):統(tǒng)計(jì) x 在數(shù)據(jù)集中的出現(xiàn)次數(shù),然后將其除以整個(gè)語(yǔ)料庫(kù)中的總詞數(shù)(這種方法對(duì)于頻繁出現(xiàn)的單詞效果還是不錯(cuò)的)



拓展到序列長(zhǎng)度為 3 的情況





N 元語(yǔ)法

  • 當(dāng)序列很長(zhǎng)時(shí),因?yàn)槲谋玖坎粔虼?,很可?n( x1, ... ,xT) <= 1
  • 在序列長(zhǎng)度比較長(zhǎng)的情況下,可以使用馬爾科夫假設(shè)
  • 對(duì)于 N 元語(yǔ)法來(lái)說(shuō),所要看的子序列的長(zhǎng)度是固定的,N 越大,對(duì)應(yīng)的依賴關(guān)系越長(zhǎng),精度越高,但是空間復(fù)雜度比較大
  • 二元語(yǔ)法、三元語(yǔ)法比較常見(jiàn)


如果

成立,則序列上的分布滿足一階馬爾科夫性質(zhì),且階數(shù)越高,對(duì)應(yīng)的依賴關(guān)系就越長(zhǎng)



一元語(yǔ)法(unigram)


  • 馬爾科夫假設(shè)中的 τ 為 0 ,也就是說(shuō)每次計(jì)算 xt 的概率時(shí),不用考慮 xt 之前的數(shù)據(jù)
  • 使用一元語(yǔ)法計(jì)算 p( x1,x2,x3,x4):可以認(rèn)為這個(gè)序列中每個(gè)詞是獨(dú)立



二元語(yǔ)法(bigram)

  • 馬爾科夫假設(shè)中的 τ 為 1 ,也就是說(shuō)每次計(jì)算 xt 的概率時(shí),只依賴于 x( t-1 ),也就是說(shuō)每一個(gè)詞和前面一個(gè)詞是相關(guān)的



三元語(yǔ)法(trigram)

  • 馬爾科夫假設(shè)中的 τ 為 2 ,也就是說(shuō)每次計(jì)算 xt 的概率時(shí),只依賴于 x( t - 1 ) 和 x( t - 2 ),也就是說(shuō)每一個(gè)詞和前面兩個(gè)詞是相關(guān)的



N 元語(yǔ)法的好處

  • 最大的好處是可以處理比較長(zhǎng)的序列。如果序列很長(zhǎng)的話,很難把它存下來(lái),不可能將序列中任何長(zhǎng)度的序列都存下來(lái),這是一個(gè)指數(shù)級(jí)的復(fù)雜度
  • 所以對(duì)于任意長(zhǎng)度的序列,N 元語(yǔ)法所掃描的子序列長(zhǎng)度是固定的:比如說(shuō)對(duì)于二元語(yǔ)法來(lái)說(shuō),每次只看長(zhǎng)為 2 的子序列,首先將長(zhǎng)度為 2 的任何一個(gè)詞 n(x1,x2)(都來(lái)自序列中,假設(shè)整個(gè)字典中有 1000 個(gè)詞,則長(zhǎng)為 2 的詞有 1000*1000=1000,000 種可能性)存下來(lái),然后將每一個(gè)詞和另外一個(gè)詞組成的詞在文本中出現(xiàn)的概率 n(x1,x2) 全部存起來(lái),再把一個(gè)詞 n(x1) 出現(xiàn)的概率存起來(lái),最后把 n?。ㄒ簿褪牵保埃埃埃┐嫫饋?lái)
  • 查詢一個(gè)任意長(zhǎng)度的序列的時(shí)間復(fù)雜度為 o(T),T 是序列長(zhǎng)度
  • N 元語(yǔ)法和?。巍∈且粋€(gè)指數(shù)關(guān)系,隨著?。巍〉脑龃?,需要存的東西就會(huì)變得很大,所以一元語(yǔ)法使用的不多(一元語(yǔ)法完全忽略掉了時(shí)序信息),二元語(yǔ)法、三元語(yǔ)法使用的比較多
  • 使用馬爾科夫假設(shè)的?。巍≡Z(yǔ)法的好處:如果將詞存起來(lái),就可以使得計(jì)算復(fù)雜度變成?。铮ǎ裕┒皇恰。铮ǎ危?,o(T) 很重要,因?yàn)檎Z(yǔ)料庫(kù)通常會(huì)很大,判斷一個(gè)句子的概率的情況下,每秒鐘可能需要做一百萬(wàn)次左右,在語(yǔ)音識(shí)別或者是輸入法補(bǔ)全的時(shí)候需要進(jìn)行實(shí)時(shí)的計(jì)算,因此計(jì)算復(fù)雜度非常關(guān)鍵,對(duì)于?。巍≡Z(yǔ)法來(lái)講,N 越大,精度越高,但是隨著?。巍〉脑龃?,空間復(fù)雜度也會(huì)增大,即使是這樣,二元語(yǔ)法、三元語(yǔ)法也是非常常見(jiàn)的模型





自然語(yǔ)言統(tǒng)計(jì)


停用詞(stop?。鳎铮颍洌螅?/strong>

  • 停用詞是指在信息檢索中,為節(jié)省存儲(chǔ)空間提高搜索效率,在處理自然語(yǔ)言數(shù)據(jù)(或文本)之前或之后會(huì)自動(dòng)過(guò)濾掉某些字或詞





讀取長(zhǎng)序列數(shù)據(jù)

  • 序列數(shù)據(jù)本質(zhì)上是連續(xù)的,因此當(dāng)序列變得太長(zhǎng)而不能被模型一次性全部處理時(shí),就希望對(duì)序列進(jìn)行拆分以方便模型的讀取


總體策略

假設(shè)使用神經(jīng)網(wǎng)絡(luò)來(lái)訓(xùn)練語(yǔ)言模型,模型中的網(wǎng)絡(luò)一次處理具有預(yù)定義長(zhǎng)度(例如?。睢€(gè)時(shí)間步)的一個(gè)小批量序列



如何隨機(jī)生成一個(gè)小批量數(shù)據(jù)的特征和標(biāo)簽以供讀???

1、文本序列可以是任意長(zhǎng)的,因此任意長(zhǎng)的序列可以被劃分為具有相同時(shí)間步數(shù)的子序列

2、訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),將這些具有相同步數(shù)的小批量子序列輸入到模型中

  • 假設(shè)神經(jīng)網(wǎng)絡(luò)一次處理具有?。睢€(gè)時(shí)間步的子序列
  • 上圖展示了從原始文本序列中獲得子序列的所有不同的方式,其中?。睢〉扔凇。怠。⑶颐總€(gè)時(shí)間步的詞元對(duì)應(yīng)于一個(gè)字符

3、由于可以選擇任意偏移量來(lái)指示初始位置,因此具有相當(dāng)大的自由度

  • 如果只選擇一個(gè)偏移量,那么用于訓(xùn)練網(wǎng)絡(luò)的、所有可能的子序列的覆蓋范圍將是有限的。因此可以從隨機(jī)偏移量開(kāi)始劃分序列,來(lái)同時(shí)獲得覆蓋性(coverage)隨機(jī)性(randomness)



隨機(jī)采樣(random?。螅幔恚穑欤椋睿纾?/strong>

  • 隨機(jī)采樣中,每個(gè)樣本都是在原始的長(zhǎng)序列上任意捕獲的子序列
  • 在迭代過(guò)程中,來(lái)自兩個(gè)相鄰的、隨機(jī)的、小批量中的子序列不一定在原始序列上相鄰
  • 語(yǔ)言建模的目標(biāo)是基于當(dāng)前所看到的詞元預(yù)測(cè)下一個(gè)詞元,因此標(biāo)簽是移位了一個(gè)詞元的原始序列



順序分區(qū)(sequential partitioning)

  • 順序分區(qū):迭代過(guò)程中,除了對(duì)原始序列可以隨機(jī)抽樣外,還可以保證兩個(gè)相鄰的小批量中的子序列在原始序列上也是相鄰的,這種策略在基于小批量的迭代過(guò)程中保留了拆分的子序列的順序





總結(jié)

1、語(yǔ)言模型是自然語(yǔ)言處理的關(guān)鍵,語(yǔ)言模型其實(shí)就是估計(jì)文本序列的聯(lián)合概率,也是?。危蹋小☆I(lǐng)域最常見(jiàn)的應(yīng)用

2、使用統(tǒng)計(jì)方法時(shí)通常采用 n元語(yǔ)法,每次看一個(gè)長(zhǎng)為 n 的子序列來(lái)進(jìn)行計(jì)數(shù),對(duì)于給定的長(zhǎng)序列拆分成很多個(gè)連續(xù)的長(zhǎng)度為?。巍〉淖有蛄?,就能夠計(jì)算文本序列的聯(lián)合概率了。n元語(yǔ)法通過(guò)截?cái)嘞嚓P(guān)性,為處理長(zhǎng)序列提供了一種實(shí)用的模型(長(zhǎng)序列的問(wèn)題在于它們很少出現(xiàn)或者從不出現(xiàn))

3、齊普夫定律(Zipf's?。欤幔鳎?/strong>支配著單詞的分布,這個(gè)分布不僅適用于一元語(yǔ)法,還適用于其他?。睢≡Z(yǔ)法


  • 想要通過(guò)計(jì)數(shù)統(tǒng)計(jì)平滑來(lái)建模單詞是不可行的,因?yàn)檫@樣建模會(huì)大大高估尾部單詞(即不常用的單詞)的頻率

4、通過(guò)拉普拉斯平滑法可以有效地處理結(jié)構(gòu)豐富而頻率不足的低頻詞詞組

5、讀取長(zhǎng)序列的主要方式是隨機(jī)采樣順序分區(qū)。在迭代過(guò)程中,后者可以保證來(lái)自兩個(gè)相鄰的小批量中的子序列在原始序列上也是相鄰的





Q&A


  • 1、在文本預(yù)處理中,所構(gòu)建的詞匯表把文本映射成數(shù)字,文本數(shù)據(jù)量越大,映射的數(shù)字也就越大,這些數(shù)字還需要做預(yù)處理嗎?例如歸一化處理等。是否對(duì)模型有影響?
    ?
    QA P3 - 00:00
    ?


  • 2、連續(xù)單詞對(duì)是指有固定先后順序的還是任何順序都可行呢?
    ?
    QA P3 - 00:41
    ?


  • 3、n 元語(yǔ)法,n 的增長(zhǎng)對(duì)空間的增長(zhǎng)是指數(shù)級(jí)的。但如果不存 count 為 0 的詞的組合的話,空間復(fù)雜度還是 n 吧?也就是把一篇文章從頭到尾掃一次就行吧,相當(dāng)于一個(gè) n 的sliding window
    ?
    QA P3 - 01:33
    ?


  • 4、過(guò)濾低頻次是不是叫長(zhǎng)尾效應(yīng)?
    ?
    QA P3 - 02:54
    ?


  • 5、中文分詞的好壞對(duì)結(jié)果有影響,ngram 的思維能否用在中文字的維度,而不用分詞?
    ?
    QA P3 - 04:06
    ?


  • 6、o(T),T 指的是什么?
    ?
    QA P3 - 04:43
    ?


  • 7、請(qǐng)問(wèn) n-gram 怎么在廣告中當(dāng)特征?
    ?
    QA P3 - 04:54
    ?


  • 8、語(yǔ)言 sequence sample ( token 是 word )的時(shí)間跨度 T 大概設(shè)成多少比較好?如果是中文的話一般又是多少?
    ?
    QA P3 - 07:30
    ?





----end----

其他參考

1、《動(dòng)手學(xué)深度學(xué)習(xí)》,課程安排,https://courses.d2l.ai/zh-v2/assets/pdfs/part-3_2.pdf

2、《動(dòng)手學(xué)深度學(xué)習(xí)》,https://zh-v2.d2l.ai/chapter_recurrent-neural-networks/language-models-and-dataset.html

53 語(yǔ)言模型【動(dòng)手學(xué)深度學(xué)習(xí)v2】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
涞源县| 安泽县| 宜兴市| 江达县| 南岸区| 百色市| 威海市| 故城县| 奉节县| 临沂市| 师宗县| 玉山县| 大冶市| 清徐县| 正安县| 闵行区| 富裕县| 连南| 饶平县| 陈巴尔虎旗| 阳谷县| 水富县| 洞口县| 报价| 诏安县| 磐石市| 富平县| 诸暨市| 吐鲁番市| 唐山市| 灵璧县| 辽宁省| 浦北县| 铜梁县| 东源县| 商洛市| 塘沽区| 调兵山市| 翁源县| 加查县| 桃江县|