天天看點

自然語言處理的語義模組化介紹語言與語義語言歧義語義文法執行個體決定論與機率論通用與特定領域監督式自主學習

          在本文中,我将簡單介紹自然語言處理( NLP )的語義模組化思想。

語義模組化(或語義文法)通常與語言模組化(或語言文法)相比較,我們現在從二者的定義和對比來了解語義模組化。

語言與語義

語義文法和語言文法都定義了了解自然語言句子的形式。語言文法涉及名詞、動詞等語言範疇。另一方面,語義文法是這樣一種文法,它的非終端不是名詞或動詞等一般結構或語言類别,而是人或公司等語義類别。

語言和語義兩種方法在20世紀70年代幾乎同時出現。作為計算語言運動的一部分,語言模組化一直備受關注,并且是整個自然語言處理開發的基礎。

語義模組化一開始很受歡迎,但由于技術複雜,很快就失敗了。然而,近年來,語義模組化經曆了複興,現在它幾乎是Google、Cortana、Siri、Alexa等所有商業自然語言處理系統的基礎。

了解語義文法和語言文法之間差別的最簡單方法是看下面的插圖:

自然語言處理的語義模組化介紹語言與語義語言歧義語義文法執行個體決定論與機率論通用與特定領域監督式自主學習

在上圖中,上下句子相同,但處理方式不同。下面的部分使用傳統的語言文法進行分析,其中每個單詞都用PoS (語音點)标記,如名詞的NN,形容詞的JJ,等等。但是,上面的部分使用語義文法進行解析,一個或多個單詞形成進階語義類别,如日期或地理,而不是對單個單詞進行PoS标記。

這當然是語言方法的高度簡化的定義,因為我們忽略了共同參照分析、命名實體解析等。

這種将單個單詞組合成進階語義實體的能力被引入來幫助解決困擾早期NLP系統的一個關鍵問題——語言歧義。

語言歧義

請看下圖:

自然語言處理的語義模組化介紹語言與語義語言歧義語義文法執行個體決定論與機率論通用與特定領域監督式自主學習

盡管兩句的語言特征基本相同,但語義卻完全不同。僅僅用語言文法來解決這種歧義将需要非常複雜的語境分析——如果甚至在這種語境可用的時候——而且在許多情況下,根本不可能确定地做到這一點。

另一方面,語義文法允許以簡單和完全确定的方式清楚地解決這種歧義。使用構造得當的語義文法,Friday和Alexy這兩個詞将屬于不同的類别,是以不會導緻含義混亂。

請注意,這些詞除了具有相同的PoS标簽之外,還具有不同的“命名實體”分辨率。然而,在更複雜的現實生活中,名為實體解析的例子被證明遠沒有那麼有效。

語義文法執行個體

讓我們來看一下語義文法的簡單定義。

不管配置的具體文法如何,文法通常被定義為語義實體的集合,其中每個實體至少具有一個名稱和同義詞清單,通過這些名稱和清單可以識别該實體。

例如,以下是網站和使用者實體及其同義詞的簡單定義:

自然語言處理的語義模組化介紹語言與語義語言歧義語義文法執行個體決定論與機率論通用與特定領域監督式自主學習

根據這種文法,以下句子将全部分解成相同的兩個語義實體:

1.Website user

  2.HTTP address online user

  3.Website online user 

  4.<WEBSITE> <USER>

語義實體序列可以進一步綁定到使用者定義的意圖,以便最終采取行動。這種使用者定義意圖的集合通常構成完整的NLP流水線。

當然,現實生活中的系統支援更複雜的文法定義。同義詞的定義有很多不同的方式,因為同義詞本身有很多不同的類型;語義實體可以有資料類型,并且可以被組織成分層組來幫助短期記憶處理——不幸的是,所有這些都超出了這個部落格所涉及的範圍。你可以在這裡找到這種文法支援的一個例子。

決定論與機率論

我們強調了上述語義文法方法的确定性。盡管語言和語義文法應用的具體實作可以是确定性的和機率性的,但是語義文法幾乎總是導緻确定性處理。

