01 語言結構是自然語言的固有屬性
自然語言是非線性的,有其內在結構的。如中文是“SVO”型語言,可以形成“主語+謂語+賓語”的句子結構,可以有多種短語結構,如:
“花貓逮住了一隻耗子” (主謂結構)
“他吃得越來越胖” (述補結構)
不同的句式結構:
“把衣服都洗乾淨了”(“把”字句)
“把小偷打了一頓” (“把”字句)
“我請他作報告” (兼語句)
“先別告訴他比較好” (形容詞謂語句)
不同的句間結構:
“營業員手一扳,轉過櫃檯,竹殼熱水瓶擺到紹興酒罈旁邊,漏斗插進瓶口” (流水句,一個小句接一個小句,每個句子都是獨立的,共享一個主語。)
巢狀的語言結構。如下例是形容詞謂語句,主語是動賓結構。
“先別告訴他比較好” (形容詞謂語句)
不同語言間語言結構也有較大差異。如中文經常使用多個小句串在一起構成複雜句,而同樣的表達,英文中可以對應為介詞短語結構,也可對應為“to +動詞“結構。
“經濟增長連續四年達到或略高於10%,沒有出現明顯通貨膨脹。 ”
“For four years in a row, economic growth has reached or slightly exceeded 10% without significant inflation. ”
“抓緊制定並實施國家智慧財產權戰略,切實加強智慧財產權保護。”
“We will move quickly to formulate and implement a national strategy for intellectual property rights to strengthen protection for them.”
不同語言間結構的差異,對機器翻譯技術有較大影響。
02 深度學習技術對語言結構處理的侷限性
對語言結構的重視程度,在NLP各個發展階段不盡相同。在“理性主義”盛行的時代(1960-1980年左右),語言結構作為研究核心,研究和討論的最多,在形式語言理論框架下建立不同的形式化模型,如轉換生成語法、詞彙功能語法、廣義短語結構語法、中心詞驅動的短語結構語法、依存語法、範疇語法、組合範疇語法等。在“經驗主義”統計機器學習的時代(1990-2010年左右),研究重點是語言結構的機率化,出現了基於統計的形式化機制,如HMM(隱馬爾科夫模型)、PCFG(機率上下文無關語法)等。當前,基於聯結的“經驗主義”研究,如 CNN(卷積神經網路)、RNN(迴圈神經網路)、LSTM(長短時記憶模型)、BERT模型等,則較少涉及語言結構,更多的是神經網路的層級和引數量。記得在讀研的時候(1995年左右),NLP研究生都要求選修語言學課程,大家討論的多是“這個動詞短語怎麼處理”、“這個結構中文和英文有什麼差異”。而現在沒人討論語言結構了,討論的是“模型有幾億個引數,訓練了幾百層,涵蓋了多少種語言”,希望一個模型搞定所有結構,所有語種。
毫無疑問,深度學習已成為NLP技術的重要技術。深度學習對語言的處理,基本是在向量化的基礎上,將語言串轉換為線性化的sequence,然後利用相似度等計算,求解sequence的最優解。向量化使用的語言特徵,是簡單的淺層特徵,如詞頻、TF/IDF權值、位置等,在Attention、LSTM等演算法模型中,用到了距離、分層等特徵。但就總體而言,深度學習尚無法有效地表示和處理複雜的語言結構,如述補結構、兼語句等。
甚至在學術界,如何對待語言結構,目前尚沒有達成共識。深度學習大牛Yan LeCun將“結構”稱為“必要的惡”,主張使用簡單而強大的神經架構執行復雜任務,不需大量針對特定任務的特徵工程。而史丹佛教授Chris Manning則將“結構”(structure)稱為“必要的善”,積極推動將更多的語言結構融入深度學習。蒙特利爾大學教授Yoshua Bengio認為目前NLP面臨最大的問題是“基礎語言學習,即共同學習世界模型以及如何用自然語言處理中引用模型”,“在深度學習框架內融合語言理解和推理”。
03 泰嶽語義工廠的語言結構處理能力
神州泰嶽人工智慧研究院,與國內著名高校北京師範大學合作,將符號化語義表示與深度學習技術進行結合,形成了自主智慧財產權的智慧語義認知技術。智慧語義認知技術,能有效地識別多種語言結構,實現同一意思、不同結構的歸一化處理;同時對語言結構的遞迴巢狀處理,也表現優異。
1 語言結構的識別
中文的“把字句”、“被字句”等句式結構,本質上是“把、被”這樣的介詞(或功能詞)對句子中詞語順序的一種改變。如“他打碎了花瓶”,我們可以說成“我把花瓶打碎了”,或“花瓶被我打碎了”,而句子的意思基本保持不變。由於“把、被”這樣的功能詞使用的靈活性,一個句子中經常會有多個功能詞出現,對NLP的處理造成了極大的混淆。對帶功能詞的語言結構的識別能力,是NLP的基本能力。
智慧語義認知技術可以有效地處理帶功能詞的語言結構,目前我們已經可以有效識別包含5個以上功能詞的複雜句子。如下面的句子,其中包含有“由、把、在、中、上”5個功能詞,我們可以識別出如圖所示結構,圖1表示出了每個功能詞的層級關係和對句子結構的影響。
“一種由特殊紫外線啟用的粘合劑把感測器殼體固定在中支架上。”
圖1 一個典型的“把字句”的語言結構識別結果
2 語言結構的歸一化
自然語言中,經常選擇不同的詞語或使用不同的詞語順序,來表達同樣的語義。如下面一組句子,詞語的選擇和順序上有較大不同,但表達的是同樣的意思。對這樣的一組句子,我們希望NLP能識別出同一個語言結構,這稱之為語言結構的歸一化。
“泰國隊大敗中國隊”
“中國隊大敗於泰國隊”
“泰國隊大勝中國隊”
“中國隊惜敗泰國隊”
“中國隊惜敗於泰國隊”
“中國隊被泰國隊幹掉了”
“泰國隊把中國隊幹掉了”
智慧語義認知技術,對這組不同的句子,不管其選擇的詞彙是“大敗”,還是“大勝”,也不管句子中是否使用了“把、被”這樣的功能詞,都可以給實體“泰國隊”輸出語義角色標註“RB1”,給實體“中國隊”輸出語義角色標註“RB2”,如圖2所示。
圖2 一組典型句子的語言結構歸一化
3 語言結構的遞迴處理
語言結構是可以遞迴巢狀的,在不同的語言中,巢狀的手段各不相同。在英文中,是用“which、that、where”等從句來引出巢狀。但在中文,卻沒有這樣明顯的標記,處理起來也更為困難。
“可根據由偏航角速度感測器15 輸出的訊號測得的偏航角對各個被監測物件的實際空間位置(X(k)、Y(k)、Z(k))的偏航角進行修正。”
例子中,包含3層語言結構巢狀關係
第一層:
可...對各個被監測物件...的偏航角進行修正
第二層: 在“對”前的“根據...”這個條件語塊中
由...訊號測得的偏航角
第三層: 在“由...訊號”這個語塊中
偏航角速度感測器15 輸出的訊號
這種複雜的語言結構巢狀,在書面語中很普遍,特別是在有專業背景的業務場景中,如公安、司法、專利、醫療等場景。
智慧語義認知技術,對這種具有複雜結構的句子,除了利用詞語組合、機率統計等表層特徵和方法,還加入了遠距離的語義約束計算,以及句子序列的切分和層級處理。目前我們已經可以識別出3層以上語言結構的遞迴巢狀。這一點目前只有智慧語義認知技術能做到。相對來說,目前的深度學習技術,把句子當做一個序列來處理,基本不涉及序列的遞迴處理,因此,對語言結構的遞迴處理能力較弱。
04 語言結構的處理是NLP的核心能力
語言結構的處理,是對語言固有屬性的認識與挖掘,也理應是NLP的核心能力。對語言結構的有效處理,不僅可以提升NLP在歸一化、遞迴處理等方面的能力,而且可以把包含在複雜語言現象下的語言特徵,像剝洋蔥一樣,一層層開啟,這將大大增強NLP的可解釋性。
複雜語言結構的處理能力,作為智慧語義認知技術的核心能力,已經成功應用到了公安、金融、司法等多個實際場景中,其處理結果的可解釋性,得到了業務使用者的普遍認可。智慧語義認知技術在NLP的可解釋性上已經有了很好的基礎,日前推出的泰嶽語義工廠SAAS服務平臺,將把這種核心處理能力,與我們在16個行業領域積累的演算法、模型開放出來,賦能更多的行業合作伙伴。
作者:晉耀紅博士,神州泰嶽首席科學家,人工智慧研究院院長,北京師範大學教授,博士生導師。