Salesforce Researchの科学者チームと香港中文大学(Chinese University of Hong Kong)は、データベース用自然言語インターフェース(NLIDB)Photonをリリースした。パーザ構築にディープラーニングを使用することにより、一般的なベンチマークで63パーセントという精度と、あいまいな質問の明確化をユーザに求めるエラー検出モジュールを実現している。
同チームはACL 2020カンファレンスでデモンストレーションを行った他、メンバのVictoria Lin氏が先日のブログ記事でシステムの解説をしている。Photonの中核となっているのは、人であるユーザの発した自然言語による質問をSQLクエリに変換する、ニューラルネットワークをベースとしたセマンティックパーザ(semantic parser)である。このパーザはSpiderデータセットにおいて63.2パーセントの完全一致精度という、現時点で2番目に高い結果を出している。Photonには、人の入力がSQLに変換できない場合の検出が可能なQuestion Corrector(質問修正機能)が装備されている。Question Correctorは"チャットボット"形式のインターフェースを使って、ユーザが質問を修正するための会話を主導する。専門知識のあるユーザならば、SQLで直接クエリを入力することも可能だ。Lin氏によると、
現在のNLPの進歩を考えれば、自然言語による情報システムの時代はもう間近に迫っていると言えるでしょう。
NLIDBの目標は、SQLなどのプログラミング言語でクエリを構築する必要なく、自然言語による問い合わせを可能にすることで、リレーショナルデータベースから有意義なデータを取得する能力を"民主化(democratize)"することにある。これらのシステムの多くがそうであるように、Photonはセマンティック解析(semantic parsing)と呼ばれる手法を使って、自然言語の問いを論理的形式に変換 --- 基本的には人の言語からプログラム言語の文への翻訳を行っている。Photonのパーザは、データベーススキーマを連結した自然言語による質問を入力、SQLクエリを出力とするニューラルネットワークをベースとしている。パーザがデータベースの完全なコンテンツにアクセスすることはないが、カテゴリカル(>categorical)列を処理するために、選択可能な値のアクセスを行っている。パーザはトレーニング済のBERTモデルと一連のLSTMサブネットワークで構成されている。次にPhotonは、ネットワーク出力のビーム探索(beam-search)デコーディングを行い、結果に対して静的なSQL正当性チェックを適用する。著者によれば、これによってSpiderデータセット上で約5パーセントの改善が実現できているという。
システムの堅牢性を向上するため、Photonには"人の介在する(human-in-the-loop"質問コレクタ(corrector)が含まれている。コレクタにはもうひとつのニューラルネットワークとして、質問がSQLに正しく変換されなかったことを判定する分類器(classifier)が使用されている。この分類器は、変換可能な質問に対して研究者が"入れ替え(swap)"や"脱落(drop)"を施すことで、人為的に作成されたデータセットを使ってトレーニングされている。例えば、"いくつの国があるか(how many contries exist?)"という質問ならば、"いくつあるか(how many exist?)"に置き換えるのである。さらにコンフュージョンディテクタ(confusion detector)が、コンフュージョンのある質問部分(スパン(span))の特定も行っている。このスパンがチャットインターフェースを通じてユーザにフィードバックされて、修正の提案に使用されるのだ。
他のハイテク企業でも、同じようなNLIDBシステムを開発している。Microsoft Researchは、一連のゲート付き回帰型ユニット(GRU)を使用して自然言語による質問をSQLクエリに変換する、CAMPという名のニューラルネットワークによるセマンティック解析システムを開発した。GoogleのTAPASのアプローチは少し異なり、自然言語をSQLにパースするのではなく、TAPASのトレーニングプロセスにテーブルデータを直接含める方法を採用している。ただし、Photonの作者たちは、テーブルデータによるネットワークのトレーニングにはデータのプライバシに関する懸念がある、と指摘している。
Hacker Newsの議論では、NLIDBの出力の品質に対してコメントがあげられていた。あるユーザの意見では、
このモデルは"知らない"というのが苦手なようですが、私は楽観視しています。(NLPの進歩のおかげで)毎年大きく改善されていますし、トレーニングデータセットもどんどん面白いものになっているからです。現在では、フォローアップの質問をするようにモデルをトレーニングする会話型データセット(https://yale-lily.github.io/cosqlなど)もあるので、"曖昧な質問を明確にし、返された結果を確認し、答えられない質問や無関係な質問をユーザに通知するシステム応答"が明確な目標になっています。大きな成果を上げることでしょう。
Photonのデモバージョンが公開中である。将来的な開発として、Lin氏は"音声入力、自動補完、出力の可視化"などを挙げているが、それらの機能の具体的な時期は発表されていない。