自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何讓機(jī)器理解漢字一筆一畫的奧秘?

人工智能 機(jī)器學(xué)習(xí)
從智能客服到機(jī)器翻譯,從文本摘要生成到用戶評(píng)論分析,從文本安全風(fēng)控到商品描述建模,無(wú)不用到自然語(yǔ)言技術(shù),作為人工智能領(lǐng)域的一個(gè)重要分支,如何讓機(jī)器更懂得人類的語(yǔ)言,尤其是漢字這種強(qiáng)表意文字,是一個(gè)具有極大挑戰(zhàn)的事情。

[[227335]]

背景介紹

從智能客服到機(jī)器翻譯,從文本摘要生成到用戶評(píng)論分析,從文本安全風(fēng)控到商品描述建模,無(wú)不用到自然語(yǔ)言技術(shù),作為人工智能領(lǐng)域的一個(gè)重要分支,如何讓機(jī)器更懂得人類的語(yǔ)言,尤其是漢字這種強(qiáng)表意文字,是一個(gè)具有極大挑戰(zhàn)的事情。

詞向量,是一種利用無(wú)監(jiān)督學(xué)習(xí)方式(不需要人工數(shù)據(jù)標(biāo)注),將詞語(yǔ)映射到語(yǔ)義向量空間的技術(shù)。舉個(gè)例子:在過(guò)去,計(jì)算機(jī)使用下標(biāo)表示詞語(yǔ),比如“貓: 2123”,“狗: 142”,由于下標(biāo)不一樣,機(jī)器就只會(huì)認(rèn)為是不同的詞語(yǔ),卻不能像人一樣感知詞語(yǔ)間的語(yǔ)義關(guān)系。而詞向量技術(shù)恰好彌補(bǔ)了這一點(diǎn),使機(jī)器可以理解潛在的語(yǔ)義信息。實(shí)際上,現(xiàn)在很多自然語(yǔ)言處理的算法都是將其作為輸入,進(jìn)而建立端到端的算法模型。因此,設(shè)計(jì)出高質(zhì)量的詞向量生成算法是一個(gè)值得探討的問(wèn)題。

中文經(jīng)過(guò)幾千年的發(fā)展和演變,是一種強(qiáng)表意文字,對(duì)于我們而言,即使某個(gè)字不認(rèn)識(shí),都或許可以猜到其含義,機(jī)器卻很難理解這些。比如,“蘒”這個(gè)字我們很可能不認(rèn)識(shí),但里面有“艸”字頭,和“禾”木旁,那它也許就是長(zhǎng)得像該字右下角部分的某種植物吧。通過(guò)詞向量的方式,我們希望讓機(jī)器能夠理解漢字一筆一畫之間的奧秘。然而,傳統(tǒng)的算法并不能很好的利用中文語(yǔ)言學(xué)上的特性,這篇文章里,我們將提出一種利用筆畫信息來(lái)提高中文詞向量的方法。

詞向量算法是自然語(yǔ)言處理領(lǐng)域的基礎(chǔ)算法,在序列標(biāo)注、問(wèn)答系統(tǒng)和機(jī)器翻譯等諸多任務(wù)中都發(fā)揮了重要作用。詞向量算法最早由谷歌在2013年提出的word2vec,在接下來(lái)的幾年里,經(jīng)歷不斷的改進(jìn),但大多是只適用于拉丁字符構(gòu)成的單詞(比如英文),結(jié)合中文語(yǔ)言特性的詞向量研究相對(duì)較少。

相關(guān)工作:

早在1954年,語(yǔ)言學(xué)家Harris提出“Distributional Hypothesis [1](分布式假設(shè))”:語(yǔ)義相似的單詞往往會(huì)出現(xiàn)在相似的上下文中。這一假設(shè)奠定了后續(xù)各種詞向量的語(yǔ)言學(xué)基礎(chǔ),即用數(shù)學(xué)模型去刻畫單詞和其上下文的語(yǔ)義相似度。Bengio et al., 2003 [2] 提出了NNLM(基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型),由于每次softmax的計(jì)算量很大(分母項(xiàng)的計(jì)算時(shí)間復(fù)雜度O(|V|),V是全詞表),相繼出現(xiàn)了很多快速近似計(jì)算策略。

