(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-31
(45)【発行日】2024-08-08
(54)【発明の名称】ランキング決定システム、ランキング決定方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240801BHJP
G06F 16/903 20190101ALI20240801BHJP
【FI】
G06N20/00 130
G06F16/903
(21)【出願番号】P 2022056458
(22)【出願日】2022-03-30
【審査請求日】2023-09-15
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】橋本 力
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特開2021-179980(JP,A)
【文献】特表2013-506189(JP,A)
【文献】米国特許出願公開第2017/0255906(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06F 16/903
(57)【特許請求の範囲】
【請求項1】
第1データと、当該第1データに関する第1分類と、の関係が学習された第1モデルに基づいて、第2データに関する複数の第2分類を取得する第2分類取得部と、
第3データと、当該第3データに関する第3分類と、の組み合わせの有効性が学習された第2モデルに基づいて、前記第2分類ごとに、前記第2データ及び当該第2分類の組み合わせの有効性に関する第2スコアを取得する第2スコア取得部と、
前記第2分類ごとの前記第2スコアに基づいて、前記複数の第2分類に関する第2ランキングを決定する第2ランキング決定部と、
を含むランキング決定システム。
【請求項2】
前記第2データは、ユーザが入力したクエリであり、
前記第2分類取得部は、前記ユーザが前記クエリを入力した場合に、前記クエリに関する前記複数の第2分類を取得し、
前記第2スコア取得部は、前記ユーザが前記クエリを入力した場合に、前記第2分類ごとに前記第2スコアを取得し、
前記第2ランキング決定部は、前記ユーザが前記クエリを入力した場合に、前記第2ランキングを決定し、
前記ランキング決定システムは、前記ユーザが前記クエリを入力した場合に、前記クエリと、前記第2ランキングと、に基づいて、検索処理を実行する検索部を更に含む、
請求項1に記載のランキング決定システム。
【請求項3】
前記第2分類取得部は、前記第2分類ごとに、前記第1モデルの推定結果の有効性に関する第1スコアを取得し、
前記ランキング決定システムは、前記ユーザが前記クエリを入力した場合に、前記第2分類ごとの前記第1スコアに基づいて、前記複数の第2分類に関する第1ランキングを決定する第1ランキング決定部を更に含み、
前記検索部は、前記ユーザが前記クエリを入力した場合に、前記クエリ、前記第1ランキング、及び前記第2ランキングに基づいて、前記検索処理を実行する、
請求項2に記載のランキング決定システム。
【請求項4】
前記検索部は、
前記第1ランキング、前記第2ランキング、及び第3モデルに基づいて、前記複数の第2分類に関する第3ランキングを決定し、
前記クエリと、当該決定された第3ランキングと、に基づいて、前記検索処理を実行する、
請求項3に記載のランキング決定システム。
【請求項5】
前記検索部は、前記第2分類ごとの前記第1スコア、前記第2分類ごとの第2スコア、前記第1ランキング、前記第2ランキング、及び前記第3モデルに基づいて、前記第3ランキングを決定する、
請求項4に記載のランキング決定システム。
【請求項6】
前記検索部は、前記第1ランキングと、前記第2ランキングと、の違いに基づいて、前記検索処理を実行する、
請求項3~5の何れかに記載のランキング決定システム。
【請求項7】
前記第2分類は、属性と、属性値と、の組み合わせであり、
前記第1ランキング決定部は、前記第2分類の前記属性ごとに、当該第2分類の前記属性値の前記第1ランキングを決定し、
前記第2ランキング決定部は、前記第2分類の前記属性ごとに、当該第2分類の前記属性値の前記第2ランキングを決定し、
前記検索部は、前記属性ごとの前記属性値の前記第1ランキング及び前記第2ランキングに基づいて、前記検索処理を実行する、
請求項3~6の何れかに記載のランキング決定システム。
【請求項8】
前記検索部は、前記第1スコア及び前記第2スコアの少なくとも一方が相対的に高い前記属性値だったとしても、当該属性値の前記属性の中で前記第1ランキング及び前記第2ランキングが相対的に低い場合には、当該属性及び当該属性値に基づいては、前記検索処理を実行せず、
前記第1スコア及び前記第2スコアの少なくとも一方が相対的に低い前記属性値だったとしても、当該属性値の前記属性の中で前記第1ランキング及び前記第2ランキングが相対的に高い場合には、当該属性及び当該属性値に基づいて、前記検索処理を実行する、
請求項7に記載のランキング決定システム。
【請求項9】
前記第1データは、前記検索処理で利用可能なインデックスであり、
前記第1分類は、前記インデックスに関する分類であり、
前記第3データは、過去の検索で入力された過去クエリであり、
前記第3分類は、前記過去の検索結果に対する選択結果に関する分類である、
請求項2~8の何れかに記載のランキング決定システム。
【請求項10】
前記ランキング決定システムは、前記第2データと、前記第2ランキングと、に基づいて、前記第1モデルに学習させる訓練データを生成する訓練データ生成部を更に含む、
請求項1に記載のランキング決定システム。
【請求項11】
前記第2分類取得部は、前記第2分類ごとに、前記第1モデルの推定結果の有効性に関する第1スコアを取得し、
前記ランキング決定システムは、前記第2分類ごとの前記第1スコアに基づいて、前記複数の第2分類に関する第1ランキングを決定する第1ランキング決定部を更に含み、
前記訓練データ生成部は、前記第1ランキングと、前記第2ランキングと、に基づいて、前記訓練データを生成する、
請求項10に記載のランキング決定システム。
【請求項12】
前記訓練データ生成部は、前記第1ランキングよりも前記第2ランキングの方が高い前記第2分類が前記第1モデルに学習されるように、前記訓練データを生成する、
請求項11に記載のランキング決定システム。
【請求項13】
前記訓練データ生成部は、前記第1ランキングよりも前記第2ランキングの方が低い前記第2分類が前記第1モデルに学習されないように、前記訓練データを生成する、
請求項11又は12に記載のランキング決定システム。
【請求項14】
前記ランキング決定システムは、
複数の前記第3データが格納された第3データベースのうちの一部を、ランダムに繰り返し選択する第3データ選択部と、
前記ランダムに繰り返し選択された前記一部の第3データに基づいて、複数の前記第2モデルに関する学習処理を実行する第2学習部と、
を更に含み、
前記第2スコア取得部は、前記第2モデルごとに、前記第2スコアを取得し、
前記第2ランキング決定部は、前記第2モデルごとに取得された前記第2スコアに基づいて、前記第2ランキングを決定する、
請求項1~13の何れかに記載のランキング決定システム。
【請求項15】
前記第3データ選択部は、前記第2ランキングを上げる前記第2分類と同じ前記第3分類が関連付けられた前記第3データが優先的に選択されるように、前記第3データベースのうちの前記一部を、ランダムに繰り返し選択する、
請求項14に記載のランキング決定システム。
【請求項16】
前記ランキング決定システムは、
複数の前記第1データが格納された第1データベースのうちの一部を、ランダムに繰り返し選択する第1データ選択部と、
前記ランダムに繰り返し選択された前記一部の第1データに基づいて、複数の前記第1モデルに関する学習処理を実行する第1学習部と、
を更に含み、
前記第2分類取得部は、前記第1モデルごとに、前記複数の第2分類を取得する、
請求項1~15の何れかに記載のランキング決定システム。
【請求項17】
コンピュータが、
第1データと、当該第1データに関する第1分類と、の関係が学習された第1モデルに基づいて、第2データに関する複数の第2分類を取得する第2分類取得ステップと、
第3データと、当該第3データに関する第3分類と、の組み合わせの有効性が学習された第2モデルに基づいて、前記第2分類ごとに、前記第2データ及び当該第2分類の組み合わせの有効性に関する第2スコアを取得する第2スコア取得ステップと、
前記第2分類ごとの前記第2スコアに基づいて、前記複数の第2分類に関する第2ランキングを決定する第2ランキング決定ステップと、
を
実行するランキング決定方法。
【請求項18】
第1データと、当該第1データに関する第1分類と、の関係が学習された第1モデルに基づいて、第2データに関する複数の第2分類を取得する第2分類取得部、
第3データと、当該第3データに関する第3分類と、の組み合わせの有効性が学習された第2モデルに基づいて、前記第2分類ごとに、前記第2データ及び当該第2分類の組み合わせの有効性に関する第2スコアを取得する第2スコア取得部、
前記第2分類ごとの前記第2スコアに基づいて、前記複数の第2分類に関する第2ランキングを決定する第2ランキング決定部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ランキング決定システム、ランキング決定方法、及びプログラムに関する。
【背景技術】
【0002】
従来、機械学習を利用したモデルに基づいて、データを分類する技術が知られている。マルチラベルに対応したモデルであれば、複数の分類を推定可能である。モデルは、最適な推定結果を出力するとは限らないので、モデルの推定結果が有効であるか否かを評価することは重要である。モデルの推定結果を評価する方法の1つとして、複数の分類に関するランキングを利用することが考えられる。
【0003】
ユーザが入力したクエリを分類して検索に利用する場合を例に挙げると、クエリの分類を推定するモデルは、推定結果の有効性に関するスコアを計算する。このスコアに応じたランキングが上位であることは、モデルの推定結果が相対的に有効であることを意味するので、ランキングが上位の分類だけを利用して検索を実行すれば、あまり有効ではない推定結果が検索で利用されることを防止できる。このため、データを分類する技術において、推定結果の有効性に関するランキングを正確に決定することは重要である。
【0004】
例えば、特許文献1及び特許文献2には、ユーザが入力したクエリと、インターネットサービスにおける検索エンジンと、に基づいて検索を実行し、検索エンジンから出力された検索結果が最適なランキングになるように、検索結果のリランキングを実行する技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【文献】米国特許出願公開第2010/0185611号明細書
【文献】米国特許出願公開第2014/0289210号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1及び特許文献2の技術は、検索エンジンから出力された検索結果のリランキングを実行するものにすぎないので、モデルが推定した複数の分類に関するランキングを決定するものではない。このため、従来の技術では、モデルが推定した複数の分類に関するランキングを正確に決定することはできなかった。
【0007】
本開示の目的の1つは、モデルが推定した複数の分類に関するランキングを正確に決定することである。
【課題を解決するための手段】
【0008】
本開示に係るランキング決定システムは、第1データと、当該第1データに関する第1分類と、の関係が学習された第1モデルに基づいて、第2データに関する複数の第2分類を取得する第2分類取得部と、第3データと、当該第3データに関する第3分類と、の組み合わせの有効性が学習された第2モデルに基づいて、前記第2分類ごとに、前記第2データ及び当該第2分類の組み合わせの有効性に関する第2スコアを取得する第2スコア取得部と、前記第2分類ごとの前記第2スコアに基づいて、前記複数の第2分類に関する第2ランキングを決定する第2ランキング決定部と、を含む。
【発明の効果】
【0009】
本開示によれば、モデルが推定した複数の分類に関するランキングを正確に決定できる。
【図面の簡単な説明】
【0010】
【
図1】ランキング決定システムの全体構成の一例を示す図である。
【
図2】ユーザが検索サービスを利用する様子の一例を示す図である。
【
図5】ランキング決定システムで実現される機能の一例を示す機能ブロック図である。
【
図9】選択ログデータベースの一例を示す図である。
【
図10】第1モデル及び第2モデルの学習方法の一例を示す図である。
【
図11】ランキング決定システムで実行される処理の一例を示すフロー図である。
【
図12】第2実施形態の機能ブロックの一例を示す図である。
【
図13】第2実施形態で訓練データが生成される流れの一例を示す図である。
【
図14】第1実施形態に関する変形例の機能ブロックの一例を示す図である。
【
図15】第1実施形態及び第2実施形態に共通する変形例の機能ブロックの一例を示す図である。
【
図16】第1実施形態及び第2実施形態に共通する変形例の処理の流れの一例を示す図である。
【発明を実施するための形態】
【0011】
[1.第1実施形態]
本開示に係るランキング決定システムの実施形態の一例である第1実施形態を説明する。第1実施形態では、検索サービスにランキング決定システムを適用する場面を例に挙げる。ランキング決定システムは、種々の場面に適用可能である。他の場面への適用例は、後述の第2実施形態及び変形例で説明する。
【0012】
[1-1.ランキング決定システムの全体構成]
図1は、ランキング決定システムの全体構成の一例を示す図である。例えば、ランキング決定システム1は、検索サーバ10、ユーザ端末20、及び学習端末30を含む。ネットワークNは、インターネット又はLAN等の任意のネットワークである。ランキング決定システム1は、少なくとも1つのコンピュータを含めばよく、
図1の例に限られない。例えば、ランキング決定システム1は、検索サーバ10だけを含んでもよい。
【0013】
検索サーバ10は、サーバコンピュータである。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、フラッシュメモリ等の不揮発性メモリと、を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0014】
ユーザ端末20は、検索サービスを利用するユーザのコンピュータである。例えば、ユーザ端末20は、パーソナルコンピュータ、スマートフォン、タブレット端末、又はウェアラブル端末である。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様である。操作部24は、タッチパネル又はマウス等の入力デバイスである。表示部25は、液晶ディスプレイ又は有機ELディスプレイである。
【0015】
学習端末30は、後述の学習処理を実行するコンピュータである。例えば、学習端末30は、パーソナルコンピュータ、サーバコンピュータ、又はタブレット端末である。制御部31、記憶部32、通信部33、操作部34、及び表示部35の物理的構成は、それぞれ制御部11、記憶部12、通信部13、操作部24、及び表示部25と同様である。
【0016】
なお、記憶部12,22,32に記憶されるプログラムは、ネットワークNを介して供給されてもよい。また、各コンピュータには、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)と、外部機器とデータの入出力をするための入出力部(例えば、USBポート)と、の少なくとも一方が含まれてもよい。例えば、情報記憶媒体に記憶されたプログラムが、読取部及び入出力部の少なくとも一方を介して供給されてもよい。
【0017】
[1-2.ランキング決定システムの概要]
図2は、ユーザが検索サービスを利用する様子の一例を示す図である。例えば、ユーザが検索サーバ10にアクセスすると、検索サービスのトップページP1が表示部25に表示される。ユーザは、トップページP1の入力フォームF10に、クエリを入力する。ユーザがボタンB11を選択すると、検索サーバ10は、ユーザが入力したクエリに基づいて、ウェブページの検索処理を実行する。ユーザ端末20が検索サーバ10から検索処理の実行結果を受信すると、検索結果ページP2が表示部25に表示される。
【0018】
図2の例では、「white wind engineer boots」といったクエリが入力されている。「white wind」は、架空のアパレルブランドの名前である。「engineer boots」は、靴の種類である。ユーザは、「White wind」社が販売する「Engineer boots」のウェブページを検索したい、といった意図で、
図2のクエリを入力したと考えられる。
【0019】
しかしながら、クエリに含まれる単語には、種々の意味が存在する。このため、検索サーバ10が、クエリだけを利用して検索処理を実行しても、ユーザの意図に沿った検索結果ページP2を表示できない可能性がある。例えば、クエリ内の単語「white」は、色の名前でもある。「Engineer」といった架空のアパレルブランドが存在したとすると、クエリ内の単語「engineer」は、他のアパレルブランドの名前でもある。これらの意味により、ユーザが意図しないウェブページが検索される可能性がある。
【0020】
そこで、第1実施形態では、クエリから推定されたユーザの意図が検索処理で利用されるようになっている。例えば、ユーザの意図は、機械学習を利用したモデルにより推定される。以降、ユーザの意図を推定するモデルを、第1モデルという。第1モデルは、種々の機械学習手法を利用可能である。第1モデルは、教師有り学習、半教師有り学習、又は教師無し学習の何れであってもよい。例えば、第1モデルは、ニューラルネットワークを利用したモデル、又は、Transformerと呼ばれるモデルであってもよい。第1モデルは、自然言語処理の分野で利用される機械学習手法のモデルであればよい。また、例えば、第1モデルは、DiSMEC、ProXML、PPDSparse等のSparse Linear OVR(one-versus-reset)モデルであってよく、eXtreme-Text、Bonsai、NAPKINXC、Parabel等のPartitioningモデルであってよく、SLICE、AnnexML等のEmbeddingモデル(グラフベースモデル)であってよく、XR-Transformer、LightXML等のTransformerベースのモデルであってよい。
【0021】
図3は、第1モデルの一例を示す図である。例えば、第1モデルM1にクエリが入力されると、第1モデルM1は、ユーザの意図として、ユーザが検索したいと思われるウェブページの属性及び属性値を出力する。詳細は後述するが、属性及び属性値は、所定の観点でウェブページを分類可能な情報である。
図3の1~32の数値は、属性及び属性値のランキングである。第1モデルM1が計算した第1スコアの降順となるように、ランキングが決定される。詳細は後述するが、第1スコアは、第1モデルM1の推定結果の有効性(正しさ)に関する情報である。
【0022】
以降、第1モデルM1から得られるランキングを、第1ランキングという。例えば、第1ランキングの上位5位の属性及び属性値のみを、検索処理で利用したとする。第1モデルM1に十分に学習させた単語だけがクエリに含まれる場合、第1モデルM1の推定結果の精度は高くなる。この場合、ユーザの意図が正確に表現された属性及び属性値が上位になるので、検索処理の精度が高まる。
【0023】
一方で、第1モデルM1にあまり学習されていない単語がクエリに含まれる場合、第1モデルM1の推定結果の精度は低くなる可能性がある。例えば、架空のアパレルブランドの名前である「White wind」が第1モデルM1にあまり学習されていなかったとすると、
図3のように、第1モデルM1は、クエリ中の単語「white」を、色の名前として認識する可能性がある。第1モデルM1は、クエリ中の単語「engineer」を、他のアパレルブランドの名前として認識する可能性がある。
【0024】
図3の例では、属性「Brand」及び属性値「White wind」は、ユーザの意図を適切に表現しているが、上記の理由により、第1ランキングが下位になる可能性がある。同様に、属性「Shoes」及び属性値「Engineer boots」は、ユーザの意図を適切に表現しているが、第1モデルM1にあまり学習されていなければ、第1ランキングが下位になる可能性がある。ユーザの意図を適切に表現した属性及び属性値の組み合わせは、上位であることが好ましい。
【0025】
そこで、第1実施形態では、クエリと、第1モデルM1が推定した属性及び属性値と、の組み合わせの有効性を推定する第2モデルによって、第1ランキングのリランキングが実行される。以降、第2モデルの推定結果から得られたランキングを、第2ランキングという。第1実施形態では、第2ランキングは、リランキングが実行された後のランキングである。
【0026】
第2モデルは、種々の機械学習手法を利用可能である。第2モデルは、教師有り学習、半教師有り学習、又は教師無し学習の何れであってもよい。例えば、第2モデルは、ニューラルネットワークを利用したモデル、又は、Transformerと呼ばれるモデルであってもよい。第2モデルは、自然言語処理の分野で利用される機械学習手法のモデルであればよい。第2モデルは、クエリ間の距離(例えばテキストに基づくベクトル表現間の距離)の学習を行う距離学習モデル(Metric Learningモデル)であってよく、テキスト等のクエリに対し別のクエリを所定の基準に基づいてスコアリングし学習を行うランキング学習モデル(LTR:Learning To Rankモデル)であってよい。ここで、第2モデルは、ランキング学習モデルとして、ポイントワイズアプローチに基づくモデルを採用してよく、ペアワイズアプローチに基づくモデルを採用してよく、リストワイズアプローチに基づくモデルを採用してよく、各種アプローチの組み合わせに基づくモデルを採用してよい。
【0027】
図4は、第2モデルの一例を示す図である。例えば、クエリと、第1モデルM1が推定した属性及び属性値と、の組み合わせが第2モデルM2に入力されると、第2モデルM2は、これらの組み合わせの第2スコアを出力する。詳細は後述するが、第2スコアは、これらの組み合わせの有効性(正しさ)に関する情報である。第2スコアの降順となるように、第2ランキングが決定される。
【0028】
第1実施形態では、第2モデルM2には、第1モデルM1とは異なる観点で作成された訓練データが学習されている。このため、
図4のように、第1ランキングでは順位が低かった属性「Brand」及び属性値「White wind」の順位が、第2ランキングでは高くなる可能性がある。同様に、第1ランキングでは順位が低かった属性「Shoes」及び属性値「Engineer Boots」の順位が、第2ランキングでは高くなる可能性がある。
【0029】
以上のように、ランキング決定システム1は、第2モデルM2を利用して、第1ランキングのリランキングを実行することによって、ユーザの意図を正確に表す属性及び属性値の順位を上位にすることができるようになっている。以降、ランキング決定システム1の詳細を説明する。
【0030】
[1-3.ランキング決定システムで実現される機能]
図5は、ランキング決定システム1で実現される機能の一例を示す機能ブロック図である。
【0031】
[1-3-1.検索サーバで実現される機能]
データ記憶部100は、記憶部12により実現される。第2分類取得部101、第1ランキング決定部102、第2スコア取得部103、第2ランキング決定部104、及び検索部105は、制御部11により実現される。
【0032】
[データ記憶部]
データ記憶部100は、ユーザに検索サービスを提供するために必要なデータを記憶する。例えば、データ記憶部100は、ページデータベースDB1を記憶する。
【0033】
図6は、ページデータベースDB1の一例を示す図である。ページデータベースDB1は、検索サービスで検索可能なウェブページに関するデータベースである。例えば、ページデータベースDB1には、ウェブページのインデックスと、ウェブページのURLと、が関連付けられて格納される。ページデータベースDB1に格納されるデータは、任意のデータであってよく、
図6の例に限られない。例えば、ウェブページの実データ(例えば、HTMLデータ)が格納されてもよい。
【0034】
インデックスは、クエリとの比較対象となる情報である。インデックスは、任意の情報を利用可能である。例えば、ウェブページのタイトル、ウェブページの属性及び属性値、ウェブページに含まれる任意のキーワード、又はこれらの組み合わせがインデックスとして利用される。以降、ページデータベースDB1にインデックスとして格納された属性及び属性値を、第1属性及び第1属性値という。
【0035】
第1属性は、ウェブページを分類可能な情報である。第1属性は、ウェブページの種類、カテゴリ、又はジャンルということもできる。第1属性は、文字、数字、その他の記号、又はこれらの組み合わせによって表現される。第1属性は、所定の観点でウェブページを分類可能なものであればよく、任意の観点で第1属性を設定可能である。例えば、アパレルブランドのウェブページには、第1属性「Brand」が関連付けられる。例えば、靴のウェブページには、第1属性「Shoes」が関連付けられる。
【0036】
第1属性値は、第1属性の具体的な値である。第1属性には、少なくとも1つの第1属性値が関連付けられる。ウェブページには、ある第1属性に関連付けられた複数の第1属性値のうちの少なくとも1つが関連付けられる。第1属性値は、文字、数字、その他の記号、又はこれらの組み合わせによって表現される。第1属性値は、所定の観点で属性の詳細を定義するものであればよく、任意の観点で第1属性値を設定可能である。
【0037】
例えば、第1属性「Brand」には、種々のアパレルブランドの名前が第1属性値として関連付けられる。「White wind」社のウェブページには、第1属性「Brand」及び第1属性値「White wind」が関連付けられる。「White wind」社が複数の種類の靴を販売していたとすると、「White wind」社のウェブページには、第1属性「Shoes」に関連付けられた複数の第1属性値のうち、この靴の種類を示す第1属性値が関連付けられる。
【0038】
例えば、第1属性「Shoes」に、エンジニアブーツを示す第1属性値「Engineer boots」、ビジネスシューズを示す第1属性値「Business Shoes」、及びスニーカーを示す第1属性値「Sneaker」が関連付けられていたとする。この場合、エンジニアブーツのウェブページには、第1属性「Shoes」及び第1属性値「Engineer boots」が関連付けられる。ビジネスシューズのウェブページには、第1属性「Shoes」及び第1属性値「Business Shoes」が関連付けられる。スニーカーのウェブページには、第1属性「Shoes」及び第1属性値「Sneaker」が関連付けられる。
【0039】
第1実施形態では、ウェブページの作成者が、第1属性及び第1属性値を指定するものとする。例えば、「White wind」社の社員である作成者は、自社のウェブページに関連付けられる第1属性及び第1属性値を指定する。第1属性及び第1属性値は、ウェブページのタイトル等から自動的に抽出されてもよいし、検索サービスの管理者によりしていされてもよい。
【0040】
データ記憶部100は、学習済みの第1モデルM1を記憶する。第1モデルM1は、特徴量の計算等の処理を実行するためのプログラム部分と、重み等のパラメータ部分と、を含む。学習済みの第1モデルM1は、後述の第1学習部301により学習処理が実行された第1モデルM1である。
【0041】
データ記憶部100は、学習済みの第2モデルM2を記憶する。第2モデルM2は、特徴量の計算等の処理を実行するためのプログラム部分と、重み等のパラメータ部分と、を含む。学習済みの第2モデルM2は、後述の第2学習部302により学習処理が実行された第2モデルM2である。
【0042】
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。データ記憶部100は、任意のデータを記憶可能である。例えば、データ記憶部100は、トップページP1及び検索結果ページP2を表示させるためのデータを記憶してもよい。例えば、データ記憶部100は、後述のクエリデータベースDB3又は選択ログデータベースDB4を記憶してもよい。
【0043】
[第2分類取得部]
第2分類取得部101は、第1データと、当該ウェブページに関する第1分類と、の関係が学習された第1モデルM1に基づいて、第2データに関する複数の第2分類を取得する。この関係を第1モデルM1に学習させる学習処理は、後述の第1学習部301の箇所で説明する。
【0044】
第1実施形態では、ウェブページが第1データに相当する。このため、ウェブページについて説明している箇所は、第1データと読み替えることができる。第1データは、第1モデルM1の訓練データのうちの入力部分である。第1実施形態では、ウェブページに関するデータのうち、ウェブページのタイトルが第1データに相当する場合を説明するが、第1データは、第1モデルM1の学習に利用可能なデータであればよく、ウェブページのタイトルに限られない。例えば、第1データは、ウェブページから取得されたキーワード、ウェブページに含まれるタイトル以外の文字列、又はウェブページから作成された要約であってもよい。
【0045】
第1実施形態では、第1データは、検索処理で利用可能なインデックスである場合を説明するが、第1データは、特にインデックスとしては利用されないデータであってもよい。例えば、第1データは、ウェブページに含まれる文字列のうち、インデックスにはならない文字列であってもよい。第1データは、文字列そのものではなく、文字列の何らかの特徴を示す特徴量であってもよい。第1データは、任意の形式であってよく、文字列に限られない。例えば、第1データは、画像データ、動画データ、文書データ、音声データ、又はその他の任意のデータであってもよく、画像データ、動画データ、文書データ、音声データ、又はその他の任意のデータを含むデータ群から選択される1以上のデータの少なくとも一部に基づく特徴量、ベクトル表現、埋め込み表現であってよい。
【0046】
第1実施形態では、ウェブページに関連付けられた第1属性及び第1属性値の組み合わせが第1分類に相当する。このため、第1属性及び第1属性値の組み合わせについて説明している箇所は、第1分類と読み替えることができる。第1分類は、第1データを分類可能な情報である。第1分類は、第1モデルM1の訓練データのうちの出力部分である。
【0047】
第1実施形態では、第1分類は、検索処理で利用可能なインデックスである場合を説明するが、第1分類は、第1モデルM1の学習に利用可能な情報であればよく、特にインデックスとしては利用されないデータであってもよい。例えば、第1分類は、第1属性又は第1属性値の何れか一方のみであってもよい。第1分類は、任意の形式であってよく、文字列に限られない。例えば、第1分類は、分類を一意に識別可能なID又は番号のような情報であってもよい。複数の第1属性及び第1属性値の組み合わせが1つの第1分類として扱われてもよい。
【0048】
第1実施形態では、ユーザが入力したクエリが第2データに相当する。このため、ユーザが入力したクエリについて説明している箇所は、第2データと読み替えることができる。第2データは、第1モデルM1に入力されるデータである。第2データは、第1モデルM1による推定対象となるデータである。第2データは、第1データと同じ形式である。
【0049】
第2データは、第1モデルM1による推定対象となるデータであればよく、クエリに限られない。例えば、ユーザの意図ではなく、ウェブページを作成した作成者の意図を推定する場合には、第2データは、ウェブページのタイトル、ウェブページに含まれるタイトル以外の文字列、ウェブページのインデックスとして利用されるキーワード、又はウェブページから作成された要約であってもよい。第2データは、文字列そのものではなく、文字列の何らかの特徴を示す特徴量であってもよい。第2データは、任意の形式であってよく、文字列に限られない。例えば、第2データは、画像データ、動画データ、文書データ、音声データ、又はその他の任意のデータであってもよく、画像データ、動画データ、文書データ、音声データ、又はその他の任意のデータを含むデータ群から選択される1以上のデータの少なくとも一部に基づく特徴量、ベクトル表現、埋め込み表現であってよい。
【0050】
クエリに対して推定された属性及び属性値は、第2分類の一例である。以降、この属性及び属性値を、第2属性及び第2属性値という。このため、クエリに対して推定される第2属性及び第2属性値について説明している箇所は、第2分類と読み替えることができる。第2分類は、第2データを分類可能な情報である。第1実施形態では、第2データがクエリなので、第2分類は、ユーザがクエリを入力した意図である。第1実施形態では、第2モデルM2により有効性が推定されるので、第2モデルM2により有効性が推定される第2属性及び第2属性値は、第2分類に相当する。
【0051】
第2分類は、第1モデルM1の推定結果であればよく、クエリの第2属性及び第2属性値に限られない。例えば、第2分類は、クエリの第2属性又は第2属性値の何れかのみを示してもよい。第2分類は、任意の形式であってよく、文字列に限られない。例えば、第2分類は、分類を一意に識別可能なID又は番号のような情報であってもよい。複数の第2属性及び第2属性値の組み合わせが1つの第2分類として扱われてもよい。
【0052】
以降、第2属性及び第2属性値の組み合わせを説明する時は、単に第2分類という。第1実施形態では、第2分類取得部101は、ユーザがクエリを入力した場合に、クエリに関する複数の第2分類を取得する。第2分類取得部101は、ユーザが入力したクエリを第1モデルM1に入力する。第1モデルM1は、クエリの特徴量を計算する。第1モデルM1は、自身が推定可能な第2分類ごとに、第1スコアを出力する。
【0053】
第1スコアは、蓋然性、確度、又は尤度と呼ばれることもある。第1スコアが高いことは、推定結果が有効である(正しい)ことを意味する。第1スコアの計算方法自体は、種々の方法であってよい。例えば、ニューラルネットワークを利用する場合には、出力層により、第1スコアが計算される。第1スコア取得部は、第1モデルM1により出力された第1スコアを取得する。他の機械学習手法が利用される場合には、他の機械学習手法に応じた計算方法で第1スコアが計算されるようにすればよい。
【0054】
第1実施形態では、第2分類取得部101は、第2分類ごとに、第1モデルM1の推定結果の有効性に関する第1スコアを取得する。
図3及び
図4の例であれば、32通りの第2分類が存在する。第2分類取得部101は、32通りの第1スコアを取得する。第2分類は、任意の数であってよく、例えば、31通り以下又は33通り以上であってもよい。第1実施形態のように、検索サービスにランキング決定システム1を適用する場合、多数の第2分類が存在するので、実際には、数百~数千又はそれ以上の第1スコアが取得される。
【0055】
なお、第2分類取得部101は、第1スコアを取得しなくてもよい。例えば、第1ランキングを特に利用しない場合には、第2分類取得部101は、第1スコアを取得せずに、第2分類の組み合わせを取得してもよい。この場合、第1モデルM1は、第1スコアが閾値以上の第2分類の組み合わせだけを出力したり、第1スコアが高い順に所定数の第2分類だけを出力したりしてもよい。第1スコアは、第1モデルM1の内部的に計算されるだけであってもよい。第1スコアを利用せずに第2分類を出力可能とする場合には、第1スコアは計算されなくてもよい。
【0056】
[第1ランキング決定部]
第1ランキング決定部102は、ユーザがクエリを入力した場合に、第2分類ごとの第1スコアに基づいて、複数の第2分類に関する第1ランキングを決定する。第1ランキングは、第1モデルM1による推定結果に関するランキングである。例えば、第1ランキング決定部102は、第1スコアの降順となるように、第2分類取得部101が取得した複数の第2分類をソートすることによって、第1ランキングを決定する。
【0057】
図3及び
図4の例であれば、第2属性「Color」及び第2属性値「White」の組み合わせを示す第2分類の第1スコアが最も高いので、第1ランキング決定部102は、この第2分類が1位であると決定する。第1ランキング決定部102は、第2属性「Brand」及び第2属性値「Engineer」の組み合わせを示す第2分類の第1スコアが2番目に高いので、第1ランキング決定部102は、この第2分類が2位であると決定する。以降同様に、第1ランキング決定部102は、第1スコアが3番目以降の順位も決定する。
【0058】
第1実施形態では、第1モデルM1が推定可能な全ての第2分類が第1ランキングの集計対象になる場合を説明するが、一部の第2分類だけが第1ランキングの集計対象になってもよい。例えば、第1ランキング決定部102は、第1スコアが閾値以上の第2分類の中だけで、第1ランキングを決定してもよい。例えば、第1ランキング決定部102は、第1スコアが高い順に所定数の第2分類を選択し、当該選択された第2分類の中だけで、第1ランキングを決定してもよい。
【0059】
例えば、「White wind」といった架空のアパレルブランドのウェブページと、エンジニアブーツのウェブページと、が第1モデルM1に十分に学習されていなかったとする。この場合、
図3及び
図4のように、第1モデルM1の推定結果を第1スコア順にランキング付けしたとすると、第2属性「Brand」及び第2属性値「White wind」の組み合わせを示す第2分類の順位が低くなる。第2属性「Shoes」及び第2属性値「Engineer boots」の組み合わせを示す第2分類の順位が低くなる。
【0060】
なお、第1モデルM1が第1ランキングを出力してもよい。この場合、第1ランキング決定部102は、第1モデルM1に第1ランキングを決定させるようにすればよい。例えば、第1スコアの降順に第2分類を並べて第1ランキングとして出力するように、第1モデルM1の出力層を設定すれば、第1モデルM1に第1ランキングを出力させることができる。この場合、第1ランキングの決定が第1モデルM1内で完結するので、第1ランキング決定部102は、第1モデルM1から出力された第1ランキングを取得すればよい。
【0061】
[第2スコア取得部]
第2スコア取得部103は、第3データと、当該第3データに関する第3分類と、の組み合わせの有効性が学習された第2モデルM2に基づいて、第2分類ごとに、第2データ及び当該第2分類の組み合わせの有効性に関する第2スコアを取得する。この有効性を第2モデルM2に学習させる学習処理は、後述の第1学習部301の箇所で説明する。
【0062】
第1実施形態では、過去の検索で入力された過去クエリが第3データに相当する。このため、過去クエリについて説明している箇所は、第3データと読み替えることができる。第3データは、第2モデルM2の訓練データのうちの入力部分である。第3データは、第2モデルM2の学習に利用可能なデータであればよく、過去クエリに限られない。例えば、第3データは、ウェブページのタイトル、ウェブページに含まれるタイトル以外の文字列、ウェブページのインデックスとして利用されるキーワード、又はウェブページから作成された要約であってもよい。
【0063】
第1実施形態では、インデックスになりうるウェブページのタイトルも第3データに相当する場合を説明するが、第3データは、特にインデックスとしては利用されないデータであってもよい。例えば、第3データは、ウェブページに含まれる文字列のうち、インデックスにはならない文字列であってもよい。第3データは、文字列そのものではなく、文字列の何らかの特徴を示す特徴量であってもよい。第3データは、任意の形式であってよく、文字列に限られない。例えば、第3データは、画像データ、動画データ、文書データ、音声データ、又はその他の任意のデータであってもよく、画像データ、動画データ、文書データ、音声データ、又はその他の任意のデータを含むデータ群から選択される1以上のデータの少なくとも一部に基づく特徴量、ベクトル表現、埋め込み表現であってよい。
【0064】
第1実施形態では、過去の検索結果に対する選択結果に関する分類が第3分類に相当する。例えば、過去の検索結果の中から選択されたウェブページに関連付けられた属性及び属性値の組み合わせが第3分類に相当する。以降、この属性を、第3属性という。この属性値を、第3属性値という。このため、第3属性及び第3属性値の組み合わせについて説明している箇所は、第3分類と読み替えることができる。第3分類は、第3データを分類可能な情報である。第3分類は、第2モデルM2の訓練データのうちの出力部分である。
【0065】
第1実施形態では、第3分類は、検索処理で利用可能なインデックスである場合を説明するが、第3分類は、第2モデルM2の学習に利用可能な情報であればよく、特にインデックスとしては利用されないデータであってもよい。例えば、第3分類は、第3属性又は第3属性値の何れか一方のみであってもよい。第3分類は、任意の形式であってよく、文字列に限られない。例えば、第3分類は、分類を一意に識別可能なID又は番号のような情報であってもよい。複数の第3属性及び第3属性値の組み合わせが1つの第3分類として扱われてもよい。以降、第3属性及び第3属性値の組み合わせを説明する時は、単に第3分類という。
【0066】
第1実施形態では、第2スコア取得部103は、ユーザがクエリを入力した場合に、第2分類ごとに第2スコアを取得する。第2スコア取得部103は、ユーザが入力したクエリと、第1モデルM1により推定された第2分類と、の組み合わせを、第2モデルM2に入力する。第2モデルM2は、この組み合わせの特徴量を計算する。第2モデルM2は、この組み合わせごとに、第2スコアを出力する。
【0067】
第2スコアは、蓋然性、確度、又は尤度と呼ばれることもある。第2スコアが高いことは、組み合わせが有効である(正しい)ことを意味する。第2スコアの計算方法自体は、種々の方法であってよい。例えば、ニューラルネットワークを利用する場合には、出力層により、第2スコアが計算される。第2スコア取得部103は、第2モデルM2により出力された第2スコアを取得する。他の機械学習手法が利用される場合には、他の機械学習手法に応じた計算方法で第2スコアが計算されるようにすればよい。
【0068】
図3及び
図4の例であれば、クエリ及び第2分類の組み合わせが32通り存在する。第2スコア取得部103は、32通りの第2スコアを取得する。クエリ及び第2分類の組み合わせは、任意の数であってよく、例えば、31通り以下又は33通り以上であってもよい。第2スコアは、第2モデルM2から出力されるのではなく、第2モデルM2の内部的に計算されるだけであってもよい。この場合、第2モデルM2からの出力は、第2スコアではなく、第2ランキングであってもよい。
【0069】
第1実施形態のように、検索サービスにランキング決定システム1を適用する場合、多数の第2分類が存在するので、実際には、数百~数千又はそれ以上の第2スコアが取得される。第2分類取得部101により取得された全ての第2分類に対して第2スコアが取得されてもよいし、一部の第2分類に対してのみ第2スコアが取得されてもよい。例えば、第2スコアは、第1ランキングが所定順位以上の第2分類についてのみ取得されてもよい。
【0070】
[第2ランキング決定部]
第2ランキング決定部104は、第2分類ごとの第2スコアに基づいて、複数の第2分類に関する第2ランキングを決定する。第1実施形態では、第2ランキング決定部104は、ユーザがクエリを入力した場合に、第2ランキングを決定する。第2ランキングは、第2モデルM2による推定結果に関するランキングである。第2ランキング決定部104は、第2スコアの降順となるように、第2分類取得部101が取得した複数の第2分類をソートすることによって、第2ランキングを決定する。
【0071】
図4の例であれば、クエリ「white wind engineer boots」と、第2属性「Brand」及び第2属性値「White wind」の組み合わせを示す第2分類と、の第2スコアが最も高いので、第2ランキング決定部104は、この組み合わせが1位であると決定する。第2ランキング決定部104は、クエリ「white wind engineer boots」と、第2属性「Shoes」及び第2属性値「Engineer Boots」の組み合わせを示す第2分類と、の第2スコアが2番目に高いので、この組み合わせが2位であると決定する。以降同様に、第2ランキング決定部104は、第2スコアが3番目以降の順位を決定する。
【0072】
第1実施形態では、第1モデルM1が推定可能な全ての第2分類が第2ランキングの集計対象になる場合を説明するが、一部の第2分類だけが第2ランキングの集計対象になってもよい。例えば、第2ランキング決定部104は、第1スコア又は第2スコアが閾値以上の第2分類の中だけで、第2ランキングを決定してもよい。例えば、第2ランキング決定部104は、第1スコア又は第2スコアが高い順に所定数の第2分類を選択し、当該選択された第2分類の中だけで、第2ランキングを決定してもよい。
【0073】
なお、第2モデルM2が第2ランキングを出力してもよい。この場合、第2ランキング決定部104は、第2モデルM2に第2ランキングを決定させるようにすればよい。例えば、第2スコアの降順に第2分類を並べて第2ランキングとして出力するように、第2モデルM2の出力層を設定すれば、第2モデルM2に第2ランキングを出力させることができる。この場合、第2ランキングの決定が第2モデルM2内で完結するので、第2ランキング決定部104は、第2モデルM2から出力された第2ランキングを取得すればよい。
【0074】
[検索部]
検索部105は、ユーザがクエリを入力した場合に、当該クエリと、第2ランキング決定部104により決定された第2ランキングと、に基づいて、検索処理を実行する。第1実施形態では、検索部105は、ユーザがクエリを入力した場合に、クエリ、第1ランキング、及び第2ランキングに基づいて、検索処理を実行する。即ち、第2ランキングだけではなく、第1ランキングも検索処理で利用される。
【0075】
第1実施形態では、検索部105は、第1ランキング及び第2ランキングに基づいて、検索処理で利用する第2分類を選択する。例えば、検索部105は、第1ランキングが相対的に上位の第2分類と、第2ランキングが相対的に上位の第2分類と、を選択する。検索部105は、第1ランキング及び第2ランキングの両方が相対的に上位の第2分類を選択してもよい。相対的に上位とは、順位が所定順位以上のことである。この所定順位は、任意の順位であってよく、例えば、5位程度であってもよい。この所定順位は、固定値であってもよいし、ランキングが集計された第2分類の数に応じて、上位10%程度といったように動的に定まってもよい。
【0076】
検索部105は、ユーザが入力したクエリ及び当該選択された第2分類と、ページデータベースDB1に格納されたインデックスと、に基づいて、ウェブページの検索スコアを計算する。検索スコアは、クエリとインデックスとの一致度を示す。検索スコアの計算方法自体は、種々の検索エンジンで採用されている計算方法を適用可能である。検索部105は、検索スコアが高い順に所定数のウェブページを選択し、当該選択されたウェブページへのリンクを含む検索結果ページP2を生成する。
【0077】
検索部105は、ユーザ端末20に、検索結果ページP2のデータを送信する。検索部105は、ユーザ端末20からユーザによる選択結果を受信すると、ユーザが選択したリンクに対応するウェブページにユーザ端末20をアクセスさせる。検索部105は、ユーザが入力したクエリと、ユーザが選択したリンクに対応するウェブページと、の関係をデータ記憶部100に記録する。この関係は、後述の選択ログデータベースDB4に相当する。
【0078】
なお、検索部105は、第1ランキングを利用せずに、第2ランキングに基づいて、検索処理を実行してもよい。この場合、検索サーバ10は、第1ランキング決定部102を含まない。例えば、検索部105は、第1ランキングを利用せずに、第2ランキングに基づいて、検索処理で利用する第2分類を選択する。例えば、検索部105は、第2ランキングが相対的に上位の第2分類を選択する。以降の検索処理は、第1ランキングを利用する場合と同様である。
【0079】
[1-3-2.ユーザ端末で実現される機能]
データ記憶部200は、記憶部22により実現される。表示制御部201及び受付部202は、制御部21により実現される。
【0080】
[データ記憶部]
データ記憶部200は、ユーザに検索サービスを提供するために必要なデータを記憶する。例えば、データ記憶部200は、トップページP1及び検索結果ページP2を表示させるためのブラウザを記憶する。ユーザ端末20に表示される画面は、ブラウザではなく、検索サービス専用のアプリケーションが利用されてもよい。この場合、データ記憶部200は、当該アプリケーションを記憶する。
【0081】
[表示制御部]
表示制御部201は、種々の画面を表示部25に表示させる。例えば、表示制御部201は、検索サーバ10からトップページP1のデータを受信すると、トップページP1を表示部25に表示させる。表示制御部201は、検索サーバ10から検索結果ページP2のデータを受信すると、検索結果ページP2を表示部25に表示させる。
【0082】
[受付部]
受付部202は、操作部24から種々の操作を受け付ける。例えば、受付部202は、トップページP1の入力フォームF10に対するクエリの入力を受け付ける。ユーザ端末20は、当該入力されたクエリを検索サーバ10に送信する。例えば、受付部202は、検索結果ページP2が示す検索結果に含まれるリンクの選択を受け付ける。ユーザ端末20は、当該選択されたリンクを検索サーバ10に送信する。
【0083】
[1-3-3.学習端末で実現される機能]
データ記憶部300は、記憶部32により実現される。第1学習部301及び第2学習部302は、制御部31により実現される。
【0084】
[データ記憶部]
データ記憶部300は、第1モデルM1及び第2モデルM2の学習処理に必要なデータを記憶する。例えば、データ記憶部200は、訓練データベースDB2、クエリデータベースDB3、及び選択ログデータベースDB4を記憶する。
【0085】
図7は、訓練データベースDB2の一例を示す図である。訓練データベースDB2は、第1モデルM1の訓練データが格納されたデータベースである。第1モデルM1の訓練データは、入力部分と出力部分のペアを含む。第1モデルM1の訓練データの入力部分は、実際に第1モデルM1に入力されるデータと同じ形式である。本実施形態では、クエリを示す文字列が第1モデルM1に入力されるので、第1モデルM1の訓練データの入力部分は文字列である。
【0086】
第1モデルM1の訓練データの出力部分は、実際に第1モデルM1から出力されるデータと同じ形式である。本実施形態では、第2属性を示す文字列と、第2属性値を示す文字列と、の組み合わせが第1モデルM1から出力されるので、第1モデルM1の訓練データの出力部分は、第1属性を示す文字列と、第1属性値を示す文字列と、の組み合わせを含む。
【0087】
第1実施形態では、ページデータベースDB1に基づいて、第1モデルM1の訓練データが作成される。例えば、学習端末30は、ページデータベースDB1に格納されたウェブページのタイトルを、訓練データの入力部分として取得する。学習端末30は、このタイトルに関連付けられた第1属性及び第1属性値を、訓練データの出力部分として取得する。学習端末30は、これらのペアを、訓練データとして訓練データベースDB2に格納する。
【0088】
図8は、クエリデータベースDB3の一例を示す図である。クエリデータベースDB3は、不特定多数のユーザにより過去に入力された過去クエリが格納されたデータベースである。例えば、検索サーバ10は、検索処理を実行するたびに、この検索処理で利用されたクエリを、過去クエリとしてデータ記憶部100に蓄積する。学習端末30は、データ記憶部100に蓄積された過去クエリを取得し、クエリデータベースDB3に格納する。
【0089】
図9は、選択ログデータベースDB4の一例を示す図である。選択ログデータベースDB4は、選択ログデータが格納されたデータベースである。選択ログデータは、過去クエリに対する選択結果を示すデータである。選択ログデータは、クエリクリックログと呼ばれることもある。例えば、選択ログデータベースDB4には、過去クエリと、ページ情報と、が関連付けられて格納される。また、選択ログデータの過去クエリは、過去クエリの検索結果においてユーザにより選択されたウェブページのページ情報のうち、ユーザにより購入や契約などの取引が行われた商品を示すページ情報と関連付けられてよい。ここで、選択ログデータの過去クエリと関連付けられるページ情報は、ユーザによるウェブページの選択から所定時間以内に購入や契約などの取引が行われた商品を示すページ情報であってよい。また、選択ログデータの過去クエリは、過去クエリの検索結果においてユーザにより選択されたウェブページのページ情報のうち、ユーザによりお気に入りリストや買い物かご(バスケット)などの所定のリストに登録された商品を示すページ情報と関連付けられてよい。ここで、選択ログデータの過去クエリと関連付けられるページ情報は、ユーザによるウェブページの選択に次いでユーザによるお気に入りリストや買い物かご(バスケット)などの所定のリストへの登録が行われた商品を示すページ情報であってよい。また、選択ログデータの過去クエリは、共通する過去クエリの検索結果において複数または所定数以上のユーザにより選択されたウェブページのページ情報と関連付けられてよく、共通する過去クエリの検索結果において所定期間内で1又は複数のユーザにより所定回数以上、選択されたウェブページのページ情報と関連付けられてよい。
【0090】
ページ情報は、ウェブページに関する情報である。このウェブページは、過去クエリを入力したユーザが検索結果ページP2で選択したリンクが示すウェブページである。このウェブページは、ユーザにより実際に選択されているので、ユーザの意図に沿ったウェブページといえる。例えば、ページ情報は、ウェブページのタイトル、第3属性、及び第3属性値を含む。あるウェブページのタイトルに関連付けられる第3属性及び第3属性値は、ページデータベースDB1又は訓練データベースDB2に格納された、このウェブページのタイトルに関連付けられた第1属性及び第1属性値と同じである。ページ情報は、任意の情報を含んでよく、例えば、ウェブページのURLや閲覧日時を含んでもよい。
【0091】
データ記憶部200は、学習前の第1モデルM1及び第2モデルM2を記憶する。例えば、学習前の第1モデルM1及び第2モデルM2は、パラメータが初期値の第1モデルM1及び第2モデルM2である。学習処理の途中であれば、データ記憶部200は、学習途中の第1モデルM1及び第2モデルM2を記憶する。学習処理が実行された後であれば、データ記憶部200は、学習済みの第1モデルM1及び第2モデルM2を記憶する。これらの一連の第1モデルM1及び第2モデルM2は、データとしては同じものであるが、パラメータが徐々に更新される。
【0092】
[第1学習部]
図10は、第1モデルM1及び第2モデルM2の学習方法の一例を示す図である。第1学習部301は、第1モデルM1の学習処理を実行する。本実施形態では、訓練データベースDB2に格納されたデータが第1モデルM1の訓練データとして用いられる。第1学習部301は、この訓練データに基づいて、第1モデルM1の学習処理を実行する。例えば、第1学習部301は、訓練データの入力部分であるウェブページのタイトルが入力された場合に、訓練データの出力部分である第1属性及び第1属性値が出力されるように、第1モデルM1の学習処理を実行する。第1モデルM1の学習処理自体は、種々のアルゴリズムを利用可能であり、例えば、誤差逆伝播法又は勾配降下法を利用可能である。
【0093】
なお、第1モデルM1の学習処理は、上記の例に限られない。例えば、第1学習部301は、訓練データベースDB2を利用して学習処理を実行した第1モデルM1に対し、追加の訓練データを学習させてもよい。追加の訓練データの生成方法自体は、種々の方法を利用可能である。例えば、第1学習部301は、クエリデータベースDB3に格納された過去クエリを入力し、所定の推定方法に基づいて、第1モデルM1の推定結果の有効性を推定する。第1学習部301は、当該推定結果に基づいて、追加の訓練データを生成してもよい。
【0094】
[第2学習部]
第2学習部302は、第2モデルM2の学習処理を実行する。本実施形態では、選択ログデータベースDB4に格納されたデータが第2モデルM2の訓練データとして用いられる。第2学習部302は、この訓練データに基づいて、第2モデルM2の学習処理を実行する。例えば、第2学習部302は、訓練データの入力部分であるクエリと第3属性及び第3属性値との組み合わせが入力された場合に、当該組み合わせに関する有効性が出力されるように、第2モデルM2の学習処理を実行する。第1実施形態では、選択ログデータベースDB4に格納された組み合わせは、全て有効であるとの推定結果が得られるように、第2モデルM2の学習処理が実行されるものとする。
【0095】
図10の例であれば、第1モデルM1の出力も、第2モデルM2の訓練データとして利用される。第2学習部302は、クエリデータベースDB3に格納された過去クエリを、学習済みの第1モデルM1に入力する。第2学習部302は、第1モデルM1からの推定結果を取得する。
図10の例では、第1スコアが閾値以上の推定結果だけが、第3属性及び第3属性値として利用されるものとする。第2学習部302は、過去クエリと、第1スコアが閾値以上の推定結果である第3属性及び第3属性値と、を訓練データの候補C1として取得する。
【0096】
第2学習部302は、選択ログデータベースDB4のうちの全部又は一部を、訓練データの候補C2として取得する。第2学習部302は、候補C1及び候補C2の共通集合を、第2モデルM2の訓練データ群T1として取得する。共通集合は、候補C1及び候補C2のANDである。第2学習部302は、当該取得された訓練データ群T1に基づいて、第2モデルM2の学習処理を実行する。例えば、第2学習部302は、
図10の訓練データ群T1に含まれる過去クエリと、第3属性及び第3属性値と、の組み合わせが第2モデルM2に入力された場合に、有効であることを示す出力(高い第2スコア)が得られるように、第2モデルM2の学習処理を実行する。第2モデルM2の学習処理自体は、種々のアルゴリズムを利用可能であり、例えば、誤差逆伝播法又は勾配降下法を利用可能である。
【0097】
なお、第2モデルM2の学習処理は、上記の例に限られない。例えば、第2学習部302は、候補C2だけを利用して、第2モデルM2の学習処理を実行してもよい。例えば、第2学習部302は、候補C1だけを利用して、第2モデルM2の学習処理を実行してもよい。他にも例えば、第2学習部302は、候補C1でも候補C2でもない訓練データのデータベースを利用して、第2モデルM2の学習処理を実行してもよい。
【0098】
[1-4.ランキング決定システムで実行される処理]
図11は、ランキング決定システム1で実行される処理の一例を示すフロー図である。この処理は、制御部11,21,31が記憶部12,22,32に記憶されたプログラムに従って動作することによって実行される。
【0099】
図11のように、学習端末30は、訓練データベースDB2に基づいて、第1モデルM1の学習処理を実行する(S1)。学習端末30は、クエリデータベースDB3と、S1で学習処理が実行された第1モデルM1と、に基づいて、第1モデルM1からの出力を取得する(S2)。学習端末30は、選択ログデータベースDB4と、S2で取得された第1モデルM1からの出力と、の共通集合を取得する(S3)。
【0100】
学習端末30は、S3で取得した共通集合に基づいて、第2モデルM2の学習処理を実行する(S4)。S1~S4の処理は、
図10を参照して説明した学習処理である。S1~S4の処理により、学習済みの第1モデルM1及び第2モデルM2の作成が完了する。学習端末30は、検索サーバ10に対し、S1で学習処理が実行された第1モデルM1と、S4で学習処理が実行された第2モデルM2と、を送信する(S5)。
【0101】
検索サーバ10は、学習端末30から第1モデルM1及び第2モデルM2を受信すると、記憶部12に記録する(S6)。以降、第1モデルM1及び第2モデルM2が検索サービスで利用可能になる。ユーザ端末20は、検索サーバ10にアクセスし、トップページP1を表示部25に表示させる(S7)。ユーザ端末20は、検索サーバ10に対し、ユーザが入力フォームF10に入力されたクエリを送信する(S8)。
【0102】
検索サーバ10は、ユーザが入力したクエリを受信し(S9)、このクエリと、第1モデルM1と、に基づいて、第2分類ごとの第1スコアを取得する(S10)。検索サーバ10は、S10で取得された第1スコアに基づいて、第1ランキングを決定する(S11)。S11では、検索サーバ10は、第1スコアの降順となるように第2分類を並び替えることによって、第1ランキングを決定する。
【0103】
検索サーバ10は、ユーザが入力したクエリ、第1モデルM1により推定された第2分類、及び第2モデルM2に基づいて、当該クエリと当該第2分類の組み合わせごとに、第2スコアを取得する(S12)。検索サーバ10は、S12で取得された第2スコアに基づいて、第2ランキングを決定する(S13)。S13では、検索サーバ10は、第2スコアの降順となるように第2分類を並び替えることによって、第2ランキングを決定する。
【0104】
検索サーバ10は、S9で受信されたクエリ、S11で決定された第1ランキング、及びS13で決定された第2ランキングに基づいて、ページデータベースDB1の検索処理を実行する(S14)。S14では、検索サーバ10は、ユーザが入力したクエリと、第1ランキング又は第2ランキングが相対的に上位の第2分類と、を最終的なクエリとして、ページデータベースDB1の検索処理を実行する。ユーザ端末20は、検索サーバ10から検索結果を受信して検索結果ページP2を表示部25に表示させ(S15)、本処理は終了する。
【0105】
第1実施形態のランキング決定システム1は、第1モデルM1に基づいて、複数の第2分類を取得する。ランキング決定システム1は、第2モデルM2に基づいて、第2分類ごとに第2スコアを取得する。ランキング決定システム1は、第2分類ごとの第2スコアに基づいて、複数の第2分類に関する第2ランキングを決定する。これにより、第1モデルM1とは異なる観点で学習処理を実行した第2モデルM2を利用して、第1モデルM1の推定結果を評価することができるので、第2分類のランキングを正確に決定できる。
【0106】
また、ランキング決定システム1は、ユーザがクエリを入力した場合に、第2分類の取得、第2スコアの取得、及び第2ランキングの決定を実行する。ランキング決定システム1は、ユーザがクエリを入力した場合に、クエリと、第2ランキングと、に基づいて、検索処理を実行する。これにより、ユーザが入力したクエリに対し、ユーザの意図の推定結果である第2分類を付加したうえで検索処理を実行できるので、検索処理の精度が高まる。例えば、第2ランキングが相対的に上位の第2分類が付加されることによって、ユーザの意図をより正確に推定して検索処理を実行できるので、ユーザの意図を反映した検索結果をユーザに提示できる。
【0107】
また、ランキング決定システム1は、ユーザがクエリを入力した場合に、第2分類ごとの第1スコアを取得する処理と、第2分類ごとの第1スコアに基づいて第1ランキングを決定する処理と、を実行する。ランキング決定システム1は、ユーザがクエリを入力した場合に、クエリ、第1ランキング、及び第2ランキングに基づいて、検索処理を実行する。これにより、第2ランキングだけではなく第1ランキングも検索処理に反映できるので、検索処理の精度がより高まる。例えば、第1ランキングもある程度は信頼できることもあるので、第1ランキング及び第2ランキングの両方を検索処理に利用することによって、ユーザの意図をより反映した検索結果をユーザに提示できる。
【0108】
また、第1データは、検索処理で利用可能なインデックスである。第1分類は、インデックスに関する分類である。第3データは、過去の検索で入力された過去クエリである。第3分類は、過去の検索結果に対する選択結果に関する分類である。これにより、実際に検索処理で利用されるインデックスや実際に入力された過去クエリを利用して、第1モデルM1及び第2モデルM2を作成できるので、訓練データを用意する手間を省くことができる。更に、実際に検索サービスで利用されたデータを利用できるので、検索サービスの実情に合った精度の高い第1モデルM1及び第2モデルM2を作成できる。
【0109】
[2.第2実施形態]
ランキング決定システム1が適用される場面は、第1実施形態の例に限られない。ランキング決定システム1は、任意の場面に適用可能である。第2実施形態では、第1モデルM1の訓練データを生成するためにランキング決定システム1を適用する場合を例に挙げる。第2実施形態では、第1実施形態と同様の点については、説明を省略する。
【0110】
第2実施形態では、第2モデルM2は、第1モデルM1の訓練データを生成するために利用される。このため、検索処理の実行時には、第2モデルM2は利用されないものとする。検索サーバ10は、第2モデルM2を記憶しない。例えば、ユーザがトップページP1でクエリを入力すると、検索サーバ10は、このクエリと、第1モデルM1と、に基づいて、第2分類を取得する。
【0111】
例えば、検索サーバ10は、ユーザが入力したクエリと、第1スコアが相対的に高い第2分類と、に基づいて、検索処理を実行する。第1スコアが相対的に高い第2分類は、第1ランキングが所定順位以上の第2分類である。第1モデルM1の精度が十分に高ければ、第2実施形態のように検索処理を実行しても、精度の高い検索処理を実行可能である。第2実施形態では、第1モデルM1の精度を高めるために、第2モデルM2を利用して訓練データが生成される。
【0112】
図12は、第2実施形態の機能ブロックの一例を示す図である。ランキング決定システム1は、訓練データ生成部307を含む。第2実施形態では、第2分類取得部303、第1ランキング決定部304、第2スコア取得部305、及び第2ランキング決定部306が学習端末30で実現される。これらの各機能は、制御部31により実現される。第2実施形態では、検索サーバ10は、第2スコア取得部103及び第2ランキング決定部104は含まないものとする。
【0113】
図13は、第2実施形態で訓練データが生成される流れの一例を示す図である。以降、
図13を参照しつつ、
図12の各機能を説明する。例えば、訓練データ生成部307は、第2データと、第2ランキングと、に基づいて、第1モデルM1に学習させる訓練データを生成する。第2実施形態では、訓練データ生成部307は、第1ランキングと、第2ランキングと、に基づいて、訓練データを生成する。即ち、第2ランキングだけではなく、第1ランキングも訓練データの生成で利用される。
【0114】
第2実施形態では、第1実施形態と同様に、第1学習部301は、訓練データベースDB2に基づいて、第1モデルM1の学習処理を実行するものとする。この学習処理は、第1実施形態と同様である。第2実施形態では、この学習処理により作成された第1モデルM1が検索サーバ10に記憶されるわけではない。第1モデルM1は、以降説明する処理によって精度が高められたうえで、検索サーバ10に記憶される。なお、第2モデルM2の学習方法は、第1実施形態と同様であってよい。
【0115】
第2データの意味は、第1実施形態で説明した通りであるが、第2実施形態では、第2データが過去クエリであるものとする。このため、第2実施形態で過去クエリについて説明している箇所は、第2データと読み替えることができる。第2分類取得部303は、第1モデルM1と、過去クエリと、に基づいて、過去クエリの第2分類を取得する。例えば、
図13のように、第2分類取得部303は、クエリデータベースに格納された過去クエリを、第1モデルM1に入力する。第2分類取得部303は、第1モデルM1から出力された第2分類を取得する。
【0116】
第2実施形態では、第2分類は、過去クエリの第2属性及び第2属性値である。第1モデルM1は、第1実施形態と同様にして、第2分類ごとに第1スコアを計算する。第1ランキング決定部304は、第1実施形態と同様にして、第1ランキングを決定する。例えば、訓練データ生成部307は、
図13のように、第1ランキングが相対的に高い過去クエリと第2分類の組み合わせ(例えば、順位が5位以上の組み合わせ)を、訓練データ群T2として取得する。
【0117】
第2スコア取得部305は、第1実施形態と同様にして、過去クエリ及び第2分類の組み合わせの有効性に関する第2スコアを取得する。第2ランキング決定部306は、第1実施形態と同様にして、第2ランキングを決定する。
図13の例では、第2スコア取得部305は、第1モデルM1に入力された過去クエリと、第1モデルM1から出力された第2分類と、の組み合わせである候補C3に含まれる個々の組み合わせを、第2モデルM2に入力する。訓練データ生成部307は、
図13のように、第2ランキングが相対的に高い過去クエリと第2分類の組み合わせ(例えば、順位が5位以上の組み合わせ)を、訓練データ群T3として取得する。
【0118】
例えば、訓練データ生成部307は、訓練データ群T2及び訓練データ群T3に基づいて、第1モデルM1に追加で学習させる訓練データ群T4を取得する。
図13の例では、訓練データ生成部307は、第1ランキングが相対的に高い過去クエリ及び第2分類の組み合わせと、第2ランキングが相対的に高い過去クエリ及び第2分類の組み合わせと、の両方を訓練データ群T4として取得する。訓練データ生成部307は、これらの共通集合を訓練データ群T4として取得してもよい。第1学習部301は、第1モデルM1に訓練データ群T4を学習させる。訓練データ群T4の学習処理自体は、訓練データベースDB2に格納された訓練データの学習処理と同様である。
【0119】
なお、訓練データ生成部307は、第1ランキングを利用せずに、第2ランキングに基づいて、訓練データを生成してもよい。この場合、学習端末30は、第1ランキング決定部304を含まない。例えば、訓練データ生成部307は、第1ランキングを利用せずに、第2ランキングに基づいて、訓練データとして利用する第2分類を選択する。例えば、訓練データ生成部307は、第2ランキングが相対的に高い過去クエリ及び第2分類の組み合わせを、そのまま訓練データ群T4として選択してもよい。以降の学習処理は、第1ランキングを利用する場合と同様である。
【0120】
第2実施形態のランキング決定システム1は、第2データと、第2ランキングと、に基づいて、第1モデルM1に学習させる訓練データを生成する。これにより、第2ランキングが相対的に高いものが第1モデルM1に学習されるので、第1モデルM1の精度が高まる。第1モデルM1に学習させる訓練データの作成を自動化できるので、第1モデルM1の訓練データを作成する手間を省くこともできる。
【0121】
また、ランキング決定システム1は、第1ランキングと、第2ランキングと、に基づいて、訓練データを生成する。これにより、第2ランキングだけではなく第1ランキングも考慮して第1モデルM1の訓練データを作成できるので、より精度の高い訓練データを第1モデルM1に学習させることができる。その結果、第1モデルM1の精度が高まる。
【0122】
[3.変形例]
本開示は、以上に説明した第1実施形態及び第2実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0123】
[3-1.第1実施形態に関する変形例]
図14は、第1実施形態に関する変形例の機能ブロックの一例を示す図である。第1実施形態に関する変形例では、第3学習部308が実現される。第3学習部308は、制御部31により実現される。第1実施形態に関する変形例では、第1実施形態と同様に、検索処理の実行時に、第1ランキング及び第2ランキングが決定される。
【0124】
[変形例1-1]
例えば、検索部105は、第1ランキング、第2ランキング、及び第3モデルM3に基づいて、複数の第2分類に関する第3ランキングを決定し、ユーザが入力したクエリと、当該決定された第3ランキングと、に基づいて、検索処理を実行してもよい。第3モデルM3は、第1モデルM1及び第2モデルM2と同様、種々の機械学習手法を利用可能である。第3モデルM3は、機械学習以外の手法を利用したモデルであってもよい。例えば、第3モデルM3は、第1ランキング及び第2ランキングと、第3ランキングと、の関係が定義されたテーブル形式のデータであってもよい。
【0125】
第3モデルM3には、第1ランキング及び第2ランキングと、第3ランキングと、の関係が学習されている。この関係は、第3モデルM3の訓練データに定義されている。第3モデルM3の訓練データは、データ記憶部300に記憶されているものとする。第3学習部308は、ある訓練データに含まれる第1ランキング及び第2ランキングが入力された場合に、この訓練データに含まれる第3ランキングが出力されるように、第3モデルM3の学習処理を実行する。第3モデルM3の学習処理自体は、第1モデルM1及び第2モデルM2と同様、種々の機械学習手法の学習処理を利用可能である。
【0126】
例えば、検索部105は、第1ランキング及び第2ランキングのペアを、学習済みの第3モデルM3に入力する。第3モデルM3は、第1ランキング及び第2ランキングのペアに応じた第3ランキングを出力する。第3モデルM3には、第1ランキング及び第2ランキングのペアだけではなく、第2分類も入力されてもよい。この場合、第3モデルM3には、第2分類も学習されているものとする。検索部105は、第2分類も考慮された第3ランキングを取得する。
【0127】
例えば、検索部105は、ユーザが入力したクエリと、第3ランキングが相対的に高い第2分類(例えば、第3ランキングが所定順位以上の第2分類)と、に基づいて検索処理を実行する。第3ランキングが利用される点で第1実施形態とは異なるが、検索処理における他の点は、第1実施形態と同様である。
【0128】
変形例1-1のランキング決定システム1は、第1ランキング、第2ランキング、及び第3モデルM3に基づいて、複数の第2分類に関する第3ランキングを決定する。ランキング決定システム1は、クエリと、当該決定された第3ランキングと、に基づいて、検索処理を実行する。例えば、第1ランキングが相対的に高い第2分類と、第2ランキングが相対的に高い第2分類と、の両方を検索処理で利用する場合には、第2分類が多数になってしまい、検索処理で何もヒットしないといったことが起こり得るが、第3ランキングといった1つのランキングにまとめたうえで検索処理が実行されるので、必要最低限の第2分類を検索処理で利用できるので、検索処理の精度が高まる。不要な第2分類が検索処理で利用されるといったことを防止できるので、検索処理を高速化できる。
【0129】
[変形例1-2]
例えば、検索部105は、第2分類ごとの第1スコア、第2分類ごとの第2スコア、第1ランキング、第2ランキング、及び第3モデルM3に基づいて、第3ランキングを決定してもよい。この場合、第3モデルM3には、第1スコア、第2スコア、第1ランキング、及び第2ランキングと、第3ランキングと、の関係が学習されている。この関係は、第3モデルM3の訓練データに定義されている。第3モデルM3の学習処理自体は、変形例1-1で説明した通りである。
【0130】
検索部105は、第2分類ごとの第1スコア、第2分類ごとの第2スコア、第1ランキング、第2ランキングを、学習済みの第3モデルM3に入力する。第3モデルM3は、第2分類ごとの第1スコア、第2分類ごとの第2スコア、第1ランキング、第2ランキングの組み合わせに応じた第3ランキングを出力する。検索部105は、第1スコア及び第2スコアも考慮された第3ランキングを取得する。第3ランキングが取得された後の検索部105による検索処理は、変形例1-1と同様である。
【0131】
変形例1-2のランキング決定システム1は、第2分類ごとの第1スコア、第2分類ごとの第2スコア、第1ランキング、第2ランキング、及び第3モデルM3に基づいて、第3ランキングを決定する。これにより、第3ランキングを正確に決定できるので、検索処理の精度がより高まる。
【0132】
[変形例1-3]
例えば、検索部105は、第1ランキングと、第2ランキングと、の違いに基づいて、検索処理を実行してもよい。この違いは、第1ランキングにおける順位と、第2ランキングにおける順位と、の差である。
図3の例であれば、第2属性「Brand」及び第2属性値「White wind」の組み合わせを示す第2分類であれば、第1ランキングは32位であり、第2ランキングは1位なので、これらの違いは31となる。他の第2分類についても同様に、検索部105は、第2分類ごとに、第1ランキングと、第2ランキングと、の違いを取得する。
【0133】
例えば、検索部105は、第2ランキングにおいて第1ランキングから所定順位以上上がった第2分類に基づいて、検索処理を実行する。
図3の例であれば、第2属性「Brand」及び第2属性値「White wind」の組み合わせを示す第2分類が31位上がっているので、検索部105は、この第2分類に基づいて、検索処理を実行する。検索処理で利用される第2分類の選択方法が第1実施形態と異なるが、検索処理の実行方法自体は、第1実施形態と同様である。
【0134】
変形例1-3のランキング決定システム1は、第1ランキングと、第2ランキングと、の違いに基づいて、検索処理を実行する。これにより、例えば、第1モデルM1の推定結果と、第2モデルM2の推定結果と、の違いが大きく異なる第2分類を検索処理で利用することによって、第1ランキングだけを利用する場合に比べて、第1モデルM1では推定しきれないユーザの意図を推定したうえで検索処理を実行できるので、検索処理の精度が高まる。
【0135】
[変形例1-4]
例えば、第1実施形態で説明したように、第2属性と、第2属性値と、の組み合わせが第2分類に相当する場合、第1ランキング決定部102は、第2分類の第2属性ごとに、当該第2分類の属性値の第1ランキングを決定してもよい。
図3及び
図4の例では、全ての第2属性の中での第1ランキングが決定される場合を説明したが、第2属性ごとの第1ランキングが決定されてもよい。
【0136】
例えば、第2属性「Brand」に関連付けられた第2属性値(具体的なブランド名を示す文字列)が100個存在したとする。この場合、第1ランキング決定部102は、この100個の中で、第1ランキングを決定する。第1ランキング決定部102は、他の第2属性についても同様に、この第2属性の第2属性値となりうるn(nは2以上の整数)個の中で、第1ランキングを決定する。
【0137】
第2ランキング決定部104は、第2分類の第2属性ごとに、当該第2分類の属性値の第2ランキングを決定する。第2ランキング決定部104は、第2属性ごとの第2ランキングを決定する。上記の例における第2属性「Brand」の場合、第2ランキング決定部104は、100個の中で、第2ランキングを決定する。第2ランキング決定部104は、他の第2属性についても同様に、この第2属性の第2属性値となりうるn個の中で、第2ランキングを決定する。
【0138】
検索部105は、第2属性ごとの第2属性値の第1ランキング及び第2ランキングに基づいて、検索処理を実行する。例えば、検索部105は、第2属性ごとに、第1ランキング及び第2ランキングが相対的に上位の第2属性値を選択する。検索部105は、第2属性ごとに選択された第2属性値に基づいて、検索処理を実行する。検索処理で利用される第2分類の選択方法が異なるが、検索処理自体は、第1実施形態で説明した通りである。
【0139】
変形例1-4のランキング決定システム1は、第2属性ごとの第2属性値の第1ランキング及び第2ランキングに基づいて、検索処理を実行する。これにより、ある特定の第2属性ばかりが検索処理で利用されるといったことを防止できるので、検索処理の精度が高まる。
図3及び
図4の例であれば、第2属性「Brand」及び第2属性値「Engineer」の組み合わせを示す第2分類は、誤った第2分類である。この第2分類の第1スコア又は第2スコアが高かったとしても、第2属性「Brand」及び第2属性値「Engineer」の組み合わせを示す第2分類の第1スコア又は第2スコアよりも低ければ検索処理で利用されないので、誤った第2分類が検索処理で利用されにくくなる。
【0140】
[変形例1-5]
例えば、検索部105は、第1スコア及び第2スコアの少なくとも一方が相対的に高い第2属性値だったとしても、当該第2属性値の第2属性の中で第1ランキング及び第2ランキングが相対的に低い場合には、当該第2属性及び当該第2属性値に基づいては、検索処理を実行しない。検索部105は、第1スコア及び第2スコアの少なくとも一方が相対的に低い第2属性値だったとしても、当該第2属性値の第2属性の中で第1ランキング及び第2ランキングが相対的に高い場合には、当該第2属性及び当該第2属性値に基づいて、検索処理を実行してもよい。
【0141】
図3及び
図4の例であれば、第2属性「Brand」及び第2属性値「Engineer」の第1スコア及び第2スコアの少なくとも一方が、他の第2属性の第2属性値(例えば、
図3及び
図4には示さない第2属性「Color」及び第2属性値「Black」)の第1スコア及び第2スコアの少なくとも一方よりも相対的高かったとしても、同じ第2属性「Brand」及び第2属性値「White wind」の第1スコア及び第2スコアの少なくとも一方よりも低ければ、第2属性「Brand」及び第2属性値「Engineer」は、検索処理で利用されない。
【0142】
例えば、第2属性「Brand」及び第2属性値「White wind」の第1スコア及び第2スコアの少なくとも一方が、他の第2属性の第2属性値(例えば、第2属性「Color」及び第2属性値「White」)の第1スコア及び第2スコアの少なくとも一方よりも相対的低かったとしても、第2属性「Brand」の中で第1スコア及び第2スコアの少なくとも一方が相対的に高ければ、第2属性「Brand」及び第2属性値「White wind」は、検索処理で利用される。
【0143】
変形例1-5のランキング決定システム1は、ある特定の第2属性ばかりが検索処理で利用されるといったことを防止できるので、検索処理の精度が高まる。例えば、検索処理で利用したい第2属性値が全体的に第1スコア又は第2スコアが低かったとしても、この第2属性値が属する第2属性の中で上位であれば検索処理で利用できるようになるので、検索処理の精度が高まる。
【0144】
[3-2.第2実施形態に関する変形例]
第2実施形態に関する変形例を説明する。第2実施形態に関する変形例では、第2実施形態と同様に、第1モデルM1の訓練データを生成するために、第1ランキング及び第2ランキングが決定される。
【0145】
[変形例2-1]
例えば、訓練データ生成部307は、第1ランキングよりも第2ランキングの方が高い第2分類が第1モデルM1に学習されるように、訓練データを生成してもよい。訓練データ生成部307は、第2分類ごとに、第1ランキングにおける順位と、第2ランキングにおける順位と、を比較する。訓練データ生成部307は、第2ランキングにおける順位の方が高い第2分類を選択し、過去クエリと、当該選択された第2分類と、のペアを訓練データとして生成する。
【0146】
変形例2-1のランキング決定システム1は、訓練データ生成部307は、第1ランキングよりも第2ランキングの方が高い第2分類が第1モデルM1に学習されるように、訓練データを生成する。これにより、第1モデルM1が十分に学習できていないが、第2モデルM2はある程度学習できている過去クエリ及び第2分類を、第1モデルM1に学習させることができるので、第1モデルM1の精度が高まる。
【0147】
[変形例2-2]
例えば、変形例2-1とは逆に、訓練データ生成部307は、第1ランキングよりも第2ランキングの方が低い第2分類が第1モデルM1に学習されないように、訓練データを生成してもよい。訓練データ生成部307は、第2分類ごとに、第1ランキングにおける順位と、第2ランキングにおける順位と、を比較する。訓練データ生成部307は、第2ランキングにおける順位の方が低い第2分類を選択せずに、訓練データを生成する。
【0148】
変形例2-2のランキング決定システム1は、第1ランキングよりも第2ランキングの方が低い第2分類が第1モデルM1に学習されないように、訓練データを生成する。これにより、第1モデルM1がある程度学習できている過去クエリ及び第2分類が第1モデルM1に更に学習されることを防止できるので、第1モデルM1の過学習を防止して第1モデルM1の精度が高まる。
【0149】
[3-3.第1実施形態及び第2実施形態に共通する変形例]
第1実施形態及び第2実施形態に共通する変形例を説明する。
図15は、第1実施形態及び第2実施形態に共通する変形例の機能ブロックの一例を示す図である。第3データ選択部309及び第1データ選択部310は、制御部31により実現される。
図16は、第1実施形態及び第2実施形態に共通する変形例の処理の流れの一例を示す図である。以降では、第1実施形態の検索サービスを例に挙げるが、第2実施形態の検索サービスにも以降説明する処理を適用可能である。
【0150】
[変形例3-1]
例えば、ランダムサンプリングを利用して、複数の第2モデルM2が作成されてもよい。変形例3-1のランキング決定システム1は、第3データ選択部309を含む。第3データ選択部309は、複数の第3データが格納された第3データベースのうちの一部を、ランダムに繰り返し選択する。第3データベースは、第3データの候補が格納されたデータベースである。変形例3-1では、
図10で説明した共通集合の訓練データ群T1が第3データベースに相当する場合を説明する。
【0151】
図16の例では、k(kは2以上の整数)の第2モデルM2が作成される。ここでは、kを5とする第2モデルM2の数は、2つ以上であればよく、5つに限られない。例えば、第2モデルM2は、2つ、3つ、4つ、又は6つ以上であってもよい。例えば、第3データ選択部309は、
図10で説明した共通集合の訓練データ群T1の中から、1つ目の第2モデルM2-1に学習させる1つ目の訓練データ群T1-1を、ランダムに所定数だけ選択する。
【0152】
例えば、第3データ選択部309は、共通集合の訓練データ群T5の中から、2つ目の第2モデルM2-2に学習させる2つ目の訓練データ群T5-2を、ランダムに所定数だけ選択する。2つ目の訓練データ群T5-2は、1つ目の訓練データ群T5-1と完全同一にはならない。2つ目の訓練データ群T5-2は、1つ目の訓練データ群T5-1と部分一致する。以降同様に、第3データ選択部309は、3つ目以降の第2モデルM2-m(mは3以上k以下の整数)に学習させる3つ目以降の訓練データ群T1-mを選択する。
【0153】
第2学習部302は、ランダムに繰り返し選択された一部の第3データに基づいて、複数の第2モデルM2に関する学習処理を実行する。
図16の例では、第2学習部302は、1つ目の訓練データ群T1-1に基づいて、1つ目の第2モデルM2-1の学習処理を実行する。第2学習部302は、2つ目の訓練データ群T1-2に基づいて、2つ目の第2モデルM2-2の学習処理を実行する。以降同様に、第2学習部302は、3つ目以降の訓練データ群T1-mに基づいて、3つ目以降の第2モデルM2-mの学習処理を実行する。個々の学習処理は、第1実施形態で説明した通りである。
【0154】
第2スコア取得部103は、第2モデルM2ごとに、第2スコアを取得する。変形例3-1では、クエリ及び第2分類の組み合わせが複数の第2モデルM2の各々に入力される。kが5だとすると、第2スコア取得部103は、あるクエリ及び第2分類に対して、5つの第2スコアを取得する。第2ランキング決定部104は、第2モデルM2ごとに取得された第2スコアに基づいて、第2ランキングを決定する。例えば、第2ランキング決定部104は、第2分類ごとに第2スコアの平均値を計算する。第2ランキング決定部104は、平均値の降順となるように、第2ランキングを決定する。平均値は、単純平均であってもよいし、加重平均であってもよい。
【0155】
なお、第2ランキング決定部104は、第2スコアの平均値を計算するのではなく、第2モデルM2ごとに、第2ランキングを決定してもよい。kが5だとすると、5通りの第2ランキングが決定される。第2ランキング決定部104は、5通りの第2ランキングの平均順位を、最終的な第2ランキングとして決定してもよい。第2ランキングが決定された後の検索処理は、第1実施形態で説明した通りである。
【0156】
変形例3-1のランキング決定システム1は、ランダムサンプリングを利用して第2モデルM2の学習処理を実行する。ランキング決定システム1は、第2モデルM2ごとに取得された第2スコアに基づいて、第2ランキングを決定する。これにより、複数の第2モデルM2を利用できるので、1つの第2モデルM2だけを利用する場合よりも第2ランキングの精度が高まる。
【0157】
[変形例3-2]
例えば、変形例3-1のようなランダムサンプリングが実行される場合に、第3データ選択部309は、第2ランキングを上げる第2分類と同じ第3分類が関連付けられた第3データが優先的に選択されるように、共通集合の訓練データ群T1のうちの一部を、ランダムに繰り返し選択してもよい。変形例3-1では、第2ランキングを上げる第2分類は、検索サービスの管理者により指定されるものとする。第3データ選択部309は、k個の第2モデルM2のうちの所定数(例えば、kの7割程度)以上の第2モデルM2に、第2ランキングを上げる第2分類と同じ第3分類が関連付けられた第3データが選択されるように、訓練データ群T1のうちの一部をランダムに選択する。
【0158】
例えば、第2属性「Brand」及び第2属性値「White wind」の組み合わせを示す第2分類が、第2ランキングを上げる第2分類だったとする。この場合、第3データ選択部は、k個の第2モデルM2のうちの所定数以上の第2モデルM2に、この第2分類が学習されるように、訓練データ群T1のうちの一部をランダムに選択する。この第2分類は、検索サービスの管理者が手動で指定するのではなく、現状の第1モデルM1にあまり学習させていない第2分類が自動的に指定されてもよい。例えば、選択ログデータベースDB4の中であまり登場しない第2分類が自動的に指定されてもよい。
【0159】
変形例3-2のランキング決定システム1は、第2ランキングを上げる第2分類と同じ第3分類が関連付けられた第3データが優先的に選択されるように、第3データベースのうちの一部を、ランダムに繰り返し選択する。これにより、所定の第2分類の第2ランキングが上がりやすいように第2モデルM2の学習処理を実行できる。例えば、ユーザの意図を正確に表す第2分類であるが、選択ログデータベースDB4にあまり登場しない第2分類が存在したとしても、このような第2分類を第2モデルM2に優先的に学習させることができる。
【0160】
[変形例3-3]
例えば、ランダムサンプリングを利用して第1モデルM1が作成されてもよい。変形例3-3のランキング決定システム1は、第1データ選択部310を含む。第1データ選択部310は、複数の第1データが格納された訓練データベースDB2のうちの一部を、ランダムに繰り返し選択する。訓練データベースDB2は、第1データベースの一例である。このため、訓練データベースDB2と記載した箇所は、第1データベースと読み替えることができる。変形例3-3では、変形例3-1の第2モデルM2と同様、5つの第1モデルM1が作成される場合を例に挙げる。第1モデルM1の数は、2つ以上であればよく、5つに限られない。例えば、第1モデルM1は、2つ、3つ、4つ、又は6つ以上であってもよい。
【0161】
例えば、第1データ選択部310は、訓練データベースDB2の中から、1つ目の第1モデルM1に学習させる1つ目の訓練データ群を、ランダムに選択する。第1データ選択部310は、訓練データベースDB2の中から、2つ目の第1モデルM1に学習させる2つ目の訓練データ群を、ランダムに選択する。2つ目の訓練データ群は、1つ目の訓練データ群と完全同一にはならない。2つ目の訓練データ群は、1つ目の訓練データ群と部分一致する。以降同様に、第1データ選択部310は、3つ目~5つ目の第1モデルM1に学習させる3つ目~5つ目の訓練データ群を、ランダムに選択する。
【0162】
第1学習部301は、ランダムに繰り返し選択された一部の第1データに基づいて、複数の第1モデルM1に関する学習処理を実行する。第1学習部301は、1つ目の訓練データ群に基づいて、1つ目の第1モデルM1の学習処理を実行する。第1学習部301は、2つ目の訓練データ群に基づいて、2つ目の第1モデルM1の学習処理を実行する。以降同様に、第1学習部301は、3つ目~5つ目の訓練データ群に基づいて、3つ目~5つ目の第1モデルM1の学習処理を実行する。個々の学習処理は、第1実施形態で説明した通りである。
【0163】
第2分類取得部101は、第1モデルM1ごとに、複数の第2分類を取得する。変形例3-3では、クエリが複数の第1モデルM1の各々に入力される。例えば、第2分類取得部101は、第1モデルM1ごとに第1スコアを取得する。上記の例であれば、5つの第1モデルM1存在するので、第2分類取得部101は、ある1つの第2分類に対し、5つの第1スコアを取得する。第1ランキング決定部102は、第1モデルM1ごとに取得された第1スコアに基づいて、第1ランキングを決定してもよい。この場合、変形例3-1で説明した第2ランキングの決定方法と同様に、第1スコアの平均値が利用されてもよいし、5通りの第1ランキングを計算した平均順位が利用されてもよい。
【0164】
変形例3-3のランキング決定システム1は、ランダムサンプリングを利用して第1モデルM1の学習処理を実行する。ランキング決定システム1は、第1モデルM1ごとに取得された第1スコアに基づいて、第1ランキングを決定する。これにより、複数の第1モデルM1を利用できるので、1つの第1モデルM1だけを利用する場合よりも第1ランキングの精度が高まる。
【0165】
[3-4.その他の変形例]
例えば、上記説明した変形例を組み合わせてもよい。
【0166】
例えば、ランキング決定システム1は、検索サービス以外の他のサービスに適用してもよい。他のサービスは、任意のサービスであってよく、例えば、電子商取引サービス、SNS、百科事典サービス、旅行予約サービス、金融サービス、通信サービス、又は決済サービスであってよい。電子商取引サービスに適用される場合には、第1実施形態、第2実施形態、及び上記変形例で説明した検索サービスは、電子商取引サービスの中で提供されてもよい。この場合、電子商取引サービスで販売される商品のページがウェブページに相当する。各属性及び各属性値は、商品の属性及び属性値になる。
【0167】
例えば、ランキング決定システム1がSNSに適用される場合には、第1データ、第2データ、及び第3データは、ユーザの投稿である。各属性及び各属性値は、ユーザの投稿を分類するためのタグ及びタグの値になる。例えば、ランキング決定システム1がオンライン上の百科事典サービスに適用される場合には、第1データ、第2データ、及び第3データは、用語の意味を示すコンテンツである。各属性及び各属性値は、このコンテンツを分類するための属性及び属性値になる。他のサービスについても同様に、何らかのデータが分類される場面でランキング決定システム1を適用可能である。
【0168】
例えば、第1モデルM1及び第2モデルM2の機械学習手法として、マルチラベル(多クラス分類)に対応したモデルを例に挙げたが、1種類のラベルのラベリングだけが可能なモデルであってもよい。第1モデルM1及び第2モデルM2は、機械学習手法に分類されない他の学習手法を利用したモデルであってもよい。例えば、第1モデルM1及び第2モデルM2は、辞書又はルールを利用したモデルであってもよい。
【0169】
例えば、検索サーバ10で実現されるものとして説明した機能は、他のコンピュータで実現されてもよいし、複数のコンピュータで分担されてもよい。学習端末30で実現されるものとして説明した機能は、他のコンピュータで実現されてもよいし、複数のコンピュータで分担されてもよい。例えば、データ記憶部100,300に記憶されるものとしたデータは、データベースサーバに記憶されていてもよい。
【符号の説明】
【0170】
1 ランキング決定システム、N ネットワーク、10 検索サーバ、11,21,31 制御部、12,22,32 記憶部、13,23,33 通信部、20 ユーザ端末、24,34 操作部、25,35 表示部、30 学習端末、P1 トップページ、P2 検索結果ページ、100 データ記憶部、101,303 第2分類取得部、102,304 第1ランキング決定部、103,305 第2スコア取得部、104,306 第2ランキング決定部、105 検索部、200 データ記憶部、201 表示制御部、202 受付部、300 データ記憶部、301 第1学習部、302 第2学習部、307 訓練データ生成部、308 第3学習部、309 第3データ選択部、310 第1データ選択部、DB1 ページデータベース、DB2 訓練データベース、DB3 クエリデータベース、DB4 選択ログデータベース。