- 自然語言處理導論
- 張奇等
- 1482字
- 2023-11-17 16:47:05
1.2.2 基于機器學習的方法
基于機器學習的自然語言處理方法絕大部分采用有監督分類算法,將自然語言處理任務轉換為某種分類任務,在此基礎上根據任務特性構建特征表示,并構建大規模的有標注語料,完成模型訓練。其基本流程如圖1.4所示,通常分為四個步驟:數據構建、數據預處理、特征構建和模型學習。

圖1.4 基于機器學習的自然語言處理方法的基本流程
(1)數據構建階段的主要工作是針對任務的要求構建訓練語料,也稱語料庫(Corpus)。隨著自然語言處理研究的不斷發展,很多任務都有公開的基準測試集合(Benchmark),可以方便地用來進行模型訓練以及模型之間的橫向對比。對于沒有公開數據的任務,也可以采用人工標注的方法構建訓練語料。
(2)數據預處理階段的主要工作是利用自然語言處理的基礎算法,從詞匯、句法、結構、語義等層面對原始輸入進行處理,為特征構建提供基礎。根據所處理的語言和所針對的任務的不同,采用不同的模塊和流程。例如,對于漢語,通常需要進行分詞;對于英語,通常需要進行詞干提取和詞的規范化。在此之后,根據特征構建的需求,還可能需要進行詞性標注、句法分析、語義角色標注等。
(3)特征構建階段的主要工作是針對不同的任務,從原始輸入、詞性標注、句法分析、語義分析等的結果和數據中提取對機器學習模型有用的特征。例如,針對屬性級情感傾向分析任務,需要根據目標屬性,從句法分析的結果中提取該屬性在對應句子中的評價詞等信息。特征定義一般都是由人工完成的,根據經驗選取適合的特征。這項工作又被稱為特征工程(Feature Engineering)。由于針對自然語言處理任務構建的特征通常維數非常高又非常稀疏,因此還會利用特征選擇算法降低特征維度。也可以通過特征變換,根據人工設計的準則進行有效特征提取,例如主成分分析、線性判別分析、獨立成分分析等。
(4)模型學習階段的主要工作是根據任務,選擇合適的機器學習模型,確定學習準則,采用相應的優化算法,利用語料庫訓練模型參數。機器學習模型有很多類型,從不同的維度可以分為分類模型、回歸模型、排序模型、生成式模型、判別式模型、有監督模型、無監督模型、半監督模型、弱監督模型等,需要根據任務的目標和特性選擇適合的模型。學習準則是機器學習模型中重要的因素,包括0-1損失函數(0-1 Loss Function)、平方損失函數(Quadratic Loss Function)、交叉熵損失函數(Cross-Entropy Loss Function)、Hinge損失函數(Hinge Loss Function)等。針對所選擇的模型和學習準則,需要選擇相應的優化算法,包括梯度下降法(Gradient Descent Method)、牛頓法(Newton Method)、擬牛頓法(Quasi Newton Method)、隨機梯度下降(Stochastic Gradient Descent,SGD)等。機器學習三要素——模型、學習準則、優化算法的選擇都會對算法的效果產生影響。此外,模型中通常包含一些可以調整的超參數(Hyper-parameter),它們也需要通過實驗和經驗進行選擇。
通過整體流程可以看到,基于機器學習的自然語言處理方法需要針對任務構建大規模的訓練語料,以人工特征構建為核心,針對所需的信息利用自然語言處理的基礎算法對原始數據進行預處理,并需要選擇合適的機器學習模型,確定學習準則,采用相應的優化算法。在整個流程中,需要人工參與和選擇的環節非常多,從特征設計到模型,再到優化方法和超參數,并且這些選擇非常依賴經驗,缺乏有效的理論支持,這也使得基于機器學習的方法需要花費大量的時間和工作在特征工程上。開發一個自然語言處理算法的主要時間都消耗在數據預處理、特征構建、模型選擇和實驗上。此外,對于復雜的自然語言處理任務,需要在數據預處理階段引入很多不同的模塊。首先,這些模塊之間需要單獨優化,其目標并不一定與任務總體目標一致。其次,多模塊的級聯會造成錯誤傳播,前一步的錯誤會影響后續的模型,這些問題都提高了基于機器學習的方法實際應用的難度。