原因在于語義文法本身的性質,它基于簡單的同義詞比對。正确定義的語義文法允許對語義實體進行完全确定性的搜尋。根本沒有“猜測”——語義實體要麼被毫不含糊地找到,要麼沒有。

由此産生的語義文法決定論是一個驚人的品質。雖然機率方法可以在許多衆所周知的場景中工作,如情感分析、支援聊天機器人或文檔了解,但它根本不适合NLP / NLU驅動的業務資料報告和分析。例如,Twitter的回報是85 %還是86 %是正面的并不重要,隻要它朝着正确的方向發展。然而,另一方面,報告銷售數字必須準确無誤,必須與會計系統的資料精确比對。即使像“你上一季度的總銷售額是1億美元,機率是97%”這樣的高機率結果在任何情況下都是毫無價值的。

盡管語義文法有很多好處,但有一個明顯的限制阻礙了它的發展(至少最初是這樣),即它隻能應用于狹窄的資料域。

通用與特定領域

盡管語言文法對所有資料域都是通用的(因為它處理動詞和名詞等通用語言結構),但語義文法及其基于同義詞的比對僅限于特定的、通常非常狹窄的資料域。原因在于,為了建立語義模型,需要拿出一個所有實體的詳盡集合,最令人畏懼的是,所有同義詞的集合。

對于一個特定的資料域來說,這是一項可管理的任務,并且在很大程度上得益于複雜的現實系統。對于一般的NLU來說,它和一般的人工智能( AGI )一樣,語義模組化根本不起作用。

在過去的十年中,有很多研究緻力于推進具有閉環人類管理和監督式自學習能力的語義模組化,但事實上,語義模組化在處理特定的、定義良好的和可了解的資料域時應用得最好。

有趣的是,流行的NLP / NLU深度學習( DL )方法對于特定的資料域幾乎沒有足夠好的效果。這是因為缺乏DL模型訓練所需的足夠大的預先存在的訓練集。這就是傳統的閉環人類管理和自學ML算法在語義模組化系統中盛行的原因。

監督式自主學習

人類管理(或人類切換)和監督式自學習算法是兩種互相關聯的技術,有助于在開發新語義模型時,減少為語義實體提供詳盡同義詞集的問題。

這兩項工作如下。首先建立語義模型,其中包含語義實體的基本同義詞集,這可以相當快地完成。一旦使用此模型的NLP / NLU應用程式開始操作此模型無法自動“了解”的使用者語句,将進入固化。在人類管理中,使用者句子将被修改以适應模型,并且自學習算法将“學習”該修改,并且下次将自動執行該修改,而不需要人工切換。

在此過程中有兩個關鍵屬性: 

· 人類活動改變了使用者輸入,以适應現有的語義模型,也就是說,改變了使用者句子,使其可以自動回答。通常,它包括糾正拼寫錯誤、口語化、俚語、删除停止詞或添加缺少的上下文。

· 使用者句子中的這種變化(即固化)被輸入到自學習算法中,以便将來“記住”。因為這種改變最初是由一個人執行的,這個人使這種自學習成為一個有監督的過程,并消除了累積學習錯誤的引入。

在所有這些中,重要的是監督允許在語義模組化“進一步學習”時保持語義模組化的确定性。語義模型通過監控和有監督的自我學習,在每次監控中學習更多,最終可以比開始時學到更多的知識。是以,這個模型可以從小處開始,通過人的互動來學習——這個過程和許多現代人工智能應用程式沒有什麼不同。

數十款阿裡雲産品限時折扣中,趕緊點選領劵開始雲上實踐吧!

以上為譯文。

本文由北郵

@愛可可-愛生活

 老師推薦,

阿裡雲雲栖社群

組織翻譯。

文章原标題《

Introduction Into Semantic Modeling for Natural Language Processing

》,譯者:

Mags,審校:袁虎。

文章為簡譯,更為詳細的内容,請檢視 原文

繼續閱讀