淘新聞

谷歌輸入法背後的機器智慧

很多人每天花費大量時間使用移動設備鍵盤:撰寫電子郵件,發短信,參與社交媒體等。 然而,移動鍵盤仍然在處理速度方面處於劣勢。 使用者平均在移動設備上的打字速度比在物理鍵盤上慢35%。 為了改變這一點,最近穀歌團隊為Gboard for Android提供了許多改進,致力於創建一個智慧機制的 鍵盤,能夠為使用者以任何選擇的語言提供建議和糾正錯誤,從而實現更快更高品質的輸入。

事實上,移動鍵盤將觸摸輸入轉換為文本的方式類似於語音辨識系統將語音輸入轉換為文本的方式,雷鋒網瞭解到,該團隊將利用語音辨識的經驗來實現觸摸輸入。

團隊首先創建了一個強大的空間模型,將原始觸摸點的模糊序列映射到鍵盤上的按鍵,就像用聲學模型將聲音定位到語音單元的順序一樣。 

第二,構建一個基於有限狀態感測器(FST)的核心解碼引擎,以確定給定輸入觸摸序列的最有可能的字元序列。 隨著數學形式主義和語音應用的廣泛成功, FST解碼器將提供支援各種複雜鍵盤輸入行為以及語言特性所需的靈活性。 在這篇文章中,將為您詳細介紹這兩個系統的發展。

神經空間模型

移動鍵盤輸入的錯誤通常歸結於“胖手指打字”(fat finger typing,或在滑動打字中定位到空間位置相似的詞,如下圖所示)以及認知和操作錯誤(表現為拼寫錯誤,字元插入,刪除或互換等)。 智慧鍵盤需要能夠解決這些錯誤,並且可以快速準確地預測正確的單詞。 據雷鋒網瞭解,該團隊為Gboard構建了一個空間模型,用於在字元級別處理這些錯誤,將螢幕上的觸摸點映射到實際按鍵。

兩個位置相似的詞:“吸血鬼vampire”和“價值value”的平均滑動路徑

一直到最近,Gboard還在使用高斯模型量化敲擊相鄰按鍵的概率和基於規則的模型,來表示認知和動作錯誤。 這些模型簡單直觀,但並不能直接優化與更高的打字品質相關的指標。 根據語音搜索聲學模型方面的經驗,用連線時間分類(CTC)標準訓練的單個高效長期短期記憶(LSTM)模型替代了高斯模型和基於規則的模型。

然而,訓練這個模型比預期的要複雜得多。 雖然聲學模型是從人類轉錄的音訊資料進行訓練的,但是並不能輕鬆地轉錄數百萬的觸摸點序列和滑動軌跡。 所以該團隊利用使用者交互信號,例如自動修正和建議選擇作為負面和正面的半監督學習信號,因此形成了豐富的培訓和測試集。

對應單詞“可以could”(左)的原始資料點,以及每個採樣方差(右)的歸一化採樣軌跡

使用來自語音辨識文獻的大量技術來反覆運算NSM模型,使其足夠小且足夠快以便在任何設備上運行。 TensorFlow基礎設施用於訓練數百種模型,優化鍵盤上顯示的各種信號:完成,建議,滑動等。

經過一年多的 努力,完成的模型比初始版本快6倍,大小僅是最初的十分之一。同時,它還顯示出在離線資料集上的錯誤自動校正減少約15%的錯誤,而錯誤解碼手勢則減少了10%。 

有限狀態轉換器

雖然NSM使用空間資訊來説明確定敲擊或滑動的字元是什麼,但還是有一些額外的限制——詞彙和語法 ——這些是可以承受的。詞典告訴我們語言中出現了什麼詞彙,而概率語法告訴我們什麼話可能接在其他的話後面。為了對這些資訊進行編碼,使用有限狀態換能器。 FST(Finite-State Transducers)一直是Google語音辨識和綜合系統的關鍵組成部分。它提供了一種原則性的方式來表示自然語言處理中使用的各種概率模型(詞典,語法,規範化等)以及操縱,優化,組合和搜索模型所需的數學框架。

