(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-26
(45)【発行日】2024-04-03
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06F 16/332 20190101AFI20240327BHJP
【FI】
G06F16/332
(21)【出願番号】P 2023016764
(22)【出願日】2023-02-07
(62)【分割の表示】P 2021089033の分割
【原出願日】2021-05-27
【審査請求日】2023-02-07
(32)【優先日】2021-04-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100109380
【氏名又は名称】小西 恵
(74)【代理人】
【識別番号】100109036
【氏名又は名称】永岡 重幸
(72)【発明者】
【氏名】ジュリア ウイルソン
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2008-052548(JP,A)
【文献】特開2019-020939(JP,A)
【文献】国際公開第2014/050002(WO,A1)
【文献】特開2008-003721(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
第1のクエリを取得する第1クエリ取得部と、
前記第1クエリ取得部により取得された前記第1のクエリを複数のトークンに分割し、分割された1つまたは複数のトークンからなるクエリサブセットを複数生成するクエリサブセット生成部と、
前記クエリサブセット生成部により生成された前記クエリサブセットを前記第1のクエリと共有する第2のクエリを取得する第2クエリ取得部と、
ユーザの行動履歴に基づいて、前記第1のクエリまたは前記第2のクエリを、当該クエリの属性にリンクで接続し、前記リンクに重みを付与することで生成されたクエリモデルを参照することにより、前記第2のクエリの、前記第1のクエリに対する類似度を算出する類似度算出部と、
前記類似度算出部により算出された、前記第2のクエリの前記類似度に基づいて、前記クエリサブセットのスコアを算出するスコア算出部と、
複数の前記クエリサブセットのうち、前記スコア算出部により算出された前記スコアがより高いクエリサブセットを特定するクエリサブセット特定部と
を備えることを特徴とする情報処理装置。
【請求項2】
前記類似度算出部は、前記第2のクエリの検索結果セットが前記第1のクエリの検索結果セットに類似する程度として、前記類似度を算出する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記類似度算出部は、前記第1のクエリのクエリモデルと前記第2のクエリのクエリモデルとの間で共有される前記属性に接続される前記リンクに付与された前記重みを演算することにより、前記第2のクエリの前記類似度を算出する
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記類似度算出部は、前記第1のクエリのクエリモデルと前記第2のクエリのクエリモデルとの間で共有される前記属性に接続される前記リンクの対にそれぞれ付与された複数の前記重みを比較し、小さい値を持つ前記重みを複数の前記属性について加算することにより、前記第2のクエリの前記類似度を算出する
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記類似度算出部は、前記ユーザが操作を過去に実行したアイテムに関連付けられる情報を、前記第1のクエリおよび第2のクエリの間で比較することにより、前記第2のクエリの前記類似度を算出する
ことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記類似度算出部は、前記アイテムに関連付けられる情報を、前記属性として設定し、前記操作の頻度に基づいて、前記重みを付与することにより、前記クエリモデルを生成する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記スコア算出部は、すべての前記第2のクエリの前記類似度の幾何平均を算出することにより、前記クエリサブセットのスコアを算出する
ことを特徴とする請求項1から6のいずれか1項に記載の情報処理装置。
【請求項8】
前記第2クエリ取得部は、前記クエリサブセット生成部により生成された複数の前記クエリサブセットのそれぞれについて、前記第2のクエリを取得し、
前記スコア算出部は、複数の前記クエリサブセットのそれぞれについて、前記スコアを算出する
ことを特徴とする請求項1から7のいずれか1項に記載の情報処理装置。
【請求項9】
前記クエリサブセット生成部は、前記第1のクエリの文字列上、連続しない複数のトークンから、前記クエリサブセットを生成する
ことを特徴とする請求項1から8のいずれか1項に記載の情報処理装置。
【請求項10】
前記クエリサブセット特定部により特定された前記クエリサブセットに対応する検索結果が優先的に提示されるよう出力を制御する出力制御部をさらに備える
ことを特徴とする請求項1から9のいずれか1項に記載の情報処理装置。
【請求項11】
情報処理装置が実行する情報処理方法であって、
第1のクエリを取得するステップと、
取得された前記第1のクエリを複数のトークンに分割し、分割された1つまたは複数のトークンからなるクエリサブセットを複数生成するステップと、
生成された前記クエリサブセットを前記第1のクエリと共有する第2のクエリを取得するステップと、
ユーザの行動履歴に基づいて、前記第1のクエリまたは前記第2のクエリを、当該クエリの属性にリンクで接続し、前記リンクに重みを付与することで生成されたクエリモデルを参照することにより、前記第2のクエリの、前記第1のクエリに対する類似度を算出するステップと、
前記第2のクエリの前記類似度に基づいて、前記クエリサブセットのスコアを算出するステップと、
複数の前記クエリサブセットのうち、算出された前記スコアがより高いクエリサブセットを特定するステップと
を含むことを特徴とする情報処理方法。
【請求項12】
情報処理をコンピュータに実行させるための情報処理プログラムであって、該プログラムは、前記コンピュータに、
第1のクエリを取得する第1クエリ取得処理と、
前記第1クエリ取得処理により取得された前記第1のクエリを複数のトークンに分割し、分割された1つまたは複数のトークンからなるクエリサブセットを複数生成するクエリサブセット生成処理と、
前記クエリサブセット生成処理により生成された前記クエリサブセットを前記第1のクエリと共有する第2のクエリを取得する第2クエリ取得処理と、
ユーザの行動履歴に基づいて、前記第1のクエリまたは前記第2のクエリを、当該クエリの属性にリンクで接続し、前記リンクに重みを付与することで生成されたクエリモデルを参照することにより、前記第2のクエリの、前記第1のクエリに対する類似度を算出する類似度算出処理と、
前記類似度算出処理により算出された、前記第2のクエリの前記類似度に基づいて、前記クエリサブセットのスコアを算出するスコア算出処理と、
複数の前記クエリサブセットのうち、前記スコア算出
処理により算出された前記スコアがより高いクエリサブセットを特定するクエリサブセット特定処理と
を含む処理を実行させるためのものであることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法およびプログラムに関し、特に、入力されたクエリに対応して検索結果を提供するための技術に関する。
【背景技術】
【0002】
クエリ(query)は、検索エンジンに投入されることにより、検索エンジンに所望の検索結果を出力させる検索要求である。
例えば、ウェブ上に構築されるEC(Electronic Commerce)サイトは、検索エンジンを実装し、ユーザが購入を所望するアイテムを検索するためのクエリの入力を受け付けて、クエリに含まれる、検索のキーとなるキーワードに一致するタグでタグ付けされたアイテムを検索エンジンに検索させて、検索結果として得られたアイテムのリストをユーザに提示する。
【0003】
多くの検索エンジンは、複数のキーワードを1つのクエリに含むマルチワードクエリを許容する。マルチワードクエリは、ユーザにとって、ユーザの意図を複数の観点からクエリに反映させ易くするが、他方、複数の検索キーワードのすべてと完全に一致する検索結果のみを出力したのでは、本来出力されるべき検索結果が出力から漏れることになり、所望の検索結果が得られない。
【0004】
このため、マルチワードクエリを許容する検索エンジンでは、通常、1つのクエリの一部を構成するキーフレーズ(句)やキーワード(語)のいずれかと一致する検索結果を出力する部分一致(partial match)検索を採用することで、検索範囲を拡大し、より多数の検索結果を出力している。
しかしながら、1つのクエリに含まれる複数のキーフレーズやキーワードのそれぞれが、何を実際に購入したいか、のユーザの意図を、必ずしも均等に代表するわけではない。このため、部分一致検索では、ユーザの意図から大きく外れる検索結果も出力されるおそれがあり、検索精度が低下しかねない。
【0005】
特許文献1は、クエリをフレーズまたはキーワードに分類し、分類されたフレーズまたはキーワードから、ユーザの要望が表されていると判定されたフレーズまたはキーワードを選択する情報処理システムを開示する。
具体的には、特許文献1の情報処理システムにおいては、クエリタイプ分類部が、クエリを、フレーズ、キーワード、またはこれらの任意の組み合わせデータのいずれかに分類し、クエリタイプ判定部が、要望辞書データベースを検索して、分類されたフレーズ、キーワード、または組み合わせデータに対応するクエリタイプおよびクエリタイプスコアを取得し、取得されたクエリタイプスコアの高いフレーズ、キーワード、または組み合わせデータを選択する。
【0006】
クエリタイプは、「案内型」、「要望型」等、フレーズやキーワードの性質と要望に応じた分類パターンであり、クエリタイプスコアは、クエリタイプに従って事前定義される、推定されるユーザの要望の確度を数値化したスコアである。要望辞書データベースは、フレーズ、キーワード、または組み合わせデータごとに、対応するクエリタイプおよびクエリタイプスコアを記憶する。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1の技術によれば、1つのクエリを構成するキーフレーズやキーワードのうち、推定されるユーザの要望の確度の高いキーフレーズやキーワードを選択することができる。
しかしながら、特許文献1の技術では、クエリに含まれ得る構成要素であるキーフレーズやキーワードの候補のそれぞれについて、クエリタイプおよびクエリタイプスコアを事前に辞書に定義しておかなければならない。
このため、事前定義に係る登録や保守の負荷が増大するとともに、事前定義されていないクエリの構成要素についてはクエリタイプスコアを取得することができないため、柔軟性に欠け、検索精度が低下してしまうおそれがある。
【0009】
本発明は上記課題を解決するためになされたものであり、その目的は、クエリに含まれる構成要素のそれぞれを事前定義することなく、クエリの構成要素の中から、ユーザの意図により合致する構成要素を高精度に特定することが可能な情報処理装置、情報処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明に係る情報処理装置の一態様は、第1のクエリを取得する第1クエリ取得部と、前記第1クエリ取得部により取得された前記第1のクエリを複数のトークンに分割し、分割された1つまたは複数のトークンからなるクエリサブセットを複数生成するクエリサブセット生成部と、前記クエリサブセット生成部により生成された前記クエリサブセットを前記第1のクエリと共有する第2のクエリを取得する第2クエリ取得部と、ユーザの行動履歴に基づいて、前記第1のクエリまたは前記第2のクエリを、当該クエリの属性にリンクで接続し、前記リンクに重みを付与することで生成されたクエリモデルを参照することにより、前記第2のクエリの、前記第1のクエリに対する類似度を算出する類似度算出部と、前記類似度算出部により算出された、前記第2のクエリの前記類似度に基づいて、前記クエリサブセットのスコアを算出するスコア算出部と、複数の前記クエリサブセットのうち、前記スコア算出部により算出された前記スコアがより高いクエリサブセットを特定するクエリサブセット特定部とを備える。
【0011】
前記類似度算出部は、前記第2のクエリの検索結果セットが前記第1のクエリの検索結果セットに類似する程度として、前記類似度を算出してよい。
【0012】
前記類似度算出部は、前記第1のクエリのクエリモデルと前記第2のクエリのクエリモデルとの間で共有される前記属性に接続される前記リンクに付与された前記重みを演算することにより、前記第2のクエリの前記類似度を算出してよい。
【0013】
前記類似度算出部は、前記第1のクエリのクエリモデルと前記第2のクエリのクエリモデルとの間で共有される前記属性に接続される前記リンクの対にそれぞれ付与された複数の前記重みを比較し、小さい値を持つ前記重みを複数の前記属性について加算することにより、前記第2のクエリの前記類似度を算出してよい。
【0014】
前記類似度算出部は、前記ユーザが操作を過去に実行したアイテムに関連付けられる情報を、前記第1のクエリおよび第2のクエリの間で比較することにより、前記第2のクエリの前記類似度を算出してよい。
【0015】
前記類似度算出部は、前記アイテムに関連付けられる情報を、前記属性として設定し、前記操作の頻度に基づいて、前記重みを付与することにより、前記クエリモデルを生成してよい。
【0016】
前記スコア算出部は、すべての前記第2のクエリの前記類似度の幾何平均を算出することにより、前記クエリサブセットのスコアを算出してよい。
【0017】
前記第2クエリ取得部は、前記クエリサブセット生成部により生成された複数の前記クエリサブセットのそれぞれについて、前記第2のクエリを取得し、前記スコア算出部は、複数の前記クエリサブセットのそれぞれについて、前記スコアを算出してよい。
【0018】
前記クエリサブセット生成部は、前記第1のクエリの文字列上、連続しない複数のトークンから、前記クエリサブセットを生成してよい。
【0019】
上記情報処理装置は、前記クエリサブセット特定部により特定された前記クエリサブセットに対応する検索結果が優先的に提示されるよう出力を制御する出力制御部をさらに備えてよい。
【0020】
本発明に係る情報処理方法の一態様は、情報処理装置が実行する情報処理方法であって、第1のクエリを取得するステップと、取得された前記第1のクエリを複数のトークンに分割し、分割された1つまたは複数のトークンからなるクエリサブセットを複数生成するステップと、生成された前記クエリサブセットを前記第1のクエリと共有する第2のクエリを取得するステップと、
ユーザの行動履歴に基づいて、前記第1のクエリまたは前記第2のクエリを、当該クエリの属性にリンクで接続し、前記リンクに重みを付与することで生成されたクエリモデルを参照することにより、前記第2のクエリの、前記第1のクエリに対する類似度を算出するステップと、前記第2のクエリの前記類似度に基づいて、前記クエリサブセットのスコアを算出するステップと、複数の前記クエリサブセットのうち、算出された前記スコアがより高いクエリサブセットを特定するステップとを含む。
【0021】
本発明に係る情報処理プログラムの一態様は、情報処理をコンピュータに実行させるための情報処理プログラムであって、該プログラムは、前記コンピュータに、第1のクエリを取得する第1クエリ取得処理と、前記第1クエリ取得処理により取得された前記第1のクエリを複数のトークンに分割し、分割された1つまたは複数のトークンからなるクエリサブセットを複数生成するクエリサブセット生成処理と、前記クエリサブセット生成処理により生成された前記クエリサブセットを前記第1のクエリと共有する第2のクエリを取得する第2クエリ取得処理と、ユーザの行動履歴に基づいて、前記第1のクエリまたは前記第2のクエリを、当該クエリの属性にリンクで接続し、前記リンクに重みを付与することで生成されたクエリモデルを参照することにより、前記第2のクエリの、前記第1のクエリに対する類似度を算出する類似度算出処理と、前記類似度算出処理により算出された、前記第2のクエリの前記類似度に基づいて、前記クエリサブセットのスコアを算出するスコア算出処理と、複数の前記クエリサブセットのうち、前記スコア算出部により算出された前記スコアがより高いクエリサブセットを特定するクエリサブセット特定処理とを含む処理を実行させるためのものである。
【発明の効果】
【0022】
本発明によれば、クエリに含まれる構成要素のそれぞれを事前定義することなく、クエリの構成要素の中から、ユーザの意図により合致する構成要素を高精度に特定することができる。
上記した本発明の目的、態様及び効果並びに上記されなかった本発明の目的、態様及び効果は、当業者であれば添付図面及び請求の範囲の記載を参照することにより下記の発明を実施するための形態から理解できるであろう。
【図面の簡単な説明】
【0023】
【
図1】
図1は、本発明の実施形態に係るキーワード特定装置を含む検索システムの機能構成の一例を示すブロック図である。
【
図2】
図2は、本実施形態に係るキーワード特定装置が実行するキーワード特定処理の概略処理手順の一例を示すフローチャートである。
【
図3】
図3は、本実施形態に係るキーワード特定装置のクエリモデル生成部が生成し、クエリモデル記憶部が記憶する、クエリと属性との間の関係とその重みを規定するクエリモデルの一例を簡略化して説明する概念図である。
【
図4】
図4は、
図3のあるクエリについて類似度を算出する一例を説明する概念図である。
【
図5】
図5は、
図3の他のクエリについて類似度を算出する一例を説明する概念図である。
【
図6】
図6は、本実施形態に係るキーワード特定装置のシングル評価部が実行するシングル評価処理の詳細処理手順の一例を示すフローチャートである。
【
図7】
図7は、オリジナルのクエリに対して、あるシングルを共有する他のクエリの類似度を算出し、算出された類似度に基づいて当該シングルのスコアを算出する一例を説明する概念図である。
【
図8】
図8は、本実施形態に係るキーワード特定装置のハードウエア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0024】
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。以下に開示される構成要素のうち、同一機能を有するものには同一の符号を付し、その説明を省略する。なお、以下に開示される実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0025】
本実施形態に係るキーワード特定装置は、検索エンジンに投入すべきクエリを、クエリを構成する個々のトークンに分割し、1つまたは複数のトークンからなるシングル(shingle)を生成し、生成されたシングルのそれぞれについて、当該シングルを含むクエリを生成する。
本実施形態に係るキーワード特定装置はさらに、ユーザの行動履歴に基づいて生成されたクエリモデルを参照して、生成された各クエリのオリジナルのクエリに対する類似度を算出し、算出された類似度から、当該シングルのスコアを算出することにより、より高いスコアが算出されたシングルを、ユーザの意図により合致するキーワードとして特定する。
【0026】
以下では、本実施形態が、例えば、EC(Electronic Commerce)に実装される検索エンジンに適用され、ユーザがアイテムを購入するためマルチワードのクエリを入力するユースケースにおいて、ユーザの行動履歴に基づいてクエリ中でよりユーザの意図に合致するキーワードを選択する用途に適用される一例を説明するが、本実施形態はこれに限定されず、あらゆる用途の検索に適用可能である。
【0027】
<キーワード特定装置の機能構成>
図1は、本実施形態に係るキーワード特定装置1の機能構成の一例を示すブロック図である。
図1に示すキーワード特定装置1は、クエリ入力部11、クエリ分割部12、クエリモデル生成部13、シングル評価部14、および出力部15を備える。
キーワード特定装置1は、PC(Personal Computer)等で構成され
るクライアント装置(不図示)とネットワークを介して通信可能に接続してよい。この場合、キーワード特定装置1はサーバに実装され、クライアント装置は、キーワード特定装置1が外部と情報の入出力を実行する際のユーザインタフェースを提供してよく、また、キーワード特定装置1の各コンポーネント11~15の一部または全部を備えてもよい。
【0028】
図1を参照して、キーワード特定装置1、ユーザ行動履歴DB(データベース)2、検索エンジン3、およびクエリモデル記憶部4により、検索システムが構成され、キーワード特定装置1がユーザ行動履歴DB2にアクセスして、クエリモデルを生成してクエリモデル記憶部4に記憶し、キーワード特定処理の処理結果を検索エンジン3に供給する例が示されているが、本実施形態はこれに限定されない。例えば、キーワード特定装置1は、検索エンジン3内部に実装されてもよく、また、ユーザの行動履歴を検索エンジン3から直接取得してもよい。
【0029】
クエリ入力部11は、検索エンジン3に検索を実行させるための検索要求であるクエリを入力して、クエリ分割部12へ供給する。クエリ入力部11は、クエリを、ネットワークを介して接続されるクライアント装置からリアルタイムで受信してもよく、あるいは予め記憶装置に格納されたクエリを取得してもよい。
クエリ入力部11はまた、キーワード特定装置1においてキーワード特定処理を実行するために必要な各種パラメータの入力を受け付ける。クエリ入力部11は、キーワード特定装置1と通信可能に接続されるクライアント装置のユーザインタフェースを介して、各種パラメータの入力を受け付けてよい。
【0030】
クエリ分割部12は、クエリ入力部11から供給されるクエリを、複数のトークンに分割する。複数のキーワードを含むマルチワードのクエリから、複数のトークンに分割するには、クエリに文字列として記述されるキーワード間の区切り文字(スペース、カンマ、セミコロン等)を検出してもよく、あるいはクエリを形態素解析して、品詞に分解してもよい。
本実施形態において、クエリ分割部12はさらに、分割された複数のトークンから、後述するシングル評価部14による評価(スコア算出)の対象となる複数のシングルを生成し、生成された複数のシングルを、シングル評価部14に供給する。
【0031】
トークンとは、クエリに含まれるキーフレーズやキーワードを構成する意味的な最小単位であり、1つの語(ワード)が1つのトークンに相当する。
シングル(shingle)とは、クエリの部分一致(partial match)検索に使用されるキーフレーズまたはキーワードであり、1つまたは複数のトークン(語)から構成される。
【0032】
非限定的一例として、検索要求としてのクエリが、「travel coffee mug」であるものとする。この場合、クエリ「travel coffee mug」は、3つのトークン「travel」、「coffee」、および「mug」に分割される。各トークンはそれぞれ最小単位である1つの語(ワード)からなる。
これら3つのトークン「travel」、「coffee」、および「mug」から、2つのトークン(トークンのクラスタ)から構成されるシングルとして、「travel
coffee」、「travel mug」、「coffee mug」、1つのトークンから構成されるシングルとして、「travel」、「coffee」、および「mug」が、それぞれ生成される。
【0033】
本実施形態において、シングル「travel mug」から理解されるように、クエリ中で連続する語同士を組み合わせるだけでなく、クエリの文字列上、連続(隣接)しない語同士を組み合わせることでも、シングルが生成される。
このように、シングルは、1つのトークンまたは複数のトークンの任意の組み合わせで構成される、キーワードまたはキーフレーズである。すなわち、シングルは、トークンのセット(組)の任意のサブセットであり、クエリの任意のサブセット(クエリサブセット)である。マルチワードクエリからは、複数のシングル、すなわち、複数のクエリのサブセットが生成される。
以下、キーワードおよびキーフレーズを総称して、「キーワード」という。すなわち、キーワードとは、検索のキーとなる、1つまたは複数の語からなるものとする。シングルを生成することで、検索範囲を拡大し、より多くの検索結果が出力され得る。
【0034】
クエリモデル生成部13は、ユーザの行動履歴に基づいて、クエリモデルを生成し、クエリモデル記憶部4に出力する。クエリモデル記憶部4は、HDD(Hard Disk
Drive)、SSD(Solid State Drive)等の不揮発性記憶装置
で構成され、クエリモデル生成部により生成されたクエリモデルを記憶する。
クエリモデルとは、クエリと、当該クエリに関連付けられる1つまたは複数の属性と、クエリと各属性とを接続するリンクとから構成される、クエリと属性との意味的な関係をモデル化したグラフである。クエリと各属性とを接続するリンクには、リンクの両端に接続されるクエリと属性との間の関連性の大きさを示す重みが付与されている。クエリモデルは、複数のクエリを、これら複数のクエリの双方に関連付けられる1つまたは複数の属性を介して接続したグラフであってもよい。
【0035】
本実施形態において、クエリに関連付けられる属性とは、例えば、すでに購入されたアイテムを特徴付ける、アイテムのジャンル(カテゴリ)、ベンター(ブランド)、アイテム名ないしイテムID、価格帯、状態(新品、新古品、中古品等)、タグ(セール品、非セール品)等の情報を含んでよいが、これに限定されず、クエリに関連付けて取得することが可能なあらゆる情報であってよい。
【0036】
本実施形態では、クエリモデル生成部13は、ユーザ行動履歴DB2に格納されるユーザの行動履歴(behavior history)、例えば、投入されたクエリに対応してユーザが行った、アイテムに対して実行した操作、およびこれらの操作の頻度等に基づいて、クエリモデルを生成する。
なお、アイテムに対してユーザが実行する操作は、例えば、アイテムの画像やリンクをクリックする操作、アイテムの画像をタップして閲覧する操作、「お気に入り」のタブ付けする操作、購入操作等を含むがこれに限定されず、アイテムを購入するプロセスにおいて発生し得るあらゆる操作を含む。以下、これらの操作を単に、「操作」という。
【0037】
具体的には、クエリモデル生成部13は、投入されたクエリと、当該クエリに対応して購入されたアイテムとをリンクで接続し、各リンクに購入回数等に応じて重みが付与されたクエリモデルのグラフを生成し、生成されたグラフをクエリモデル記憶部4に記憶する。ユーザの操作等の行動をトラッキングすることで、購入されたアイテムの属性を、購入のため当初実行されたクエリにリンクすることができ、また、リンクに付与すべき重みを決定することができる。このように生成されるクエリモデルは、アイテム購入に関連付けられるユーザの意図をモデル化するものである。
クエリモデル生成部13は、ユーザ行動履歴DB2を参照して、検索エンジン3に対して過去に投入されたクエリおよび当該クエリに対応してユーザが行った操作から、クエリモデルを事前に生成してよい。クエリモデルは、ユーザごと個々に生成されてもよく、年齢層、性別、職業、過去の購入額等でグルーピングしたユーザ群について生成されてもよい。このクエリモデルの詳細は、
図4~
図6を参照して後述する。
【0038】
シングル評価部14は、クエリモデル記憶部4に記憶されるクエリモデルを参照して、クエリ分割部12から供給される複数のシングルをそれぞれ評価する。
具体的には、シングル評価部14は、クエリ入力部11に入力された、キーワード特定処理の処理対象であるクエリ(以下、「オリジナルクエリ」ともいう)と、当該オリジナルクエリから生成された複数のシングルとに基づいて、それぞれのシングルについて、当該オリジナルクエリに対するスコアを算出することにより、複数のシングルを評価する。
シングル評価部14が算出するスコアは、当該オリジナルクエリにおいて、各シングルがユーザの意図に合致している程度を示す指標となる。このシングル評価処理の詳細は、
図3を参照して後述する。
【0039】
出力部15は、シングル評価部14により高いスコアが算出された1つまたは複数のシングルを、表示装置等の出力デバイスに出力するとともに、検索エンジン3に供給する。出力部15はまた、キーワード特定装置1が実行するキーワード特定処理の各種入力データや各種処理結果、クエリモデル記憶部13が記憶するクエリモデル等を、表示装置等の出力デバイスを介して適宜出力してよい。
【0040】
<キーワード特定処理の処理手順>
図2は、本実施形態に係るキーワード特定装置1が実行するキーワード特定処理の処理手順の一例を示すフローチャートである。
なお、
図2の各ステップは、キーワード特定装置1のHDD等の記憶装置に記憶されたプログラムをCPUが読み出し、実行することで実現される。また、
図2に示すフローチャートの少なくとも一部をハードウエアにより実現してもよい。ハードウエアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからFPGA(Field Programmable Gate Array)上に自動的に専用回路を生成すればよい。また、FPGAと同様にしてGate Array回路を形成し、ハードウエアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。後述する
図3の各ステップについても同様である。
【0041】
S1で、キーワード特定装置1のクエリ入力部11は、検索エンジン3に検索を実行させるための検索要求であるクエリの入力を受け付ける。入力されるクエリは、複数のキーワードを含むマルチワードクエリであってよいが、単一のキーワードを含むシングルワードクエリであってもよい。クエリ入力部11は、ネットワークを介して接続されるクライアント装置からクエリを受信してもよく、あるいは予め記憶装置に格納されたクエリを取得してもよい。
S2で、キーワード特定装置1のクエリ分割部12は、クエリ入力部11から供給されるクエリを、複数のトークンに分割する。複数のトークンのそれぞれは、単一のキーワードである。
【0042】
S3で、キーワード特定装置1のクエリ分割部12は、S2で分割された複数のトークンから、複数のシングルを生成する。S1で入力されたクエリから、S2で生成されるシングルは、1つまたは複数のトークンからなる、クエリのサブセットである。それぞれのシングルは、シングル評価部14により評価されて、スコアが付与される。
【0043】
S4で、キーワード特定装置1のシングル評価部14は、S3で生成された複数のシングルのそれぞれに対して、スコアを算出することで、それぞれのシングルを評価する。
具体的には、シングル評価部14は、クエリモデル記憶部4に記憶されるクエリモデルを参照して、それぞれのシングルについて、S1でクエリを入力した当該ユーザの行動履歴に基づいて、S1で入力されたクエリに対するスコアを算出する。ここで算出されるシングルのスコアは、S1で入力されたクエリ中で、アイテム購入におけるユーザの意図にどれだけ合致しているか、すなわちユーザの意図を表現するのにどれだけ有意であるかの指標となる。シングル評価部14が実行するシングル評価処理の詳細は、
図6を参照して
後述する。
【0044】
S5で、キーワード特定装置1の出力部15は、S4でスコアが算出された複数のシングルのうち、高いスコアが算出された1つまたは複数のシングルを、ユーザの意図を最も顕著に表現するキーワードであると判断することができる。S5で、出力部15は、出力すべき1つまたは複数のシングルを、検索エンジン3に供給してよい。
検索エンジン3は、例えば、出力部15から供給されるシングルに対応する検索結果がより優先的にユーザに提示されるよう、クエリによる検索結果をソートしてよい。あるいは、検索エンジン3は、S1で入力されたクエリを検索キーとする検索結果が少数である場合や検索範囲が過度に狭い場合、出力部15から供給されるシングルを含む他のクエリを検索キーとして、再度検索を実行してもよい。これにより、検索の精度が向上し、ユーザの意図により合致する検索結果の提示が可能となる。
【0045】
<クエリモデルの生成およびクエリ間の類似度算出>
図3~
図5を参照して、クエリモデルの生成およびクエリ間の類似度算出を説明する。なお、
図3~
図5においては、説明を簡略化するため、各クエリが単一のキーワードからなるシングルワードクエリである例を説明するが、複数のキーワードを含むマルチワードクエリの場合でも同様に処理することができる。
【0046】
図3は、クエリと属性との間の関係とその重みを規定するクエリモデルの一例を簡略化して説明する概念図である。
図3を参照して、クエリ「pants」は、属性「kids」、「womens」、および「mens」とリンクにより接続されている。クエリ「pants」と属性「kids」との間のリンクには重み0.2が、クエリ「pants」と属性「womens」との間のリンクには重み0.3が、クエリ「pants」と属性「mens」との間のリンクには重み0.5が、それぞれ付与されている。
図3に示すクエリ「pants」のクエリモデルは、クエリ「pants」を検索エンジンに投入したユーザが、属性「kids」のカテゴリのアイテム、属性「womens」のカテゴリのアイテム、および属性「mens」のカテゴリのアイテムについて、操作等の行動履歴を有することを示している。すなわち、それぞれの属性は、投入されたクエリに対する検索結果をカテゴリ化して得られる属性であり、クエリ間の類似度は、オリジナルクエリの検索結果セットと他のクエリの検索結果セットとが類似する程度を示す。
それぞれのリンクに付与されている重みは、操作の頻度と相関を持つ。操作の種別に応じて、例えば、クリック操作より購入操作により高い重みが付与されるように、重みを設定してもよい。
【0047】
図3を参照して、クエリ「dress」、「jeans」、および「shirts」はそれぞれ、属性「kids」、「womens」、および「mens」とリンクにより接続されている。これらのクエリ「dress」、「jeans」、および「shirts」はそれぞれ、クエリ「pants」と、属性「kids」、「womens」、および「mens」を共有する他のクエリである。
図3において、クエリ「pants」が
図2のS1で入力されるオリジナルクエリ、クエリ「dress」、「jeans」、および「shirts」がそれぞれ、シングルのスコアを算出するために、クエリモデル記憶部4から読み出される他のクエリであるものとする。
【0048】
クエリ「dress」と属性「kids」との間のリンクには重み0.4が、クエリ「dress」と属性「womens」との間のリンクには重み0.6が、それぞれ付与されている。一方、クエリ「dress」は、属性「mens」に関連付けられていないため、属性「mens」へのリンクは持たない。
クエリ「jeans」と属性「kids」との間のリンクには重み0.3が、クエリ「jeans」と属性「womens」との間のリンクには重み0.2が、クエリ「jea
ns」と属性「mens」との間のリンクには重み0.5が、それぞれ付与されている。
クエリ「shirts」と属性「kids」との間のリンクには重み0.3が、クエリ「shirts」と属性「womens」との間のリンクには重み0.4が、クエリ「shirts」と属性「mens」との間のリンクには重み0.3が、それぞれ付与されている。
【0049】
図3において、他のクエリ「dress」、「jeans」、および「shirts」のクエリモデルは、オリジナルクエリ「pants」のクエリモデルと、属性をそれぞれ共有するため、オリジナルクエリ「pants」のクエリモデルにそれぞれ類似する。
図4は、
図3から、オリジナルクエリ「pants」のクエリモデルおよび他のクエリ「shirts」のクエリモデルを抽出した概念図である。
【0050】
本実施形態において、シングル評価部14は、オリジナルクエリと他のクエリとの間で共有される属性について、それぞれのクエリから属性へのリンクに付与された重みを演算することで、類似度を算出する。例えば、シングル評価部14は、対となるリンクの重みの最小値(pairwise minimum)を加算することにより、類似度を算出してよい。
図4を参照して、属性「womens」への対のリンクの重みの最小値は0.3、属性「kids」への対のリンクの重みの最小値は0.2、属性「mens」への対のリンクの重みの最小値は0.3である。このため、これら3つの最小値の和である0.8が、クエリ「shirts」のオリジナルクエリ「pants」に対する類似度となる。
【0051】
一方、
図5は、
図3から、オリジナルクエリ「pants」のクエリモデルおよび他のクエリ「jeans」のクエリモデルを抽出した概念図である。
図5を参照して、属性「womens」への対のリンクの重みの最小値は0.2、属性「kids」への対のリンクの重みの最小値は0.2、属性「mens」への対のリンクの重みの最小値は0.5である。このため、これら3つの最小値の和である0.9が、クエリ「jeans」のオリジナルクエリ「pants」に対する類似度となる。
図3~
図5に示す例において、クエリ「jeans」は、クエリ「shirts」より、オリジナルクエリ「pants」に対する類似度が高いと評価することができる。
【0052】
<シングル評価処理の詳細処理手順>
図6は、本実施形態に係るキーワード特定装置1のシングル評価部14が実行するシングル評価処理の詳細処理手順の一例を示すフローチャートである。
S41で、キーワード特定装置1のシングル評価部14は、
図2のS1で入力されたオリジナルクエリの属性および重みを決定する。
具体的には、シングル評価部14は、クエリモデル記憶部4を参照して、S1で入力されたオリジナルクエリのクエリモデルがクエリモデル記憶部4にすでに記憶されている場合には、クエリモデル記憶部4からオリジナルクエリのクエリモデルを読み出し、S42をスキップして、S43に進む。
【0053】
一方、オリジナルクエリのクエリモデルがクエリモデル記憶部4に記憶されていない場合は、シングル評価部14は、ユーザ行動履歴DB2を参照して、S1でオリジナルクエリを入力したユーザが過去に購入したアイテムに関連付けられる属性を取得して、オリジナルクエリの属性として決定してよく、あるいは、オリジナルクエリが入力された際に表示されているECサイトのページの情報から購入しようとするアイテムの属性を推定してもよい。また、重みには属性ごとに、所定の初期値が設定されてよい。あるいは、シングル評価部14は、例えば、オリジナルクエリと最も多くのトークンを共有するクエリのクエリモデルをクエリモデル記憶部13から読み出して、読み出されたクエリモデルが有する属性および重みを、オリジナルクエリの属性および重みとして決定、あるいは類推して
よい。
また、過去に行動履歴がない新規ユーザの場合は、メンバー登録の際などに取得可能なユーザの情報に近いカテゴリの他のユーザやユーザグループの行動履歴やクエリモデルから、オリジナルクエリの初期のクエリモデルを類推してもよい。
【0054】
S42で、キーワード特定装置1のシングル評価部14は、クエリモデル生成部13に、S1で入力されたオリジナルクエリに対して、S41で決定された属性および重みを関連付けて、クエリモデルを生成させる。クエリモデル生成部13は、S42で生成されたクエリモデルを、クエリモデル記憶部4に記憶してよい。
【0055】
S43で、キーワード特定装置1のシングル評価部14は、
図2のS3で生成されたシングルごとに、当該シングル、すなわち当該シングルに含まれるすべてのトークン、をオリジナルクエリと共有する他のクエリを、クエリモデル記憶部4から取得する。
シングル評価部14は、当該シングルをオリジナルクエリと共有し、かつオリジナルクエリと少なくとも1つの属性を共有する他のクエリを取得してよい。属性を共有しないクエリ間の類似度は、
図4および
図5の例の類似度算出に従えば、0となるからである。
【0056】
S44で、キーワード特定装置1のシングル評価部14は、S43で取得された他のクエリのそれぞれについて、オリジナルクエリに対する類似度を算出する。
具体的には、シングル評価部14は、オリジナルクエリのクエリモデルと他のクエリのクエリモデルとが共有する属性について、双方のクエリから接続される対のリンクに付与された重みを演算することにより、他のクエリのオリジナルクエリに対する類似度を算出する。
図4および
図5を参照してすでに説明したように、シングル評価部14は、例えば、属性が有する対となるリンクの重みの最小値を加算することで、類似度を算出してよい。
【0057】
S45で、キーワード特定装置1のシングル評価部14は、S43で取得された他のクエリのすべてについてS44で算出された類似度に基づいて、評価対象のシングルのスコアを算出する。
具体的には、シングル評価部14は、S43で取得された複数のクエリのすべてについて、S44で算出された複数の類似度の平均、例えば、幾何平均(geometric mean)、を、評価対象のシングルのスコアとして算出してよい。
【0058】
S46で、キーワード特定装置1のシングル評価部14は、
図2のS3で生成された複数のシングルのうち、すべてのシングルが評価されたか否かを判定する。
未処理のシングルがある場合(S46:N)、S43に戻り、S43からS46までの処理を繰り返す。一方、未処理のシングルがない場合(S46:Y)、
図2のS5に進み、より高いスコアが算出された1つまたは複数のシングルを、ユーザの意図に合致するキーワードとして出力する。
このように、本実施形態に係るキーワード特定装置1は、オリジナルクエリを構成する個別のトークン自体を評価するのではなく、これらのトークンを含む他のクエリにそれぞれ関連付けられるユーザの行動履歴を評価することで、トークンやシングルを事前に定義することなく、キーワードを特定することができる。
【0059】
図7は、オリジナルのクエリに対して、あるシングルを共有する他のクエリの類似度を算出し、算出された類似度に基づいて当該シングルのスコアを算出する一例を説明する概念図である。
図7を参照して、
図2のS1で入力されるオリジナルクエリが、{“a”,“b”,“c”}であるものとする。この場合、
図2のS2で、オリジナルクエリは、3つのトークン{“a”}、{“b”}、{“c”}に分割され、
図2のS3で、6つのシングル{“
a”,“b”}、{“a”,“c”}、{“b”,“c”}、{“a”}、{“b”}、{“c”}が生成される。
【0060】
これら6つのシングルのそれぞれについて、当該シングルを含むすべての他のクエリが、
図6のS43で取得される。例えば、シングル{“a”,“b”}について、クエリ{“a”,“b”,“d”}および{“a”,“b”,“c”}が取得される。クエリ{“a”,“b”,“c”}は、オリジナルクエリと同じクエリである。
シングル{“a”,“b”}について取得された、これら他のクエリ{“a”,“b”,“d”}および{“a”,“b”,“c”}のそれぞれについて、
図6のS44で、オリジナルクエリ{“a”,“b”,“c”}に対する類似度が算出される。
【0061】
図7を参照して、クエリ{“a”,“b”,“d”}は、オリジナルクエリ{“a”,“b”,“c”}と、属性α1およびα2を共有し、属性α1に接続する対のリンクに付与された重みの最小値は0.2、属性α2に接続する対のリンクに付与された重みの最小値は0.3である。このため、クエリ{“a”,“b”,“d”}のオリジナルクエリ{“a”,“b”,“c”}に対する類似度は、0.2と0.3の和として、0.5と算出される。
一方、オリジナルクエリと同じであるクエリ{“a”,“b”,“c”}は、オリジナルクエリ{“a”,“b”,“c”}と、すべての属性α1、α2、およびα3を共有し、各属性に接続する対のリンクに付与された重みの最小値はそれぞれ0.3である。このため、クエリ{“a”,“b”,“c”}のオリジナルクエリ{“a”,“b”,“c”}に対する類似度は、0.9と算出される。
したがって、
図6のS45で、シングル{“a”,“b”}のスコアは、0.5と0.9の幾何平均として、0.67と算出される。
上記の処理を、
図2のS3で生成されたシングルのすべてについて繰り返すことで、元も高いスコアを持つ1つまたは複数のシングルを特定することができる。
【0062】
<キーワード特定装置のハードウエア構成>
図8は、本実施形態に係るキーワード特定装置1のハードウエア構成の非限定的一例を示す図である。
本実施形態に係るキーワード特定装置1は、単一または複数の、あらゆるコンピュータ、モバイルデバイス、または他のいかなる処理プラットフォーム上にも実装することができる。
図8を参照して、キーワード特定装置1は、単一のコンピュータに実装される例が示されているが、本実施形態に係るキーワード特定装置1は、複数のコンピュータを含むコンピュータシステムに実装されてよい。複数のコンピュータは、有線または無線のネットワークにより相互通信可能に接続されてよい。
【0063】
図8に示すように、キーワード特定装置1は、CPU81と、ROM82と、RAM83と、HDD84と、入力部85と、表示部86と、通信I/F87と、システムバス88とを備えてよい。キーワード特定装置1はまた、外部メモリを備えてよい。
CPU(Central Processing Unit)81は、キーワード特定装置1における動作を統括的に制御するものであり、データ伝送路であるシステムバス88を介して、各構成部(82~87)を制御する。
【0064】
ROM(Read Only Memory)82は、CPU81が処理を実行するために必要な制御プログラム等を記憶する不揮発性メモリである。なお、当該プログラムは、HDD(Hard Disk Drive)84、SSD(Solid State Drive)等の不揮発性メモリや着脱可能な記憶媒体(不図示)等の外部メモリに記憶されていてもよい。
RAM(Random Access Memory)83は、揮発性メモリであり、CPU81の主メモリ、ワークエリア等として機能する。すなわち、CPU81は、処理の実行に際してROM82から必要なプログラム等をRAM83にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
【0065】
HDD84は、例えば、CPU81がプログラムを用いた処理を行う際に必要な各種データや各種情報等を記憶している。また、HDD84には、例えば、CPU81がプログラム等を用いた処理を行うことにより得られた各種データや各種情報等が記憶される。
入力部85は、キーボードやマウス等のポインティングデバイスにより構成される。
表示部86は、液晶ディスプレイ(LCD)等のモニターにより構成される。表示部86は、キーワード特定処理で使用される各種パラメータや、他の装置との通信で使用される通信パラメータ等をキーワード特定装置1へ指示入力するためのユーザインタフェースであるGUI(Graphical User Interface)を提供してよい。
【0066】
通信I/F87は、キーワード特定装置1と外部装置との通信を制御するインタフェースである。
通信I/F87は、ネットワークとのインタフェースを提供し、ネットワークを介して、外部装置との通信を実行する。通信I/F87を介して、外部装置との間で各種データや各種パラメータ等が送受信される。本実施形態では、通信I/F87は、イーサネット(登録商標)等の通信規格に準拠する有線LAN(Local Area Network)や専用線を介した通信を実行してよい。ただし、本実施形態で利用可能なネットワークはこれに限定されず、無線ネットワークで構成されてもよい。この無線ネットワークは、Bluetooth(登録商標)、ZigBee(登録商標)、UWB(Ultra Wide Band)等の無線PAN(Personal Area Network)を含む。また、Wi-Fi(Wireless Fidelity)(登録商標)等の無線LAN(Local Area Network)や、WiMAX(登録商標)等の無線MAN(Metropolitan Area Network)を含む。さらに、LTE/3G、4G、5G等の無線WAN(Wide Area Network)を含む。なお、ネットワークは、各機器を相互に通信可能に接続し、通信が可能であればよく、通信の規格、規模、構成は上記に限定されない。
【0067】
図1に示すキーワード特定装置1の各要素のうち少なくとも一部の機能は、CPU81がプログラムを実行することで実現することができる。ただし、
図1に示すキーワード特定装置1の各要素のうち少なくとも一部の機能が専用のハードウエアとして動作するようにしてもよい。この場合、専用のハードウエアは、CPU81の制御に基づいて動作する。
【0068】
以上説明したように、本実施形態によれば、キーワード特定装置は、検索エンジンに投入すべきクエリを、クエリを構成する個々のトークンに分割し、1つまたは複数のトークンからなるシングル(shingle)をクエリのサブセットとして生成し、生成されたシングルのそれぞれについて、当該シングルを含むクエリを生成する。
本実施形態に係るキーワード特定装置はさらに、ユーザの行動履歴に基づいて生成されたクエリモデルを参照して、生成された各クエリのオリジナルのクエリに対する類似度を算出し、算出された類似度から、当該シングルのスコアを算出することにより、より高いスコアが算出されたシングルを、ユーザの意図により合致するキーワードとして特定する。
【0069】
したがって、クエリに含まれるトークンやシングルのそれぞれを事前定義することなく、クエリを構成するシングル(キーフレーズやキーワード)の中から、ユーザの意図をより代表するキーワードを、柔軟かつ容易に特定することができる。
これにより、クエリに対して、所望の検索結果の提示が実現され、検索精度の向上に資する。
【0070】
なお、上記において特定の実施形態が説明されているが、当該実施形態は単なる例示であり、本発明の範囲を限定する意図はない。本明細書に記載された装置及び方法は上記した以外の形態において具現化することができる。また、本発明の範囲から離れることなく、上記した実施形態に対して適宜、省略、置換及び変更をなすこともできる。かかる省略、置換及び変更をなした形態は、請求の範囲に記載されたもの及びこれらの均等物の範疇に含まれ、本発明の技術的範囲に属する。
【符号の説明】
【0071】
1…キーワード特定装置、2…ユーザ行動履歴DB、3…検索エンジン、4…クエリモデル記憶部、11…クエリ入力部、12…クエリ分割部、13…クエリモデル生成部、14…シングル評価部、15…出力部、81…CPU、82…ROM、83…RAM、84…HDD、85…入力部、86…表示部、87…通信I/F、88…バス