(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-07
(45)【発行日】2024-03-15
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
G06Q 10/04 20230101AFI20240308BHJP
G06F 16/906 20190101ALI20240308BHJP
【FI】
G06Q10/04
G06F16/906
(21)【出願番号】P 2021035167
(22)【出願日】2021-03-05
【審査請求日】2023-01-19
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】LINEヤフー株式会社
(74)【代理人】
【識別番号】100090033
【氏名又は名称】荒船 博司
(74)【代理人】
【識別番号】100093045
【氏名又は名称】荒船 良男
(72)【発明者】
【氏名】豊田 樹生
(72)【発明者】
【氏名】築地 毅
(72)【発明者】
【氏名】小松 広弥
(72)【発明者】
【氏名】齋藤 純
(72)【発明者】
【氏名】谷口 雄作
(72)【発明者】
【氏名】熊谷 賢
(72)【発明者】
【氏名】菅原 晃平
【審査官】和田 財太
(56)【参考文献】
【文献】特開2020-046805(JP,A)
【文献】特開2015-170151(JP,A)
【文献】特開2010-033377(JP,A)
【文献】特開2019-159769(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00
G06F 16/00
(57)【特許請求の範囲】
【請求項1】
ユーザによって入力された検索クエリに係る情報を取得する取得手段と、
前記検索クエリに係る情報を予測モデルに入力し、ユーザが検索対象として意図するエンティティ名称を予測する予測手段と、
を備え、
前記予測モデルは、
検索クエリに対するエンティティ名称候補の生起確率を確率分布により表現したモデルである確率分布モデルによる予測値と、
複数の決定木を含むモデルである決定木モデルによる予測値と、
の両者を組み合わせるモデルであることを特徴とする情報処理装置。
【請求項2】
前記予測モデルは、
前記確率分布モデルによる予測値と、前記決定木モデルによる予測値と、を線形補間することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記確率分布モデルは、検索クエリに対するエンティティ名称候補の生起確率をディリクレ-多項分布により表現したモデルであることを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記確率分布モデルは、検索クエリに対するエンティティ名称候補の生起確率を多項分布により表現したモデルであることを特徴とする請求項1又は2に記載の情報処理装置。
【請求項5】
前記決定木モデルは、ランダムフォレストであることを特徴とする請求項1から4のいずれか一項に記載の情報処理装置。
【請求項6】
前記決定木を生成する決定木生成手段を備えることを特徴とする請求項1から5のいずれか一項に記載の情報処理装置。
【請求項7】
前記決定木生成手段は、所定の検索エンジンにおいて検索結果として表示されたエンティティに係る情報に、検索時に入力された検索クエリに係る情報を紐づけた複数の事例を含むデータである検索履歴データを訓練データとして用いた機械学習により、前記決定木を生成することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記検索履歴データに含まれる事例から、前記エンティティが前記検索クエリを入力したユーザの意図に合致することが推定される事例である正例を抽出する抽出手段と、
前記抽出手段が抽出した前記正例に、正例であることを示す情報である正例ラベルを付与する正例ラベル付与手段と、
を備えることを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記検索履歴データは、前記エンティティに対するクリックの有無に係る情報を含み、
前記抽出手段は、前記検索履歴データに含まれる事例のうち、前記エンティティに対するクリックがあった事例を正例として抽出することを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記検索履歴データに含まれる事例について、各事例に付されたキーによって複数のブロックに分けるブロック分け手段を備えることを特徴とする請求項8又は9に記載の情報処理装置。
【請求項11】
前記検索履歴データに含まれる前記正例ラベルが付与された事例と、前記正例ラベルが付与されていない事例と、を用いた機械学習により、事例に対する正例ラベルの付与の有無に係る予測器を生成する予測器生成手段と、
前記予測器生成手段が生成した予測器を用いて、前記正例ラベルが付与されていない事例に対して重み付けを行う重み付け手段と、
を備えることを特徴とする請求項8から10のいずれか一項に記載の情報処理装置。
【請求項12】
前記検索履歴データに含まれる前記正例ラベルが付与された事例に前記予測器を適用して、ラベル付与確率の平均値を算出する算出手段を備え、
前記重み付け手段は、前記ラベル付与確率の平均値をさらに用いて、前記正例ラベルが付与されていない事例に対して重み付けを行うことを特徴とする請求項11に記載の情報処理装置。
【請求項13】
前記検索履歴データに含まれる各事例について、素性に係る情報を付与する素性情報付与手段を備えることを特徴とする請求項7から12のいずれか一項に記載の情報処理装置。
【請求項14】
情報処理装置が実行する情報処理方法であって、
ユーザによって入力された検索クエリに係る情報を取得する取得ステップと、
前記検索クエリに係る情報を予測モデルに入力し、ユーザが検索対象として意図するエンティティ名称を予測する予測ステップと、
を含み、
前記予測モデルは、
検索クエリに対するエンティティ名称候補の生起確率を確率分布により表現したモデルである確率分布モデルによる予測値と、
複数の決定木を含むモデルである決定木モデルによる予測値と、
の両者を組み合わせるモデルであることを特徴とする情報処理方法。
【請求項15】
コンピュータを、
ユーザによって入力された検索クエリに係る情報を取得する取得手段、
前記検索クエリに係る情報を予測モデルに入力し、ユーザが検索対象として意図するエンティティ名称を予測する予測手段、
として機能させ、
前記予測モデルは、
検索クエリに対するエンティティ名称候補の生起確率を確率分布により表現したモデルである確率分布モデルによる予測値と、
複数の決定木を含むモデルである決定木モデルによる予測値と、
の両者を組み合わせるモデルであることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
検索エンジンにおいては、ユーザがウェブ検索を行うに際して、検索クエリ(検索エンジンを使用した検索の際にユーザが検索エンジンに入力する文字列)を入力した際に、このような検索クエリから、ユーザが検索対象として意図するエンティティ(実在する概念)の名称を解釈し、エンティティリンキング(エンティティ名称を知識ベース上のエントリと結び付けること)を行った上で、当該エンティティに係る構造化された情報を表示することがある。
【0003】
そして、ユーザは、検索クエリとして、部分一致文字列(ユーザが検索対象として意図するエンティティ名称の一部と一致する文字列)を入力する場合があり、このような場合にエンティティリンキングを行うためには、部分一致文字列からユーザが意図するエンティティ名称を予測することが必要となる。そこで、部分一致文字列からエンティティ名称を予測するシステムが知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
検索結果として表示されたウェブページのうち、ユーザがクリックしたウェブページは、ユーザが検索対象として意図するエンティティと一致するものであることが推定されることから、部分一致文字列からのエンティティ名称の予測は、検索エンジンにおける、入力された検索クエリとウェブページへのクリック回数との対応関係に係るデータを基に予測モデルを構築し、当該予測モデルを用いて行うことが考えられる。
【0006】
しかしながら、部分一致文字列は、エンティティ名称のどの部分を切り取るかによって多数のパターンが考えられること等から、テイルクエリ(検索エンジンに稀にしか入力されない検索クエリ)となり易く、ウェブページへのクリック回数に係るデータを十分に取得できない場合が多い。
したがって、検索クエリとウェブページへのクリック回数との対応関係に係るデータのみに基づいて構築した予測モデルでは、このようなテイルクエリに対してのエンティティ名称の予測は難しく、部分一致文字列からのエンティティ名称の予測精度は十分なものではなかった。
【0007】
本発明の課題は、検索クエリとして入力された部分一致文字列からのユーザが検索対象として意図するエンティティ名称の予測精度を向上することである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、請求項1に記載の発明は、情報処理装置において、
ユーザによって入力された検索クエリに係る情報を取得する取得手段と、
前記検索クエリに係る情報を予測モデルに入力し、ユーザが検索対象として意図するエンティティ名称を予測する予測手段と、
を備え、
前記予測モデルは、
検索クエリに対するエンティティ名称候補の生起確率を確率分布により表現したモデルである確率分布モデルによる予測値と、
複数の決定木を含むモデルである決定木モデルによる予測値と、
の両者を組み合わせるモデルであることを特徴とする。
【0009】
請求項2に記載の発明は、請求項1に記載の情報処理装置において、
前記予測モデルは、
前記確率分布モデルによる予測値と、前記決定木モデルによる予測値と、を線形補間することを特徴とする。
【0010】
請求項3に記載の発明は、請求項1又は2に記載の情報処理装置において、
前記確率分布モデルは、検索クエリに対するエンティティ名称候補の生起確率をディリクレ-多項分布により表現したモデルであることを特徴とする。
【0011】
請求項4に記載の発明は、請求項1又は2に記載の情報処理装置において、
前記確率分布モデルは、検索クエリに対するエンティティ名称候補の生起確率を多項分布により表現したモデルであることを特徴とする。
【0012】
請求項5に記載の発明は、請求項1から4のいずれか一項に記載の情報処理装置において、
前記決定木モデルは、ランダムフォレストであることを特徴とする。
【0013】
請求項6に記載の発明は、請求項1から5のいずれか一項に記載の情報処理装置において、
前記決定木を生成する決定木生成手段を備えることを特徴とする。
【0014】
請求項7に記載の発明は、請求項6に記載の情報処理装置において、
前記決定木生成手段は、所定の検索エンジンにおいて検索結果として表示されたエンティティに係る情報に、検索時に入力された検索クエリに係る情報を紐づけた複数の事例を含むデータである検索履歴データを訓練データとして用いた機械学習により、前記決定木を生成することを特徴とする。
【0015】
請求項8に記載の発明は、請求項7に記載の情報処理装置において、
前記検索履歴データに含まれる事例から、前記エンティティが前記検索クエリを入力したユーザの意図に合致することが推定される事例である正例を抽出する抽出手段と、
前記抽出手段が抽出した前記正例に、正例であることを示す情報である正例ラベルを付与する正例ラベル付与手段と、
を備えることを特徴とする。
【0016】
請求項9に記載の発明は、請求項8に記載の情報処理装置において、
前記検索履歴データは、前記エンティティに対するクリックの有無に係る情報を含み、
前記抽出手段は、前記検索履歴データに含まれる事例のうち、前記エンティティに対するクリックがあった事例を正例として抽出することを特徴とする。
【0017】
請求項10に記載の発明は、請求項8又は9に記載の情報処理装置において、
前記検索履歴データに含まれる事例について、各事例に付されたキーによって複数のブロックに分けるブロック分け手段を備えることを特徴とする。
【0018】
請求項11に記載の発明は、請求項8から10のいずれか一項に記載の情報処理装置において、
前記検索履歴データに含まれる前記正例ラベルが付与された事例と、前記正例ラベルが付与されていない事例と、を用いた機械学習により、事例に対する正例ラベルの付与の有無に係る予測器を生成する予測器生成手段と、
前記予測器生成手段が生成した予測器を用いて、前記正例ラベルが付与されていない事例に対して重み付けを行う重み付け手段と、
を備えることを特徴とする。
【0019】
請求項12に記載の発明は、請求項11に記載の情報処理装置において、
前記検索履歴データに含まれる前記正例ラベルが付与された事例に前記予測器を適用して、ラベル付与確率の平均値を算出する算出手段を備え、
前記重み付け手段は、前記ラベル付与確率の平均値をさらに用いて、前記正例ラベルが付与されていない事例に対して重み付けを行うことを特徴とする。
【0020】
請求項13に記載の発明は、請求項7から12のいずれか一項に記載の情報処理装置において、
前記検索履歴データに含まれる各事例について、素性に係る情報を付与する素性情報付与手段を備えることを特徴とする。
【0021】
請求項14に記載の発明は、情報処理装置が実行する情報処理方法において、
ユーザによって入力された検索クエリに係る情報を取得する取得ステップと、
前記検索クエリに係る情報を予測モデルに入力し、ユーザが検索対象として意図するエンティティ名称を予測する予測ステップと、
を含み、
前記予測モデルは、
検索クエリに対するエンティティ名称候補の生起確率を確率分布により表現したモデルである確率分布モデルによる予測値と、
複数の決定木を含むモデルである決定木モデルによる予測値と、
の両者を組み合わせるモデルであることを特徴とする。
【0022】
請求項15に記載の発明は、情報処理プログラムにおいて、
コンピュータを、
ユーザによって入力された検索クエリに係る情報を取得する取得手段、
前記検索クエリに係る情報を予測モデルに入力し、ユーザが検索対象として意図するエンティティ名称を予測する予測手段、
として機能させ、
前記予測モデルは、
検索クエリに対するエンティティ名称候補の生起確率を確率分布により表現したモデルである確率分布モデルによる予測値と、
複数の決定木を含むモデルである決定木モデルによる予測値と、
の両者を組み合わせるモデルであることを特徴とする。
【発明の効果】
【0023】
本発明によれば、検索クエリとして入力された部分一致文字列からのユーザが検索対象として意図するエンティティ名称の予測精度を向上することができる。
【図面の簡単な説明】
【0024】
【
図1】実施形態に係る情報処理システムの構成を示すブロック図である。
【
図2】実施形態に係る情報処理システムの動作の流れの概略を示すフローチャートである。
【
図3】実施形態に係る情報処理システムの訓練事例の生成時の動作の流れを示すフローチャートである。
【
図4】実施形態に係る情報処理システムのPU学習時の動作の流れを示すフローチャートである。
【
図5】実施形態に係る情報処理システムの予測モデルの生成及び記憶時の動作の流れを示すフローチャートである。
【
図6】実施形態に係る情報処理システムのエンティティ名称の予測時の動作の流れを示すフローチャートである。
【
図7】実施形態に係る情報処理システムにおいて事例から抽出される素性の例を示す表である。
【
図8】実施例及び比較例に係るnDCG@5の計測結果を示すグラフである。
【
図9】実施例及び比較例において事例から抽出される素性の重要度示すグラフである。
【発明を実施するための形態】
【0025】
以下、
図1から
図9に基づいて、本発明の実施形態である情報処理システム100について説明する。ただし、本発明の技術的範囲は、図示例に限定されるものではない。
【0026】
[第1 構成の説明]
情報処理システム100は、検索エンジンにおいてユーザが入力した検索クエリに対応するエンティティ名称(ユーザが検索対象として意図するエンティティ名称)を予測するための予測モデルを生成すると共に、当該予測モデルを用いて、ユーザが検索エンジンにおいて検索クエリを入力した際に、当該検索クエリに対応するエンティティ名称を予測するためのシステムであり、
図1に示すように、サーバ装置1と、ユーザ端末2と、を備えて構成され、各装置の間は、通信ネットワークNを介して接続されている。
【0027】
[1 サーバ装置]
サーバ装置1は、情報処理システム100を管理・運営する管理者が保有するPC(Personal Computer)、WS(Work Station)等の情報機器であり、
図1に示すように、例えば、制御部11と、記憶部12と、通信部13と、表示部14と、操作部15と、を備えて構成されている。
【0028】
なお、サーバ装置1は、必ずしも単一のPC、WS等の情報機器によって実現されることを要せず、複数台のPC、WS等の情報機器が通信ネットワークNを介して接続されることで、複数台の情報機器により、サーバ装置1としての機能が実現されていてもよい。この場合、このような複数の情報機器が接続されたものが、本発明における情報処理装置に該当することとなる。
【0029】
[(1) 制御部]
制御部11は、サーバ装置1の動作を制御する部分であり、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等
を備えて構成され、記憶部12に記憶されたプログラムデータ等とCPUとの協働により、サーバ装置1の各部を統括制御する。
【0030】
[(2) 記憶部]
記憶部12は、サーバ装置1の運用に必要となる各種情報が記憶される部分であり、例えば、HDD(Hard Disk Drive)、半導体メモリ等により構成され、プログラムデータ等のサーバ装置1の運用に必要となるデータを、制御部11から読み書き可能に記憶する。
【0031】
記憶部12は、情報処理プログラム121と、決定木モデル1221及び確率分布モデル1222からなる予測モデル122と、検索履歴データD1等のデータが記憶される検索履歴データ記憶部123と、キーデータD3が記憶されるキーデータ記憶部124と、を備える。
【0032】
情報処理プログラム121は、サーバ装置1を動作させるための制御部11への各種命令を含むプログラムであり、後述の動作の説明において述べるサーバ装置1の動作は、情報処理プログラム121に従ってなされることとなる。
また、予測モデル122及び各記憶部に記憶されるデータの詳細は、後述の動作の説明の中で説明する。
【0033】
[(3) 通信部]
通信部13は、サーバ装置1と、ユーザ端末2との間の通信に用いられる部分であり、例えば、通信用IC(Integrated Circuit)及び通信コネクタなどを有する通信インターフェイスであり、制御部11の制御の元、所定の通信プロトコルを用いて、通信ネットワークNを介したデータ通信を行う。
【0034】
[(4) 表示部]
表示部14は、例えば、LCD(Liquid Crystal Display)等の表示画面を備え、制御部11から出力された表示制御信号に基づいた画像を表示画面に表示する。
【0035】
[(5) 操作部]
操作部15は、例えば、文字入力キー、数字入力キー、その他各種機能に対応付けられたキーを有するキーボード等を備え、例えば、管理者からの操作入力を受け付けて、操作入力に応じた操作信号を制御部11へと出力する。操作部15は、例えば、表示部14と一体的に形成されたタッチパネル等であってもよい。
【0036】
[2 ユーザ端末]
ユーザ端末2は、検索エンジンを利用して検索を行うユーザが使用するPC、スマートフォン、タブレット端末等の情報機器であり、
図1に示すように、例えば、サーバ装置1と同様に、制御部21と、記憶部22と、通信部23と、表示部24と、操作部25と、を備えて構成されている。また、通信部23から通信ネットワークNを介してサーバ装置1と接続され、サーバ装置1との間でデータを送受信可能とされている。
【0037】
[3 通信ネットワーク]
通信ネットワークNは、例えば、インターネット、電話回線網、携帯電話通信網、無線LAN通信網等であり、
図1に示すように、サーバ装置1と、ユーザ端末2と、の間を接続する。
通信ネットワークNとしては、上記のように各装置間を繋ぎ、これらの間でデータの送受信を行うことが可能なものであれば特に限定されない。
【0038】
[第2 動作の説明]
以下、本実施形態に係る情報処理システム100の使用時の動作の流れについて説明する。情報処理システム100の動作は、
図2のフローチャートに示すように、ステップS1からS4の4つのステップからなる。
【0039】
なお、クエリq 中の主要語ss,周辺語sc が与えられたときにエンティティの名称の候補のランキング〈s1, .., sn〉を算出するに際して、各々のsk (for k =1…n) は次のようにスコアリングされる:
【0040】
【0041】
ここで、ψはスコアリング関数、Eは知識ベース内でのエンティティの集合、Seはエンティティeから展開できるエンティティ名称の候補の集合である。
【0042】
[1 ステップS1:訓練事例生成]
まず、学習のための訓練事例を生成する際の本システムの動作について、
図3のフローチャートに従って説明する。
【0043】
[(1) ステップS1-1:検索履歴データの取得]
サーバ装置1は、まず、検索履歴データD1を取得する。検索履歴データD1は、所定の検索エンジンにおいて検索時に入力された検索クエリに係るデータである検索クエリデータD11と、検索結果として表示されたエンティティ(検索結果として表示されたURLに対応するエンティティ)に係るデータである表示エンティティデータD12と、表示エンティティデータD12に係るURLに対するクリックの有無に係るデータであるクリック有無データD13と、を紐づけたデータである。
【0044】
サーバ装置1は、検索履歴データD1を、所定の検索エンジンにおいて所定の期間においてなされた検索に係るデータを一括して取得する。
なお、表示エンティティデータD12に係るエンティティに、検索時に入力された検索クエリデータD11に係る検索クエリを組み合わせた組のそれぞれのことを、「事例」という。
【0045】
検索履歴データD1は、例えば、「伊藤 声優」という検索クエリデータD11と、「伊藤 声優」という検索クエリデータD11に対して検索結果として表示された「伊藤○×△」、「伊藤△△」、「伊藤□□」及び「伊藤××」という4個の表示エンティティデータD12と、「伊藤○×△:クリック有」、「伊藤△△:クリック無」、「伊藤□□:クリック無」、「伊藤××:クリック無」というクリック有無データD13と、が紐づけられたデータを含むこととなる。
【0046】
取得方法は特に限定されず、検索エンジンにおける検索結果に係る情報を管理する外部の所定のシステムと通信ネットワークNを介して通信の上、通信部13によって所定の検索エンジンに係る所定の期間の分を自動的に取得するようにしてもよいし、システムの管理者が所定の端末を使用して入力した際に、入力された情報を、通信部13によって通信ネットワークNを介して取得するようにしてもよい。
【0047】
通信部13によって検索履歴データD1を取得すると、制御部11は、取得した検索履歴データD1を、記憶部12の検索履歴データ記憶部123に記憶させる。
【0048】
[(2) ステップS1-2:正例ラベルの付与]
検索履歴データD1を取得すると、制御部11は、取得した表示エンティティデータD12について、クリックの有無によって分類した上で、クリック有の表示エンティティデータD12について、正例ラベルを付与する。
すなわち、クリックがあったエンティティは、ユーザの検索意図と一致する例(正例)であることが推定されることから、クリック有無データD13に基づいて、このようなエンティティに係る表示エンティティデータD12を抽出した上で、正例であることを示す情報である正例ラベルデータD2を紐付けて、記憶部12の検索履歴データ記憶部123に記憶させるようにすればよい。このようにクリックの有無に基づいて正例か否かを判断することで、正例の抽出が容易となる。
【0049】
上記の例であれば、制御部11は、「伊藤○×△」についてクリック有、「伊藤△△」、「伊藤□□」及び「伊藤××」についてクリック無と分類した上で、「伊藤○×△」に係る表示エンティティデータD12についてのみ正例ラベルを付与する(表示エンティティデータD12と紐づけるようにして、正例ラベルデータD2を記憶部12の検索履歴データ記憶部123に記憶させる)こととなる。
【0050】
なお、より詳細には、以下のようにして正例判定を行うことが好ましい。
すなわち、次の条件をすべて満たした場合、クエリqとエンティティ名称sは部分一致していると判定し、クエリq中の主要語ss、周辺語sc及びエンティティ名称sの組を正例とする。
(i) 主要語ssとエンティティ名称sが、下記のpkduckの判定式を満たす(δ=0)。又は事前に辞書登録されている。
【0051】
【数2】
(ii)q中の周辺語s
cがエンティティeの許可リストに登録されている。
(iii)エンティティ名称sと対応するウェブページに対してクエリqでクリックがある。
【0052】
[(3) ステップS1-3:キーの付与]
続いて、制御部11は、表示エンティティデータD12のそれぞれについて、対応するキーを付与する。
【0053】
すなわち、記憶部12のキーデータ記憶部124には、予めエンティティごとに付されたキーに係るデータであるキーデータD3が記憶され、データベースが構築されている。そこで、制御部11は、このようなキーデータ記憶部124に記憶されたキーデータD3から、表示エンティティデータD12のそれぞれに対応するデータを抽出の上、抽出したキーデータD3を、表示エンティティデータD12のそれぞれと紐付けて、記憶部12の検索履歴データ記憶部123に記憶させるようにすればよい。
【0054】
キーデータD3としては、予め、例えば人名に係るエンティティであれば、その苗字と職業とを含むデータとして作成しておけばよい。
【0055】
例えば、「伊藤○×△」、「伊藤△△」及び「伊藤□□」という名前の声優が実在していたとすると、これらのエンティティについては、キーデータD3として、「伊藤_声優」というキーが予めキーデータ記憶部124に記憶されている。
また、例えば、「伊藤××」という名前のタレントが実在していたとすると、このエンティティについては、キーデータD3として、「伊藤_タレント」というキーが予めキーデータ記憶部124に記憶されている。
【0056】
そこで、上記の例であれば、制御部11は、「伊藤○×△」、「伊藤△△」及び「伊藤□□」について、「伊藤_声優」というキーデータD3を、表示エンティティデータD12のそれぞれと紐付けて、記憶部12の検索履歴データ記憶部123に記憶させることによってキーを付与し、「伊藤××」について、「伊藤_タレント」というキーデータD3を、表示エンティティデータD12と紐付けて、記憶部12の検索履歴データ記憶部123に記憶させることによってキーを付与することとなる。
【0057】
なお、より詳細には、以下のようにしてキーを付与することが好ましい。
【0058】
正例と判定された事例からq-gramを基にした以下の手順によりブロッキングのためのキーを抽出する。
(i)エンティティ名称sを通常のq-gramと同様に文字n-gram に分割する。例えばn=2のとき“伊藤○×△”は“伊藤”,“藤○”,“○×”,“×△”の4つのキー(主キー)に分割される。
(ii)クエリq中の周辺語sc(サブキー)と主要語から抽出されたキーを結合する。例えばn=2,sc=“声優”のとき、“伊藤_声優”,“藤○_声優”,“○×_声優”,“×△_声優” という4つのキーが生成される。
(iii)結合後のキーの生起頻度を計測し、一定頻度を超えるキーは除外する。
【0059】
ラベル未付与の事例に対しても同様の方法でブロッキングのためのキーを抽出する。ここで、ラベル未付与の事例は、周辺語モデルおよび名前エンティティモデルのエンティティID同士を結合したレコードから生成される。このレコードのエンティティ名称および周辺語からそれぞれ主キー、サブキーを生成する。
【0060】
[(4) ステップS1-4:キーによるブロッキング]
続いて、制御部11は、ステップS1-3で付したキーによって、表示エンティティデータD12のブロッキング(グルーピング)を行う。
【0061】
すなわち、制御部11は、ステップS1-3で付したキーが同一である表示エンティティデータD12を同一のブロック(グループ)とするようにして、表示エンティティデータD12を複数のブロックに分ける。
【0062】
上記の例であれば、制御部11は、「伊藤_声優」というキーデータD3が付された「伊藤○×△」、「伊藤△△」及び「伊藤□□」の3つの表示エンティティデータD12について同一の第1のブロックとし、「伊藤_タレント」というキーデータD3が付された「伊藤××」という表示エンティティデータD12について他の第2のブロックとするようにして、ブロッキングを行うことなる。
【0063】
続いて、制御部11は、正例ラベル未付与事例のみで構成されているブロック(ブロックを構成する全ての表示エンティティデータD12に正例ラベルデータD2が紐付けられていないブロック)を除外した上で、除外されずに残ったブロックに含まれる正例ラベル未付与事例に対する主要語ssを同ブロック内の正例の主要語を複製することで生成する。
【0064】
[(5) ステップS1-5:素性の抽出及び付与]
続いて、制御部11は、ステップS1-4でブロッキングが完了した事例のそれぞれについて、素性を抽出し、素性データD4を付与する。
【0065】
具体的には、例えば、正例及び正例ラベル未付与の事例それぞれに対して、クエリ素性(Q)、エンティティ素性(E)、クエリエンティティ素性(QE)の3種類の素性の抽出を行う。素性の一覧を
図7に示す。
【0066】
なお、本実施形態では、素性のうちの一部をRandomized SVDにより次元圧縮したうえでランダムフォレスト(Random Forest)への入力とする。
【0067】
【0068】
【数4】
ここでXは各行が素性のベクトルである行列、U,Vは回転行列、Σは特異値の対角行列である。
Xに対して次元圧縮の回転行列Vを適用することはUΣを求めることと等価であるため、これを求めることで次元圧縮を行う。
【0069】
[2 ステップS2:PU学習]
続いて、ステップS1で生成した訓練事例を用いてPU(Positive Unlabelled)学習を行う際の本システムの動作について、
図4のフローチャートに従って説明する。
【0070】
まず、制御部11は、正例および正例ラベル未付与の事例を訓練用とテスト用の2つに分割する(ステップS2-1)。
【0071】
続いて、制御部11は、訓練用の正例および正例ラベル未付与の事例を入力とし、ラベルが付与されているか否かの予測器Aを生成する(ステップS2-2)。
【0072】
続いて、制御部11は、テスト用の正例に対して予測器Aを適用し、ラベル付与確率g(x)の平均である定数cを求める(ステップS2-3)。
定数cは、以下の式により表される。なお、Pは正例の集合、sはラベルの有無、nはPの事例数を表す。
【0073】
【0074】
続いて、制御部11は、ステップS2-2で生成したラベルの有無の予測器AとステップS2-3で算出した定数cにより、事例に重み付けを行う(ステップS2-4)。
具体的には、テスト用の正例ラベル未付与の事例に対して予測器Aを適用し、以下の式(6)の重みによりラベリングを行う。ここでw(x)は定数cへの依存を持つ。
【0075】
【0076】
また、具体的な重み付けは、例えば以下の通りとなる。
【0077】
【0078】
【0079】
制御部11は、テスト用事例と訓練用事例とを入れ替えて、ステップS2-2からS2-4を行い、全ての事例にラベルが付与されたことを利用し、エンティティ名称の生成確率の予測器Bを生成する(ステップS2-5)。具体的には、ステップS2-2からS2-4の過程を経てラベルが付与された事例を訓練データとして用いた機械学習により、ランダムフォレストの決定木(回帰木)を複数生成する。
【0080】
[3 ステップS3:予測モデルの生成及び記憶]
続いて、ステップS2で作成された決定木を基に、予測モデル122を生成し、これを記憶部12に記憶させる際の本システムの動作について、
図5のフローチャートに従って説明する。
【0081】
ステップS2-5で複数の決定木を生成すると、制御部11は、これら複数の決定木を含むランダムフォレストである決定木モデル1221を生成する(ステップS3-1)。
なお、決定木モデル1221は、ランダムフォレストが好ましいが、ステップS2で生成した複数の決定木を含むモデルであれよく、必ずしもこれに限定されない。
【0082】
また、制御部11は、検索履歴データD1を用いて、検索クエリに対するエンティティ名称候補の生起確率をディリクレ-多項分布により表現したモデル(遷移先と遷移元のクエリが同一になりやすいか否かによりパラメータベクトルを設定する。候補には遷移元のクエリの複製も含まれる。)を生成した上で、当該モデルからクエリの複製操作を取り除き、多項分布化した(パラメータベクトルのすべての要素をゼロにした)モデルである確率分布モデル1222を作成する(ステップS3-2)。
【0083】
なお確率分布モデル1222は上記のものが好ましいが、検索クエリに対するエンティティ名称候補の生起確率を確率分布により表現したモデルであればよく、必ずしも上記のものに限定されない。
【0084】
決定木モデル1221及び確率分布モデル1222を作成すると、制御部11は、これらを紐付けて、予測モデル122として記憶部12に記憶させる(ステップS3-3)。
【0085】
[4 ステップS4:エンティティ名称の予測]
続いて、ステップS3で記憶部12に記憶された予測モデル122を用いて、ユーザが検索エンジンに入力した検索クエリに対応するエンティティ名称を予測する際の本システムの動作について、
図6のフローチャートに従って説明する。
【0086】
ユーザが検索エンジンを使用する際に、ユーザ端末2の操作部25を用いて、検索することを希望する検索クエリを入力(ステップS4-1)すると、ユーザ端末2は、入力された検索クエリに係る情報である予測対象検索クエリデータD5を、通信部23から通信ネットワークNを介して、サーバ装置1へと送信する(ステップS4-2)。
【0087】
通信部13によって予測対象検索クエリデータD5を取得すると、制御部11は、予測対象検索クエリデータD5に係る検索クエリを、決定木モデル1221及び確率分布モデル1222にそれぞれ入力した上で、出力された予測値を線形補間することによってエンティティ名称を予測する(ステップS4-3)。なお、決定木モデル1221による予測値と確率分布モデル1222による予測値を組み合わせる方法は、線形補間が好ましいが、両者の値を組み合わせてエンティティ名称を予測することができるものであれば、線形補間に限られるものではない。
【0088】
エンティティ名称が予測されると、制御部11は、予測されたエンティティ名称に対応する情報を、所定の知識ベースから取得し、取得した情報であるエンティティリンキングデータD6を、通信部13から通信ネットワークNを介して、ユーザ端末2へと送信する(ステップS4-4)。
【0089】
ユーザ端末2においては、通信部23によってエンティティリンキングデータD6を受信すると、制御部21が、受信したエンティティリンキングデータD6を、表示部24に表示させる(ステップS4-5)。
【0090】
[第3 効果の説明]
次に、本実施形態に係る情報処理システム100の効果について説明する。
【0091】
まず、本実施形態に係る情報処理システム100によれば、検索クエリ-URLクリック頻度に基づくモデル(確率分布モデル1222)の予測値のみではなく、ランダムフォレスト(決定木モデル1221)の予測値を組み合わせてエンティティ名称を予測する。これによって、検索クエリとURLクリック頻度との関係にのみ依存することなくユーザが検索対象として意図するエンティティ名称を予測することが可能となることから、検索エンジンに稀にしか入力されない部分一致文字列が入力された場合においても、ユーザが検索対象として意図するエンティティ名称の予測精度を向上することが可能となり、検索クエリとして入力された部分一致文字列からのユーザが検索対象として意図するエンティティ名称の予測精度を向上することができる。
【0092】
また、本実施形態に係る情報処理システム100によれば、ブロッキングを用いた大規模分散処理のための効率的な訓練事例の自動生成方法を提案することができる。
【0093】
また、本実施形態に係る情報処理システム100によれば、エンティティ名称予測モデルのための新たな素性を提案することができる。
【0094】
また、本実施形態に係る情報処理システム100によれば、フィードバックの取得できない事例に対するPU学習を用いたラベリング手法を提案することができる。
【実施例】
【0095】
次に、本発明の実施例及び比較例により、エンティティ名称の予測を行った結果について説明する。
【0096】
[1 実施例及び比較例]
(1) 比較例1: DM
クエリ補完モデル。すなわち、下記のクリックログを用いて、所与のクエリに対するエンティティ名称候補の生起確率をディリクレ-多項分布により表現したモデル。
遷移先と遷移元のクエリが同一になりやすいか否かによりパラメータベクトルを設定する。
候補には遷移元のクエリの複製も含まれる。
【0097】
具体的には、以下の式で表される。なおNqsはクエリqでの名称sへのクリック頻度を表し、αqsは、q,sが同一表記で50か500、それ以外は1となる。
【0098】
【0099】
(2) 比較例2: CLK
DMからクエリの複製操作を取り除き、多項分布化した(パラメータベクトルのすべての要素をゼロにした)モデル。以下の式で表される。
【0100】
【0101】
(3) 比較例3: RF
ランダムフォレスト。Spark MLlib 2.4.5を使用。また、SVDによる次元圧縮にはCriteo Spark-RSVDを使用。
【0102】
(4) 実施例1: COMB(RF+DM)
RFとDMの予測値の線形補間モデル。以下の式で表される。βは、線形補間の係数であり、βが小さい程RFの比重が大きくなり、βが大きい程DMの比重が大きくなる。
【0103】
【0104】
(5) 実施例2: COMB(RF+CLK)
RFとCLKの予測値の線形補間モデル。以下の式で表される。βは、線形補間の係数であり、βが小さい程RFの比重が大きくなり、βが大きい程CLKの比重が大きくなる。
【0105】
【0106】
[2 データセット]
(1) クリックログ
2019年12月14日から2020年12月14日までの1年間にヤフー検索に対して発行されたクエリ及びそのとび先URLのログ。
【0107】
(2) タクソノミーおよび知識ベース
2020年12月15日付けのヤフー株式会社内製の統合的知識ベース。なお、以下の資料に記載されたものである。
Tomoya Yamazaki, Kentaro Nishi, Takuya Makabe, Mei Sasaki, Chihiro Nishimoto, Hiroki Iwasawa, Masaki Noguchi, and Yukihiro Tagami. A scalable and plug-in based system to construct a production-level knowledge base. In Proceedings of the 1st International Workshop on Challenges and Experiences from Data Integration to Knowledge Graphs co-located with the 25th ACM SIGKDD International Conference on
Knowledge Discovery &Data Mining, 2019.
【0108】
(3) 訓練事例
動作の説明のステップS1で説明した手順により生成した。正例8,600,161件、正例ラベル未付与事例4,773,930件が生成された。
【0109】
[3 評価用事例の作成]
次の手順により評価用事例を作成した。
(1)RFとCLKの予測結果間で順位一位のエンティティ名称が異なるようなクエリを抽出する。
(2)周辺語の付与されたクエリのうち人物、建造物、漫画、映画カテゴリに属するクエリをそれぞれ25例ランダムサンプリングして抽出する。
(3)周辺語の付与されていないクエリのうち空白文字を含むクエリ、含まないクエリをそれぞれ25例ランダムサンプリングして抽出する。
(4)計150クエリをヤフー検索に対して発行する。返却されたウェブページのそれぞれに対して、対応するエンティティ名称を記録する(対応が存在しない場合はEMPTYというメタタグを付与する)。
(5)クエリ-エンティティ名称に対して、3スケールで評価値を付与する。すなわち、所与のエンティティ名称が検索結果の1位(EMPTYの場合は空位)、又は上位10件の50%以上を占めている場合は2、それ以外で検索結果に含まれる場合は1、検索結果に含まれない場合は0とする。
【0110】
[4 nDCG@5の比較]
3で作成された評価用事例を用いてnDCG@5の計測を行った。
図8に、線形補間の係数βを[0,1]の範囲で変えたときの値の変化を示す。なお、RF、CLK、DMはβとは非依存である。
βの値が[0, 0.25]の範囲ではCLKがCOMB(RF+CLK)を上回る0.568を示した。
βの値が[0.25,1.0]の範囲ではCOMB(RF+CLK)がCLKを上回る0.593 を示した。
また、COMB(RF+DM)もβの値が[0, 0.55]の範囲で、DMのみの場合を上回る値を示している。
一方、DMは比較手法間で最も低い性能となった。これは、DMには遷移元のクエリを複製し、エンティティ名称の候補に加えるという操作が含まれているため、1位のエンティティ名称が正答と一致しにくくなり、nDCGのように順位の影響を受けやすい評価指標において不利に働いたためであると考えられる。
【0111】
[5 素性の分析]
図9にランダムフォレストの出力した分散に基づく素性の重要度の上位20件を示す。なお、ContLocVecに対する添え字はベクトルの要素の番号を示す。
【0112】
全体で最も効果が高かったのはMinMaxClickFreqで、次点はMinMaxContProbであった。一方、最小最大スケーリングを行わなかったClickFreq及びContProbは上位20件内ではあるものの、効果は大幅に劣るという結果になった。これによって、絶対値ではなくエンティティ名称候補間での相対値が重要であるということが分かる。
【0113】
全体で三番目に効果が高かったのはGrubbsSmirnovであった。訓練事例の中に、あるクエリに対する候補エンティティ名称間でのClickFreqの分布を考えた時に、外れ値を含むような分布が多く含まれていたということが考えられる。
【0114】
Randomized SVD により次元圧縮を行ったClassVec,SfreqVec,ContLocVecの3つのベクトルに関しては、この3つの中では相対的にContLocVecの効果が最も高かった。ContLocVecの分散表現は、エンティティのクラスや周辺語をClassVec及びSfreqVecよりも細かな粒度で表現しているため、これら2素性の役割を包含しているのではないかということが考えられる。
【0115】
また、ContLocVec自身よりもそこから派生しにContLocVecCosMean, ContLocVecCosVarの方が効果が高かった。ベクトル間の関係性を要約統計量で表現することで、より効果が高まったのではないかと考えられる。
【符号の説明】
【0116】
100 情報処理システム
1 サーバ装置(情報処理装置)
11 制御部(予測手段、決定木生成手段、抽出手段、正例ラベル付与手段、ブロック分け手段、予測器生成手段、重み付け手段、算出手段、素性情報付与手段)
12 記憶部
121 情報処理プログラム
122 予測モデル
1221 決定木モデル
1222 確率分布モデル
13 通信部(取得手段)
14 表示部
15 操作部
2 ユーザ端末
21 制御部
22 記憶部
23 通信部
24 表示部
25 操作部
N 通信ネットワーク
D1 検索履歴データ