在Gboard中,一個鍵感測器緊湊地表示鍵盤這個詞,如下圖所示。 它編碼從按鍵序列到字的映射,允許替代鍵序列和可選空格。

該轉換器沿著從起始狀態(粗體1)到最終狀態(兩圈狀態0和1)的路徑編碼“I”,“I’ve”,“If”。 每個弧用一個輸入按鍵(“:”之前)和一個對應的輸出字元(“:”之後)標記,其中ε編碼空符號。 “I’ve”中的撇號可以省略。 使用者有時會跳過空白鍵。 為了說明這一點,轉換器中的單詞之間的過渡空白鍵是可選的。 ε和空格後弧允許存在多個單詞。

概率n元感測器用於表示鍵盤的語言模型。 模型中的狀態代表一個(直到)n-1個字的上下文,並且離開該狀態的弧,將被標記為一個後續字元以及跟隨該上下文的概率(由文本資料估計)。 這些與給出關鍵觸摸序列的可能性(滑動中的離散觸摸或連續手勢)的空間模型被組合並且用波束搜索進行探索。

通用FST原則,如資料流,動態模型支援等,為構建新的鍵盤解碼器帶來了很大的説明,但還需要添加一些新的功能。 當人們說話的時候,並不需要解碼器來完善你所說的話,或者猜測你會在後面說些什麼來省下幾個音節; 但是當你輸入時,你會感受到詞語完成和預測的幫助。 此外,該團隊希望鍵盤可以提供無縫多語言支援,如下所示。

在Gboard上輸入三種語言

讓新的解碼器投入實際應用是一項複雜的工作,但FST原則有很多好處。 例如,支援印地語等語言的音譯只是解碼器的簡單擴展。

音譯模型

在許多具有複雜字集的語言中,已經開發了羅馬化系統,以將字元映射成拉丁字母,通常根據其發音。 例如,拼音“xièxiè”對應漢字“謝謝”。 拼音鍵盤允許使用者在QWERTY佈局上方便地輸入單詞,並將它們自動“翻譯”到目標腳本中。 同樣,一個音譯印地語鍵盤允許使用者輸入“daanth”(牙齒)“दांत”。 而拼音確定是一個羅馬化系統,印地語音譯則更模糊; 例如“daant”將是“दांत”的有效替代方案。

印地語的滑動字元轉換

正如從字母序列到單詞(詞典)的感測器映射以及為單詞序列提供概率的加權語言模型自動化,該團隊為拉丁語按鍵序列和目標腳本符號序列構建了22種印度語的加權轉換器映射。 一些語言屬於多個書寫系統(例如Bodo可以寫在孟加拉文或梵文的腳本中),因此在音譯和本機佈局之間,在短短幾個月內就建立了57種新的輸入法。

FST解碼器的本質性質將支援完成所有的工作,預測,滑動打字和許多UI功能,無需額外的工作,從而使 Gboard能夠從一開始就向印度用戶提供豐富的體驗,一個更智慧的鍵盤。

總而言之,最近的工作將解碼延遲降低了50%,將用戶手動更正的字數減少了10%以上,能夠為印度的22種官方語言提供音譯支援,並啟用了許多新功能。

雖然穀歌團隊希望這些最近的變化能夠改善用戶的打字體驗,但他們也同時認識到,在移動設備上打字的問題絕對不能算是解決了。 Gboard仍然會提出似乎不直觀或低效用的建議,並且手勢的解碼建議仍然可能為人類永遠不會選擇的詞語。 然而,該團隊的工作為強大的機器智慧演算法的轉變開闢了新的空間,穀歌正在積極探索為全球用戶提供更有用的工具和產品。

via 

research.googleblog

,雷鋒網編譯