[論文レビュー] Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning
Seq2SQL は自然言語の質問を SQL クエリに翻訳する際、SQL の構造を活用し、ループ内実行報酬で方針を訓練することで、WikiSQL で最先端の結果を達成します。
A significant amount of the world's knowledge is stored in relational databases. However, the ability for users to retrieve facts from a database is limited due to a lack of understanding of query languages such as SQL. We propose Seq2SQL, a deep neural network for translating natural language questions to corresponding SQL queries. Our model leverages the structure of SQL queries to significantly reduce the output space of generated queries. Moreover, we use rewards from in-the-loop query execution over the database to learn a policy to generate unordered parts of the query, which we show are less suitable for optimization via cross entropy loss. In addition, we will publish WikiSQL, a dataset of 80654 hand-annotated examples of questions and SQL queries distributed across 24241 tables from Wikipedia. This dataset is required to train our model and is an order of magnitude larger than comparable datasets. By applying policy-based reinforcement learning with a query execution environment to WikiSQL, our model Seq2SQL outperforms attentional sequence to sequence models, improving execution accuracy from 35.9% to 59.4% and logical form accuracy from 23.4% to 48.3%.
研究の動機と目的
- リレーショナルデータのクエリ実行の敷居を下げるため、データベースへの自然言語インターフェースを提案する。
- SQL構造を活用して出力空間を絞るニューラルモデルを提案する。
- ライブクエリ実行報酬を用いた強化学習で、順序付けられていない WHERE 句生成に対処する。
- WikiSQL を公開する:大規模で現実世界の NL 質問と SQL クエリおよびテーブルスキーマ。
提案手法
- 拡張ポインタネットワークを用い、入力(列、質問、および SQL 語彙)からトークンを選択して SQL を生成する。
- SQL を三つの要素に分解: 集約演算子、SELECT 列、WHERE 句;集約と SELECT をクロスエントロピー損失で監督する。
- WHERE 句をポリシー勾配で訓練し、ループ内のクエリ実行から得られる報酬を使用して無秩序な条件を扱う。
- SQL の構造を活用して出力空間を絞り、希少語/列の生成を改善する。
- L_agg、L_sel(クロスエントロピー)および L_whe(強化学習)を組み合わせた目的で訓練する。
- WikiSQL データセット(80,654 の例 over 24,241 テーブル)と訓練・評価のための実行エンジンを提供。
実験結果
リサーチクエスチョン
- RQ1未知のテーブルスキーマに対しても、ニューラルモデルは自然言語の質問から正しい SQL クエリを生成できるか?
- RQ2SQL 構造と強化学習を取り入れることは、既存の意味解析器に対して実行精度を改善するか?
- RQ3大規模で現実世界の NLQ-to-SQL データセット(WikiSQL)は、他の意味解析データセットと比較してテーブル間の一般化を促進する点でどうか?
主な発見
| モデル | 開発 Dev Acc_lf | 開発 Dev Acc_ex | テスト Test Acc_lf | テスト Test Acc_ex |
|---|---|---|---|---|
| Baseline (Dong & Lapata, 2016) | 23.3% | 37.0% | 23.4% | 35.9% |
| Aug Ptr Network | 44.1% | 53.8% | 43.3% | 53.3% |
| Seq2SQL (no RL) | 48.2% | 58.1% | 47.4% | 57.1% |
| Seq2SQL | 49.5% | 60.8% | 48.3% | 59.4% |
- Seq2SQL は WikiSQL で実行精度の点で最先端のセマンティックパーサを上回る(35.9% から 59.4% へ)。
- 論理形の精度も改善(23.4% から 48.3%)。
- 拡張ポインタネットワーク(RL なし)はすでに実行精度でベースラインを 17.4% 上回る。
- SQL 構造(3部構成)の組み込みはさらに 3.8% の改善をもたらす。
- WHERE 句に対するポリシー勾配 RL は追加で 2.3% の改善を生む。
- COUNT 演算子では、Seq2SQL は拡張ポインタ・ベースラインより高い精度、再現率、F1 を達成(それぞれ 72.6、66.2、69.2)。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。