為了解決上述問(wèn)題,谷歌提出了word2vec [3,4] 算法,其中包含了兩種策略,一種叫做Negative Sampling(負(fù)采樣),另一種是hierarchical softmax(層次softmax)。Negative Sampling的核心思想:每次softmax計(jì)算所有單詞太慢,那就隨機(jī)的選幾個(gè)算一算好了,當(dāng)然,訓(xùn)練語(yǔ)料中出現(xiàn)次數(shù)越多的單詞,也就越容易被選中;而Hierarchical Softmax,簡(jiǎn)單來(lái)說(shuō),就是建一棵樹狀的結(jié)構(gòu),每次自上而下的從根計(jì)算到葉子節(jié)點(diǎn),那么就只有對(duì)數(shù)時(shí)間復(fù)雜度了!如何構(gòu)建這棵樹可以使得讓樹的高度盡量小呢?哈夫曼樹。

詞向量模型的核心是構(gòu)造單詞與其上下文的相似度函數(shù),word2vec工具包里面有兩種實(shí)現(xiàn)方式,分別是skipgram和cbow。

 圖 1  SGNS算法示意圖

假設(shè)當(dāng)前單詞w是“cat”,而上下文單詞c是“sat”,算法的目標(biāo)是給定w***化c出現(xiàn)概率(skipgram)。在這個(gè)算法中,每個(gè)單詞都被當(dāng)作一個(gè)整體,利用外部的上下文結(jié)構(gòu)信息去學(xué)習(xí)得到詞向量。

那么是否可以充分結(jié)合單詞內(nèi)部結(jié)構(gòu)的(亞詞)信息,將其拆分成更細(xì)粒度的結(jié)構(gòu)去增強(qiáng)詞向量?英文中每個(gè)單詞所包含的character(字母)較多,每個(gè)字母并沒(méi)有實(shí)際的語(yǔ)義表達(dá)能力。對(duì)于中文詞語(yǔ)而言,中文詞語(yǔ)可以拆解成character(漢字)。

Chen et al., 2015 [5] 提出了CWE模型,思路是把一個(gè)中文詞語(yǔ)拆分成若干漢字,然后把原詞語(yǔ)的向量表示和其中的每一個(gè)漢字的向量表示做平均,然后作為新的詞語(yǔ)向量。

[[227337]]

[[227338]]

 圖 2  CWE模型示例

在該算法中,“智能”是一個(gè)上下文詞語(yǔ),先拆解成兩個(gè)漢字“智”和“能”,然后計(jì)算出新的詞語(yǔ)向量表示;同理,上下文詞語(yǔ)“到來(lái)”也得到重新計(jì)算。CWE保持當(dāng)前詞語(yǔ)不拆分,這里“時(shí)代”保持不變。

不難想到,將漢字拆分成偏旁或許是一種不錯(cuò)的方式,Sun et al., 2014 [6]和Li et al., 2015 [7] 做過(guò)相關(guān)的研究。然而偏旁只是漢字的一部分,Yu et al., 2017 [8] 提出了更加細(xì)化的拆分,根據(jù)人工總結(jié)的“字件”,將漢字拆成一個(gè)一個(gè)的小模塊,把詞、漢字和字件一起進(jìn)行聯(lián)合學(xué)習(xí):

 圖 3  JWE算法示意圖

其中,w , c和s分別表示詞語(yǔ)、漢字和字件模塊。字件粒度的拆分也取得了超過(guò)僅僅利用偏旁信息的方法。

此外,Su and Lee, 2017 [9] 提出了GWE模型,嘗試從漢字的圖片中利用卷積自動(dòng)編碼器來(lái)提取特征:

 圖 4  GWE卷積神經(jīng)網(wǎng)絡(luò)提取特征示意圖

