很不錯的一篇文章:
2023年nlp應用和商業化調查報告
nlp應用處理的主要範疇
問題 1:基於 cnn 與 lstm 模型的問答模型經常在只「讀到」問題的一半就收斂於乙個**出的答案。這意味著模型嚴重依賴於訓練資料的表面相關性,缺乏組合性,導致結果出現偏差。
要克服這類問題,需要研究乙個相對通用普適的語義模型,該模型具有較強的泛化能力,這樣就可以讓該語義模型作為核心基礎,為各領域的特有模型提供語義支撐。要設計實現該類模型,需要解決無監督語義學習的問題,這類工作目前在學術界開始被關注,比如 elmo、bert 都是這類工作。(科大訊飛專家)
解決思路 2:通用語義嵌入大規模預訓練可能是預防過訓練的一種方式。此外還需要新的合成模型。另一種方法是構建更多複雜、大規模、真實世界的任務,如開放對話或目標導向對話相關的複雜結構性任務,比如銷售對話、客服對話。這些任務將促進更加普適、更綜合的模型出現,因為在這些複雜的任務重中,表層相關模型的效果並不好,亟需合成資訊模型。(京東專家)
解決思路 4:具體來說,cnn 與 lstm 模型建模問句時,很容易捕獲跟答案直接相關的問句中靠前位置詞語,如「type」和「topic」型別的詞語,不管輸入序列的長短,現有的 attention 模型或者 cnn 濾波都容易反覆關注到這些詞,造成只「讀到」問題的一半就收斂於乙個**出的答案。
可能的解決方式包括:
嘗試 coverage 的 attention,主要思想是別讓某些詞(如問句中靠前的詞語)反覆被關注到;
用 transformer 替換 cnn 或者 lstm,transformer 的 self-attention 可以建模句子內部的依賴資訊,也可以捕獲長距離依賴,在絕大部分 nlp 任務上比 cnn、lstm 效果好。(小公尺專家)
解決思路 5:在文字處理中,cnn 網路更適合於短文本中的特徵提取,lstm 網路雖然在誕生之初為了解決長句子訓練中的梯度**和消失的問題,在相對較長的句子中其確實顯示了很好的效果,但是對於問答類資料,文字過長導致 lstm 在訓練中遺忘句子之前的資訊並且在訓練中無法將問題的特徵加到網路中一塊訓練,而導致效果不好。
目前對於問答模型更傾向利用基於注意力機制的網路,最典型的是 bert 網路,完全依賴注意力機制, 另一種是依據記憶力網路的結構, 像 deep memory network, 通過記憶力網路迴圈計算整個句子的注意力權重。(氪信專家)
問題 2:現代 nlp 技術在基準資料集上表現優良,但對於未知自然語言文字的語言理解與推理方面遠不及人類的水平。
解決思路 1:這與第乙個問題類似,也是模型的泛化能力問題。除了嘗試設計乙個通用的無監督語義模型之外,還可以重點思考如何將各類人類知識引入到機器的建模學習過程中。人類知識相對稀疏和抽象,但卻具備將各類概念和實體關聯起來的作用,所以如果機器能具備對人類知識的學習能力,那麼其在處理未知訊號的時候,就會表現的更加智慧型。(科大訊飛專家)
解決思路 2:我們需要大規模、注意力具有結構化注意力機制、普適的語言理解模型,這是通向類人水平 nlp 智慧型的道路。我認為最近一些進展,如 han、bert、transformer、elmo 也是解決這個問題的方向。(京東專家)
解決思路 4:在基準資料集上表現優良並不代表在未知資料上表現好,這是機器學習領域的努力方向。現有 nlp 技術大都基於機器學習方法,因此,這也是 nlp 技術的努力方向之一。這個問題確實非常難,對於 nlp 而言,也許融合知識 (包括語言學知識、人類常識、領域知識等) 是乙個緩解上述問題的方向。(小公尺專家)
解決思路 5:這個問題不僅只限於 nlp 領域,在任何場景訓練的模型如果遷移到新的未知領域,都會遇到模型效能劇烈下降的問題。我們需要構建乙個可快速迭代的系統或者框架來解決未知領域的問題。預訓練的模型先快速冷啟動,收集樣本,持續監控模型的效能,然後快速迭代模型。(氪信專家)
問題 3: 如何充分衡量模型在新的、從未見過的輸入資料上的表現?或者說,如何衡量系統的泛化能力?以及如何處理未曾見過的資料分布和任務?
解決思路 1:可以從模型在多個不同任務上的表現來衡量,即擴大評估集合;另一方面,還可以將模型應用到不同的系統中來評估。
嚴格來說,自然語言理解領域的未知資料,由於空間極為龐大,很難建模或者預設,因此不論是從模型評估來看,還是從模型訓練來說,未知資料或資訊的建模學習,都還是乙個比較大的問題。(科大訊飛專家)
解決思路 3:目前來看非常困難,對於未曾見過的資料分布和任務,可以嘗試採用遷移學習等方法來將在其他資料上得到的規律遷移到新資料或者新任務上來。(小公尺專家)
解決思路 4:首先得有乙個非常合理和直觀的評價指標,其次需要在跨時間視窗或者跨場景的多批資料上充分測試,避免過擬合的現象。(氪信專家)
問題 4: 機器翻譯模型的訓練,我們使用諸如交叉熵或預期句子級別 bleu 之類的損失函式訓練模型。這些函式已經被證明存在偏好,而且與人類判斷不充分相關。強化學習似乎是 nlp 的乙個完美選擇,因為它允許模型在模擬環境中通過反覆試驗來學習類似人類的監督訊號(「獎勵」)。但是,強化學習也無法完全解決 nlp 的所有問題,強化學習在進行 nlp 時的問題主要是什麼?怎麼解決?
解決思路 1:強化學習在 nlp 領域的應用,最主要的問題是 reward 訊號的確定問題。由於自然語言非常稀疏,屬於非連續訊號,如何定義獎勵函式一直是自然語言處理領域的普遍難題。包括機器翻譯的 bleu 分,文件摘要的 rouge 分,雖然屬於相對客觀的指標,但還是無法直接代表人類的語義評價。因此這個問題本質上,是如何客觀評估或者定義語義的問題。我個人認為強化學習在 nlp 領域暫時還不能有很好的應用。(科大訊飛專家)
解決思路 2:強化學習在 nlp 領域是乙個非常強大,且具有潛力的工具,但不可以解決所有的 nlp 問題。如強化學習不能告訴你最好的損失函式是什麼,因為它必須是語言 / 任務相關。而且經典的 rl 演算法需要進行拓展去解決語言問題,比如說如何處理乙個接近無限的行動空間(如語言空間),如何處理乙個無法簡單模仿環境的開放系統,如何在不同的對話任務中定義獎勵,如何用少量樣本有效訓練 rl,如何為語言建模讓訓練迅速收斂等。(京東專家)
解決思路 4:強化學習的乙個主要難點在於獎勵函式的定義,對 nlp 也是如此。人類善於定性式評判,但是機器在學習時需要定量,定性到定量的轉變十分困難。要解決這個問題,還是要從評價函式上多下功夫。(小公尺專家)
解決思路 5:強化學習的正規化對於 nlp 裡面機器翻譯、序列生成、對話系統、聊天機械人等傳統損失函式有缺陷,但又比較容易定義獎勵函式的動態系統有比較好的應用效果。但是強化學習自身的一些問題,譬如樣本利用效率低,對環境過擬合和訓練效果不穩定等問題也是在 nlp 裡應用強化學習的痛點。(氪信專家)
問題 5: 為什麼 nlp 模型在處理簡單的常識性日常場景時那麼困難?應該怎麼改善?
解決思路 1:這其實並不是 nlp 模型獨有的問題,即使是語音、影象等,在一些日常場景中依然無法做到很好的模式識別。我們認為日常場景簡單主要是因為我們從小到到大積累的各類生活經驗、常識、專業知識,但機器或者單一的模型或者系統所「見過」或者訓練所用到的資訊非常少,導致處理日常場景比較困難。如何賦予機器常識推理的能力,是人工智慧領域但共同目標,需要解決如何定義或者構建常識知識,如何讓機器理解常識並學會靈活推理等一系列問題。(科大訊飛)
解決思路 2:這是因為我們缺乏常識性資料庫、好的常識表示,以及常識在具體領域中的語義理解,因此會影響決策。此外,現在大部分 nlp benchmark 評估標準並不包括常識。因此,學習常識最好的辦法是使用更複雜、大規模、現實世界的任務來促進研究和技術進步,激勵研究者發明可以從良好常識模型中受益的演算法。(京東專家)
解決思路 4:日常場景背後包含各種複雜的上下文特徵 (如天氣、位置、時段、人的情緒等),機器難以很好地形式化描述。人類的推理機制十分複雜,機器目前還很難模擬。可能的改善方法一是大量增加訓練資料,另外可以考慮融合知識和資料進行理解和推理。(小公尺專家)
解決思路 5:日常場景的口語化和開放性特徵在自然語言處理中都是非常具有難度的。首先,口語化的句子一般語法結構不規整,語氣助詞較多,分析和建模難度增大;其次,日常場景開放性大,沒有足夠大的知識庫來支援日常場景的建模。在相關產品或者系統的開放上需要針對這兩點下功夫:加強對口語化語句的 text normalization 的工作,以及通過流程引導和產品設計減少場景的開放性。
此外,自然語言處理領域其他亟待解決的問題還有任務驅動對話系統、語言資源不足和偏見、預估最壞情況案例效能、領域適應、有意義的文字和對話生成、遷移學習、擁有長期的目標 / 任務導向的人機對話、收集資料的方法、指代消解、詞義消歧、文字摘要、民主化等,這些都是業界比較關心的話題,解決了這些技術上的問題,商業化應用才能更加順利地開展。
深度學習 NLP 各種模型應用
keras 3 embedding層詳解,看這篇更詳細 keras.layers.embeddings.embedding input dim,output dim,embeddings initializer uniform embeddings regularizer none,activity...
NLP 基礎 應用研究方向簡介
nlp 包含基礎研究 應用研究兩個方面,其中,基礎研究包括資料相關以及分析相關,應用研究包括nlp本領域以及相關領域研究。1 1 資料 基礎 相關 資料預處理 ai頂會 ngram語言模型 srilm python my nlp toollet 自然語言處理簡介及主要研究方向 國內關於自然語言處理的...
NLP學習筆記 nlp入門介紹
為什麼計算機難以理解人類的自然語言呢?主要是下面6個特性 詞彙量在自然語言中含有很豐富的詞彙,而程式語言中能使用的關鍵字數量是有限的 結構化自然語言是非結構化的,而程式語言是結構化的,例如類和成員。自然語言是線性字串,要分析它,需要用到分詞 命名實體識別 指代消解和關係抽取等。歧義性我們說話含有大量...