很多人每天花費大量時間使用移動設備鍵盤:撰寫電子郵件,發(fā)短信,參與社交媒體等。 然而,移動鍵盤仍然在處理速度方面處于劣勢。 用戶平均在移動設備上的打字速度比在物理鍵盤上慢35%。 為了改變這一點,最近谷歌團隊為Gboard for Android提供了許多改進,致力于創(chuàng)建一個智能機制的 鍵盤,能夠為用戶以任何選擇的語言提供建議和糾正錯誤,從而實現(xiàn)更快更高質量的輸入。
事實上,移動鍵盤將觸摸輸入轉換為文本的方式類似于語音識別系統(tǒng)將語音輸入轉換為文本的方式,雷鋒網(wǎng)了解到,該團隊將利用語音識別的經驗來實現(xiàn)觸摸輸入。
團隊首先創(chuàng)建了一個強大的空間模型,將原始觸摸點的模糊序列映射到鍵盤上的按鍵,就像用聲學模型將聲音定位到語音單元的順序一樣。
第二,構建一個基于有限狀態(tài)傳感器(FST)的核心解碼引擎,以確定給定輸入觸摸序列的最有可能的字符序列。 隨著數(shù)學形式主義和語音應用的廣泛成功, FST解碼器將提供支持各種復雜鍵盤輸入行為以及語言特性所需的靈活性。 在這篇文章中,將為您詳細介紹這兩個系統(tǒng)的發(fā)展。
神經空間模型
移動鍵盤輸入的錯誤通常歸結于“胖手指打字”(fat finger typing,或在滑動打字中定位到空間位置相似的詞,如下圖所示)以及認知和操作錯誤(表現(xiàn)為拼寫錯誤,字符插入,刪除或互換等)。 智能鍵盤需要能夠解決這些錯誤,并且可以快速準確地預測正確的單詞。 據(jù)雷鋒網(wǎng)了解,該團隊為Gboard構建了一個空間模型,用于在字符級別處理這些錯誤,將屏幕上的觸摸點映射到實際按鍵。
兩個位置相似的詞:“吸血鬼vampire”和“價值value”的平均滑動路徑
一直到最近,Gboard還在使用高斯模型量化敲擊相鄰按鍵的概率和基于規(guī)則的模型,來表示認知和動作錯誤。 這些模型簡單直觀,但并不能直接優(yōu)化與更高的打字質量相關的指標。 根據(jù)語音搜索聲學模型方面的經驗,用連接時間分類(CTC)標準訓練的單個高效長期短期記憶(LSTM)模型替代了高斯模型和基于規(guī)則的模型。
然而,訓練這個模型比預期的要復雜得多。 雖然聲學模型是從人類轉錄的音頻數(shù)據(jù)進行訓練的,但是并不能輕松地轉錄數(shù)百萬的觸摸點序列和滑動軌跡。 所以該團隊利用用戶交互信號,例如自動修正和建議選擇作為負面和正面的半監(jiān)督學習信號,因此形成了豐富的培訓和測試集。
對應單詞“可以could”(左)的原始數(shù)據(jù)點,以及每個采樣方差(右)的歸一化采樣軌跡
使用來自語音識別文獻的大量技術來迭代NSM模型,使其足夠小且足夠快以便在任何設備上運行。 TensorFlow基礎設施用于訓練數(shù)百種模型,優(yōu)化鍵盤上顯示的各種信號:完成,建議,滑動等。
經過一年多的 努力,完成的模型比初始版本快6倍,大小僅是最初的十分之一。同時,它還顯示出在脫機數(shù)據(jù)集上的錯誤自動更正減少約15%的錯誤,而錯誤解碼手勢則減少了10%。
有限狀態(tài)轉換器
雖然NSM使用空間信息來幫助確定敲擊或滑動的字符是什么,但還是有一些額外的限制——詞匯和語法 ——這些是可以承受的。詞典告訴我們語言中出現(xiàn)了什么詞匯,而概率語法告訴我們什么話可能接在其他的話后面。為了對這些信息進行編碼,使用有限狀態(tài)換能器。 FST(Finite-State Transducers)一直是Google語音識別和綜合系統(tǒng)的關鍵組成部分。它提供了一種原則性的方式來表示自然語言處理中使用的各種概率模型(詞典,語法,規(guī)范化等)以及操縱,優(yōu)化,組合和搜索模型所需的數(shù)學框架。
在Gboard中,一個鍵傳感器緊湊地表示鍵盤這個詞,如下圖所示。 它編碼從按鍵序列到字的映射,允許替代鍵序列和可選空格。