Categories
程式開發

Salesforce發布數據庫自然語言接口Photon


來自Salesforce Research和香港中文大學的一個科學家團隊發布了一種叫作“光子”的數據庫自然語言接口(NLIDB)。該團隊使用深度學習技術構建了一個在通用基準測試中達到63%準確率的解析器,以及一個可以提示用戶澄清模糊問題的錯誤檢測模塊。

該團隊在最近的ACL 2020大會上演示了Photon,團隊成員Victoria Lin在最近的博文中描述了該系統。 Photon的核心是一個基於神經網絡的語義解析器,它可以將人類用戶的自然語言問題轉換成SQL查詢。解析器在Spider數據集上實現了63.2%的匹配精度,這是迄今為止排名第二高的結果。 Photon還包含了一個問題校正器,當人類輸入不能被翻譯成SQL,它可以檢測出來。問題校正器使用“聊天機器人”風格的界面啟動一個對話,並進一步完善問題。專業用戶還可以直接以SQL的形式輸入查詢。 Lin表示:

從現代NLP的進步程度來看,我們相信一個自然語言信息系統的時代即將到來。

NLIDB的目標是“民主化”從關係數據庫提取有用數據的能力,允許用戶用自然語言提問,而不需要用SQL等編程語言構造查詢。與其他同類系統一樣,Photon使用一種被稱為語義解析的策略,它將自然語言問題轉換成邏輯形式——本質上是將人類語言轉換成編程語言語句。 Photon的解析器基於一個神經網絡,它的輸入是一個與數據庫模式相關聯的自然語言問題,輸出是一個SQL查詢語句。解析器不能訪問數據庫的全部內容,但可以訪問“範疇列”的值。解析器由一個預先訓練好的BERT模型和一系列LSTM子網絡組成。 Photon隨後對網絡輸出執行波束搜索解碼,並對結果應用靜態SQL正確性檢查。根據作者的說法,這帶來了大約5%的改進(基於Spider數據集)。

為了提高系統的健壯性,Photon提供了一個問題校正器。校正器使用另一個神經網絡——用來確定一個問題是否不能準確地轉換成SQL的分類器。通過對可翻譯問題進行“交換”和“刪除”操作,研究人員構建了一個合成數據集來訓練分類器。例如,問題“存在多少個國家”可能被轉換成“存在多少個”。混淆檢測器還可以識別問題中令人感到困惑的部分。這些問題被用於提供修正建議,它們通過聊天界面反饋給用戶。

其他科技公司也在構建類似的NLIDB系統。微軟研究院開發了一個叫作的神經網絡語義解析系統,該系統使用一系列門控循環單元(塔式起重機)將自然語言問題轉換為SQL查詢。谷歌的塔帕斯採用了一種稍微不同的方法。 TAPAS的訓練過程直接包含了表數據,而不是將自然語言解析為SQL。 Photon的作者指出,在表數據上訓練網絡存在數據隱私問題。

在Hacker News的一個討論帖子中,用戶對NLIDB結果的質量發表了評論。一個用戶指出:

模型不善于说“不知道”。不过我很乐观。每年都看到显著的进步(受NLP的实际进步推动),训练数据集也变得越来越有趣。现在有了会话数据集(例如https://yale-lily.github.io/cosql)),模型被訓練問後續的問題,目標是“讓系統來澄清模糊的問題、驗證返回的結果,並告知用戶那些無法回答或不相關的問題”。這可能是一個巨大的勝利。

Photon的演示版本已經向公眾開放。 Lin說,未來的工作包括“語音輸入、自動完成和可視化輸出”,但推出這些功能的具體日期尚未公佈。

原文鏈接

Salesforce發布用於數據庫的光子自然語言界面