從漢字圖片提取出特征之后,再結(jié)合上下文結(jié)構(gòu)信息學(xué)習(xí)中文詞向量。很遺憾的是,根據(jù)其原文的描述,這種方式得到的特征基本沒(méi)有提升,不過(guò)這確實(shí)是非常有意思的一次試探。

問(wèn)題與挑戰(zhàn):

自然語(yǔ)言處理的***會(huì)議ACL 2017,共提出了未來(lái)的四大研究方向,如何更好的利用“亞詞”信息就是其中的一個(gè)。在中文詞向量場(chǎng)景下,僅將中文詞語(yǔ)拆解到漢字粒度,會(huì)一定程度上提高中文詞向量的質(zhì)量,是否存在漢字粒度仍不能刻畫的情況?

 圖 5  漢字粒度拆解

可以看出,“木材”和“森林”是兩個(gè)語(yǔ)義很相關(guān)的詞語(yǔ),但是當(dāng)我們拆解到漢字粒度的時(shí)候,“木”和“材”這兩個(gè)字對(duì)比“森”和“材”沒(méi)有一個(gè)是相同的(一般會(huì)用一個(gè)下標(biāo)去存儲(chǔ)一個(gè)詞語(yǔ)或漢字),因此對(duì)于這個(gè)例子而言,漢字粒度拆解是不夠的。我們所希望得到的是:

 圖 6  更細(xì)粒度的亞詞信息拆解

“木”和“材”可以分別拆解出“木”和“木”(來(lái)源于“材”的左半邊)結(jié)構(gòu),而“森”和“林”分別拆解得到多個(gè)“木”的相同結(jié)構(gòu)。此外,可以進(jìn)一步將漢字拆解成偏旁、字件,對(duì)于以上例子可以有效提取出語(yǔ)義結(jié)構(gòu)信息,不過(guò)我們也分析到:

 圖 7  偏旁和字件結(jié)構(gòu)拆分舉例

可以看出,“智”的偏旁恰好是“日”,而“日”不能表達(dá)出“智”的語(yǔ)義信息。實(shí)際上,偏旁的設(shè)計(jì)是為了方便在字典中查詢漢字,因此結(jié)構(gòu)簡(jiǎn)單、出現(xiàn)頻率高變成了首要原則,并不一定恰好能夠表達(dá)出該漢字的語(yǔ)義信息。此外,將“智”拆分到字件粒度,將會(huì)得到“失”,“口”和“日”三個(gè),很不巧的是,這三個(gè)字件也均不能表達(dá)其漢字語(yǔ)義。我們需要設(shè)計(jì)出一種新的方法,來(lái)重新定義出詞語(yǔ)(或漢字)具有語(yǔ)義的結(jié)構(gòu):

 圖 8  更細(xì)粒度的亞詞信息拆解舉例

這里,“知”是可以表達(dá)出“智”語(yǔ)義的模塊,如何得到這樣的亞詞結(jié)構(gòu),并結(jié)合句子上下文設(shè)計(jì)模型的優(yōu)化目標(biāo),生成出更好的中文詞向量,將是后文要探索的內(nèi)容。

cw2vec模型:

單個(gè)英文字符(character)是不具備語(yǔ)義的,而中文漢字往往具有很強(qiáng)的語(yǔ)義信息。不同于前人的工作,我們提出了“n元筆畫”的概念。所謂“n元筆畫”,即就是中文詞語(yǔ)(或漢字)連續(xù)的n個(gè)筆畫構(gòu)成的語(yǔ)義結(jié)構(gòu)。

 圖 9  n元筆畫生成的例子

