微軟衝刺搜尋準確度 開發AI模型Speller100可檢查上百種語言的拼字錯誤
微軟近日宣佈可對100多種語言進行拼字檢查的AI模型及其訓練法。
微軟具備高精準度及高召回(recall)率的一組拼字修正模型,統稱為Speller 100最近上線,目前用於改善Bing的搜尋結果。微軟解釋,由於使用者輸入查詢詞彙有15%帶有拼字錯誤,為讓Bing具備對不同語言拼字修正的能力,幾個月前,Bing只能對20幾種使用人口多的語言提供拼字錯誤修正,但微軟希望能擴大到100多種語言。這就是Speller100開發的起源。
主流語言餵資料訓練 生僻語言用零樣本學習
拼字修正有賴底層高品質的拼字修正AI模型,而這又需要大量的網頁內容來事先訓練,但是許多使用人口少的語言往往無法找到夠多的網頁內容。為此,微軟Speller100運用了大規模事先訓練方法來訓練主流語言的修正模型,而針對較少人用的語言,則使用零樣本學習(zero-shot learning)AI技術訓練模型。零樣本學習可在不需標註訓練資料情況下,讓模型學習並修正拼字錯誤。
微軟解釋,拼字修正常用的是深度學習法,序列對序列(seq2seq)將文本裏的拼字錯誤(噪音)去除的過程(denoise)。這方面微軟團隊以臉書AI部門的自然語言產生(NLG)、翻譯和理解模型BART為基礎,發展出自有深度學習模型。微軟設計出噪音函式(noise function),產生各種常見拼字錯誤,例如從Microsoft產生出micorsoft、micrrosoft、micrsoft和micrtosoft等錯誤。這方法可大幅減少人工標註的需求(機器學習就很需要),運用噪音函式即可獲得事先訓練模型,再微調成為非主流語言的零樣本或少量樣本學習情境,也不再需要大量網頁搜來的查詢樣本。
相近語系可彼此訓練
不過零樣本學習的事先訓練工作只在實驗語言中獲得50%的修正召回(correction recall)率,這還是太低。為此他們又想了另一個方法,對一組語言家族(即拼法、形狀、或聲音相近的語言)建立模型。例如同一語言家族的英語、德文、荷蘭、南非荷蘭語、盧森堡語中的「手指」分別為finger、Finger、vinger、vinger、Fanger。利用相近的語言就可建立零樣本學習情境;雖然南非荷蘭語、盧森堡語資料很少,但英文和德文的樣本量夠豐富,就能用於前二種非主流語言模型建立。
微軟指出,零樣本學習及大量樣本的訓練下,讓以Speller100模型為底層的Bing在100多種語言的修正精確度和回收率都有雙位數改進。Bing的線上A/B測試下,找不到結果的網頁數減少30%,使用者必須手動修改查詢詞彙的次數減少5%,使用者點選拼字建議的次數則從個位數提升到67%,而使用者點選網頁任何品項的次數也由個位數提高到70%。
來源:VentureBeat