(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-03
(45)【発行日】2024-09-11
(54)【発明の名称】データ拡張システム、データ拡張方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240904BHJP
G06N 3/08 20230101ALI20240904BHJP
G06F 40/295 20200101ALI20240904BHJP
【FI】
G06N20/00
G06N3/08
G06F40/295
(21)【出願番号】P 2023091581
(22)【出願日】2023-06-02
【審査請求日】2023-06-02
(32)【優先日】2022-06-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】趙 辰
(72)【発明者】
【氏名】中山 祐輝
(72)【発明者】
【氏名】村上 浩司
【審査官】和田 財太
(56)【参考文献】
【文献】国際公開第2021/038886(WO,A1)
【文献】特開2020-140676(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/08
G06F 40/00
(57)【特許請求の範囲】
【請求項1】
過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリを取得する取得部と、
前記第1検索クエリに基づいて、前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデル
であって、潜在変数が従う確率密度関数が標準正規分布に従うことによって、確率的又はランダムに出力が決まるVAE(Variational Auto Encoder)モデルである前記第1モデルの学習を実行する第1学習部と、
学習済みの前記
VAEモデルにより確率的又はランダムに出力された前記第2検索クエリに基づいて、データ拡張を実行するデータ拡張部と、
を含
み、
前記VAEモデルは、
前記学習時に入力される前記第1検索クエリから、正規分布と仮定されたLSTM(Long Short Term Memory)のセル状態の配列へのマッピングを学習するエンコーダと、
前記配列内の前記セル状態の平均値から、前記学習時に出力される第3検索クエリへのマッピングを学習するデコーダと、
を含み、
前記VAEモデルは、前記正規分布からサンプリングした前記配列の平均値を開始セル状態にすることによって、前記デコーダで前記第2検索クエリを生成し、
前記
第1学習部は、前記第1検索クエリが前記
VAEモデルに入力された場合に、
前記平均値から計算される埋め込み表現が、前記第3検索クエリと同じ前記第1検索クエリの埋め込み表現に近づくように、前記平均値から前記第3検索クエリへのマッピングを前記デコーダが学習するように、前記学習を実行する、
データ拡張システム。
【請求項2】
過去に実行された検索で実際に入力された複数の第4検索クエリ
であって、第1固有表現を含む前記第4検索クエリと、前記第1固有表現を含まない前記第4検索クエリと前記第1固有表現以外の他の固有表現を含む前記第4検索クエリとの少なくとも一方と、を含む前記複数の第4検索クエリの各々と
、前記第1固有表現に関する辞書データベースと、を比較する比較部
と、
前記辞書データベースとマッチした前記第4検索クエリを、第1検索クエリとして取得する
取得部と、
前記第1検索クエリに基づいて、前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデルの学習を実行する第1学習部と、
学習済みの前記第1モデルにより出力された前記第2検索クエリに基づいて、データ拡張を実行するデータ拡張部と、
を含むデータ拡張システム。
【請求項3】
過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリであって、前記第1固有表現に関するタグがそれぞれに関連付けられた複数の文字を含
む前記第1検索クエリを取得する取得部と、
前記第1検索クエリに含まれる前記複数の文字の各々に関連付けられた前記タグに基づいて、
前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデルの学習を実行する第1学習部と、
学習済みの前記第1モデルにより出力された前記第2検索クエリに基づいて、データ拡張を実行するデータ拡張部と、
を含むデータ拡張システム。
【請求項4】
過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリであって、前記第1固有表現に関する第1属性が関連付けられ
た前記第1検索クエリを取得する取得部と、
前記第1検索クエリと、前記第1属性と、に基づいて、
前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデルの学習を実行する第1学習部と、
学習済みの前記第1モデルにより出力された前記第2検索クエリに基づいて、データ拡張を実行するデータ拡張部と、
を含むデータ拡張システム。
【請求項5】
前記データ拡張システムは、前記第2検索クエリに基づいて、所定の条件が満たされるか否かを判定する判定部を更に含み、
前記データ拡張部は、前記所定の条件が満たされると判定された場合に、前記データ拡張を実行する、
請求項1~4の何れかに記載のデータ拡張システム。
【請求項6】
前記判定部は、前記第2検索クエリに含まれる前記第2固有表現が所定の文字数以上であるか否かを判定することによって、前記所定の条件が満たされるか否かを判定する、
請求項
5に記載のデータ拡張システム。
【請求項7】
前記判定部は、前記第2検索クエリに含まれる前記第2固有表現の文字の種類に応じた前記所定の条件が満たされるか否かを判定する、
請求項
5に記載のデータ拡張システム。
【請求項8】
過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリを取得する取得部と、
前記第1検索クエリに基づいて、前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデルの学習を実行する第1学習部と、
学習済みの前記第1モデルにより出力された前記第2検索クエリに基づいて、
訓練データが学習済みの第2モデルが作成された後にユーザが入力した第5検索クエリに含まれる第5固有表現を認識する
前記第2モデルの
前記訓練データを拡張することによって、
データ拡張を実行するデータ拡張部と、
を含むデータ拡張システム。
【請求項9】
前記データ拡張システムは、前記訓練データが学習済みの前記第2モデルに基づいて、前記第2固有表現に関する第2属性を推定する属性推定部を更に含み、
前記データ拡張部は、前記第2検索クエリと、前記第2属性と、に基づいて、前記訓練データを拡張する、
請求項
8に記載のデータ拡張システム。
【請求項10】
前記訓練データは、前記第1検索クエリと、前記第1固有表現に関する第1属性と、を含み、
前記属性推定部は、前記第1検索クエリ及び前記第1属性を含む前記訓練データが学習済みの前記第2モデルに基づいて、前記第2属性を推定する、
請求項
9に記載のデータ拡張システム。
【請求項11】
前記データ拡張システムは、前記データ拡張により出力された新たな訓練データに基づいて、学習済みの前記第2モデルの追加学習を実行する追加学習部を更に含む、
請求項
9に記載のデータ拡張システム。
【請求項12】
前記データ拡張部は、前記第2検索クエリに基づいて、前記第1モデルとは異なる第3モデルの訓練データを拡張することによって、前記データ拡張を実行する、
請求項1~4の何れかに記載のデータ拡張システム。
【請求項13】
前記取得部は、過去における特定の期間に実行された前記検索で実際に入力された前記第1検索クエリを取得する、
請求項1~4の何れかに記載のデータ拡張システム。
【請求項14】
前記検索は、電子商取引サービスにおける商品の検索であり、
前記第1検索クエリは、前記電子商取引サービスで実際に入力された検索クエリであり、
前記第2検索クエリは、仮想的な商品に関する前記第2固有表現を含む、
請求項1~4の何れかに記載のデータ拡張システム。
【請求項15】
過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリを取得し、
前記第1検索クエリに基づいて、前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデル
であって、潜在変数が従う確率密度関数が標準正規分布に従うことによって、確率的又はランダムに出力が決まるVAE(Variational Auto Encoder)モデルである前記第1モデルの学習を実行し、
学習済みの前記
VAEモデルにより確率的又はランダムに出力された前記第2検索クエリに基づいて、データ拡張を実行する、
データ拡張方法
であって、
前記VAEモデルは、
前記学習時に入力される前記第1検索クエリから、正規分布と仮定されたLSTM(Long Short Term Memory)のセル状態の配列へのマッピングを学習するエンコーダと、
前記配列内の前記セル状態の平均値から、前記学習時に出力される第3検索クエリへのマッピングを学習するデコーダと、
を含み、
前記VAEモデルは、前記正規分布からサンプリングした前記配列の平均値を開始セル状態にすることによって、前記デコーダで前記第2検索クエリを生成し、
前記データ拡張方法は、前記第1検索クエリが前記VAEモデルに入力された場合に、前記平均値から計算される埋め込み表現が、前記第3検索クエリと同じ前記第1検索クエリの埋め込み表現に近づくように、前記平均値から前記第3検索クエリへのマッピングを前記デコーダが学習するように、前記学習を実行する、
データ拡張方法。
【請求項16】
過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリを取得する取得部、
前記第1検索クエリに基づいて、前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデル
であって、潜在変数が従う確率密度関数が標準正規分布に従うことによって、確率的又はランダムに出力が決まるVAE(Variational Auto Encoder)モデルである前記第1モデルの学習を実行する第1学習部、
学習済みの前記
VAEモデルにより確率的又はランダムに出力された前記第2検索クエリに基づいて、データ拡張を実行するデータ拡張部、
としてコンピュータを機能させ
、
前記VAEモデルは、
前記学習時に入力される前記第1検索クエリから、正規分布と仮定されたLSTM(Long Short Term Memory)のセル状態の配列へのマッピングを学習するエンコーダと、
前記配列内の前記セル状態の平均値から、前記学習時に出力される第3検索クエリへのマッピングを学習するデコーダと、
を含み、
前記VAEモデルは、前記正規分布からサンプリングした前記配列の平均値を開始セル状態にすることによって、前記デコーダで前記第2検索クエリを生成し、
前記第1学習部は、前記第1検索クエリが前記VAEモデルに入力された場合に、前記平均値から計算される埋め込み表現が、前記第3検索クエリと同じ前記第1検索クエリの埋め込み表現に近づくように、前記平均値から前記第3検索クエリへのマッピングを前記デコーダが学習するように、前記学習を実行する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ拡張システム、データ拡張方法、及びプログラムに関する。
【背景技術】
【0002】
従来、自然言語処理の分野では、文字列に含まれる固有表現を認識(抽出)する固有表現認識タスク(固有表現抽出タスク)が知られている。例えば、特許文献1には、辞書データベースに定義することが困難な固有表現を認識するために、機械学習の手法を利用して、種々の固有表現を含む訓練データを、固有表現を認識するモデルに学習させることが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年では、検索クエリに含まれる固有表現を認識することも検討されている。しかしながら、特許文献1を利用して検索クエリに含まれる固有表現を認識しようとすると、大量の訓練データを人手で用意する必要があるので、非常に手間がかかる。この点は、訓練データを用意する目的以外の他の目的で、固有表現を含む検索クエリを用意する場合も同様である。このため、従来の技術では、固有表現を含む検索クエリを用意する手間がかかっていた。
【0005】
本開示の目的の1つは、固有表現を含む検索クエリを用意する手間を省くことである。
【課題を解決するための手段】
【0006】
本開示に係るデータ拡張システムは、過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリを取得する取得部と、前記第1検索クエリに基づいて、前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデルの学習を実行する第1学習部と、学習済みの前記第1モデルにより出力された前記第2検索クエリに基づいて、データ拡張を実行するデータ拡張部と、を含む。
【図面の簡単な説明】
【0007】
【
図1】データ拡張システムの全体構成の一例を示す図である。
【
図2】ユーザが検索サービスを利用する様子の一例を示す図である。
【
図3】VAEモデルの学習フェーズの一例を示す図である。
【
図4】学習済みのVAEモデルの汎化フェーズの一例を示す図である。
【
図5】データ拡張システムで実現される機能の一例を示す図である。
【
図6】検索対象データベースの一例を示す図である。
【
図7】検索履歴データベースの一例を示す図である。
【
図9】NERモデルの訓練データベースの一例を示す図である。
【
図10】VAEモデルの訓練データベースの一例を示す図である。
【
図11】第1検索クエリに含まれる個々の文字に関連付けられたタグの一例を示す図である。
【
図12】データ拡張システムで実行される処理の一例を示すフロー図である。
【発明を実施するための形態】
【0008】
[1.データ拡張システムの全体構成]
本開示に係るデータ拡張システムの実施形態の一例を説明する。本実施形態では、データ拡張システムを検索サービスに利用する場合を例に挙げる。検索サービスは、ユーザが入力した検索クエリに基づいて、ウェブページを検索するサービスである。データ拡張システム1は、検索サービス以外の他の任意の目的で利用可能である。他の目的の一例は、後述の変形例で説明する。
【0009】
図1は、データ拡張システムの全体構成の一例を示す図である。例えば、データ拡張システム1は、検索サーバ10、ユーザ端末20、及び学習端末30を含む。検索サーバ10、ユーザ端末20、及び学習端末30の各々は、インターネット又はLAN等のネットワークNに接続可能である。
【0010】
検索サーバ10は、検索を実行するサーバコンピュータである。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、フラッシュメモリ等の不揮発性メモリと、を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0011】
ユーザ端末20は、検索サービスを利用するユーザのコンピュータである。例えば、ユーザ端末20は、パーソナルコンピュータ、スマートフォン、タブレット端末、又はウェアラブル端末である。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様である。操作部24は、タッチパネル又はマウス等の入力デバイスである。表示部25は、液晶ディスプレイ又は有機ELディスプレイである。
【0012】
学習端末30は、データ拡張を実行するコンピュータである。データ拡張とは、予め用意された第1データに基づいて、第1データとは異なる第2データを新たに生成することである。第2データは、第1データと似た内容を含む。例えば、第2データは、第1データの少なくとも一部が変更される。後述の第1検索クエリは、第1データに相当する。後述の第2検索クエリは、第2データに相当する。本実施形態では、機械学習モデルを構築するための訓練データに関するデータ拡張を例に挙げる。
【0013】
例えば、学習端末30は、パーソナルコンピュータ、サーバコンピュータ、又はタブレット端末である。制御部31、記憶部32、通信部33、操作部34、及び表示部35の物理的構成は、それぞれ制御部11、記憶部12、通信部13、操作部24、及び表示部25と同様である。
【0014】
なお、記憶部12,22,32に記憶されるプログラムは、ネットワークNを介して供給されてもよい。また、各コンピュータには、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)と、外部機器とデータの入出力をするための入出力部(例えば、USBポート)と、の少なくとも一方が含まれてもよい。例えば、情報記憶媒体に記憶されたプログラムが、読取部及び入出力部の少なくとも一方を介して供給されてもよい。
【0015】
また、データ拡張システム1は、少なくとも1つのコンピュータを含めばよく、
図1の例に限られない。例えば、データ拡張システム1は、検索サーバ10及びユーザ端末20を含まずに、学習端末30だけを含んでもよい。この場合、検索サーバ10及びユーザ端末20は、データ拡張システム1の外部に存在する。例えば、データ拡張システム1は、学習端末30と、検索サーバ10及びユーザ端末20とは異なる他のコンピュータと、を含んでもよい。
【0016】
[2.データ拡張システムの概要]
図2は、ユーザが検索サービスを利用する様子の一例を示す図である。例えば、ユーザが検索サーバ10にアクセスすると、検索サービスのトップページP1が表示部25に表示される。ユーザは、トップページP1の入力フォームF10に、検索クエリを入力する。ユーザは、任意の文字列を、検索クエリとして入力できる。ユーザは、単語を分割するためのスペースを検索クエリに含めることもできる。
【0017】
例えば、ユーザがボタンB11を選択すると、検索サーバ10は、ユーザが入力した検索クエリに基づいて、ウェブページの検索を実行する。検索自体は、公知の種々の検索エンジンを利用可能である。検索サーバ10は、検索クエリにヒットした複数のウェブページを、検索結果として取得してユーザ端末20に送信する。ユーザ端末20が検索サーバ10から検索結果を受信すると、検索結果ページP2が表示部25に表示される。本実施形態では、英語の検索クエリを例に挙げるが、データ拡張システム1は、日本語又は中国語といった他の任意の言語に対応可能である。
【0018】
図2の例では、「white wind engineer boots」といった検索クエリが入力されている。「white wind」は、本実施形態の中の世界だけで存在するアパレルブランドの名前とする。「engineer boots」は、靴の種類である。ユーザは、「white wind」社が販売する「engineer boots」のウェブページを検索したい、といった意図で、
図2の検索クエリを入力したと考えられる。
【0019】
しかしながら、検索クエリに含まれる単語には、種々の意味が存在する。このため、検索サーバ10が、検索クエリに含まれる文字列だけを利用して検索を実行しても、ユーザが意図しない検索結果ページP2が表示される可能性がある。例えば、単語「white」は、色の名前でもある。「engineer」といった他のアパレルブランドが存在したとすると、単語「engineer」は、他のアパレルブランドの名前でもある。これらの単語の意味により、ユーザが意図しないウェブページが検索される可能性がある。
【0020】
そこで、検索サーバ10は、機械学習の手法を利用したNER(Named Entity Recognition)モデルMnerを利用して、検索クエリに含まれる固有表現と、この固有表現の属性と、を認識する。固有表現自体は、固有表現認識タスク(固有表現抽出タスク)において認識の対象となる種々の表現であってよい。例えば、固有表現は、固有名詞、色、サイズ、素材、日付、数量、又は金額といった表現である。
【0021】
属性は、固有表現の分類である。固有表現の種類によっては、属性は、カテゴリ又はジャンルと呼ばれることもある。例えば、属性は、「Brand」、「Color」、「Size」、又は「Material」といったように、何らかの観点で固有表現を分類可能な情報であればよい。固有表現は、少なくとも1つの属性を有する。固有表現は、属性の具体的な値である属性値ということもできる。
【0022】
なお、NERモデルMnerで利用する機械学習の手法自体は、固有表現認識タスクで利用されている種々の手法を利用可能である。例えば、機械学習の手法は、教師有り学習、半教師有り学習、又は教師無し学習の何れであってもよい。例えば、NERモデルMnerは、ニューラルネットワーク、BERT、CharacterBERT、Transformer、又はその他の手法を利用したモデルであってもよい。
【0023】
例えば、その他の手法としては、Sparse Linear OVR(one-versus-reset)モデル(例えば、DiSMEC、ProXML、PPDSparse等)、Partitioningモデル(例えば、eXtreme-Text、Bonsai、NAPKINXC、Parabel等)、Embeddingモデル(グラフベースモデルとも呼ばれる。例えば、SLICE、AnnexML等)、又はTransformerベースのモデル(例えば、XR-Transformer、LightXML等)であってもよい。
【0024】
例えば、検索サーバ10は、NERモデルMnerに対し、検索クエリを入力する。NERモデルMnerは、当該入力された検索クエリに基づいて、検索クエリの特徴量(例えば、埋め込み表現を示す多次元ベクトル)を計算する。NERモデルMnerは、当該計算された特徴量に基づいて、検索クエリに含まれる固有表現と、この固有表現の属性と、を出力する。これらの一連の処理自体は、公知のNERモデルMnerの処理を利用可能である。
【0025】
図2の例では、検索クエリから、固有表現「white wind」と、この固有表現の属性「Brand」と、が認識される。検索対象となるウェブページに、固有表現及び属性のペアがインデックスとして関連付けられていれば、検索クエリから認識した固有表現及び属性のペアとマッチするウェブページを検索することによって、ユーザの意図した検索結果を検索結果ページP2に表示できる。
【0026】
もし仮に、検索クエリ内の「white」が固有表現として認識され、固有表現「white」の属性「color」が認識された場合、「white wind」社とは関係のない白い色の靴が検索結果ページP2に表示される可能性がある。この点、NERモデルMnerは、検索クエリ内の単語の並びによって、このような認識をせずに、固有表現「white wind」と、この固有表現の属性「Brand」と、を認識できるようになっている。
【0027】
例えば、NERモデルMnerには、訓練用の検索クエリと、正解となる固有表現及び属性と、のペアである訓練データが学習される。NERモデルMnerの精度を高めようとすると、大量の訓練データを用意する必要があるので、非常に手間がかかる。そこで、データ拡張システム1は、予め用意された訓練データに基づいて、新たな訓練データを生成することによって、データ拡張を実現する。
【0028】
本実施形態では、VAE(Variational Auto Encoder)を利用して、データ拡張を実現する場合を例に挙げる。VAEは、確率モデルのパラメータを最尤推定する手法の1つであるEM(expectation-maximization)アルゴリズムと、潜在変数を伴うモデルにおける解法の1つである変分ベイズと、を融合させた手法である。VAE自体は、種々の手法を適用可能であり、例えば、Kingmaらにより提案された手法(Auto-Encoding Variational Bayes, https://arxiv.org/abs/1312.6114)であってもよいし、この手法から派生した他の手法であってもよい。
【0029】
更に、本実施形態では、VAEの一例として、LSTM(Long Short Term Memory)に基づくVAEを説明する。LSTMは、長期的な依存関係を学習可能なニューラルネットワークの一種である。例えば、LSTMは、記憶セル、入力ゲート、出力ゲート、及び忘却ゲートを含む。記憶セルは、ある期間において値を記憶するセルである。入力ゲート、出力ゲート、及び忘却ゲートは、記憶セルに入力される情報と、記憶セルから出力される情報と、を制御する。以降、VAEを利用したデータ拡張のためのモデルを、VAEモデルという。
【0030】
図3は、VAEモデルの学習フェーズの一例を示す図である。本実施形態では、BiLSTMを利用したVAEモデルMvaeを例に挙げる。例えば、VAEモデルMvaeは、エンコーダfencと、デコーダfdecと、を含む。例えば、エンコーダfenc及びデコーダfdecの各々は、少なくとも1つの隠れ層を含む。
図3の例では、隠れ層を2つとしているが、隠れ層の数は、1つ又は3つ以上であってもよい。隠れ層は、任意のサイズであってよく、例えば、1024であってもよいし、1024よりも大きくてもよいし小さくてもよい。
【0031】
以降の説明では、検索クエリを区別する必要がある場合には、下記のように、第1検索クエリ~第5検索クエリといった名前によって区別する。第1検索クエリ~第5検索クエリを特に区別する必要がない場合には、単に検索クエリという。また、第1検索クエリ~第5検索クエリの各々に含まれる固有表現及び属性を、それぞれ第1固有表現~第5固有表現及び第1属性~第5属性という。第1固有表現~第5固有表現を特に区別する必要がない場合には、単に固有表現という。第1属性~第5属性を特に区別する必要がない場合には、単に属性という。
【0032】
第1検索クエリ:VAEモデルMvaeの学習時に、VAEモデルMvaeに入力される検索クエリ。
第2検索クエリ:学習済みのVAEモデルMvaeから出力される検索クエリ。
第3検索クエリ:VAEモデルMvaeの学習時に、VAEモデルMvaeから出力される検索クエリ。本実施形態では、第3検索クエリは、第1検索クエリと同じ。
第4検索クエリ:NERモデルMner及びVAEモデルMvaeの学習が実行される前に、検索サービスで実際に入力された検索クエリ。本実施形態では、第4検索クエリは、第1検索クエリになることがある。
第5検索クエリ:学習済みのNERモデルMnerに入力される検索クエリ。第5検索クエリは、将来的に、第1検索クエリになることがある。
【0033】
エンコーダfencは、学習時に入力される第1検索クエリから、正規分布と仮定されたLSTMのセル状態の配列へのマッピングを学習する。
図3では、第1検索クエリのうち、第1固有表現以外の他の部分を省略しているが、当該他の部分もエンコーダfencに入力されてもよいし、第1検索クエリのうち、当該他の部分が除去されたうえでエンコーダfencに入力されてもよい。即ち、第1検索クエリのうちの第1固有表現だけがエンコーダfencに入力されてもよい。
【0034】
例えば、VAEモデルMvaeに対し、第1検索クエリが入力されると、第1検索クエリの埋め込み表現が計算される。第1検索クエリの埋め込み表現は、エンコーダfencに入力される。エンコーダfencは、当該入力された埋め込み表現から配列(
図3では、パラメータμ,σの文字を囲うボックス。nは、配列数を示す任意の自然数である。)へのマッピングを学習する。その際に、VAEモデルMvae全体にわたる多様性を確保するために、reparameterization tricksと呼ばれる置き換えが実行されてもよい。この置き換えの詳細は、先述したKingmaらの論文を参照されたい。
【0035】
デコーダfdecは、配列内のセル状態の平均値から、学習時に出力される第3検索クエリへのマッピングを学習する。例えば、デコーダfdecは、最終的な出力である第3検索クエリの埋め込み表現を計算するために、配列内のセル状態を取得する。本実施形態では、第3検索クエリが第1検索クエリと同じである場合を説明する。このため、デコーダfdecは、配列内のセル状態の平均値から計算される埋め込み表現が、第3検索クエリと同じ第1検索クエリの埋め込み表現に近づくように、平均値から第3検索クエリへのマッピングを学習する。
【0036】
なお、エンコーダfencによる学習と、デコーダfdecによる学習と、を実行する手法自体は、VAEで利用されている種々の手法を利用可能である。パラメータμ,σの配列数も任意の数であってよい。本実施形態では、パラメータμ,σの分布N(μ,σ)が正規分布N(0,1)に従う場合を説明するが、分布N(μ,σ)は、正規分布N(0,1)以外の他の分布に従ってもよい。VAEモデルMvaeの学習が繰り返されて学習フェーズが完了すると、学習済みのVAEモデルMvaeの作成が完了し、汎化フェーズに移行する。汎化フェーズでは、学習済みのVAEモデルMvaeを利用して第2検索クエリが生成される。
【0037】
図4は、学習済みのVAEモデルMvaeの汎化フェーズの一例を示す図である。本実施形態の汎化フェーズでは、エンコーダfencは関与しないので、
図4ではエンコーダfencを省略する。VAEモデルMvaeは、正規分布からサンプリングした配列(
図4では、分布N
1(μ,σ
2)~N
n(μ,σ
2)を囲うボックス)の平均値を開始セル状態にすることによって、デコーダfdecで第2検索クエリを生成する。例えば、この平均値は、乱数に基づいて計算される。即ち、第2検索クエリを生成する処理を実行するたびに、内部的に計算される平均値は異なる値となる。このため、学習済みのVAEモデルMvaeから出力される第2検索クエリは、確率的又はランダムに変わる。
【0038】
例えば、第2検索クエリは、第1検索クエリの一部が他の文字に置き換わる。第1検索クエリのどの文字がどの文字に置き換わるかは、デコーダfdecの処理によって、確率的又はランダムに変わる。置き換わる文字同士は、ベクトル空間上の埋め込み表現同士の距離が近くてもよい(意味的に似ている文字に置き換わってもよい)し、埋め込み表現同士の距離が近くなくてもよい(意味的に似ていない文字に置き換わってもよい)。第2検索クエリは、第2固有表現だけから構成されてもよいし、第2固有表現と、他の表現と、を含んでもよい。
【0039】
更に、第1検索クエリ内の単語の一部の文字が他の文字に置き換わり、現実には存在しない架空の単語を含む第2検索クエリが生成されてもよい。例えば、第1検索クエリ内の単語「white」の「h」と「t」がそれぞれ「k」と「j」に置き換わり、現実には存在しない架空の単語「wkije」を含む第2検索クエリが生成されてもよい。アパレルブランドの名前等の固有名詞は、造語が利用されることがあるので、このような架空の単語だったとしても、データ拡張に有用なことがある。
【0040】
本実施形態では、第2検索クエリは、原則として、過去の検索で実際に入力された第1検索クエリではなく、実在しない仮想的な検索クエリになる。例えば、第2検索クエリは、仮想的なアパレルブランド、仮想的な色、仮想的なサイズ、又は仮想的な素材といった固有表現を含む。ただし、第2検索クエリが、偶然、過去の検索で入力された検索クエリと同じになってもよい。また、第2検索クエリが、偶然、実在する検索クエリになってもよい。
【0041】
図4の例では、第1検索クエリ「white wind」の埋め込み表現と似た第2検索クエリ「blue wind」が、VAEモデルMvaeから出力される。第1検索クエリ「great big spirit」の埋め込み表現似た第2検索クエリ「good bitter spirit」が、VAEモデルMvaeから出力される。第1検索クエリ「XYZ rabo」の埋め込み表現と似た第2検索クエリ「XYZ institute」が、VAEモデルMvaeから出力される。これらの第2検索クエリは、何れも実在しない架空のアパレルブランドであるものとする。
【0042】
図4では、第2検索クエリの一例として、架空のアパレルブランドが示されているが、アパレルブランド以外の他の第1固有表現が第1検索クエリに含まれていれば、VAEモデルMvaeは、他の第1固有表現と似た第2固有表現を含む第2検索クエリを生成できる。例えば、家電メーカー、レストラン、人名、又は地名を含む第1検索クエリをVAEモデルMvaeに学習させていれば、架空の家電メーカー、レストラン、人名、又は地名を示す第2検索クエリが生成される。例えば、色、サイズ、又は素材の名前を含む第1検索クエリをVAEモデルMvaeに学習させていれば、架空の色、サイズ、又は素材を示す第2検索クエリが生成される。
【0043】
例えば、VAEモデルMvaeは、互いに異なる内容の第2検索クエリを次々と出力する。VAEモデルMvaeは、配列内のパラメータμ,σによって、エンコーダfencが関与しなくても、新たな第2検索クエリを次々と出力できる。第2検索クエリは、確率的又はランダムに出力されるので、ある第2検索クエリAの内容と、他の第2検索クエリBの内容と、は微妙に異なる。例えば、第2検索クエリAと、第2検索クエリBと、は一部又は全部が異なる。ただし、VAEモデルMvaeから出力された第2検索クエリの中には、偶然、互いに同じものが含まれてもよい。
【0044】
本実施形態では、VAEモデルMvaeが出力した第2検索クエリに基づいて、NERモデルMnerの訓練データが生成される。例えば、第2検索クエリが、少ない訓練データでひとまず作成したNERモデルMnerに入力され、第2固有表現及び第2属性が推定される。NERモデルMnerは、あまり精度が高くはないが、NERモデルMnerに学習させた第1検索クエリと似た第2検索クエリの第2固有表現及び第2属性については、ある程度の精度で推定できるものとする。
【0045】
例えば、第2検索クエリと、第2固有表現及び第2属性と、のペアが、NERモデルMner用の新たな訓練データとして生成されることによって、データ拡張が実行される。新たな訓練データに基づいて、ひとまず作成されたNERモデルMnerの追加学習が実行される。これにより、NERモデルMnerの訓練データを準備する手間を省くことができる。以降、本実施形態の詳細を説明する。
【0046】
[3.データ拡張システムで実現される機能]
図5は、データ拡張システム1で実現される機能の一例を示す図である。
【0047】
[3-1.検索サーバで実現される機能]
検索サーバ10は、データ記憶部100及び検索部101を含む。データ記憶部100は、記憶部12により実現される。検索部101は、制御部11により実現される。
【0048】
[データ記憶部]
データ記憶部100は、検索の実行に必要なデータを記憶する。例えば、データ記憶部100は、検索対象データベースDB1及び検索履歴データベースDB2を記憶する。
【0049】
図6は、検索対象データベースDB1の一例を示す図である。検索対象データベースDB1は、検索対象に関するデータが格納されたデータベースである。本実施形態では、ウェブページが検索対象に相当する。このため、ウェブページについて説明している箇所は、検索対象と読み替えることができる。検索対象は、検索の対象となるものであればよく、ウェブページに限られない。例えば、変形例3のように、商品が検索対象に相当してもよい。他にも例えば、動画又は楽曲等のコンテンツが検索対象に相当してもよい。
【0050】
例えば、検索対象データベースDB1には、ウェブページのURLと、ウェブページのインデックスと、が格納される。本実施形態では、インデックスとして、ウェブページの属性と、ウェブページに含まれる固有表現と、が検索対象データベースDB1に格納される。以降、この属性を、ウェブページ属性という。この固有表現を、ウェブページ固有表現という。
【0051】
本実施形態では、ウェブページの作成者が、インデックスとして利用するウェブページ属性及びウェブページ固有表現を指定する場合を説明するが、ウェブページ属性及びウェブページ固有表現は、辞書とのマッチング又は機械学習の手法を利用して、ウェブページの中から自動的に抽出されてもよい。検索対象データベースDB1には、ウェブページから抽出されたキーワード等の他のインデックスが格納されてもよい。
【0052】
図7は、検索履歴データベースDB2の一例を示す図である。検索履歴データベースDB2は、過去に実行された検索に関するデータが格納されたデータベースである。例えば、検索履歴データベースDB2には、ユーザが実際に入力した第4検索クエリ、検索結果ページP2から選択されたウェブページのURL、及び検索日時が格納される。検索日時は、検索が実行された日時である。検索履歴データベースDB2には、過去の全期間における検索のデータが格納されてもよいし、一部の期間における検索のデータが格納されてもよい。
【0053】
例えば、データ記憶部100は、学習済みのNERモデルMnerを記憶する。NERモデルMnerは、学習によって調整されるパラメータ部分と、埋め込み表現の計算等の内部処理の手順が定義されたプログラム部分と、を含むので、データ記憶部100は、NERモデルMnerのパラメータ部分のデータと、NERモデルMnerのプログラム部分のデータと、を記憶する。これらのデータは、1つのデータとしてまとめられていてもよい。
【0054】
本実施形態では、NERモデルMnerの学習が学習端末30によって実行されるので、検索サーバ10は、学習端末30から、学習済みのNERモデルMnerを受信し、当該受信した学習済みのNERモデルMnerを、データ記憶部100に記録する。NERモデルMnerの学習は、検索サーバ10によって実行されてもよい。この場合、検索サーバ10は、学習端末30と同様の機能を有する。
【0055】
[検索部]
検索部101は、検索を実行する。ここでは、学習済みのNERモデルMnerが作成された後の検索について説明するが、学習済みのNERモデルMnerが作成される前は、検索部101は、ユーザが入力した第4検索クエリに基づいて、検索を実行し、検索履歴データベースDB2を更新する。この場合、学習済みのNERモデルMnerが作成されていないので、ウェブページ属性及びウェブページ固有表現は、検索で利用されない。
【0056】
学習済みのNERモデルMnerが作成された後は、例えば、検索部101は、ユーザが入力した第5検索クエリに基づいて、検索を実行する。例えば、検索部101は、ユーザ端末20から、ユーザが入力した第5検索クエリを受信する。検索部101は、当該受信した第5検索クエリと、検索対象データベースDB1に格納されたインデックスと、に基づいて、検索を実行する。検索部101は、検索の実行結果に基づいて、検索結果ページP2の表示データ(例えば、HTMLデータ)を生成してユーザ端末20に送信する。
【0057】
本実施形態では、検索部101は、ウェブページ属性及びウェブページ固有表現がインデックスとして利用されるので、検索部101は、ユーザが入力した第5検索クエリを、学習済みのNERモデルMnerに入力する。NERモデルMnerは、当該入力された第5検索クエリの特徴量を計算し、当該計算された特徴量に応じた第5属性及び第5固有表現を出力する。
【0058】
検索部101は、NERモデルMnerから出力された第5属性及び第5固有表現と、検索対象データベースDB1に格納されたウェブページ属性及びウェブページ固有表現と、に基づいて、検索を実行する。検索では、キーワード等の他の要素も考慮されてよい。ここでは、NERモデルMnerから出力された第5属性及び第5固有表現と同じウェブページ属性及びウェブページ固有表現が関連付けられたウェブページが検索されるものとするが、検索自体は、公知の検索エンジンを利用して実行されるようにすればよい。
【0059】
検索部101は、検索を実行すると、ユーザが入力した第5検索クエリを、第4検索クエリとして検索履歴データベースDB2に格納する。検索部101は、現在の日時を検索日時として検索履歴データベースDB2に格納する。検索部101は、ユーザが検索結果ページP2に含まれるウェブページを選択した場合には、このウェブページのURLを検索履歴データベースDB2に格納する。
【0060】
[3-2.ユーザ端末で実現される機能]
ユーザ端末20は、データ記憶部200、表示制御部201、及び操作受付部202を含む。データ記憶部200は、記憶部22により実現される。表示制御部201及び操作受付部202は、制御部21により実現される。
【0061】
[データ記憶部]
データ記憶部200は、検索の実行に必要なデータを記憶する。例えば、データ記憶部200は、トップページP1及び検索結果ページP2の各々を表示するために必要なブラウザを記憶する。例えば、データ記憶部200は、ブラウザではなく、検索サービス専用のアプリケーションを記憶してもよい。
【0062】
[表示制御部]
表示制御部201は、種々の画面を表示部25に表示させる。例えば、表示制御部201は、検索サーバ10から受信した表示データに基づいて、トップページP1及び検索結果ページP2の各々を表示部25に表示させる。
【0063】
[操作受付部]
操作受付部202は、種々の操作を受け付ける。例えば、操作受付部202は、トップページP1及び検索結果ページP2の各々に対する操作を受け付ける。
【0064】
[3-3.学習端末で実現される機能]
学習端末30は、データ記憶部300、比較部301、取得部302、第1学習部303、判定部304、第2学習部305、属性推定部306、データ拡張部307、及び追加学習部308を含む。データ記憶部300は、記憶部32により実現される。比較部301、取得部302、第1学習部303、判定部304、第2学習部305、属性推定部306、データ拡張部307、及び追加学習部308は、制御部31により実現される。
【0065】
[データ記憶部]
データ記憶部300は、データ拡張に必要なデータを記憶する。例えば、データ記憶部300は、辞書データベースDB3、NERモデルMnerの訓練データベースDB4、及びVAEモデルMvaeの訓練データベースDB5を記憶する。
【0066】
図8は、辞書データベースDB3の一例を示す図である。辞書データベースDB3は、第1固有表現に関するデータベースである。例えば、辞書データベースDB3には、多数の第1属性及び第1固有表現のペアが格納される。例えば、検索対象データベースDB1に格納されたウェブページ属性及びウェブページ固有表現の全部又は一部が取得されて、第1属性及び第1固有表現として、辞書データベースDB3に格納されてもよい。
【0067】
なお、辞書データベースDB3には、NERモデルMner及びVAEモデルMvaeを作成する作成者により入力された第1属性及び第1固有表現が格納されてもよい。他にも例えば、辞書データベースDB3には、検索サービス以外の他のサービス(例えば、インターネット百科事典サービス)から取得された属性及び固有表現が、第1属性及び第1固有表現として格納されてもよい。
【0068】
図9は、NERモデルMnerの訓練データベースDB4の一例を示す図である。NERモデルMnerの訓練データベースDB4は、NERモデルMnerの訓練データが格納されたデータベースである。例えば、訓練データは、過去の検索で実際に入力された第1検索クエリと、第1固有表現及び第1属性と、のペアである。例えば、NERモデルMnerの訓練データは、NERモデルMner及びVAEモデルMvaeを作成する作成者により手動で用意される。
【0069】
なお、NERモデルMnerの訓練データを自動的に生成する何らかのツールが利用されてもよい。ツールが利用される場合には、NERモデルMnerの訓練データを生成できる数に限度があるものとする。このため、本実施形態の手法を利用して、NERモデルMnerのデータ拡張によって訓練データを拡張する必要があるものとする。
【0070】
図10は、VAEモデルMvaeの訓練データベースDB5の一例を示す図である。VAEモデルMvaeの訓練データベースDB5は、VAEモデルMvaeの訓練データが格納されたデータベースである。例えば、VAEモデルMvaeの訓練データは、過去の検索で実際に入力された第1検索クエリを含む。
図10の例では、VAEモデルMvaeの訓練データは、第1検索クエリと、第1検索クエリと同じ第3検索クエリと、を含むものとするが、第3検索クエリは、第1検索クエリと同じなので、VAEモデルMvaeの訓練データは、第1検索クエリだけを含んでもよい。
【0071】
なお、
図10では、
図3と同様に、第1検索クエリに含まれる第1固有表現のみが示されているが、VAEモデルMvaeの訓練データには、第1検索クエリのうち、第1固有表現以外の他の部分が含まれてもよい。VAEモデルMvaeの訓練データには、第1検索クエリのうち、少なくとも第1固有表現が含まれていればよい。VAEモデルMvaeの訓練データは、NERモデルMner及びVAEモデルMvaeを作成する作成者により手動で用意されてもよいし、VAEモデルMvaeの訓練データを自動的に生成する何らかのツールが利用されてもよい。
【0072】
例えば、データ記憶部300は、学習前のNERモデルMnerを記憶する。学習前のNERモデルMnerは、パラメータが初期値のNERモデルMnerである。学習前のNERモデルMnerは、後述の第2学習部305によって学習が実行されると、パラメータが更新される。パラメータが更新されると、データ記憶部300は、学習済みのNERモデルMnerを記憶する。更に、後述の追加学習部308によって学習が実行されると、パラメータが更に更新される。パラメータが更に更新されると、データ記憶部300は、最終的な学習済みのNERモデルMnerを記憶する。
【0073】
例えば、データ記憶部300は、学習前のVAEモデルMvaeを記憶する。学習前のVAEモデルMvaeは、パラメータが初期値のVAEモデルMvaeである。本実施形態では、パラメータμ,αがパラメータに相当する。学習前のVAEモデルMvaeは、他のパラメータを含んでもよい。VAEモデルMvaeのパラメータは、ある1つの値に固定されているのではなく、確率的に変わる。このため、VAEモデルMvaeが処理を実行する時に応じて、どの値が利用されるかが確率的に変わる。
【0074】
VAEモデルMvaeは、学習によって調整されるパラメータ部分と、埋め込み表現の計算等の内部処理の手順が定義されたプログラム部分と、を含むので、データ記憶部100は、VAEモデルMvaeのパラメータ部分のデータと、VAEモデルMvaeのプログラム部分のデータと、を記憶する。これらのデータは、1つのデータとしてまとめられていてもよい。学習前のVAEモデルMvaeは、後述の第1学習部303によって学習が実行されると、パラメータが更新される。パラメータが更新されると、データ記憶部300は、学習済みのVAEモデルMvaeを記憶する。
【0075】
[比較部]
比較部301は、検索で実際に入力された複数の第4検索クエリの各々と、辞書データベースDB3と、を比較する。本実施形態では、検索履歴データベースDB2に複数の第4検索クエリが格納されている。このため、比較部301は、検索履歴データベースDB2から複数の第4検索クエリを取得する。第4検索クエリは、検索履歴データベースDB2以外の他のデータベースに格納されていてもよい。
【0076】
例えば、比較部301は、検索サーバ10から、検索履歴データベースDB2に格納された複数の第4検索クエリの各々を取得する。比較部301は、第4検索クエリごとに、辞書データベースDB3に格納された何れかの第1固有表現を、当該第4検索クエリが含むか否かを判定する。本実施形態では、この判定において、第1固有表現と、第4検索クエリに含まれる文字列と、の完全一致が要求される場合を説明するが、部分一致が許容されてもよい。
【0077】
[取得部]
取得部302は、過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリを取得する。第1検索クエリは、複数の第1固有表現を含んでもよい。本実施形態では、取得部302は、辞書データベースDB3とマッチした第4検索クエリを、第1検索クエリとして取得する。ここでのマッチとは、辞書データベースDB3に格納された第1固有表現を含むことである。
【0078】
例えば、取得部302は、辞書データベースDB3とマッチした第4検索クエリを、第1検索クエリとして、VAEモデルMvaeの訓練データベースDB5に格納する。取得部302は、第1検索クエリを、そのままVAEモデルMvaeの訓練データベースDB5に格納してもよいし、第1検索クエリのうちの第1固有表現だけを、VAEモデルMvaeの訓練データベースDB5に格納してもよい。本実施形態では、取得部302は、第1検索クエリと同じ第3検索クエリも、VAEモデルMvaeの訓練データベースDB5に格納する。
【0079】
本実施形態では、検索対象データベースDB1には、固有表現を一切含まない第4検索クエリと、第1固有表現以外の他の固有表現を含む第4検索クエリと、の少なくとも一方が格納されている可能性がある。このため、取得部302は、全ての第4検索クエリの中から、比較部301の比較結果に基づいて、第1検索クエリとして適切な第4検索クエリを絞り込む。取得部302は、VAEモデルMvaeの訓練データベースDB5に格納した第1検索クエリを、任意のタイミングで取得できる。
【0080】
なお、第1検索クエリは、比較部301の比較結果ではなく、VAEモデルMvaeの作成者によって手動で絞り込まれてもよい。この場合、比較部301は、学習端末30に含まれない。取得部302は、作成者が作成した第1検索クエリを取得する。例えば、取得部302は、操作部34から入力された第1検索クエリを取得してもよい。この場合、作成者は、第1検索クエリのうちの第1固有表現の部分と、第1属性と、についても指定してもよい。取得部302は、作成者により指定された第1固有表現の部分及び第1属性を取得してもよい。
【0081】
[第1学習部]
第1学習部303は、第1検索クエリに基づいて、第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力するVAEモデルMvaeの学習を実行する。VAEモデルMvaeは、第1モデルの一例である。このため、VAEモデルMvaeと記載した箇所は、第1モデルと読み替えることができる。第1モデルは、第1検索クエリが入力されると、第2検索クエリを出力可能なモデルであればよく、VAEモデルMvae以外の他のモデルであってもよい。
【0082】
例えば、第1モデルは、GAN(Generative Adversarial Network)を利用したモデルであってもよい。GANは、実在するデータから新たなデータを生成するGeneratorと、当該生成されたデータを評価するDiscriminatorと、を含む。GANに含まれるGenerator及びDiscriminatorにより、実在するデータの特徴に沿って、実在しないデータを生成できる。GANを利用した第1モデルは、実在するデータとして第1検索クエリが入力される。GANは、第1検索クエリに沿って、第2検索クエリを生成する。
【0083】
例えば、第1モデルは、VAE及びGAN以外の他の手法を利用した教師無し学習のモデルであってもよい。他の手法としては、主成分分析又はアソシエーション分析で利用されるモデルであってもよい。第1モデルは、教師有り学習のモデル又は半教師有り学習のモデルであってもよい。例えば、第1モデルは、パラメータが確率変数であるベイジアンニューラルネットワークであってもよい。
【0084】
第1モデルは、任意の機械学習手法を利用可能である。第1モデルの機械学習手法は、NERモデルMnerの説明で例示した手法であってもよい。例えば、第1モデルは、第1検索クエリと、ランダムに生成されたノイズに相当するデータと、が入力されると、第2検索クエリを出力するモデルであってもよい。先述したGANは、このような第1モデルの一種である。第1検索クエリとともに入力データは、ランダムに生成されたノイズではなくてもよい。
【0085】
本実施形態では、VAEモデルMvaeの学習時には、原則として、入力と出力が同じになるように学習が実行される。このため、学習部は、第1検索クエリが第1モデルに入力された場合に、第1モデルから、第1検索クエリと同じ第3検索クエリが出力されるように、学習を実行する。この学習方法は、
図3を参照して説明した通りである。学習部は、エンコーダfencによるマッピングの学習と、デコーダfdecによるマッピングの学習と、を実行する。
【0086】
なお、VAEモデルMvaeの学習時には、入力と出力が互いに異なってもよい。即ち、第3検索クエリは、第1検索クエリと異なってもよい。ただし、第3検索クエリが第1検索クエリと大きく異なると、マッピングの学習が正確に行われない可能性があるので、第3検索クエリは、第1検索クエリと似た内容であるものとする。例えば、第3検索クエリは、第1検索クエリの一部が変更された内容である。
【0087】
本実施形態では、第1検索クエリは、複数の文字を含む。複数の文字の各々には、第1固有表現に関するタグが関連付けられている。タグは、第1固有表現における個々の文字を分類するための情報である。本実施形態では、BIO(Begin Inside Outside)タグが利用される場合を説明するが、タグは、BIOES(Begin Inside Outside End Single)タグであってもよいし、他の観点のタグであってもよい。
【0088】
図11は、第1検索クエリに含まれる個々の文字に関連付けられたタグの一例を示す図である。BIOタグは、個々の文字が第1固有表現のどの部分なのかを分類するためのタグである。タグ「B」は、第1固有表現の開始位置であることを意味する。タグ「I」は、第1固有表現に含まれる文字であるが、開始位置ではなく、中間的な位置であることを意味する。タグ「O」は、第1固有表現の外部の文字であることを意味する。
【0089】
図10のVAEモデルMvaeの訓練データベースDB5では省略しているが、第1検索クエリの個々の文字には、タグ「B」、タグ「I」、又はタグ「O」の何れかが関連付けられているものとする。BIOタグは、VAEモデルMvaeの作成者によって手動で指定されてもよいし、辞書データベースDB3に格納された第1固有表現と、第1検索クエリに含まれる個々の文字と、が比較されることによって自動的に付与されてもよい。
【0090】
図11の例では、第1検索クエリ「white wind」は、単語「white」と単語「wind」の2つの単語を含む。「white wind」は、第1固有表現でもある。単語「white」は、第1固有表現の開始位置に存在するので、タグ「B」が関連付けられる。単語「white」は、第1固有表現の開始位置以降の位置である中間位置に存在するので、タグ「I」が関連付けられる。
図11では省略しているが、「engineer boots」の部分も学習で利用するのであれば、この部分の各単語には、タグ「O」が関連付けられる。
【0091】
図11のように、第1検索クエリ「white wind」は、文字単位に分割される。最初の文字「w」には、タグ「B」が関連付けられる。2文字目以降の文字「h」~「d」には、タグ「I」が関連付けられる。本実施形態では、属性のタグも存在するので、
図11の例では、「BRAND」といったタグも関連付けられている。他の属性については、「COLOR」、「SIZE」、又は「MATERIAL」といった属性のタグも存在するものとする。第1検索クエリには、タグであることを意味する記号(
図11では、<>や-の記号)と、タグを示す文字列と、が挿入される。
【0092】
本実施形態では、第1学習部303は、複数の文字の各々に関連付けられたタグに基づいて、学習を実行する。第1学習部303が、1文字ずつにタグ付けした状態で学習を実行することによって、特定の言語における仮想的な第2検索クエリを生成しやすくなる。例えば、文字単位でタグ付けすることによって、第1固有表現の全てが変わるのではなく、その一部(例えば、1文字~3文字程度)だけが改変された第2検索クエリが生成されるように、学習が実行される。
【0093】
なお、
図11のように、第1検索クエリには、第1固有表現に関する第1属性が関連付けられていてもよい。例えば、第1検索クエリが第4検索クエリとして検索対象データベースDB1に格納されていた場合に、当該第4検索クエリに関連付けられたウェブページ属性が第1属性として利用されてもよいし、VAEモデルMvaeの作成者によって手動で第1属性が指定されてもよい。他にも例えば、辞書データベースDB3において第1固有表現とともに第1属性が格納されており、第1検索クエリに含まれる第1固有表現に関連付けられた第1属性が、第1検索クエリに関連付けられてもよい。
【0094】
例えば、第1学習部303は、第1検索クエリと、第1属性と、に基づいて、学習を実行してもよい。第1学習部303は、第1属性を利用して学習することによって、VAEモデルMvaeは、同じ第1属性が関連付けられた第1検索クエリ同士を、同じグループとして認識できるようになる。このため、VAEモデルMvaeは、ある第1検索クエリと、同じグループと認識した他の第1検索クエリと、を混ぜたような第2検索クエリを生成できるようになるので、現実的にありそうな第2検索クエリを生成できる。
【0095】
[判定部]
判定部304は、第2検索クエリに基づいて、所定の条件が満たされるか否かを判定する。所定の条件は、第2検索クエリをデータ拡張で利用するか否かの判定基準となる条件である。所定の条件は、第2検索クエリに関する任意の条件を設定可能である。本実施形態では、所定の条件の一例として、下記に説明する第1条件~第3条件を説明する。
【0096】
(第1条件)例えば、判定部304は、第2検索クエリに含まれる第2固有表現が所定の文字数以上であるか否かを判定することによって、所定の条件が満たされるか否かを判定してもよい。以降、この文字数を、第1条件の文字数という。本実施形態では、第1条件の文字数の一例として3文字を説明するが、第1条件の文字数は、任意の文字数であってよく、3文字に限れない。例えば、第1条件の文字数は、2文字又は4文字以上であってもよい。
【0097】
例えば、第2検索クエリが1つの第2固有表現のみを含む場合、判定部304は、当該1つの第2固有表現が3文字以上であるか否かを判定する。第2検索クエリが複数の第2固有表現を含む場合、判定部304は、当該複数の第2固有表現の各々が3文字以上であるか否かを判定する。第2検索クエリが第2固有表現以外の何らかの他の文字列を含む場合、判定部304は、第2検索クエリのうち、他の文字列については判定対象とせずに、第2固有表現が3文字以上であるか否かを判定する。
【0098】
(第2条件)例えば、判定部304は、第2検索クエリに含まれる第2固有表現の文字の種類に応じた所定の条件が満たされるか否かを判定してもよい。本実施形態では、アルファベット、数字、及びそれ以外といった3つの種類を例に挙げるが、文字の種類自体は、世の中に存在する任意の種類であってよい。例えば、日本語で用いられる平仮名、片仮名、又は漢字が文字の種類に相当してもよい。他にも例えば、小文字、大文字、全角、又は半角が文字の種類に相当してもよい。
【0099】
本実施形態では、文字の種類に応じた所定の条件の一例として、第2条件及び第3条件を説明する。例えば、判定部304は、第2条件として、第2検索クエリに含まれる第2固有表現が数字のみで構成されるか否かを判定する。判定部304は、第2検索クエリに含まれる第2固有表現が数字だけである場合に、第2条件が満たされないと判定し、判定部304は、第2検索クエリに含まれる第2固有表現が数字以外の文字を含む場合に、第2条件が満たされたと判定する。
【0100】
(第3条件)例えば、判定部304は、第3条件として、第2検索クエリに含まれる第2固有表現がアルファベットだけである場合に、所定の文字数以上であるか否かを判定する。以降、この文字数を、第3条件の文字数という。本実施形態では、第3条件の文字数が5文字である場合を説明するが、第3条件の文字数は、任意の文字数であってよく、2文字~4文字又は6文字以上であってもよい。
【0101】
例えば、第2検索クエリが、アルファベットだけで構成される1つの第2固有表現のみを含む場合、判定部304は、当該1つの第2固有表現が5文字以上であるか否かを判定する。第2検索クエリが、アルファベットだけで構成される複数の第2固有表現を含む場合、判定部304は、当該複数の第2固有表現の各々が5文字以上であるか否かを判定する。第2検索クエリが、アルファベットだけで構成される第2固有表現以外の何らかの他の文字列を含む場合、判定部304は、第2検索クエリのうち、他の文字列については判定対象とせずに、当該第2固有表現が5文字以上であるか否かを判定する。
【0102】
なお、所定の条件の一例は、第1条件~第3条件に限られない。例えば、長すぎる第2検索クエリを除外するために、所定の条件は、10文字以下といったように、文字数の上限であってもよい。例えば、不自然なほど多数の種類の文字が混合された第2検索クエリを除外するために、所定の条件は、第2検索クエリに含まれる文字の種類数の上限であってもよい。
【0103】
[第2学習部]
第2学習部305は、NERモデルMnerの学習を実行する。第2学習部305により作成されたNERモデルMnerは、少ない訓練データでひとまず作成されたモデルである。ひとまず作成されたNERモデルMnerは、第5固有表現に関する第5属性を、ある程度の精度で認識できる。本実施形態では、ひとまず作成されたNERモデルMnerに対し、後述の追加学習部308によって追加学習が実行される。
【0104】
例えば、第2学習部305は、NERモデルMnerの訓練データベースDB4に格納された訓練データに含まれる第1検索クエリが入力されると、この訓練データに含まれる第1固有表現及び第1属性が出力されるように、NERモデルMnerの学習を実行する。NERモデルMnerの学習方法自体は、NERモデルMnerで利用する機械学習の手法で用いられている学習方法を利用可能である。
【0105】
[属性推定部]
属性推定部306は、訓練データが学習済みのNERモデルMnerに基づいて、第2固有表現に関する第2属性を推定する。本実施形態では、NERモデルMnerの訓練データは、第1検索クエリと、第1固有表現に関する第1属性と、を含むので、属性推定部306は、第1検索クエリ及び第1属性を含む訓練データが学習済みの第2モデルに基づいて、第2属性を推定することになる。
【0106】
例えば、属性推定部306は、学習済みのNERモデルMner(先述したひとまず作成されたNERモデルMner)に対し、第2検索クエリを入力する。学習済みのNERモデルMnerは、第2検索クエリの埋め込み表現を計算し、当該計算された埋め込み表現に応じた第2固有表現及び第2属性を出力する。属性推定部306は、学習済みのNERモデルMnerから出力された第2固有表現及び第2属性を取得する。
【0107】
[データ拡張部]
データ拡張部307は、学習済みのVAEモデルMvaeにより出力された第2検索クエリに基づいて、データ拡張を実行する。本実施形態では、データ拡張部307は、第2検索クエリをデータ記憶部100に記録することによって、データ拡張を実行する。データ拡張部307は、学習端末30以外の他のコンピュータ又は外部の情報記憶媒体に第2検索クエリを記録することによって、データ拡張を実行してもよい。
【0108】
本実施形態では、VAEモデルMvaeは、確率的又はランダムに出力が決まるモデルなので、データ拡張部307は、学習済みのVAEモデルMvaeにより確率的又はランダムに出力された第2検索クエリに基づいて、データ拡張を実行する。VAEモデルMvaeは、潜在変数が従う確率密度関数が標準正規分布に従うことによって、確率的又はランダムに出力が決まるので、データ拡張部307は、学習済みのVAEモデルMvaeにより確率的又はランダムに出力された第2検索クエリに基づいて、データ拡張を実行する。
【0109】
本実施形態では、第2検索クエリの適否が判定部304により判定されるので、データ拡張部307は、所定の条件が満たされると判定された場合に、データ拡張を実行する。データ拡張部307は、所定の条件が満たされると判定されなかった第2検索クエリは、データ拡張で利用せずに、所定の条件が満たされると判定された第2検索クエリに基づいて、データ拡張を実行する。
【0110】
本実施形態では、データ拡張部307は、第2検索クエリに基づいて、NERモデルMnerの訓練データを拡張することによって、データ拡張を実行する。NERモデルMnerは、第2モデルの一例である。このため、NERモデルMnerと記載した箇所は、第2モデルと読み替えることができる。第2モデルは、第5検索クエリに含まれる第5固有表現を認識するモデルである。第5検索クエリに基づいて検索が実行されると、第5検索クエリは、将来の第1検索クエリとして検索履歴データベースDB2に格納される。NERモデルMnerを新たに作成しなおす必要がある場合には、第5検索クエリが第1検索クエリとして利用される。
【0111】
本実施形態では、データ拡張部307は、第2検索クエリと、属性推定部306により推定された第2属性と、に基づいて、訓練データを拡張する。データ拡張部307は、第2検索クエリと、第2検索クエリに含まれる第2固有表現及び第2属性と、のペアを含む新たな訓練データを生成することによって、データ拡張を実行する。この訓練データの入力と出力の形式は、
図9と同様である。例えば、データ拡張部307は、当該新たな訓練データを、NERモデルMnerの訓練データベースDB5に格納する。データ拡張部307は、VAEモデルMvaeから出力された第2検索クエリに対し、何らかの単語を追加してもよい。データ拡張部307は、何らかの単語を含む第2検索クエリに基づいて、データ拡張を実行してもよい。
【0112】
なお、VAEモデルMvaeは、第2検索クエリだけではなく、第2属性も出力してもよい。例えば、VAEモデルMvaeは、第2検索クエリ「blue wind」とともに、第2属性「Brand」を出力してもよい。
図11のように、第1検索クエリに第1属性をタグ付けしたうえでVAEモデルMvaeを学習させることにより、VAEモデルMvaeは、第2属性も出力可能になる。この場合、属性推定部306を省略してもよい。データ拡張部307は、VAEモデルMvaeから出力された第2検索クエリ、第2固有表現、及び第2属性を、新たな訓練データとして、NERモデルMnerの訓練データベースDB5に格納すればよい。
【0113】
[追加学習部]
追加学習部308は、データ拡張により出力された新たな訓練データに基づいて、学習済みのNERモデルMnerの追加学習を実行する。追加学習とは、ある程度の学習が実行されたNERモデルMnerに対し、追加で学習を実行することである。追加学習部308は、ある程度の学習が実行されたNERモデルMnerに対し、新たな訓練データに含まれる第2検索クエリを入力すると、新たな訓練データに含まれる第2固有表現及び第2属性が出力されるように、NERモデルMnerの追加学習を実行する。追加学習で利用される手法自体は、第2学習部305の手法と同じであってよい。
【0114】
[4.データ拡張システムで実行される処理]
図12は、データ拡張システム1で実行される処理の一例を示すフロー図である。この処理は、制御部11,21,31が記憶部12,22,32に記憶されたプログラムに従って動作することによって実行される。
【0115】
図12のように、学習端末30は、検索サーバ10から、検索履歴データベースDB2に格納された複数の第4検索クエリを取得する(S1)。S1では、学習端末30は、検索サーバ10に対し、検索履歴データベースDB2に格納された全部又は一部の第4検索クエリを取得するための取得要求を送信する。検索サーバ10は、この取得要求を受信すると、検索履歴データベースDB2に格納された全部又は一部の第4検索クエリを、学習端末30に送信する。
【0116】
学習端末30は、S1で取得された複数の第4検索クエリの各々と、辞書データベースDB3と、を比較する(S2)。S2では、学習端末30は、複数の第4検索クエリの各々に含まれる第4固有表現と同じ第1固有表現が辞書データベースDB3に存在するか否かを判定する。学習端末30は、S2の比較により辞書データベースDB3に存在すると判定された複数の第4検索クエリの各々を、第1検索クエリとして取得する(S3)。
【0117】
学習端末30は、S3で取得した複数の第1検索クエリを、NERモデルMnerの訓練データベースDB4に格納し、NERモデルMnerの学習を実行する(S4)。S4では、学習端末30は、NERモデルMnerの訓練データに含まれる第1検索クエリが入力された場合に、当該訓練データに含まれる第1固有表現及び第1属性が出力されるように、NERモデルMnerのパラメータを調整する。
【0118】
学習端末30は、S4で取得した複数の第1検索クエリに基づいて、VAEモデルMvaeの訓練データを生成する(S5)。S5では、学習端末30は、第1検索クエリごとに、この第1検索クエリと、この第1検索クエリと同じ第3検索クエリと、のペアを、VAEモデルMvaeの訓練データとして生成する。学習端末30は、VAEモデルMvaeの訓練データベースDB5に、当該生成された複数の訓練データを格納する。
【0119】
学習端末30は、S5で生成されたVAEモデルMvaeの訓練データに基づいて、VAEモデルMvaeの学習を実行する(S6)。S6では、学習端末30は、訓練データに含まれる第1検索クエリからLSTMのセル状態の配列へのマッピングをエンコーダfencに学習させる。学習端末30は、当該配列のセル状態の平均値から、訓練データに含まれる第3検索クエリへのマッピングをデコーダfdecに学習させる。
【0120】
学習端末30は、S6で学習済みのVAEモデルMvaeに基づいて、第2検索クエリを取得する(S7)。S7では、学習端末30は、学習済みのVAEモデルMvaeのエンコーダfencは利用せずに、正規分布からサンプリングした配列の平均値を開始セル状態にする。学習端末30は、この開始セル状態に基づいて、デコーダfdecで第2検索クエリを生成する。学習端末30は、第2検索クエリを繰り返し生成する。学習済みのVAEモデルMvaeは、確率的又はランダムに出力が決まるので、原則として、毎回異なる第2検索クエリを出力する。
【0121】
学習端末30は、S7で取得された第2検索クエリが所定の条件を満たすか否かを判定する(S8)。S8では、学習端末30は、第2検索クエリが先述の第1条件~第3条件の各々を満たすか否かを判定する。学習端末30は、S8の判定結果に基づいて、データ拡張を実行する(S9)。S9では、学習端末30は、所定の条件を満たす第2検索クエリを、ひとまず作成したNERモデルMnerに入力する。学習端末30は、第2検索クエリと、NERモデルMnerから出力された第2固有表現及び第2属性と、をNERモデルMner用の新たな訓練データとして生成する。
【0122】
学習端末30は、S9におけるデータ拡張の実行結果に基づいて、NERモデルMnerの追加学習を実行する(S10)。S10では、学習端末30は、S9で生成された新たな訓練データに基づいて、ひとまず作成したNERモデルMnerの学習を実行する。学習端末30は、検索サーバ10に対し、学習済みのNERモデルMnerを送信する(S11)。検索サーバ10は、学習済みのNERモデルMnerを受信する(S12)。検索サーバ10とユーザ端末20との間で、学習済みのNERモデルMnerを利用した検索が実行され(S13)、本処理は終了する。
【0123】
本実施形態のデータ拡張システム1は、過去に実行された検索で実際に入力された第1検索クエリに基づいて、VAEモデルMvaeの学習を実行する。データ拡張システム1は、学習済みのVAEモデルMvaeにより出力された第2検索クエリに基づいて、データ拡張を実行する。これにより、学習済みのVAEモデルMvaeを利用して第2検索クエリを自動的に生成できるので、第2検索クエリを用意する手間を省くことができる。学習済みのVAEモデルMvaeは、実際に入力された第1検索クエリに基づいて作成されているので、実際にありえそうな文字列を第2検索クエリとすることができる。実際にはありえない文字列でデータ拡張が実行されると、データ拡張によってノイズが増える可能性があるが、リアリティのある文字列である第2検索クエリでデータ拡張が実行されるので、精度よくデータ拡張を実行できる。
【0124】
また、データ拡張システム1は、学習済みのVAEモデルMvaeにより確率的又はランダムに出力された第2検索クエリに基づいて、データ拡張を実行する。これにより、確率的又はランダムな要素が第2検索クエリに含まれるので、学習済みのVAEモデルMvaeによる出力のたびに、過去に出力された第2検索クエリとは多少異なる新たな第2検索クエリを出力できるので、効率よくデータ拡張を実行できる。個々の第1検索クエリに似た第2検索クエリを多数生成できるので、バラエティに富んだデータ拡張を実現できる。
【0125】
また、VAEモデルMvaeは、潜在変数が従う確率密度関数が標準正規分布に従うことによって、確率的又はランダムに出力が決まる。確率的又はランダムな要素である潜在変数次第では、VAEモデルMvaeが出力する第2検索クエリが現実的にありえないような文字列になってしまうが、潜在変数が従う確率密度関数が標準正規分布に従うことによって、第2検索クエリが現実的にありえそうな範囲に収まりやすくなるので、第2検索クエリのリアリティが高まる。即ち、潜在変数がある一定の範囲に収まることによって、学習時に利用した第1検索クエリから大きくかけ離れた第2検索クエリが生成されることを防止し、第1検索クエリとある程度似た第2検索クエリを生成できる。
【0126】
また、学習済みのVAEモデルMvaeは、正規分布からサンプリングした配列の平均値を開始セル状態にすることによって、デコーダfdecで第2検索クエリを生成する。これにより、LSTMの仕組みを利用したVAEモデルMvaeによって、現実的にありえそうな第2検索クエリを生成しやすくなるので、データ拡張の精度が高まる。
【0127】
また、データ拡張システム1は、第1検索クエリがVAEモデルMvaeに入力された場合に、VAEモデルMvaeから、第1検索クエリと同じ第3検索クエリが出力されるように、学習を実行する。これにより、VAEモデルMvaeからの出力を、VAEモデルMvaeに対する入力から大きく逸脱しない範囲に収まりやすくなるので、現実的にありえそうな第2検索クエリを生成しやすくなる。
【0128】
また、データ拡張システム1は、辞書データベースDB3とマッチした第4検索クエリを、第1検索クエリとして取得する。これにより、実際に入力された第4検索クエリの中に、VAEモデルMvaeの学習には不適切なノイズが存在したとしても、辞書データベースDB3を利用してノイズをフィルタリングできるので、VAEモデルMvaeの精度が高まる。
【0129】
また、データ拡張システム1は、第1検索クエリに含まれる複数の文字の各々に関連付けられたタグに基づいて、VAEモデルMvaeの学習を実行する。これにより、実際に入力された第1検索クエリのスタイルに沿って、現実的にありえそうな第2検索クエリを生成できる。
【0130】
また、データ拡張システム1は、第1検索クエリと、第1固有表現に関する第1属性と、に基づいて、VAEモデルMvaeの学習を実行する。これにより、複数の第1属性に対応可能なVAEモデルMvaeを作成できる。例えば、ブランド名、サイズ、色、及び機能といった種々の第2固有表現を含む第2検索クエリを、1つのVAEモデルMvaeで生成できるようになる。
【0131】
また、データ拡張システム1は、第2検索クエリに基づいて、所定の条件が満たされると判定された場合に、データ拡張を実行する。これにより、データ拡張のために不適切な第2検索クエリが出力されたとしても、予め定められた条件によってフィルタリングできるので、データ拡張の精度が高まる。
【0132】
また、データ拡張システム1は、第2検索クエリが所定の文字数以上であるか否かを判定することによって、所定の条件が満たされるか否かを判定する。これにより、データ拡張のために不適切なほど短い第2検索クエリが出力されたとしても、そのような不適切な第2検索クエリを除外できるので、データ拡張の精度が高まる。
【0133】
また、データ拡張システム1は、第2検索クエリに含まれる文字の種類に応じた所定の条件が満たされるか否かを判定する。これにより、第2検索クエリに含まれる文字の種類に応じて不適切な第2検索クエリを除外できるので、データ拡張の精度が高まる。
【0134】
また、データ拡張システム1は、第2検索クエリに基づいて、NERモデルMnerの訓練データを拡張することによって、データ拡張を実行する。これにより、NERモデルMnerの訓練データを用意する手間を軽減できる。より多くの訓練データでNERモデルMnerを学習させることができるので、NERモデルMnerの精度が高まる。
【0135】
また、データ拡張システム1は、第2検索クエリと、ひとまず作成したNERモデルMnerに基づいて推定された第2属性と、に基づいて、訓練データを拡張する。これにより、第2検索クエリに第2属性を付与する手間を軽減できる。
【0136】
また、データ拡張システム1は、第1検索クエリ及び第1属性を含む訓練データが学習済みのNERモデルMnerに基づいて、第2属性を推定する。ひとまず作成したNERモデルMnerは、未知の検索クエリに対応できるほどには精度が高くないが、第1検索クエリと特徴が似ている第2検索クエリであれば、ある程度高い精度で第2属性を推定できる。このため、第2検索クエリに対し、ある程度正確に第2属性を推定できるので、第2属性を付与する手間を軽減できる。
【0137】
また、データ拡張システム1は、データ拡張により出力された新たな訓練データに基づいて、学習済みのNERモデルMnerの追加学習を実行する。これにより、NERモデルMnerの訓練データを作成する手間を省ける。より多くの訓練データでNERモデルMnerを学習できるので、NERモデルMnerの精度が高まる。
【0138】
[5.変形例]
なお、本開示は、以上に説明した実施形態の例に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0139】
[5-1.変形例1]
例えば、データ拡張部307は、第2検索クエリに基づいて、VAEモデルMvaeとは異なる第3モデルの訓練データを拡張することによって、データ拡張を実行してもよい。第3モデルは、実施形態で説明したNERモデルMnerであってもよいが、ここでは、他のモデルであるものとする。即ち、第3モデルは、NERモデルMnerを一例とする第2モデルを含む上位概念である。データ拡張システム1は、NERモデルMner以外の何らかの機械学習のモデルのデータ拡張に利用できる。
【0140】
第3モデルは、第2検索クエリを訓練データとして利用するモデルであればよく、任意の目的で利用可能である。第3モデルの機械学習の手法は、第1モデル又は第2モデルの説明で例示した任意の手法を利用可能である。例えば、第3モデルは、第2検索クエリを入力したユーザの属性(例えば、年齢層、性別、又は趣味)を推定するモデルであってもよい。この場合、第3モデルには、第2検索クエリと、ユーザの属性と、のペアである訓練データが学習される。例えば、第3モデルは、第2検索クエリに応じた検索結果に含める広告のジャンルを決定するモデルであってもよい。この場合、第3モデルには、第2検索クエリと、広告のジャンルと、のペアである訓練データが学習される。
【0141】
変形例1のデータ拡張システム1は、第2検索クエリに基づいて、VAEモデルMvaeとは異なる第3モデルの訓練データを拡張することによって、データ拡張を実行する。これにより、第3モデルの訓練データを用意する手間を軽減できる。より多くの訓練データで第3モデルを学習させることができるので、第3モデルの精度が高まる。
【0142】
[5-2.変形例2]
例えば、取得部302は、過去における特定の期間に実行された検索で実際に入力された第1検索クエリを取得してもよい。特定の期間は、過去の一部の期間である。例えば、特定の期間は、直近の1週間、1ヶ月、又は1年といった期間であってもよい。特定の期間は、直近の期間ではなく、過去の第1時点から、第1時点よりも後の過去の第2時点までの期間(例えば、現時点を2022年の6月だったとすると、2021年)であってもよい。特定の期間は、任意の期間が指定されてよい。例えば、第1検索クエリが入力された時点は、検索履歴データベースDB2の検索日時によって特定される。取得部302は、検索日時が特定の期間に含まれる第1検索クエリだけを取得する。
【0143】
変形例2のデータ拡張システム1は、過去における特定の期間に実行された検索で実際に入力された第1検索クエリを取得する。これにより、特定の期間におけるトレンドに対応したデータ拡張を実現できる。例えば、最近流行しているキーワードと似たリアリティのある第2検索クエリを生成できるようになる。
【0144】
[5-3.変形例3]
例えば、データ拡張システム1は、検索サービス以外の他の任意のサービスに利用可能である。例えば、電子商取引サービス、旅行予約サービス、電子決済サービス、金融サービス、通信サービス、又はコンテンツ配信サービスといった他のサービスの検索にデータ拡張システム1が利用されてもよい。変形例3では、電子商取引サービスにデータ拡張システム1を利用する場合を説明する。
【0145】
例えば、変形例3では、検索は、電子商取引サービスにおける商品の検索である。検索サーバ10は、電子商取引サービスを提供する。検索対象は、電子商取引サービスにおける商品である。検索対象データベースDB1には、商品に関する情報を表示するための商品ページへのURLと、商品のインデックスと、が関連付けられて格納される。このインデックスは、商品ページのタイトル、商品に関する固有表現、又は商品に関する属性である。
【0146】
変形例3では、第1検索クエリは、電子商取引サービスで実際に入力された検索クエリである。第2検索クエリは、仮想的な商品に関する第2固有表現を含む。第1検索クエリ及び第2検索クエリが示す内容が実施形態とは異なるが、第2検索クエリを生成する処理自体は、実施形態と同様である。VAEモデルMvaeは、現実の商品でありそうな架空の商品の第2検索クエリを生成する。
【0147】
変形例3のデータ拡張システム1は、電子商取引サービスにおけるデータ拡張を効率よく実現できる。
【0148】
[5-4.その他変形例]
例えば、上記変形例を組み合わせてもよい。
【0149】
例えば、実施形態では、NERモデルMnerの訓練データを拡張する場合を例に挙げたが、第2検索クエリに基づいて、他のデータ拡張が実行されてもよい。例えば、第2検索クエリに基づいて、辞書データベースDB3が拡張されてもよい。他にも例えば、何らかの目的で検索クエリに関する知識(コーパス)が必要な場合に、実際に入力された第1検索クエリだけでなく、仮想的な第2検索クエリを追加して知識を増やすことによって、データ拡張が実行されてもよい。即ち、機械学習の訓練データを増やす目的以外の他のデータ拡張のために、データ拡張システム1を利用できる。
【0150】
例えば、第1モデルは、確率的又はランダムに出力が決まるモデルではなくてもよい。この場合、第1モデルには、第1検索クエリと、何らかのノイズとなるデータと、が入力され、第1モデルにより、これらが合成された第2検索クエリが生成されてもよい。ノイズとなるデータは、ランダムに生成されてもよいし、作成者によって予め用意されていてもよい。例えば、特に第2属性を利用しないのであれば、第2検索クエリの第2属性は推定されなくてもよい。第2検索クエリは、種々の目的で利用可能であり、検索以外にもマーケティング又はネーミング等の参考にするために利用されてもよい。
【0151】
例えば、学習端末30で実現されるものとして説明したデータ拡張に関する機能は、検索サーバ10又は他のコンピュータで実現されてもよいし、複数のコンピュータで分担されてもよい。例えば、データ記憶部300に記憶されるものとしたデータは、データベースサーバに記憶されていてもよい。
【0152】
[6.付記]
例えば、データ拡張システムは、下記のような構成も可能である。
(1)
過去に実行された検索で実際に入力された、第1固有表現を含む第1検索クエリを取得する取得部と、
前記第1検索クエリに基づいて、前記第1固有表現とは異なる仮想的な第2固有表現を含む第2検索クエリを出力する第1モデルの学習を実行する第1学習部と、
学習済みの前記第1モデルにより出力された前記第2検索クエリに基づいて、データ拡張を実行するデータ拡張部と、
を含むデータ拡張システム。
(2)
前記第1モデルは、確率的又はランダムに出力が決まるモデルであり、
前記データ拡張部は、前記学習済みの第1モデルにより確率的又はランダムに出力された前記第2検索クエリに基づいて、前記データ拡張を実行する、
(1)に記載のデータ拡張システム。
(3)
前記第1モデルは、潜在変数が従う確率密度関数が標準正規分布に従うことによって、確率的又はランダムに出力が決まるVAE(Variational Auto Encoder)モデルであり、
前記データ拡張部は、学習済みの前記VAEモデルにより確率的又はランダムに出力された前記第2検索クエリに基づいて、前記データ拡張を実行する、
(2)に記載のデータ拡張システム。
(4)
前記VAEモデルは、
前記学習時に入力される前記第1検索クエリから、正規分布と仮定されたLSTM(Long Short Term Memory)のセル状態の配列へのマッピングを学習するエンコーダと、
前記配列内の前記セル状態の平均値から、前記学習時に出力される第3検索クエリへのマッピングを学習するデコーダと、
を含み、
前記第1モデルは、前記正規分布からサンプリングした前記配列の平均値を開始セル状態にすることによって、前記デコーダで前記第2検索クエリを生成する、
(3)に記載のデータ拡張システム。
(5)
前記学習部は、前記第1検索クエリが前記第1モデルに入力された場合に、前記第1モデルから、前記第1検索クエリと同じ第3検索クエリが出力されるように、前記学習を実行する、
(2)~(4)の何れかに記載のデータ拡張システム。
(6)
前記データ拡張システムは、前記検索で実際に入力された複数の第4検索クエリの各々と、前記第1固有表現に関する辞書データベースと、を比較する比較部を更に含み、
前記取得部は、前記辞書データベースとマッチした前記第4検索クエリを、前記第1検索クエリとして取得する、
(1)~(5)の何れかに記載のデータ拡張システム。
(7)
前記第1検索クエリは、複数の文字を含み、
前記複数の文字の各々には、前記第1固有表現に関するタグが関連付けられており、
前記学習部は、前記複数の文字の各々に関連付けられた前記タグに基づいて、前記学習を実行する、
(1)~(6)の何れかに記載のデータ拡張システム。
(8)
前記第1検索クエリには、前記第1固有表現に関する第1属性が関連付けられており、
前記学習部は、前記第1検索クエリと、前記第1属性と、に基づいて、前記学習を実行する、
(1)~(7)の何れかに記載のデータ拡張システム。
(9)
前記データ拡張システムは、前記第2検索クエリに基づいて、所定の条件が満たされるか否かを判定する判定部を更に含み、
前記データ拡張部は、前記所定の条件が満たされると判定された場合に、前記データ拡張を実行する、
(1)~(8)の何れかに記載のデータ拡張システム。
(10)
前記判定部は、前記第2検索クエリに含まれる前記第2固有表現が所定の文字数以上であるか否かを判定することによって、前記所定の条件が満たされるか否かを判定する、
(9)に記載のデータ拡張システム。
(11)
前記判定部は、前記第2検索クエリに含まれる前記第2固有表現の文字の種類に応じた前記所定の条件が満たされるか否かを判定する、
(9)又は(10)に記載のデータ拡張システム。
(12)
前記データ拡張部は、前記第2検索クエリに基づいて、第5検索クエリに含まれる第5固有表現を認識する第2モデルの訓練データを拡張することによって、前記データ拡張を実行する、
(1)~(11)の何れかに記載のデータ拡張システム。
(13)
前記データ拡張システムは、前記訓練データが学習済みの前記第2モデルに基づいて、前記第2固有表現に関する第2属性を推定する属性推定部を更に含み、
前記データ拡張部は、前記第2検索クエリと、前記第2属性と、に基づいて、前記訓練データを拡張する、
(12)に記載のデータ拡張システム。
(14)
前記訓練データは、前記第1検索クエリと、前記第1固有表現に関する第1属性と、を含み、
前記属性推定部は、前記第1検索クエリ及び前記第1属性を含む前記訓練データが学習済みの前記第2モデルに基づいて、前記第2属性を推定する、
(13)に記載のデータ拡張システム。
(15)
前記データ拡張システムは、前記データ拡張により出力された新たな訓練データに基づいて、学習済みの前記第2モデルの追加学習を実行する追加学習部を更に含む、
(12)~(14)の何れかに記載のデータ拡張システム。
(16)
前記データ拡張部は、前記第2検索クエリに基づいて、前記第1モデルとは異なる第3モデルの訓練データを拡張することによって、前記データ拡張を実行する、
(1)~(15)の何れかに記載のデータ拡張システム。
(17)
前記取得部は、過去における特定の期間に実行された前記検索で実際に入力された前記第1検索クエリを取得する、
(1)~(16)の何れかに記載のデータ拡張システム。
(18)
前記検索は、電子商取引サービスにおける商品の検索であり、
前記第1検索クエリは、前記電子商取引サービスで実際に入力された検索クエリであり、
前記第2検索クエリは、仮想的な商品に関する前記第2固有表現を含む、
(1)~(17)の何れかに記載のデータ拡張システム。
【符号の説明】
【0153】
1 データ拡張システム、10 検索サーバ、11 制御部、12 記憶部、13 通信部、20 ユーザ端末、21 制御部、22 記憶部、23 通信部、24 操作部、25 表示部、30 学習端末、31 制御部、32 記憶部、33 通信部、34 操作部、35 表示部、P1 トップページ、P2 検索結果ページ、100 データ記憶部、101 検索部、200 データ記憶部、201 表示制御部、202 操作受付部、300 データ記憶部、301 比較部、302 取得部、304 判定部、306 属性推定部、307 データ拡張部、308 追加学習部、B11 ボタン、DB1 検索対象データベース、DB2 検索履歴データベース、DB3 辞書データベース、DB4 訓練データベース、DB5 訓練データベース、F10 入力フォーム。