如上圖,n元筆畫的生成共有四個(gè)步驟。比如說(shuō),“大人”這個(gè)詞語(yǔ),可以拆開(kāi)為兩個(gè)漢字“大”和“人”,然后將這兩個(gè)漢字拆分成筆畫,再將筆畫映射到數(shù)字編號(hào),進(jìn)而利用窗口滑動(dòng)產(chǎn)生n元筆畫。其中,n是一個(gè)范圍,在上述例子中,我們將n取值為3, 4和5.

在論文中我們提出了一種基于n元筆畫的新型的損失函數(shù):

 

圖 10  算法過(guò)程的舉例

如上圖所示,對(duì)于“治理 霧霾 刻不容緩”這句話,假設(shè)此刻當(dāng)前詞語(yǔ)恰好是“霧霾”,上下文詞語(yǔ)是“治理”和“刻不容緩”。首先我們將當(dāng)前詞語(yǔ)“霧霾”拆解成n元筆畫并映射成數(shù)字編碼,然后劃窗得到所有的n元筆畫,根據(jù)我們?cè)O(shè)計(jì)的損失函數(shù),計(jì)算每一個(gè)n元筆畫和上下文詞語(yǔ)的相似度,進(jìn)而根據(jù)損失函數(shù)求梯度并對(duì)上下文詞向量和n元筆畫向量進(jìn)行更新。

為了驗(yàn)證我們提出的cw2vec算法的效果,我們?cè)诠_(kāi)數(shù)據(jù)集上,與業(yè)界***的幾個(gè)詞向量算法做了對(duì)比:

圖 11  實(shí)驗(yàn)結(jié)果

上圖中包括2013年谷歌提出的word2vec [2,3] 的兩個(gè)模型skipgram和cbow,2014年斯坦福提出的GloVe算法 [10],2015年清華大學(xué)提出的基于漢字的CWE模型 [5],以及2017年***發(fā)表的基于像素和字件的中文詞向量算法 [8,9],可以看出cw2vec在word similarity,word analogy,以及文本分類和命名實(shí)體識(shí)別的任務(wù)中均取得了一致性的提升。同時(shí),我們也展示了不同詞向量維度下的實(shí)驗(yàn)效果:

圖 12  不同詞向量維度下的實(shí)驗(yàn)結(jié)果

上圖為不同維度下在word analogy測(cè)試集上的實(shí)驗(yàn)結(jié)果,左側(cè)為3cosadd,右側(cè)為3cosmul的測(cè)試方法??梢钥闯鑫覀兊乃惴ㄔ诓煌S度的設(shè)置下均取得了不錯(cuò)的效果。此外,我們也在小規(guī)模語(yǔ)料上進(jìn)行了測(cè)試:

 圖 13  小訓(xùn)練數(shù)據(jù)下的實(shí)驗(yàn)結(jié)果

上圖是僅選取20%中文維基百科訓(xùn)練語(yǔ)料,在word similarity下測(cè)試的結(jié)果,skipgram, cbow和GloVe算法由于沒(méi)有利用中文的特性信息進(jìn)行加強(qiáng),所以在小語(yǔ)料上表現(xiàn)較差,而其余四個(gè)算法取得了不錯(cuò)的效果,其中我們的算法在兩個(gè)數(shù)據(jù)集上均取得的了***效果。

圖 14  案例分析結(jié)果

為了更好的探究不同算法的實(shí)際效果,我們專門選取了兩個(gè)詞語(yǔ)做案例分析。***個(gè)是環(huán)境相關(guān)的“水污染”,然后根據(jù)詞向量利用向量夾角余弦找到與其語(yǔ)義最接近的詞語(yǔ)。GWE找到了一些和“污”字相關(guān)的詞語(yǔ),比如“污泥”,“污漬”和“污垢”,而JWE則更加強(qiáng)調(diào)后兩個(gè)字“污染”GloVe找到了一些奇怪的相近詞語(yǔ),比如“循環(huán)系統(tǒng)”,“神經(jīng)系統(tǒng)”。CWE找到的相近詞語(yǔ)均包含“水”和“污”這兩個(gè)字,我們猜測(cè)是由于其利用漢字信息直接進(jìn)行詞向量加強(qiáng)的原因。此外,只有cw2vec找到了“水質(zhì)”這個(gè)相關(guān)詞語(yǔ),我們認(rèn)為是由于n元筆畫和上下文信息對(duì)詞向量共同作用的結(jié)果。第二個(gè)例子,我們特別選擇了“孫悟空”這個(gè)詞語(yǔ),該角色出現(xiàn)在中國(guó)的名著《西游記》和知名日本動(dòng)漫《七龍珠》中,cw2vec找到的均為相關(guān)的角色或著作名稱。

