JP7364065B2 - 推定装置、学習装置、推定方法、学習方法及びプログラム - Google Patents

推定装置、学習装置、推定方法、学習方法及びプログラム Download PDF

Info

Publication number
JP7364065B2
JP7364065B2 JP2022524762A JP2022524762A JP7364065B2 JP 7364065 B2 JP7364065 B2 JP 7364065B2 JP 2022524762 A JP2022524762 A JP 2022524762A JP 2022524762 A JP2022524762 A JP 2022524762A JP 7364065 B2 JP7364065 B2 JP 7364065B2
Authority
JP
Japan
Prior art keywords
name
column
estimation
input
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022524762A
Other languages
English (en)
Other versions
JPWO2021234860A1 (ja
Inventor
宗一郎 加来
京介 西田
準二 富田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021234860A1 publication Critical patent/JPWO2021234860A1/ja
Application granted granted Critical
Publication of JP7364065B2 publication Critical patent/JP7364065B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、推定装置、学習装置、推定方法、学習方法及びプログラムに関する。
近年、深層学習技術を用いて、DB(データベース)に対する自然文の質問文からSQL(Structured Query Language)クエリを推定するtext to SQLというタスクが注目を集めている。例えば、非特許文献1では、DBに関連する質問文とDBスキーマとを入力として、この質問文に対する回答をDBから取得するためのSQLクエリを推定する深層学習モデルが提案されている。
Rui Zhang, Tao Yu, He Yang Er, Sungrok Shim, Eric Xue, Xi Victoria Lin, Tianze Shi, Caiming Xiong, Richard Socher, Dragomir Radev, "Editing-Based SQL Query Generation for Cross-Domain Context-Dependent Questions", arXiv:1909.00786v2 [cs.CL] 10 Sep 2019
しかしながら、従来技術では、SQLクエリを推定する際に、DBの各列の値を考慮していない。これは、text to SQLタスクに用いられる深層学習モデルに組み込まれている汎用言語モデル(例えば、BERT(Bidirectional Encoder Representations from Transformers)やRoBERTa(Robustly optimized BERT approach)等)に入力長制限があるためである。このため、例えば、SQLクエリを推定する際にDBの各列の値を考慮する必要がある質問文に対しては、その推定精度が低下したり、推定自体が困難になったりする場合があると考えられる。
本発明の一実施形態は、上記の点に鑑みてなされたもので、SQLクエリを推定する際に、DBの各列の値も考慮可能にすることを目的とする。
上記目的を達成するため、一実施形態に係る推定装置は、データベースに関連する質問文と、前記データベースの構成を表す構成情報とを入力として、前記質問文と、前記データベースに格納されているテーブルのテーブル名と、前記テーブル名のテーブルに含まれる列の列名と、前記列の値とで構成される第1の入力データを作成する第1の入力加工部と、予め学習済みの第1のパラメータを用いて、前記質問文に対する回答を前記データベースから検索するためのSQLクエリの中で、前記第1の入力データに含まれる列名が利用されているか否かを推定する第1の推定部と、を有することを特徴とする。
SQLクエリを推定する際に、DBの各列の値も考慮することができる。
DB構成の一例を示す図である。 テーブル構成の一例を示す図である。 推論時における推定装置の機能構成の一例を示す図(実施例1)である。 実施例1における推定部の機能構成の一例を示す図である。 実施例1における推定処理の一例を示すフローチャートである。 実施例1におけるモデル入力データの加工の一例を説明するための図である。 学習時における推定装置の機能構成の一例を示す図(実施例1)である。 実施例1における学習処理の一例を示すフローチャートである。 実施例1におけるパラメータ更新処理の一例を示すフローチャートである。 推論時における推定装置の機能構成の一例を示す図(実施例2)である。 実施例2における推定処理の一例を示すフローチャートである。 実施例2におけるモデル入力データの加工の一例を説明するための図である。 学習時における推定装置の機能構成の一例を示す図(実施例2)である。 実施例2における学習処理の一例を示すフローチャートである。 実施例2におけるパラメータ更新処理の一例を示すフローチャートである。 推論時における推定装置の機能構成の一例を示す図(実施例3)である。 実施例3における推定処理の一例を示すフローチャートである。 学習時における推定装置の機能構成の一例を示す図(実施例3)である。 実施例3における学習処理の一例を示すフローチャートである。 コンピュータのハードウェア構成の一例を示す図である。
以下、本発明の一実施形態について説明する。本実施形態では、DBに関連する質問文と当該DBの構成情報(テーブル名、テーブルの各列名、各列の値)とが与えられたときに、(1)当該質問文の回答を得るためのSQLクエリの中に列名(ただし、JOINにより結合される列名は除く)が含まれるか否かを推定するタスクと、(2)当該質問文の回答を得るためのSQLクエリの中で2つの列名がJOINにより結合される(つまり、当該2つの列名がSQLクエリに含まれ、かつ、これら2つの列名がJOINにより結合される)か否かを推定するタスクとの2つのタスクのそれぞれを深層学習モデルにより実現する場合について説明する。また、本実施形態では、これら2つのタスクの推定結果を用いて、与えられた質問文の回答を得るためのSQLクエリを推定するタスク(つまり、各列の値も考慮したtext to SQLタスク)についても説明する。なお、以降では、SQLクエリを単に「SQL」とも表す。
<検索対象となるDB>
まず、与えられた質問文の回答を得るためのSQLで検索対象となるDBの一例について説明する。本実施形態では、一例として、図1に示す4つのテーブルが格納されている構成のDBを対象とする。すなわち、検索対象となるDBには、concertテーブルと、singerテーブルと、singer_in_concertテーブルと、stadiumテーブルとの4つのテーブルが格納されているものとする。また、concertテーブルはConcert_ID列とConcert_Name列とStadium_ID列とYear列とで構成されているものとする。同様に、singerテーブルはSinger_ID列とName列とCountry列とSong_release_year列とIs_male列とで構成され、singer_in_concertテーブルはConcert_ID列とSinger_ID列とで構成され、stadiumテーブルはStadium_ID列とLocation列とName列とCapacity列とHighest列とLowest列とAverage列とで構成されているものとする。なお、図1はDBスキーマを示しており、テーブル名及び列名以外にも、例えば、列の値のデータ型や主キーとなる列名等が含まれていてもよい。
また、一例として、検索対象のDBに格納されているconcertテーブル及びstadiumテーブルの具体的な構成を図2に示す。図2では、concertテーブルの各列の値と、stadiumテーブルの各列の値とが示されている。
なお、図1及び図2は一例であって、本実施形態は、任意のRDB(Relational Database)を検索対象のDBとすることが可能である。
[実施例1]
実施例1では、上記の(1)に示すタスク(つまり、質問文の回答を得るためのSQLの中に列名(ただし、JOINにより結合される列名は除く)が含まれるか否かを推定するタスク)を深層学習モデルにより実現する推定装置10について説明する。ここで、推定装置10には、深層学習モデルのパラメータ(以下、「モデルパラメータ」という。)を学習する学習時と、学習済みモデルパラメータを設定した深層学習モデルにより、与えられた質問文の回答を得るためのSQLの中に列名(ただし、JOINにより結合される列名は除く)が含まれるか否かを推定する推論時とが存在する。なお、学習時における推定装置10は「学習装置」等と称されてもよい。
<推論時における推定装置10の機能構成(実施例1)>
推論時における推定装置10の機能構成について、図3を参照しながら説明する。図3は、推論時における推定装置10の機能構成の一例を示す図(実施例1)である。ここで、推論時における推定装置10には、入力データとして、質問文と検索対象構成情報とが与えられるものとする。また、モデルパラメータは学習済みであるものとする。検索構成情報とは、検索対象のDBに格納されている各テーブルのテーブル名と、これら各テーブルにそれぞれ含まれる各列の列名と、これら各列の値とが含まれる情報のことである。
図3に示すように、推論時における推定装置10は、入力加工部101と、推定部102と、比較判定部103とを有する。これら各部は、推定装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。
入力加工部101は、与えられた入力データに含まれる質問文及び検索対象構成情報を用いて、推定部102を実現する深層学習モデルに入力されるモデル入力データを作成する。ここで、モデル入力データは、(質問文,検索対象となるDBに格納されている1つのテーブルのテーブル名,当該テーブルの1つの列名,当該列の値1,・・・,当該列の値n)という形式で表されるデータである。なお、nは、当該列の値の数である。
入力加工部101は、各質問文と、各テーブル名と、当該テーブル名のテーブルに含まれる各列名との全ての組み合わせに対してモデル入力データを作成する。すなわち、入力加工部101は、(質問文数×列数)個のモデル入力データを作成する。なお、この列数は、テーブルが複数ある場合は全てのテーブルの合計列数のことである。
また、入力加工部101は、推定部102を実現する深層学習モデルに応じて、この深層学習モデルに入力可能な形式にモデル入力データを加工する。
推定部102は、学習済みモデルパラメータを用いて、入力加工部101によって作成された各モデル入力データそれぞれから、当該モデル入力データに含まれる列名がSQLに含まれるか否かを判定するための2次元ベクトルを推定する。なお、モデルパラメータは、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置に格納されている。
ここで、推定部102の詳細な機能構成について、図4を参照しながら説明する。図4は、実施例1における推定部102の機能構成の一例を示す図である。
図4に示すように、推定部102には、トークナイズ部111と、汎用言語モデル部112と、変換部113とが含まれる。このとき、汎用言語モデル部112及び変換部113は、ニューラルネットワークを含む深層学習モデルで実現される。
トークナイズ部111は、モデル入力データに対してトークナイズを行う。トークナイズとは、モデル入力データをトークン(単語又は所定の語若しくは語句)単位に分割又は区切ることである。
汎用言語モデル部112はBERTやRoBERTa等の汎用言語モデルにより実現され、トークナイズ後のモデル入力データを入力して、ベクトル系列を出力する。
変換部113はlinear層と活性化関数にsoftmax関数を用いた出力層とで構成されるニューラルネットワークモデルにより実現され、汎用言語モデル部112から出力されたベクトル系列を2次元ベクトルに変換し、この2次元ベクトルの各要素のsoftmax関数値を計算する。これにより、各要素が0以上1以下で、かつ、各要素の合計が1となる2次元ベクトルが得られる。
図3に戻る。比較判定部103は、推定部102から出力された2次元ベクトルの要素の大小関係を比較することで、与えられた質問文に対する回答を得るためのSQLに該当の列名が含まれるか否かを判定する。この判定結果が、質問文に対する回答を得るためのSQLに当該列名が含まれるか否かを示す推定結果であり、出力データとして出力される。
<推定処理(実施例1)>
次に、実施例1における推定処理について、図5を参照しながら説明する。図5は、実施例1における推定処理の一例を示すフローチャートである。以降では、一例として、質問文「Show the stadium name and the number of concerts in each stadium.」と、図1及び図2に示すDBに関する検索構成情報とが入力データとして与えられたものとする。
まず、入力加工部101は、与えられた入力データに含まれる質問文及び検索対象構成情報を入力する(ステップS101)。
次に、入力加工部101は、上記のステップS101で入力した質問文及び検索対象構成情報からモデル入力データを作成する(ステップS102)。なお、上述したように、(質問文数×テーブル数×列数)個のモデル入力データが作成される。
例えば、テーブル名「stadium」及び列名「Stadium_ID」に関するモデル入力データは、(Show the stadium name and the number of concerts in each stadium.,stadium,Stadium_ID,1,2,・・・,10)となる。
同様に、例えば、テーブル名「stadium」及び列名「Location」に関するモデル入力データは、(Show the stadium name and the number of concerts in each stadium.,stadium,Location,Raith Rovers,Avr United,・・・,Brechin City)となる。
同様に、例えば、テーブル名「stadium」及び列名「Name」に関するモデル入力データは、(Show the stadium name and the number of concerts in each stadium.,stadium,Name,Stark's Park,Somerset Park,・・・,Glebe Park)となる。
テーブル名「stadium」の他の列名(「Capacity」、「Highest」、「Lowest」及び「Average」)に関するモデル入力データと、他のテーブル名(「concert」、「singer」及び「singer_in_concert」)の各列名に関するモデル入力データとについても同様である。これにより、21個(=質問文数(=1)×列数(=5+7+2+7))のモデル入力データが作成される。
次に、入力加工部101は、上記のステップS102で作成した各モデル入力データのそれぞれを、推定部102を実現する深層学習モデルに入力可能な形式に加工する(ステップS103)。
例えば、深層学習モデルに含まれる汎用言語モデルがRoBERTaである場合、入力加工部101は、モデル入力データに含まれる質問文の直前に<s>トークンを挿入すると共に、質問文の直後、テーブル名の直後、列名の直後及び当該列の各値の直後にそれぞれ</s>トークンを挿入し、<s>トークンから最初の</s>トークンまでの各トークンにsegment idとして0を付与し、それ以外の各トークンはsegment idとして1を付与する。ただし、RoBERTaに入力可能な入力長の上限は512トークンであるため、加工後のモデル入力データが512トークンを超える場合は、先頭から512トークンのみを加工後のモデル入力データとする(つまり、先頭から512トークンを超える部分については切り捨てる。)。なお、segment idはRoBERTaに入力される入力系列(トークン系列)が2つの文章からなる場合に文章と文章の境界を明示するための付加情報であり、本実施形態では、質問文とテーブル名の境界を明示するために用いられる。<s>トークンは文頭を表すトークンであり、</s>トークンは文の区切り又は文の終わりを表すトークンである。
例えば、深層学習モデルに含まれる汎用言語モデルがRoBERTaであり、モデル入力データが(Show the stadium name and the number of concerts in each stadium.,stadium,Name,Stark's Park,Somerset Park,・・・,Glebe Park)である場合、加工後の当該モデル入力データの具体例を図6に示す。図6に示すように、質問文の直前に<s>トークンが挿入され、質問文の直後、テーブル名の直後、列名の直後及び当該列の各値の直後にそれぞれ</s>トークンが挿入される。また、<s>トークンから最初の</s>トークンまでの各トークンにはsegment idとして0が、それ以外の各トークンにはsegment idとして1が付与されている。
次に、推定部102のトークナイズ部111は、上記のステップS103で得られた加工後の各モデル入力データのそれぞれをトークナイズする(ステップS104)。
次に、推定部102の汎用言語モデル部112は、学習済みモデルパラメータを用いて、トークナイズ後の各モデル入力データのそれぞれから出力としてベクトル系列を得る(ステップS105)。なお、各モデル入力データのそれぞれに対してベクトル系列が得られる。つまり、例えば、モデル入力データ数が21個である場合、21個のベクトル系列が得られる。
次に、推定部102の変換部113は、学習済みモデルパラメータを用いて、各ベクトル系列のそれぞれを2次元ベクトルに変換する(ステップS106)。具体的には、変換部113は、各ベクトル系列のそれぞれについて、当該ベクトル系列のうちの先頭のベクトル(つまり、<s>トークンに対応するベクトル)をlinear層で2次元ベクトルに変換し、出力層でsoftmax関数値を計算する。これにより、例えば、モデル入力データ数が21個である場合、21個の2次元ベクトルが得られる。
そして、比較判定部103は、上記のステップS106で得られた各2次元ベクトルの要素の大小を比較することで、当該2次元ベクトルに対応するモデル入力データ(つまり、当該2次元ベクトルが得られた際に深層学習モデルに入力されたモデル入力データ)に含まれる列名がSQLに含まれるか否か(ただし、JOINにより結合される列名としてSQLに含まれる場合は除く)を判定し、その判定結果を推定結果とする(ステップS107)。具体的には、例えば、2次元ベクトルを(x,y)と表した場合、x≧yであれば当該2次元ベクトルに対応するモデル入力データに含まれる列名がSQLに含まれると判定し、x<yであれば当該2次元ベクトルに対応するモデル入力データに含まれる列名はSQLに含まれないと判定する。これにより、検索対象となるDBの各列名のそれぞれがSQLに含まれるか否か(ただし、JOINにより結合される場合は除く)を示す推定結果が出力データとして得られる。
<学習時における推定装置10の機能構成(実施例1)>
学習時における推定装置10の機能構成について、図7を参照しながら説明する。図7は、学習時における推定装置10の機能構成の一例を示す図(実施例1)である。ここで、学習時における推定装置10には、入力データとして、質問文とSQLと検索対象構成情報とが与えられるものとする。また、モデルパラメータは学習中である(つまり、学習済みでない)ものとする。
図7に示すように、学習時における推定装置10は、入力加工部101と、推定部102と、学習データ加工部104と、更新部105とを有する。これら各部は、推定装置10にインストールされた1以上のプログラムが、CPUやGPU(Graphics Processing Unit)等のプロセッサに実行させる処理により実現される。なお、入力加工部101及び推定部102は推論時と同様であるため、その説明を省略する。ただし、推定部102は学習中のモデルパラメータを用いて2次元ベクトルを推定する。
学習データ加工部104は、与えられた入力データに含まれる質問文、SQL及び検索対象構成情報を用いて、モデル入力データと対応付けられるラベルデータを作成する。ここで、ラベルデータは、(質問文,検索対象となるDBに格納されている1つのテーブルのテーブル名,当該テーブルの1つの列名,0又は1のいずれかの値を取るラベル)という形式で表されるデータである。ラベルは、当該列名が、当該入力データに含まれるSQL中にJOIN以外で利用されている場合は1、それ以外の場合(つまり、JOINで利用されている場合又はSQL中で利用されていない場合)は0を取る。
また、学習データ加工部104は、同一の質問文、テーブル名及び列名でモデル入力データとラベルデータとを対応付ける。学習時では、モデル入力データとラベルデータとを対応付けたデータを学習用データと見做して、モデルパラメータの更新(学習)が行われる。なお、入力加工部101によって作成されるモデル入力データの個数と学習データ加工部104によって作成されるラベルデータの個数は同数(つまり、(質問文数×列数)個)である。
更新部105は、推定部102によって推定された2次元ベクトルと、この2次元ベクトルを推定した際に推定部102に入力されたモデル入力データに対応するラベルデータに含まれるラベルを表す正解ベクトルとの損失(誤差)を用いて、既知の最適化手法によりモデルパラメータを更新する。ここで、正解ベクトルは、例えば、当該ラベルの値が0である場合は(0,1)、当該ラベルの値が1である場合は(1,0)であるベクトルである。
<学習処理(実施例1)>
次に、実施例1における学習処理について、図8を参照しながら説明する。図8は、実施例1における学習処理の一例を示すフローチャートである。以降では、一例として、質問文「Show the stadium name and the number of concerts in each stadium.」と、SQL「SELECT T2.Name, count(*) FROM concert AS T1 JOIN stadium AS T2 ON T1.Stadium_id = T2.Stadium_id GROUP BY T1.Stadium_id」と、図1及び図2に示すDBに関する検索構成情報とが入力データとして与えられたものとする。
ステップS201~ステップS203は、図5のステップS101~ステップS103とそれぞれ同様であるため、その説明を省略する。
ステップS203に続いて、学習データ加工部104は、与えられた入力データに含まれる質問文、SQL及び検索対象構成情報を入力する(ステップS204)。
次に、学習データ加工部104は、上記のステップS204で入力した質問文、SQL及び検索対象構成情報からラベルデータを作成する(ステップS205)。なお、上述したように、モデル入力データと同数のラベルデータが作成される。
例えば、テーブル名「stadium」及び列名「Stadium_ID」に関するラベルデータは、(Show the stadium name and the number of concerts in each stadium.,stadium,Stadium_ID,0)となる。stadiumテーブルのStadium_ID列はSQL中にJOINで利用されており、ラベルの値は0となるためである。
同様に、例えば、テーブル名「stadium」及び列名「Location」に関するラベルデータは、(Show the stadium name and the number of concerts in each stadium.,stadium,Location,0)となる。stadiumテーブルのLocation列はSQL中で利用されておらず、ラベルの値は0となるためである。
一方で、例えば、テーブル名「stadium」及び列名「Name」に関するラベルデータは、(Show the stadium name and the number of concerts in each stadium.,stadium,Name,1)となる。stadiumテーブルのName列はSQL中にJOIN以外で利用されており、ラベルの値は1となるためである。
テーブル名「stadium」の他の列名(「Capacity」、「Highest」、「Lowest」及び「Average」)に関するラベルデータと、他のテーブル名(「concert」、「singer」及び「singer_in_concert」)の各列名に関するラベルデータとについても同様である。これにより、21個(=質問文数(=1)×列数(=5+7+2+7))のラベルデータが作成される。
次に、学習データ加工部104は、同一の質問文、テーブル名及び列名でモデル入力データとラベルデータとを対応付けて学習用データとし、これらの学習用データで構成される学習用データセットを作成する(ステップS206)。これにより、(質問文数×列数)個の学習用データで構成される学習用データセットが得られる。
続いて、学習時における推定装置10は、学習用データセットを用いてパラメータ更新処理を実行し、モデルパラメータを学習(更新)する(ステップS207)。ここで、実施例1におけるパラメータ更新処理について、図9を参照しながら説明する。図9は、実施例1におけるパラメータ更新処理の一例を示すフローチャートである。以降では、一例として、バッチサイズをmとしたミニバッチ学習によりモデルパラメータを更新する場合について説明する。ただし、これ以外にも、例えば、オンライン学習やバッチ学習等の任意の手法によりモデルパラメータが更新されてもよい。
まず、更新部105は、上記のステップS206で作成された学習用データセットからm個の学習用データを選択する(ステップS301)。なお、mはバッチサイズであり、任意の値を設定することが可能であるが、例えば、21個の学習用データで学習用データセットが構成されている場合、m=8等とすることが考えられる。
次に、入力加工部101は、図5のステップS103と同様に、m個の学習用データのそれぞれに含まれるm個のモデル入力データのそれぞれを、推定部102を実現する深層学習モデルに入力可能な形式に加工する(ステップS302)。
次に、推定部102のトークナイズ部111は、図5のステップS104と同様に、上記のステップS302で得られた加工後のm個のモデル入力データのそれぞれをトークナイズする(ステップS303)。
次に、推定部102の汎用言語モデル部112は、学習中モデルパラメータを用いて、トークナイズ後のm個のモデル入力データのそれぞれから出力としてm個のベクトル系列を得る(ステップS304)。
次に、推定部102の変換部113は、学習中モデルパラメータを用いて、m個のベクトル系列のそれぞれをm個の2次元ベクトルに変換する(ステップS305)。
次に、更新部105は、上記のステップS305で得られたm個の2次元ベクトルと、これらm個の2次元ベクトルにそれぞれ対応するm個の正解ベクトルとの損失の和を損失関数値として、この損失関数値とそのモデルパラメータに関する勾配とを計算する(ステップS306)。なお、損失関数としてはベクトル間の損失又は誤差を表す任意の関数を用いることが可能であるが、例えば、cross entropy等を用いることが可能である。また、正解ベクトルは、上述したように、2次元ベクトルを推定した際に推定部102に入力されたモデル入力データに対応するラベルデータのラベル値が0である場合は(0,1)、当該ラベル値が1である場合は(1,0)であるベクトルである。
次に、更新部105は、上記のステップS307で計算した損失関数値及びその勾配を用いて、既知の最適化手法によりモデルパラメータを更新する(ステップS307)。なお、最適化手法としては任意の手法を用いることが可能であるが、例えば、Adam等を用いることが考えられる。
続いて、更新部105は、学習用データセット中に未選択の学習用データがあるか否かを判定する(ステップS308)。そして、未選択の学習用データがあると判定された場合、更新部105は、ステップS301に戻る。これにより、上記のステップS301で未選択のm個の学習用データが選択され、上記のステップS302~ステップS307が実行される。なお、未選択の学習用データ数が1以上m未満である場合は上記のステップS301で未選択の学習用データ全てが選択されるようにしてもよいし、既知のデータ拡張手法等により予め学習用データセット中の学習用データ数がmの倍数となるようにしておいてもよい。
一方で、未選択の学習用データがないと判定された場合、更新部105は、所定の終了条件を満たすか否かを判定する(ステップS309)。なお、終了条件としては、例えば、モデルパラメータが収束したこと、ステップS301~ステップS308の繰り返し回数が所定の回数以上となったこと等が挙げられる。
所定の終了条件を満たすと判定された場合、推定装置10は、パラメータ更新処理を終了する。これにより、推定部102を実現する深層学習モデルのモデルパラメータが学習される。
一方で、所定の終了条件を満たさないと判定された場合、更新部105は、学習用データセット中の全ての学習用データを未選択として(ステップS310)、上記のステップS301に戻る。これにより、上記のステップS301で再度m個の学習用データが選択され、上記のステップS302以降が実行される。
[実施例2]
実施例2では、上記の(2)に示すタスク(つまり、質問文の回答を得るためのSQLの中で2つの列名がJOINにより結合されるか否かを推定するタスク)を深層学習モデルにより実現する推定装置20について説明する。ここで、推定装置20には、モデルパラメータを学習する学習時と、学習済みモデルパラメータを設定した深層学習モデルにより、与えられた質問文の回答を得るためのSQLの中で2つの列名がJOINにより結合されるか否かを推定する推論時とが存在する。なお、学習時における推定装置20は「学習装置」等と称されてもよい。
<推論時における推定装置20の機能構成(実施例2)>
推論時における推定装置20の機能構成について、図10を参照しながら説明する。図10は、推論時における推定装置20の機能構成の一例を示す図(実施例2)である。なお、実施例1と同様に、推論時における推定装置20には、入力データとして、質問文と検索対象構成情報とが与えられるものとする。また、モデルパラメータは学習済みであるものとする。
図10に示すように、推論時における推定装置20は、入力加工部101Aと、推定部102と、比較判定部103とを有する。これら各部は、推定装置20にインストールされた1以上のプログラムがプロセッサに実行させる処理により実現される。なお、推定部102及び比較判定部103は実施例1と同様であるため、その説明を省略する。ただし、推定部102によって推定される2次元ベクトルは、与えられた質問文の回答を得るためのSQLの中で2つの列名がJOINにより結合されるか否かを判定するためのベクトルである。
入力加工部101Aは、与えられた入力データに含まれる質問文及び検索対象構成情報を用いて、(質問文,検索対象となるDBに格納されている第1のテーブルのテーブル名,当該第1のテーブルの第1の列の列名,当該第1の列の値1,・・・,当該第1の列の値n,当該DBに格納されている第2のテーブルのテーブル名,当該第2のテーブルの第2の列の列名,当該第2の列の値1,・・・,当該第2の列の値n)という形式で表されるモデル入力データを作成する。なお、nは第1の列の値の数、nは第2の列の値の数である。
入力加工部101Aは、各質問文と、第1のテーブル名と、第1のテーブル名のテーブルに含まれる各列名と、第2のテーブル名と、第2のテーブル名のテーブルに含まれる各列名との組み合わせに対してモデル入力データを作成する。すなわち、入力加工部101Aは、(質問文数×第1のテーブル名及び第1の列名と第2のテーブル名及び第2の列名との組み合わせ数)個のモデル入力データを作成する。
また、入力加工部101Aは、推定部102を実現する深層学習モデルに応じて、この深層学習モデルに入力可能な形式にモデル入力データを加工する。
<推定処理(実施例2)>
次に、実施例2における推定処理について、図11を参照しながら説明する。図11は、実施例2における推定処理の一例を示すフローチャートである。以降では、一例として、質問文「Show the stadium name and the number of concerts in each stadium.」と、図1及び図2に示すDBに関する検索構成情報とが入力データとして与えられたものとする。
まず、入力加工部101Aは、与えられた入力データに含まれる質問文及び検索対象構成情報を入力する(ステップS401)。
次に、入力加工部101Aは、上記のステップS401で入力した質問文及び検索対象構成情報からモデル入力データを作成する(ステップS402)。なお、上述したように、(質問文数×第1のテーブル名及び第1の列名と第2のテーブル名及び第2の列名との組み合わせ数)個のモデル入力データが作成される。
例えば、テーブル名「stadium」及び列名「Stadium_ID」と、テーブル名「concert」及び列名「Concert_ID」とに関するモデル入力データは、(Show the stadium name and the number of concerts in each stadium.,stadium,Stadium_ID,1,2,・・・,10,concert,Concert_ID,1,2,・・・,6)となる。
同様に、例えば、テーブル名「stadium」及び列名「Stadium_ID」と、テーブル名「concert」及び列名「Concert_Name」とに関するモデル入力データは、(Show the stadium name and the number of concerts in each stadium.,stadium,Stadium_ID,1,2,・・・,10,concert,Concert_Name,Auditions,Super bootcamp,・・・,Week)となる。
同様に、例えば、テーブル名「stadium」及び列名「Stadium_ID」と、テーブル名「concert」及び列名「Theme」とに関するモデル入力データは、(Show the stadium name and the number of concerts in each stadium.,stadium,Stadium_ID,1,2,・・・,10,concert,Theme,Free choice,Free choice2,・・・,Party All Night)となる。
第1のテーブル名及び第1の列名と、第2のテーブル名及び第2の列名との他の組み合わせに関するモデル入力データについても同様である。これにより、157個(=質問文数(=1)×第1のテーブル名及び第1の列名と第2のテーブル名及び第2の列名との組み合わせ数(=35+10+35+14+49+14))のモデル入力データが作成される。ただし、例えば、(第1のテーブル名,第2のテーブル名)の組み合わせと(第2のテーブル名,第1のテーブル名)の組み合わせとを区別してモデル入力データが作成されてもよい。
次に、入力加工部101Aは、図5のステップS103と同様に、上記のステップS402で作成した各モデル入力データのそれぞれを、推定部102を実現する深層学習モデルに入力可能な形式に加工する(ステップS403)。
例えば、深層学習モデルに含まれる汎用言語モデルがRoBERTaであり、モデル入力データが(Show the stadium name and the number of concerts in each stadium.,stadium,Name,Stark's Park,Somerset Park,・・・,Glebe Park,concert,Year,2014,2014,・・・,2015)である場合、加工後の当該モデル入力データの具体例を図12に示す。図12に示すように、質問文の直前に<s>トークンが挿入され、質問文の直後、テーブル名の直後、列名の直後及び当該列の各値の直後にそれぞれ</s>トークンが挿入される。また、<s>トークンから最初の</s>トークンまでの各トークンにはsegment idとして0が、それ以外の各トークンにはsegment idとして1が付与されている。ただし、RoBERTaに入力可能な入力長の上限(512トークン)を超える場合は、2つの列の各値を表すトークンをそれぞれ削除し、加工後のモデル入力データが512トークンとなるようにする。
次に、推定部102のトークナイズ部111は、図5のステップS104と同様に、上記のステップS403で得られた加工後の各モデル入力データのそれぞれをトークナイズする(ステップS404)。
推定部102の汎用言語モデル部112は、図5のステップS105と同様に、学習済みモデルパラメータを用いて、トークナイズ後の各モデル入力データのそれぞれから出力としてベクトル系列を得る(ステップS405)。
次に、推定部102の変換部113は、図5のステップS106と同様に、学習済みモデルパラメータを用いて、各ベクトル系列のそれぞれを2次元ベクトルに変換する(ステップS406)。
そして、比較判定部103は、上記のステップS406で得られた各2次元ベクトルの要素の大小を比較することで、当該2次元ベクトルに対応するモデル入力データに含まれる2つの列名がSQLでJOINにより結合されるか否かを判定し、その判定結果を推定結果とする(ステップS407)。具体的には、例えば、2次元ベクトルを(x,y)と表した場合、x≧yであれば当該2次元ベクトルに対応するモデル入力データに含まれる2つの列名がSQLでJOINにより結合されると判定し、x<yであれば当該2次元ベクトルに対応するモデル入力データに含まれる2つの列名はSQLでJOINにより結合されないと判定する。これにより、検索対象となるDBの各列名のうちの2つの列名の全ての組み合わせに対してSQL中でJOINにより結合されるか否かを示す推定結果が出力データとして得られる。
<学習時における推定装置20の機能構成(実施例2)>
学習時における推定装置20の機能構成について、図13を参照しながら説明する。図13は、学習時における推定装置20の機能構成の一例を示す図(実施例2)である。ここで、学習時における推定装置20には、入力データとして、質問文とSQLと検索対象構成情報とが与えられるものとする。また、モデルパラメータは学習中であるものとする。
図13に示すように、学習時における推定装置20は、入力加工部101Aと、推定部102と、学習データ加工部104Aと、更新部105とを有する。これら各部は、推定装置20にインストールされた1以上のプログラムがプロセッサに実行させる処理により実現される。なお、入力加工部101A及び推定部102は推論時と同様であり、更新部105は実施例1と同様であるため、その説明を省略する。ただし、推定部102は学習中のモデルパラメータを用いて2次元ベクトルを推定する。
学習データ加工部104Aは、与えられた入力データに含まれる質問文、SQL及び検索対象構成情報を用いて、(質問文,検索対象となるDBに格納されている第1のテーブルのテーブル名,当該第1のテーブルの第1の列名,当該DBに格納されている第2のテーブルのテーブル名,当該第2のテーブルの第2の列名,0又は1のいずれかの値を取るラベル)という形式で表されるラベルデータを作成する。ラベルは、当該入力データに含まれるSQL中で第1の列名と第2の列名とがJOINにより結合される場合は1、それ以外の場合(つまり、JOIN以外で利用されている場合又はSQL中で利用されていない場合)は0を取る。
また、学習データ加工部104Aは、同一の質問文、第1のテーブル名、第1の列名、第2のテーブル名及び第2の列名でモデル入力データとラベルデータとを対応付ける。なお、入力加工部101によって作成されるモデル入力データの個数と学習データ加工部104によって作成されるラベルデータの個数は同数である。
<学習処理(実施例2)>
次に、実施例2における学習処理について、図14を参照しながら説明する。図14は、実施例2における学習処理の一例を示すフローチャートである。以降では、一例として、質問文「Show the stadium name and the number of concerts in each stadium.」と、SQL「SELECT T2.Name, count(*) FROM concert AS T1 JOIN stadium AS T2 ON T1.Stadium_id = T2.Stadium_id GROUP BY T1.Stadium_id」と、図1及び図2に示すDBに関する検索構成情報とが入力データとして与えられたものとする。
ステップS501~ステップS503は、図11のステップS401~ステップS403とそれぞれ同様であるため、その説明を省略する。
ステップS503に続いて、学習データ加工部104Aは、与えられた入力データに含まれる質問文、SQL及び検索対象構成情報を入力する(ステップS504)。
次に、学習データ加工部104Aは、上記のステップS504で入力した質問文、SQL及び検索対象構成情報からラベルデータを作成する(ステップS505)。なお、上述したように、モデル入力データと同数のラベルデータが作成される。
例えば、テーブル名「stadium」及び列名「Stadium_ID」と、テーブル名「concert」及び列名「Stadium_ID」とに関するラベルデータは、(Show the stadium name and the number of concerts in each stadium.,stadium,Stadium_ID,concert,Stadium_ID,1)となる。stadiumテーブルのStadium_ID列とconcertテーブルのStadium_ID列はSQL中でJOINにより結合されており、ラベルの値は1となるためである。
一方で、例えば、テーブル名「stadium」及び列名「Stadium_ID」と、テーブル名「concert」及び列名「Year」とに関するラベルデータは、(Show the stadium name and the number of concerts in each stadium.,stadium,Stadium_ID,concert,Year,0)となる。
第1のテーブル名及び第1の列名と、第2のテーブル名及び第2の列名との他の組み合わせに関するラベルデータについても同様である。これにより、モデル入力データと同数のラベルデータが作成される。
次に、学習データ加工部104Aは、図8のステップS206と同様に、テーブル名及び列名でモデル入力データとラベルデータとを対応付けて学習用データとし、これらの学習用データで構成される学習用データセットを作成する(ステップS506)。
続いて、学習時における推定装置20は、学習用データセットを用いてパラメータ更新処理を実行し、モデルパラメータを学習(更新)する(ステップS507)。ここで、実施例2におけるパラメータ更新処理について、図15を参照しながら説明する。図15は、実施例2におけるパラメータ更新処理の一例を示すフローチャートである。以降では、一例として、実施例1と同様に、バッチサイズをmとしたミニバッチ学習によりモデルパラメータを更新する場合について説明する。
まず、更新部105は、上記のステップS506で作成された学習用データセットからm個の学習用データを選択する(ステップS601)。
次に、入力加工部101は、図11のステップS403と同様に、m個の学習用データのそれぞれに含まれるm個のモデル入力データのそれぞれを、推定部102を実現する深層学習モデルに入力可能な形式に加工する(ステップS602)。
以降のステップS603~ステップS610は、図9のステップS303~ステップS310とそれぞれ同様であるため、その説明を省略する。
[実施例3]
実施例3では、上記の(1)に示すタスクの推定結果と上記の(2)に示すタスクの推定結果とを用いて、与えられた質問文の回答を得るためのSQLを推定するタスク(つまり、DBの各列の値も考慮したtext to SQLタスク)を深層学習モデルにより実現する推定装置30について説明する。なお、実施例3では、SQLを推定する深層学習モデルを「SQL推定モデル」、そのパラメータを「SQL推定モデルパラメータ」という。ここで、推定装置30には、SQL推定モデルパラメータを学習する学習時と、学習済みSQL推定モデルパラメータを設定したSQL推定モデルにより、与えられた質問文の回答を得るためのSQLを推定する推論時とが存在する。なお、学習時における推定装置30は「学習装置」等と称されてもよい。
<推論時における推定装置30の機能構成(実施例3)>
推論時における推定装置30の機能構成について、図16を参照しながら説明する。図16は、推論時における推定装置30の機能構成の一例を示す図(実施例3)である。ここで、推論時における推定装置30には、入力データとして、質問文と検索対象構成情報とが与えられるものとする。また、SQL推定モデルパラメータは学習済みであるものとする。
図16に示すように、推論時における推定装置30は、入力加工部106と、SQL推定部107とを有する。これら各部は、推定装置30にインストールされた1以上のプログラムがプロセッサに実行させる処理により実現される。
入力加工部106は、与えられた入力データに含まれる質問文及び検索対象構成情報と、当該入力データに対する推定装置10の出力データと、当該入力データに対する推定装置20の出力データとを用いて、SQL推定部107を実現するSQL推定モデルに入力されるモデル入力データを作成する。ここで、モデル入力データは、既知のSQL推定モデルに入力されるデータに含まれる各列名を表すトークンに対して、推定装置10及び推定装置20による推定結果を示す情報を付加したデータである。例えば、既知のSQL推定モデルに入力されるデータに含まれる各列名を表すトークンのうち、SQL中にJOIN以外で利用されている列名を表すトークンには[unused0]、SQL中にJOINで利用されている列名を表すトークンには[unused1]を付加したデータである。各列名を表すトークンに対して[unused0]を付与するか否かは推定装置10の出力データに含まれる推定結果から決定され、[unused1]を付与するか否かは推定装置20の出力データに含まれる推定結果から決定される。
なお、推定装置10及び推定装置20はそれぞれ学習済みであるものとする。また、推定装置10及び推定装置20(又はそれらの機能部)は推定装置30に組み込まれていてもよいし、推定装置30と通信ネットワーク等を介して接続されていてもよい。
SQL推定部107は、学習済みSQL推定モデルパラメータを用いて、入力加工部106によって作成されたモデル入力データから、与えられた質問文に対する回答を得るためのSQLを推定する。この推定結果を示すSQLが出力データとして出力される。なお、SQL推定部107はSQL推定モデルにより実現される。このようなSQL推定モデルとしては、例えば、上記の非特許文献1に記載されたEdit SQLモデル等が挙げられる。
<推定処理(実施例3)>
次に、実施例3における推定処理について、図17を参照しながら説明する。図17は、実施例3における推定処理の一例を示すフローチャートである。以降では、一例として、質問文「Show the stadium name and the number of concerts in each stadium.」と、図1及び図2に示すDBに関する検索構成情報とが入力データとして与えられたものとする。
推定装置10は、図5のステップS101~ステップS107を実行して、DBの各列名がSQL中にJOIN以外で利用されているか否かを示す推定結果が含まれる出力データを得る(ステップS701)。以降では、この推定結果を「タスク1推定結果」と表す。タスク1推定結果は、例えば、各列名と、当該列名がSQL中にJOIN以外で利用されているか否かを示す情報とが対応付けられたものである。
推定装置20は、図11のステップS401~ステップS407を実行して、DBの2つ列名の組み合わせがSQL中でJOINにより結合されるか否かを示す推定結果が含まれる出力データを得る(ステップS702)。以降では、この推定結果を「タスク2推定結果」と表す。タスク2推定結果は、例えば、2つの列名の各組み合わせと、当該組み合わせがSQL中にJOINで利用されているか否かを示す情報とが対応付けられたものである。
次に、入力加工部106は、与えられた入力データに含まれる質問文及び検索対象構成情報と、タスク1推定結果と、タスク2推定結果とを入力する(ステップS703)。
次に、入力加工部106は、上記のステップS703で入力した質問文、検索対象構成、タスク1推定結果及びタスク2推定結果からモデル入力データを作成する(ステップS704)。
ここで、例えば、SQL推定モデルがEdit SQLモデルである場合、Edit SQLモデルはBERTを内包しているため、[CLS]質問文[SEP]テーブル名1.列名1_1[SEP]・・・[SEP] テーブル名1.列名1_N[SEP]・・・[SEP]テーブル名k.列名k_1[SEP]・・・[SEP]テーブル名k.列名k_N[SEP]として、[CLS]から最初の[SEP]までの各トークンにsegment idとして0を付与し、それ以外の各トークンはsegment idとして1を付与したものがSQL推定モデルに入力される。なお、N(i=1,・・・,k)はテーブル名iのテーブルに含まれる列数である。
したがって、この場合、入力加工部106は、タスク1推定結果とタスク2推定結果とを用いて、SQL中にJOIN以外で利用されている列名を表すトークンの直後に[unused0]を追加すると共に、SQL中にJOINで利用されている列名を表すトークンの直後に[unused1]を追加することで、モデル入力データを作成する。なお、[unused0]及び[unused1]はBERTで事前学習されていない未知のトークンである。
具体的には、例えば、stadiumテーブルのName列がSQL中にJOIN以外で利用されており、かつ、concertテーブルのStadium_ID列とstadiumテーブルのStadium_ID列とが当該SQL中にJOINで利用されてる場合、モデル入力データは、[CLS] Show the stadium name and the number of concerts in each stadium.[SEP]concert.Concert_ID[SEP]・・・[SEP]concert.Stadium_ID.[unused1][SEP]concert.Year[SEP]・・・[SEP]stadium.Stadium_ID[unused1][SEP]・・・[SEP]stadium.Name[unused0][SEP]・・・[SEP]stadium.Average[SEP]として、[CLS]から最初の[SEP]までの各トークンにsegment idとして0を付与し、それ以外の各トークンはsegment idとして1を付与したものとなる。
次に、SQL推定部107は、学習済みSQL推定モデルパラメータを用いて、上記のステップS704で得られたモデル入力データからSQLを推定する(ステップS705)。これにより、DBの各列の値も考慮したSQLが推定され、この推定結果が出力データとして得られる。このとき、SQLはDBの各列の値も考慮して推定されるため、例えば、DBの各列の値を考慮する必要がある質問文に対する回答を得るようなSQLについても高い精度で推定することが可能となる。
<学習時における推定装置30の機能構成(実施例3)>
学習時における推定装置30の機能構成について、図18を参照しながら説明する。図18は、学習時における推定装置30の機能構成の一例を示す図(実施例3)である。ここで、学習時における推定装置30には、入力データとして、質問文とSQLと検索対象構成情報とが与えられるものとする。また、SQL推定モデルパラメータは学習中であるものとする。
図18に示すように、学習時における推定装置30は、入力加工部106と、SQL推定部107と、SQL推定モデル更新部108とを有する。これら各部は、推定装置30にインストールされた1以上のプログラムがプロセッサに実行させる処理により実現される。なお、入力加工部106及びSQL推定部107は推論時と同様であるため、その説明を省略する。ただし、SQL推定部107は学習中のSQL推定モデルパラメータを用いてSQLを推定する。
SQL推定モデル更新部108は、SQL推定部107によって推定されたSQLと、入力データに含まれるSQL(以下、「正解SQL」という。)との損失(誤差)を用いて、既知の最適化手法によりSQL推定モデルパラメータを更新する。
<学習処理(実施例3)>
次に、実施例3における学習処理について、図19を参照しながら説明する。図19は、実施例3における学習処理の一例を示すフローチャートである。以降では、一例として、質問文「Show the stadium name and the number of concerts in each stadium.」と、正解SQL「SELECT T2.Name, count(*) FROM concert AS T1 JOIN stadium AS T2 ON T1.Stadium_id = T2.Stadium_id GROUP BY T1.Stadium_id」と、図1及び図2に示すDBに関する検索構成情報とが入力データとして与えられたものとする。
ステップS801~ステップS804は、図17のステップS701~ステップS704とそれぞれ同様であるため、その説明を省略する。
ステップS804に続いて、SQL推定部107は、学習中のSQL推定モデルパラメータを用いて、上記のステップS804で得られたモデル入力データからSQLを推定する(ステップS805)。
そして、SQL推定モデル更新部108は、上記のステップS805で推定されたSQLと正解SQLとの損失を用いて、既知の最適化手法によりSQL推定モデルパラメータを更新する(ステップS806)。これにより、SQL推定モデルパラメータが学習される。なお、一般に、学習時の推定装置30には複数の入力データが学習用データセットとして与えられることが多い。このような場合には、ミニバッチ学習やバッチ学習、オンライン学習等によりSQL推定モデルパラメータが学習されればよい。
<評価実験>
次に、Spiderデータセットを用いて、上記の(1)に示すタスクと上記の(2)に示すタスクとの評価実験を行った結果について説明する。なお、Spiderデータセットについては、例えば、参考文献「Tao Yu, Rui Zhang, Kai Yang, Michihiro Yasunaga, Dongxu Wang, Zifan Li, James Ma, Irene Li, Qingning Yao, Shanelle Roman, Zilin Zhang, Dragomir Radev , "Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Task", arXiv:1809.08887 [cs.CL] 2 Feb 2019」等を参照されたい。
Spiderデータセットでは、(質問文,検索対象となるDBの構成情報,質問文に対する回答,この回答を得るためのSQL)で表されるデータが10181件与えられている。このうち、1034件を検証用データとし、残り9144件を学習用データとした。
・上記の(1)に示すタスクの実験結果
比較対象となるBaseの実験では、推定部102に入力されるモデル入力データを(質問文,検索対象となるDBに格納されている1つのテーブルのテーブル名,当該テーブルの1つの列名)という形式で表されるデータとした。つまり、モデル入力データには列の値が含まれないものとした。それ以外の条件は、推論時における推定装置10と同様である。
このとき、推論時における推定装置10ではF1値が0.825であり、BaseではF1値が0.791であった。したがって、DBの各列の値を考慮することで、JOINにより結合される列名以外の各列名がSQLに含まれるか否かを高い精度で推定できていることがわかる。
・上記の(2)に示すタスクの実験結果
比較対象となるBaseの実験では、推定部102に入力されるモデル入力データを(質問文,検索対象となるDBに格納されている第1のテーブルのテーブル名,当該第1のテーブルの第1の列の列名,当該DBに格納されている第2のテーブルのテーブル名,当該第2のテーブルの第2の列の列名)とした。つまり、モデル入力データには列の値が含まれないものとした。それ以外の条件は、推論時における推定装置20と同様である。
このとき、推論時における推定装置20ではF1値が0.943であり、BaseではF1値が0.844であった。したがって、DBの各列の値を考慮することで、2つの列名がSQLの中でJOINにより結合されるか否かを高い精度で推定できていることがわかる。
<ハードウェア構成>
最後に、実施例1における推定装置10、実施例2における推定装置20、及び実施例3における推定装置30のハードウェア構成について説明する。これらの推定装置10、推定装置20及び推定装置30は一般的なコンピュータ又はコンピュータシステムのハードウェア構成で実現され、例えば、図20に示すコンピュータ500のハードウェア構成により実現可能である。図20に示すコンピュータ500は、ハードウェアとして、入力装置501と、表示装置502と、外部I/F503と、通信I/F504と、プロセッサ505と、メモリ装置506とを有する。これら各ハードウェアは、それぞれがバス507を介して通信可能に接続されている。
入力装置501は、例えば、キーボードやマウス、タッチパネル等である。表示装置502は、例えば、ディスプレイ等である。なお、コンピュータ500は、入力装置501及び表示装置502のうちの少なくとも一方を有していなくてもよい。
外部I/F503は、記録媒体503a等の外部装置とのインタフェースである。なお、記録媒体503aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
通信I/F504は、コンピュータ500を通信ネットワークに接続するためのインタフェースである。プロセッサ505は、例えば、CPUやGPU等の各種演算装置である。メモリ装置506は、例えば、HDDやSSD、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の各種記憶装置である。
上述した推定装置10、推定装置20及び推定装置30は、例えば、図20に示すコンピュータ500のハードウェア構成により、上述した推定処理や学習処理を実現することができる。なお、図20に示すコンピュータ500のハードウェア構成は一例であって、コンピュータ500は、他のハードウェア構成を有していてもよい。例えば、コンピュータ500は、複数のプロセッサ505を有していてもよいし、複数のメモリ装置506を有していてもよい。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
10、20、30 推定装置
101、101A 入力加工部
102 推定部
103 比較判定部
104、104A 学習データ加工部
105 更新部
106 入力加工部
107 SQL推定部
108 SQL推定モデル更新部
111 トークナイズ部
112 汎用言語モデル部
113 変換部

Claims (6)

  1. データベースに関連する質問文と、前記データベースの構成を表す構成情報とを入力として、前記質問文と、前記データベースに格納されているテーブルのテーブル名と、前記テーブル名のテーブルに含まれる列の列名と、前記列の値とで構成される第1の入力データを作成する第1の入力加工部と、
    予め学習済みの第1のパラメータを用いて、前記質問文に対する回答を前記データベースから検索するためのSQLクエリの中で、前記第1の入力データに含まれる列名が利用されているか否かを推定する第1の推定部と、
    を有することを特徴とする推定装置。
  2. 前記質問文と、前記構成情報と、前記第1の推定部による推定結果とを入力として、前記質問文と、前記データベースに格納されている各テーブルのテーブル名と、前記テーブル名のテーブルに含まれる各列の列名と、前記列名に対する前記推定結果とで構成される第2の入力データを作成する第2の入力加工部と、
    予め学習済みの第2のパラメータを用いて、前記第2の入力データから前記SQLクエリを推定する第2の推定部と、
    を有することを特徴とする請求項1に記載の推定装置。
  3. データベースに関連する質問文と、前記データベースの構成を表す構成情報とを入力として、前記質問文と、前記データベースに格納されているテーブルのテーブル名と、前記テーブル名のテーブルに含まれる列の列名と、前記列の値とで構成される入力データを作成する入力加工部と、
    前記質問文と、前記構成情報と、前記質問文に対する回答を前記データベースから検索するためのSQLクエリとを入力として、前記質問文と、前記データベースに格納されているテーブルのテーブル名と、前記テーブル名のテーブルに含まれる列の列名と、前記SQLクエリの中で前記列名が利用されているか否かを示すラベルとで構成されるラベルデータを作成する学習データ加工部と、
    学習対象のパラメータを用いて、前記SQLクエリの中で、前記入力データに含まれる列名が利用されているか否かを推定する推定部と、
    前記推定部による推定結果と、前記推定部による推定に用いられた入力データと同一の質問文、テーブル名及び列名が含まれるラベルデータのラベルとの誤差を用いて、前記パラメータを学習するパラメータ更新部と、
    を有することを特徴とする学習装置。
  4. データベースに関連する質問文と、前記データベースの構成を表す構成情報とを入力として、前記質問文と、前記データベースに格納されているテーブルのテーブル名と、前記テーブル名のテーブルに含まれる列の列名と、前記列の値とで構成される第1の入力データを作成する第1の入力加工手順と、
    予め学習済みの第1のパラメータを用いて、前記質問文に対する回答を前記データベースから検索するためのSQLクエリの中で、前記第1の入力データに含まれる列名が利用されているか否かを推定する第1の推定手順と、
    をコンピュータが実行することを特徴とする推定方法。
  5. データベースに関連する質問文と、前記データベースの構成を表す構成情報とを入力として、前記質問文と、前記データベースに格納されているテーブルのテーブル名と、前記テーブル名のテーブルに含まれる列の列名と、前記列の値とで構成される入力データを作成する入力加工手順と、
    前記質問文と、前記構成情報と、前記質問文に対する回答を前記データベースから検索するためのSQLクエリとを入力として、前記質問文と、前記データベースに格納されているテーブルのテーブル名と、前記テーブル名のテーブルに含まれる列の列名と、前記SQLクエリの中で前記列名が利用されているか否かを示すラベルとで構成されるラベルデータを作成する学習データ加工手順と、
    学習対象のパラメータを用いて、前記SQLクエリの中で、前記入力データに含まれる列名が利用されているか否かを推定する推定手順と、
    前記推定手順での推定結果と、前記推定手順での推定に用いられた入力データと同一の質問文、テーブル名及び列名が含まれるラベルデータのラベルとの誤差を用いて、前記パラメータを学習するパラメータ更新手順と、
    をコンピュータが実行することを特徴とする学習方法。
  6. コンピュータを、請求項1若しくは2に記載の推定装置又は請求項3に記載の学習装置として機能させるプログラム。
JP2022524762A 2020-05-20 2020-05-20 推定装置、学習装置、推定方法、学習方法及びプログラム Active JP7364065B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/019953 WO2021234860A1 (ja) 2020-05-20 2020-05-20 推定装置、学習装置、推定方法、学習方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2021234860A1 JPWO2021234860A1 (ja) 2021-11-25
JP7364065B2 true JP7364065B2 (ja) 2023-10-18

Family

ID=78708250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022524762A Active JP7364065B2 (ja) 2020-05-20 2020-05-20 推定装置、学習装置、推定方法、学習方法及びプログラム

Country Status (3)

Country Link
US (1) US20230195723A1 (ja)
JP (1) JP7364065B2 (ja)
WO (1) WO2021234860A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637765A (zh) * 2022-04-26 2022-06-17 阿里巴巴达摩院(杭州)科技有限公司 基于表格数据的人机交互方法、装置及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018163490A (ja) 2017-03-24 2018-10-18 三菱電機インフォメーションネットワーク株式会社 アクセス制御装置及びアクセス制御プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL1005053C2 (nl) * 1997-01-21 1998-07-22 Uitgeverij En Boekhandel W J T Apparaat voor zelfstudie.
US7603330B2 (en) * 2006-02-01 2009-10-13 Honda Motor Co., Ltd. Meta learning for question classification
US8738617B2 (en) * 2010-09-28 2014-05-27 International Business Machines Corporation Providing answers to questions using multiple models to score candidate answers
US9336485B2 (en) * 2013-06-11 2016-05-10 International Business Machines Corporation Determining answers in a question/answer system when answer is not contained in corpus
US9471668B1 (en) * 2016-01-21 2016-10-18 International Business Machines Corporation Question-answering system
US10127274B2 (en) * 2016-02-08 2018-11-13 Taiger Spain Sl System and method for querying questions and answers
CN106649760A (zh) * 2016-12-27 2017-05-10 北京百度网讯科技有限公司 基于深度问答的提问型搜索词搜索方法及装置
US10810215B2 (en) * 2017-12-15 2020-10-20 International Business Machines Corporation Supporting evidence retrieval for complex answers
US11016966B2 (en) * 2018-06-26 2021-05-25 Adobe Inc. Semantic analysis-based query result retrieval for natural language procedural queries
EP3859558A4 (en) * 2018-09-26 2022-06-22 Hangzhou Dana Technology Inc. ANSWER MARKING PROCEDURE FOR HEADPHONES, DEVICE, ELECTRONIC DEVICE AND STORAGE MEDIA
US11966389B2 (en) * 2019-02-13 2024-04-23 International Business Machines Corporation Natural language to structured query generation via paraphrasing
US20210157881A1 (en) * 2019-11-22 2021-05-27 International Business Machines Corporation Object oriented self-discovered cognitive chatbot
US11429792B2 (en) * 2020-05-07 2022-08-30 Microsoft Technology Licensing, Llc Creating and interacting with data records having semantic vectors and natural language expressions produced by a machine-trained model
US11934403B2 (en) * 2020-05-18 2024-03-19 Salesforce, Inc. Generating training data for natural language search systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018163490A (ja) 2017-03-24 2018-10-18 三菱電機インフォメーションネットワーク株式会社 アクセス制御装置及びアクセス制御プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Rui Zhang et al.,Editing-Based SQL Query Generation for Cross-Domain Context-Dependent Questions,arXiv,米国,Cornell University,2019年09月10日,Internet<URL:https://arxiv.org/abs/1909.00786v2>
Tianze Shi et al.,IncSQL: Training Incremental Text-to-SQL Parsers with Non-Deterministic Oracles,arXiv,米国,Cornell University,2018年10月01日,Internet<URL:https://arxiv.org/abs/1809.05054v2>

Also Published As

Publication number Publication date
JPWO2021234860A1 (ja) 2021-11-25
WO2021234860A1 (ja) 2021-11-25
US20230195723A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
KR101950985B1 (ko) 휴먼 인스파이어드된 간단한 질문 응답(hisqa)을 위한 시스템 및 방법
US11972365B2 (en) Question responding apparatus, question responding method and program
CN109947919B (zh) 用于生成文本匹配模型的方法和装置
JP5377889B2 (ja) 言語処理装置およびプログラム
US8831944B2 (en) System and method for tightly coupling automatic speech recognition and search
JP6611053B2 (ja) 主題推定システム、主題推定方法およびプログラム
WO2020004136A1 (ja) 質問応答装置及びコンピュータプログラム
CN113326267B (zh) 基于倒排索引和神经网络算法的地址匹配方法
JP2019082931A (ja) 検索装置、類似度算出方法、およびプログラム
CN110678882A (zh) 使用机器学习从电子文档选择回答跨距
CN114450681A (zh) 文档间注意力机制
JP6973255B2 (ja) 単語ベクトル変更装置、方法、及びプログラム
Park et al. Word RNN as a baseline for sentence completion
JP7364065B2 (ja) 推定装置、学習装置、推定方法、学習方法及びプログラム
US20230034414A1 (en) Dialogue processing apparatus, learning apparatus, dialogue processing method, learning method and program
US20220222442A1 (en) Parameter learning apparatus, parameter learning method, and computer readable recording medium
CN114490926A (zh) 一种相似问题的确定方法、装置、存储介质及终端
Lee et al. Interactive spoken content retrieval by deep reinforcement learning
JP7044856B2 (ja) 増強された一貫性正規化を利用した音声認識モデル学習方法およびシステム
CN109472023B (zh) 一种基于实体及文本联合嵌入的实体关联度衡量方法、系统及存储介质
JP6698061B2 (ja) 単語ベクトル変換装置、方法、及びプログラム
CN109710945B (zh) 基于数据生成文本方法、装置、计算机设备和存储介质
US20230244934A1 (en) Augmenting machine learning language models using search engine results
CN116186219A (zh) 一种人机对话交互方法方法、系统及存储介质
KR20230174503A (ko) 신경망 기반 질의 자동 생성 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230918

R150 Certificate of patent or registration of utility model

Ref document number: 7364065

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150