作為一項(xiàng)基礎(chǔ)研究成果,cw2vec在阿里的諸多場(chǎng)景上也有落地。在智能客服、文本風(fēng)控和推薦等實(shí)際場(chǎng)景中均發(fā)揮了作用。此外,不單單是中文詞向量,對(duì)于日文、韓文等其他語(yǔ)言我們也進(jìn)行類似的嘗試,相關(guān)的發(fā)明技術(shù)專利已經(jīng)申請(qǐng)近二十項(xiàng)。

我們希望能夠在基礎(chǔ)研究上追趕學(xué)術(shù)界、有所建樹,更重要的是,在具體的實(shí)際場(chǎng)景之中,能夠把人工智能技術(shù)真正的賦能到產(chǎn)品里,為用戶提供更好的服務(wù)。

論文下載

https://github.com/ShelsonCao/cw2vec/blob/master/cw2vec.pdf

參考資料

1. Harris, Zellig S. "Distributional structure." Word 1954.

2. Bengio, Yoshua, et al. "A neural probabilistic language model." JMLR 2003.

3. Mikolov, Tomas, et al. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013).

4. Mikolov, Tomas, et al. "Distributed representations of words and phrases and their compositionality." NIPS 2013.

5. Chen, Xinxiong, et al. "Joint Learning of Character and Word Embeddings." IJCAI 2015.

6. Sun, Yaming, et al. "Radical-enhanced Chinese character embedding." ICNIP 2014.

7. Li, Yanran, et al. "Component-enhanced Chinese character embeddings." arXiv preprint arXiv:1508.06669 (2015).

8. Yu, Jinxing, et al. "Joint Embeddings of Chinese Words, Characters, and Fine-grained Subcharacter Components." EMNLP 2017.

9. Su, Tzu-Ray, and Hung-Yi Lee. "Learning Chinese Word Representations From Glyphs Of Characters." EMNLP 2017.

10. Pennington, Jeffrey, et al. "Glove: Global vectors for word representation." EMNLP 2014.

【本文為51CTO專欄作者“阿里巴巴官方技術(shù)”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專欄
相關(guān)推薦

2009-07-15 16:39:51

AWT和Swing

2018-07-03 16:16:24

營(yíng)銷

2020-08-04 18:23:37

戴爾

2012-11-13 10:32:22

2022-09-16 00:32:39

SQL數(shù)據(jù)庫(kù)習(xí)慣

2011-05-30 13:27:09

2018-10-24 09:40:33

Python游戲七橋問(wèn)題

2021-03-14 22:42:48

區(qū)塊鏈數(shù)字經(jīng)濟(jì)技術(shù)

2018-12-10 10:24:10

百度AI武漢

2013-08-29 14:02:45

2018-10-16 09:54:59

代碼開(kāi)發(fā)AI

2023-04-30 12:33:43

AI顏色腳本

2023-05-19 11:32:54

MateBook E

2023-12-07 08:37:49

TCC模式

2023-08-18 14:11:00

藝術(shù)模型

2022-04-26 10:11:36

云計(jì)算FinOps云支出

2024-02-01 11:57:31

this指針代碼C++

2015-06-30 19:21:22

免費(fèi)OA

2016-04-26 09:42:27

歪評(píng)papi360

2015-08-12 15:31:18

人工智能深度學(xué)習(xí)Fackbook
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)