(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-01-17
(45)【発行日】2023-01-25
(54)【発明の名称】情報処理装置、情報処理方法および情報処理プログラム
(51)【国際特許分類】
G06F 16/906 20190101AFI20230118BHJP
G06F 16/9032 20190101ALI20230118BHJP
【FI】
G06F16/906
G06F16/9032
(21)【出願番号】P 2021120022
(22)【出願日】2021-07-20
【審査請求日】2022-01-20
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】真鍋 知博
(72)【発明者】
【氏名】町永 圭吾
(72)【発明者】
【氏名】朴 云波
(72)【発明者】
【氏名】薛 宏太
(72)【発明者】
【氏名】社本 秀之
【審査官】松尾 真人
(56)【参考文献】
【文献】米国特許出願公開第2019/0065594(US,A1)
【文献】特開2008-165714(JP,A)
【文献】特開2008-070959(JP,A)
【文献】特開2011-221794(JP,A)
【文献】米国特許第10891673(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ユーザが入力した検索クエリと、検索対象となる各コンテンツとをそれぞれ内積距離空間におけるベクトルに変換する変換部と、
前記各コンテンツに対応するコンテンツベクトルをクラスタに分類する分類部と、
前記検索クエリに対応するクエリベクトルと類似する前記クラスタを特定する特定部と、
特定した前記クラスタに含まれる前記コンテンツベクトルに対応するコンテンツを検索対象として、前記クエリベクトルとの内積計算により検索する検索部と、
前記クエリベクトルと前記コンテンツベクトル
とのノルム
差が所定値以上であるコンテンツを前記検索部における内積計算の対象コンテンツとして設定する設定部と
を備えることを特徴とする情報処理装置。
【請求項2】
前記特定部は、
前記クラスタに含まれる前記コンテンツベクトルの代表ベクトルが前記クエリベクトルと類似する前記クラスタを特定すること
を特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記代表ベクトルは、
前記クラスタに含まれる前記コンテンツベクトルの重心であること
を特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記特定部は、
前記検索対象の検索範囲を指定するフィルタ条件に合致する前記クラスタを抽出し、抽出した前記クラスタの中から前記クエリベクトルと類似する前記クラスタを特定すること
を特徴とする請求項1~3のいずれか1つに記載の情報処理装置。
【請求項5】
前記特定部は、
前記クエリベクトルの向きおよびノルムが類似する前記クラスタを特定すること
を特徴とする請求項1~4のいずれか1つに記載の情報処理装置。
【請求項6】
前記検索クエリをクエリベクトルに、前記検索対象の検索範囲を指定するフィルタ条件をフィルタベクトルにそれぞれ変換する変換部と、
前記フィルタベクトルに基づいて前記クエリベクトルを補正する補正ベクトルを生成する生成部と、
をさらに備え、
前記特定部は、
前記補正ベクトルと類似する前記クラスタを特定すること
を特徴とする請求項1~5のいずれか1つに記載の情報処理装置。
【請求項7】
コンピュータが実行する情報処理方法であって、
ユーザが入力した検索クエリと、検索対象となる各コンテンツとをそれぞれ内積距離空間におけるベクトルに変換する変換工程と、
前記各コンテンツに対応するコンテンツベクトルをクラスタに分類する分類工程と、
前記検索クエリに対応するクエリベクトルと類似する前記クラスタを特定する特定工程と、
特定した前記クラスタに含まれる前記コンテンツベクトルに対応するコンテンツを検索対象として、前記クエリベクトルとの内積計算により検索する検索工程と、
前記クエリベクトルと前記コンテンツベクトル
とのノルム
差が所定値以上であるコンテンツを前記検索工程における内積計算の対象コンテンツとして設定する設定工程と
を含むことを特徴とする情報処理方法。
【請求項8】
ユーザが入力した検索クエリと、検索対象となる各コンテンツとをそれぞれ内積距離空間におけるベクトルに変換する変換手順と、
前記各コンテンツに対応するコンテンツベクトルをクラスタに分類する分類手順と、
前記検索クエリに対応するクエリベクトルと類似する前記クラスタを特定する特定手順と、
特定した前記クラスタに含まれる前記コンテンツベクトルに対応するコンテンツを検索対象として、前記クエリベクトルとの内積計算により検索する検索手順と、
前記クエリベクトルと前記コンテンツベクトル
とのノルム
差が所定値以上であるコンテンツを前記検索手順における内積計算の対象コンテンツとして設定する設定手順と
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
従来、ユーザが入力したクエリおよび検索対象のコンテンツをベクトル化し、双方のベクトルの類似度により検索処理を行う情報処理装置がある。この種の情報処理装置では、近似最近傍探索(ANN:Approximate Nearest Neighbor algorithms search)により検索対象の検索範囲を絞る技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、検索結果の質を高める点で更なる改善の余地があった。
【0005】
本願は、上記に鑑みてなされたものであって、検索結果の質を高めることができる情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本願に係る情報処理装置は、分類部と、特定部と、検索部とを備える。前記分類部は、検索対象となる各コンテンツに対応するコンテンツベクトルをクラスタに分類する。前記特定部は、ユーザが入力した検索クエリに対応するクエリベクトルと類似する前記クラスタを特定する。前記検索部は、特定した前記クラスタに含まれる前記コンテンツベクトルに対応するコンテンツを検索対象として検索する。
【発明の効果】
【0007】
実施形態の一態様によれば、検索結果の質を高めることができるという効果を奏する。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施形態に係る情報処理その1を示す図である。
【
図2】
図2は、実施形態に係る情報処理その2を示す図である。
【
図3】
図3は、実施形態に係る情報処理その3を示す図である。
【
図4】
図4は、実施形態に係る情報処理システムの構成例を示す図である。
【
図5】
図5は、実施形態に係る情報処理装置の構成例を示す図である。
【
図6】
図6は、コンテンツ情報の一例を示す図である。
【
図8】
図8は、実施形態に係る情報処理装置が実行する情報処理その1の処理手順を示すフローチャートである。
【
図9】
図9は、実施形態に係る情報処理装置が実行する情報処理その2の処理手順を示すフローチャートである。
【
図10】
図10は、実施形態に係る情報処理装置が実行する情報処理その3の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下に、本願に係る情報処理装置、情報処理方法および情報処理プログラムを実施するための形態(以下、「実施形態」と記載する)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法および情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0010】
(実施形態)
まず、
図1~
図3を用いて、実施形態に係る情報処理装置が実行する情報処理について説明する。
図1~
図3は、実施形態に係る情報処理その1~その3を示す図である。なお、
図1~
図3では、実施形態に係る情報処理装置1を含む情報処理システムSの動作例を示している。
図1~
図3に示すように、実施形態に係る情報処理システムSは、情報処理装置1と、ユーザ端末50とを含む。
【0011】
まず、
図1を用いて、情報処理その1について説明する。
図1に示す情報処理その1では、ユーザが入力した検索クエリおよび検索対象の検索範囲を指定するフィルタ条件それぞれをベクトル化し、フィルタ条件のベクトルに基づいて、検索クエリのベクトルを補正する処理を行った後に検索処理を行う。
【0012】
具体的には、まず、実施形態に係るユーザ端末50は、ユーザが入力した検索クエリおよび検索対象の検索範囲を指定するフィルタ条件を送信する(ステップS1)。検索クエリは、テキストや画像等である。フィルタ条件は、検索対象のカテゴリ(商品種別や価格帯等)を指定する条件であり、例えば、予め設定されたフィルタ条件の中からユーザが選択することで指定する。また、検索対象は、ショッピングサイトにおける商品や、ドキュメント、画像等といった各種コンテンツである。
【0013】
つづいて、実施形態に係る情報処理装置1は、取得した検索クエリおよびフィルタ条件を所定の距離空間におけるベクトルに変換する(ステップS2)。なお、以下では、検索クエリに対応するベクトルを「クエリベクトル」、フィルタ条件に対応するベクトルを「フィルタベクトル」と記載する場合がある。また、所定の距離空間は、コサイン類似度の空間や、内積空間、ユークリッド距離空間等である。
【0014】
つづいて、実施形態に係る情報処理装置1は、フィルタベクトルに基づいてクエリベクトルを補正することで補正ベクトルを生成する(ステップS3)。例えば、情報処理装置1は、クエリベクトルの向きやノルムを、フィルタベクトルの向きやノルムに基づいて補正した補正ベクトルを生成する。
【0015】
図1に示す例では、情報処理装置1は、クエリベクトルの向きやノルムをフィルタベクトルの向きやノルムに近づけた補正ベクトルを生成する。なお、補正ベクトルの生成方法については様々なバリエーションが考えられるが、かかる点の詳細については後述する。
【0016】
つづいて、情報処理装置1は、生成した補正ベクトルに基づいて検索対象を検索する(ステップS4)。例えば、情報処理装置1は、補正ベクトルと検索対象のベクトルとの距離(コサイン類似度や、内積距離、ユークリッド距離)を算出し、算出結果に基づいて検索結果を生成する。そして、情報処理装置1は、検索結果をユーザ端末50へ送信する(ステップS5)。
【0017】
このように、実施形態に係る情報処理その1によれば、フィルタベクトルを用いてクエリベクトル自体を補正するため、従来の手法であるクエリベクトルと距離が近い検索対象を抽出してからフィルタ条件に合致する検索対象を選択する場合に比べて、検索結果に含まれるコンテンツが多くなり、かつ、補正ベクトルにより抽出された各検索対象はフィルタ条件が既に加味されていることとなる。すなわち、実施形態に係る情報処理その1によれば、検索結果の質を高めることができる。
【0018】
次に、
図2を用いて、情報処理その2について説明する。
図2に示す情報処理その2では、クエリベクトルと、検索対象となるコンテンツのベクトル(コンテンツベクトル)とのノルム差が所定値以上であるコンテンツ内積計算の対象コンテンツとして設定した後に検索処理を行う。なお、
図2に示す情報処理その2では、上記した所定の距離空間が内積空間であることとする。
【0019】
具体的には、まず、実施形態に係るユーザ端末50は、ユーザが入力した検索クエリを送信する(ステップS11)。なお、ユーザ端末50は、検索クエリに加え、上記したフィルタ条件を送信してもよい。
【0020】
つづいて、実施形態に係る情報処理装置1は、検索クエリと、検索対象となる各コンテンツとを内積空間におけるベクトルに変換する(ステップS12)。なお、以下では、検索クエリに対応するベクトルを上記と同様に「クエリベクトル」、各コンテンツに対応するベクトルを「コンテンツベクトル」と記載する場合がある。このベクトル変換処理は、検索クエリと各コンテンツのベクトルの内積がスコアとして意味をなすような同じ空間(同じ次元数)のベクトルに変換することで実現されるものであり、ベクトルは内積の値の大小を基に機械学習によって獲得された変換手順によって変換される。このような内積空間を用いた検索手順は、内積の値が大きいコンテンツのほうが検索結果に残りやすくする手順を含む。
【0021】
図2では、コンテンツベクトルは、クエリベクトルと同じタイミングで変換する例を示したが、例えば、検索クエリが入力される前のタイミング(例えば、コンテンツが登録されたタイミング等)で事前に変換されていてもよい。
【0022】
つづいて、実施形態に係る情報処理装置1は、各コンテンツベクトルの中から、ノルムが所定値以上のコンテンツベクトルを抽出し、抽出したコンテンツベクトルに対応するコンテンツを検索クエリに対応するクエリベクトルとの内積計算の対象コンテンツとして設定する(ステップS13)。
【0023】
図2に示す例では、領域R2、R3に属するコンテンツを対象コンテンツとして設定する。また、領域R1は、後段のステップS14においてクエリベクトルと類似する(内積が所定条件を満たす)コンテンツ群であり、言い換えれば、内積計算の対象コンテンツである。
【0024】
つづいて、実施形態に係る情報処理装置1は、領域R1~R3に含まれる対象コンテンツを検索対象として検索処理を行う(ステップS14)。例えば、情報処理装置1は、対象コンテンツのコンテンツベクトルと、クエリベクトルとの内積を計算し、計算結果に基づいて検索結果を生成する。
【0025】
つづいて、実施形態に係る情報処理装置1は、生成した検索結果をユーザ端末50へ送信する(ステップS15)。
【0026】
つまり、実施形態に係る情報処理その2では、ノルムが所定値以上である領域R2、R3のコンテンツについては、クエリベクトルに関わらず必ず検索対象に含ませるようにする。これは、内積空間においては、ノルムが所定値以上のコンテンツベクトルとクエリベクトルとの類似度は高くなる(検索結果としてユーザが所望しているものに近い)場合があるためである。すなわち、実施形態に係る情報処理装置1によれば、検索結果の質を高めることができる。
【0027】
次に、
図3を用いて、情報処理その3について説明する。
図3に示す情報処理その3では、検索対象となる各コンテンツに対応するコンテンツベクトルを事前にクラスタリングしておき、クエリベクトルと類似するクラスタを特定して検索処理を行う。
【0028】
具体的には、まず、実施形態に係る情報処理装置1は、事前に(検索クエリを取得する前に)、各コンテンツベクトルについて、類似するコンテンツベクトルが同じクラスタとなるように分類する(ステップS21)。
図3に示す例では、領域R1~R9それぞれをクラスタとして分類する。
【0029】
つづいて、実施形態に係るユーザ端末50は、ユーザが入力した検索クエリを送信する(ステップS22)。なお、ユーザ端末50は、検索クエリに加え、上記したフィルタ条件を送信してもよい。
【0030】
つづいて、実施形態に係る情報処理装置1は、検索クエリを所定の距離空間におけるクエリベクトルに変換する(ステップS23)。
【0031】
つづいて、実施形態に係る情報処理装置1は、クエリベクトルと類似するクラスタを特定する(ステップS24)。例えば、情報処理装置1は、クラスタに含まれるコンテンツベクトルの代表ベクトルを算出し、代表ベクトルとクエリベクトルとの類似度に基づいて特定する。
【0032】
つづいて、実施形態に係る情報処理装置1は、特定したクラスタに含まれるコンテンツを検索対象として検索処理を行う(ステップS25)。例えば、情報処理装置1は、対クラスタに含まれるコンテンツベクトルと、クエリベクトルとの内積を計算し、計算結果に基づいて検索結果を生成する。
【0033】
つづいて、実施形態に係る情報処理装置1は、生成した検索結果をユーザ端末50へ送信する(ステップS26)。
【0034】
つまり、実施形態に係る情報処理その3では、コンテンツベクトルを事前にクラスタリングしておき、クエリベクトルと類似するクラスタを特定することで、検索結果を絞りつつ、全コンテンツをスコアリング(例えば、内積計算)したときと類似した検索結果を生成することができる。つまり、実施形態に係る情報処理装置1によれば、検索結果の質を高めることができる。
【0035】
次に、
図4を用いて、実施形態に係る情報処理システムSの構成例について説明する。
図4は、実施形態に係る情報処理システムSの構成例を示すブロック図である。
図4に示すように、実施形態に係る情報処理システムSは、情報処理装置1と、複数のユーザ端末50とがネットワークNに対して有線又は無線により接続される。ネットワークNは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)等のネットワークである。
【0036】
情報処理装置1は、各種コンテンツの検索結果を提供する検索サーバであり、情報処理方法を実行する。情報処理装置1が検索する検索対象は、例えば、ショッピングサイトにおける商品や、ドキュメント、画像等を含む。
【0037】
ユーザ端末50は、コンテンツを検索したいユーザが所持する端末装置であり、情報処理装置1へ検索要求を行う端末装置である。ユーザ端末50は、スマートフォン、デスクトップ型PC、ノート型PC、タブレット型PC等の任意のタイプの端末装置を用いることができる。
【0038】
なお、
図4では、情報処理装置1およびユーザ端末50を含む情報処理システムSの構成例を示したが、これら構成の他に、コンテンツを登録する事業者等の端末装置が情報処理システムSに含まれてもよい。
【0039】
次に、
図5を参照して、情報処理装置1の構成例について説明する。
【0040】
図5は、実施形態に係る情報処理装置1の構成例を示す図である。
図5に示されるように、情報処理装置1は、通信部2と、制御部3と、記憶部4とを有する。制御部3は、取得部31と、変換部32と、生成部33と、分類部34と、特定部35と、設定部36と、検索部37と、出力部38とを備える。記憶部4は、コンテンツ情報41と、ユーザ情報42とを記憶する。
【0041】
通信部2は、例えば、NIC(Network Interface Card)等によって実現される。通信部2は、有線または無線によりネットワーク網と接続される。
【0042】
制御部3は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報処理装置1内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAM等を作業領域として実行されることにより実現される。また、制御部3は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPGPU(General Purpose Graphic Processing Unit)等の集積回路により実現されてもよい。
【0043】
記憶部4は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0044】
コンテンツ情報41は、検索対象である各コンテンツに関する情報である。
図6は、コンテンツ情報41の一例を示す図である。
図6に示すように、コンテンツ情報41は、「コンテンツID」、「カテゴリ」、「詳細情報」等の項目を含む。
【0045】
「コンテンツID」は、各コンテンツを識別する識別情報である。「カテゴリ」は、コンテンツのカテゴリを示す情報であり、例えば、コンテンツの種別(商品種別やドキュメント種別)や、価格帯、文字列か画像かの情報態様に関する情報である。「詳細情報」は、コンテンツの詳細情報であり、例えば、商品の説明文や、商品画像、ドキュメントのテキスト等の情報である。
【0046】
ユーザ情報42は、ユーザに関する情報である。
図7は、ユーザ情報42の一例を示す図である。
図7に示すように、ユーザ情報42は、「ユーザID」、「属性情報」、「行動情報」等の項目を含む。
【0047】
「ユーザID」は、ユーザを識別する識別情報である。「属性情報」は、ユーザの属性に関する情報であり、サイコグラフィック属性や、デモグラフィック属性等を含む。「行動情報」は、ユーザの行動に関する情報であり、例えば、検索行動や、購買行動等を含む。
【0048】
次に、情報処理装置1の制御部3の各機能(取得部31、変換部32、生成部33、分類部34、特定部35、設定部36、検索部37および出力部38)について説明する。
【0049】
取得部31は、各種情報を取得する。取得部31は、ユーザ端末50から検索クエリおよびフィルタ条件を取得する。なお、取得部31は、検索ログを収集するサーバから過去の検索クエリおよびフィルタ条件を取得してもよい。また、取得部31は、ユーザが入力すると想定される検索クエリおよびフィルタ条件を生成してもよい。
【0050】
変換部32は、取得部31が取得した検索クエリおよびフィルタ条件をそれぞれクエリベクトルおよびフィルタベクトルに変換する。また、変換部32は、コンテンツ情報41を参照して、検索対象となるコンテンツをコンテンツベクトルに変換する。
【0051】
ベクトルの変換手法は、例えば、word2vecのようなtokenからベクトルに変換するための対応表を用いた変換手法や、Fasttext、BERT(Bidirectional Encoder Representations from Transformers)等といった既知の変換手法を用いることができる。
【0052】
また、ベクトルが配置される所定の距離空間は、コサイン類似度の距離空間や、内積空間、ユークリッド距離空間等である。なお、
図2で示した情報処理その2においては、所定の距離空間のうち、内積空間を用いてベクトル変換が行われる。
【0053】
また、フィルタベクトルは、フィルタ条件毎のベクトルを保持したテーブル情報を用いて変換が行われてもよい。あるいは、フィルタベクトルは、フィルタ条件の文字列を上記した変換手法により変換されてもよい。
【0054】
生成部33は、変換部32によって変換されたフィルタベクトルに基づいてクエリベクトルを補正することで補正ベクトルを生成する。例えば、生成部33は、フィルタベクトルおよびクエリベクトルを変数として含む関数の出力を補正ベクトルとして生成する。
【0055】
具体的には、かかる関数は、フィルタベクトルおよびクエリベクトルそれぞれに所定の重みを乗算して足し合わせる関数である。この重みは、例えば固定値であってもよく、変動値であってもよい。
【0056】
変動値としての重み値は、例えば、フィルタ条件に合致する検索対象の数に応じて決定する。すなわち、フィルタ条件に合致する検索対象の数が多い程、フィルタベクトルに乗算する重み値を大きくし、検索対象の数が少ない程、フィルタベクトルに乗算する重み値を小さくする。これにより、補正ベクトルを用いて検索処理を行う場合に、検索結果に含まれるコンテンツの数が少なくなることを高精度に回避することができる。
【0057】
また、生成部33は、フィルタ条件が複数存在する場合、例えば、各フィルタ条件に対応する複数のフィルタベクトルで独立してクエリベクトルを補正してもよい。あるいは、生成部33は、複数のフィルタベクトルの代表ベクトル(例えば、重心)を算出し、代表ベクトルによりクエリベクトルを補正してもよい。
【0058】
また、生成部33は、ユーザ情報42を加味して補正ベクトルを生成してもよい。例えば、生成部33は、ユーザの属性情報や行動情報をユーザベクトルに変換し、ユーザベクトルと、フィルタベクトルとに基づいてクエリベクトルを補正してもよい。
【0059】
また、生成部33は、検索クエリを入力したユーザとは異なる他のユーザのユーザ情報を用いて補正ベクトルを生成してもよい。他のユーザは、属性情報や行動情報が類似する他のユーザを抽出する。
【0060】
また、生成部33は、検索クエリの属性を推定して属性ベクトルに変換し、属性ベクトルに基づいて補正ベクトルを生成してもよい。
【0061】
分類部34は、コンテンツベクトルをクラスタに分類する。例えば、分類部34は、コンテンツベクトルの向きおよびノルムが所定の範囲内であるものを同じクラスタに分類する。あるいは、分類部34は、ベクトルの向きおよびノルムを所定間隔の領域毎に区切り、各領域に含まれるコンテンツベクトルを同じクラスタに分類する。
【0062】
特定部35は、分類部34によって分類されたクラスタの中から、クエリベクトルと類似するクラスタを特定する。例えば、特定部35は、クラスタに含まれるコンテンツベクトルの代表ベクトルを算出し、代表ベクトルとクエリベクトルとの距離に基づく類似度によりクラスタを特定する。
【0063】
なお、代表ベクトルは、クラスタに含まれるコンテンツベクトルの重心や、平均値を用いることができる。
【0064】
また、特定部35は、例えば、取得部31がフィルタ条件を取得した場合、フィルタ条件に合致するコンテンツベクトルが含まれるクラスタを抽出し、抽出したクラスタに対して上記した特定処理を行ってもよい。
【0065】
また、特定部35は、クラスタの代表ベクトルのノルムまたは向きがクエリベクトルと類似する場合に、かかるクラスタを特定してもよい。
【0066】
設定部36は、各コンテンツに対応するコンテンツベクトルの中から、ノルムが所定値以上のコンテンツベクトルを抽出し、抽出したコンテンツベクトルに対応するコンテンツを検索クエリに対応するクエリベクトルとの内積計算の対象コンテンツとして設定する。
【0067】
例えば、設定部36は、上記したノルム差が所定値以上、かつ、コンテンツベクトルのノルムが所定値以上であるコンテンツを対象コンテンツとして設定する。すなわち、設定部36は、クエリベクトルよりもノルムが極端に長いコンテンツベクトルのコンテンツを対象コンテンツとして設定する。なお、設定部36は、クエリベクトルよりもノルムが極端に短いコンテンツベクトルのコンテンツを対象コンテンツとして設定してもよい。
【0068】
また、設定部36は、ノルムが所定値以上の場合に限らず、例えば、全検索対象のうち、ノルムが上位数%のコンテンツを対象コンテンツとして抽出してもよい。
【0069】
また、設定部36は、コンテンツベクトルをノルム毎にクラスタリングし、クラスタの代表ベクトルと、クエリベクトルとのノルム差が所定値以上である場合に、かかるクラスタに含まれるコンテンツを対象コンテンツとして設定してもよい。
【0070】
また、設定部36は、ノルム差に加えて、コンテンツベクトルをコンテンツのカテゴリ毎にクラスタリングし、クエリベクトルのカテゴリと一致するクラスタのコンテンツを対象コンテンツとしてもよい。
【0071】
また、設定部36は、クエリベクトルと類似するクラスタに含まれるコンテンツを対象コンテンツとして設定する。具体的には、設定部36は、クラスタの代表ベクトルのノルムおよび向きがクエリベクトルのノルムおよび向きと類似する場合、対象コンテンツとして設定する。
【0072】
検索部37は、設定部36によって設定された対象コンテンツについて、所定の距離空間におけるクエリベクトルとの距離を計算する。例えば、検索部37は、クエリベクトルと、対象コンテンツのコンテンツベクトルとの内積を計算する。
【0073】
そして、検索部37は、内積に応じた類似度に基づいて検索結果を生成する。例えば、検索部37は、類似度が高いほど上位にランキングされる検索結果を生成する。
【0074】
出力部38は、検索部37によって生成された検索結果をユーザ端末50へ出力する。
【0075】
次に、
図8~
図10を用いて、実施形態に係る情報処理装置1が実行する情報処理その1~その3の処理手順について説明する。
図8~
図10は、実施形態に係る情報処理装置1が実行する情報処理その1~その3の処理手順を示すフローチャートである。
【0076】
まず、
図8を用いて、情報処理その1の処理手順について説明する。
【0077】
図8に示すように、制御部3は、まず、ユーザ端末50から検索クエリおよびフィルタ条件を取得する(ステップS101)。つづいて、制御部3は、検索クエリおよびフィルタ条件をそれぞれクエリベクトルおよびフィルタベクトルに変換する(ステップS102)。つづいて、制御部3は、フィルタベクトルに基づいてクエリベクトルを補正することで補正ベクトルを生成する(ステップS103)。つづいて、制御部3は、補正ベクトルに基づいて検索対象を検索する(ステップS104)。つづいて、制御部3は、検索結果をユーザ端末50へ出力し(ステップS105)、処理を終了する。
【0078】
次に、
図9を用いて、情報処理その2の処理手順について説明する。
【0079】
図9に示すように、制御部3は、まず、ユーザ端末50から検索クエリを取得する(ステップS201)。つづいて、制御部3は、内積空間におけるクエリベクトルおよびコンテンツベクトルに変換する(ステップS202)。つづいて、制御部3は、クエリベクトルとのノルム差が所定値以上のコンテンツを対象コンテンツに設定(ステップS204)。つづいて、制御部3は、対象コンテンツのコンテンツベクトルとクエリベクトルとの内積計算を行う(ステップS205)。つづいて、制御部3は、計算結果に基づいて検索結果を生成する(ステップS206)。つづいて、制御部3は、検索結果をユーザ端末50へ出力し(ステップS207)、処理を終了する。
【0080】
次に、
図10を用いて、情報処理その3の処理手順について説明する。
【0081】
図10に示すように、制御部3は、まず、コンテンツベクトルをクラスタに分類する(ステップS301)。つづいて、制御部3は、検索クエリを取得し、クエリベクトルに変換する(ステップS302)。つづいて、制御部3は、クエリベクトルと類似するクラスタと特定する(ステップS303)。つづいて、制御部3は、特定したクラスタに含まれるコンテンツを対象コンテンツに設定する(ステップS304)。つづいて、制御部3は、対象コンテンツのコンテンツベクトルとクエリベクトルとの内積計算を行う(ステップS305)。つづいて、制御部3は、計算結果に基づいて検索結果を生成する(ステップS306)。つづいて、制御部3は、検索結果をユーザ端末50へ出力し(ステップS307)、処理を終了する。
【0082】
〔その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0083】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0084】
例えば、
図5に示した記憶部4の一部又は全部は、各装置によって保持されるのではなく、ストレージサーバ等に保持されてもよい。この場合、各装置は、ストレージサーバにアクセスすることで、各種情報を取得する。
【0085】
〔ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置1は、例えば
図11に示すような構成のコンピュータ1000によって実現される。
図11は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
【0086】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一時的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
【0087】
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
【0088】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
【0089】
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0090】
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0091】
例えば、コンピュータ1000が情報処理装置1として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部3の機能を実現する。
【0092】
〔効果〕
上述してきたように、実施形態に係る情報処理装置1は、変換部32と、生成部33と、検索部37とを備える。変換部32は、ユーザが入力した検索クエリをクエリベクトルに、検索対象の検索範囲を指定するフィルタ条件をフィルタベクトルにそれぞれ変換する。生成部33は、フィルタベクトルに基づいてクエリベクトルを補正することで補正ベクトルを生成する。検索部37は、補正ベクトルに基づいて検索対象を検索する。生成部33は、フィルタベクトルおよびクエリベクトルを変数として含む関数の出力を補正ベクトルとして生成する。生成部33は、フィルタベクトルおよびクエリベクトルの変数それぞれに重みを乗算して足し合わせる関数の出力を補正ベクトルとして生成する。重みは、フィルタ条件と一致する検索対象の数に応じた値が設定される。生成部33は、フィルタベクトルおよびクエリベクトルの重心を補正ベクトルとして生成する。生成部33は、ユーザに関するユーザ情報をベクトル化したユーザベクトルと、フィルタベクトルとに基づいて補正ベクトルを生成する。ユーザ情報は、ユーザの属性情報および行動情報の少なくとも1つを含む。生成部33は、ユーザと類似する他のユーザのユーザ情報をベクトル化したベクトルに基づいて補正ベクトルを生成すること。変換部32は、複数のフィルタ条件それぞれに対応する複数のフィルタベクトルに変換する。生成部33は、複数のフィルタベクトルに基づいて補正ベクトルを生成する。このような構成により、検索結果の質を高めることができる。
【0093】
また、上述してきたように、実施形態に係る情報処理装置1は、変換部32と、設定部36とを備える。変換部32は、ユーザが入力した検索クエリと、検索対象となる各コンテンツとをそれぞれ内積空間におけるベクトルに変換する。設定部36は、各コンテンツに対応するコンテンツベクトルの中から、ノルムが所定値以上のコンテンツベクトルを抽出し、抽出したコンテンツベクトルに対応するコンテンツを検索クエリに対応するクエリベクトルとの内積計算の対象コンテンツとして設定する。設定部36は、コンテンツベクトルをノルムに応じてクラスタリングし、クラスタに含まれるコンテンツベクトルの代表ベクトルと、クエリベクトルとのノルム差に基づいて対象コンテンツを設定する。代表ベクトルは、クラスタに含まれるコンテンツベクトルの重心である。設定部36は、ノルム差が所定値以上、かつ、コンテンツベクトルのノルムが所定値以上のコンテンツを対象コンテンツとして設定する。設定部36は、ノルム差が所定値以上、かつ、コンテンツベクトルのノルムが上位から所定の割合までのコンテンツを対象コンテンツとして設定する。設定部36は、コンテンツベクトルをコンテンツのカテゴリ毎のクラスタに分類し、検索クエリのカテゴリと一致するクラスタの中から、対象コンテンツを設定する。このような構成により、検索結果の質を高めることができる。
【0094】
また、上述してきたように、実施形態に係る情報処理装置1は、分類部34と、特定部35と、検索部37とを備える。分類部34は、検索対象となる各コンテンツに対応するコンテンツベクトルをクラスタに分類する。特定部35は、ユーザが入力した検索クエリに対応するクエリベクトルと類似するクラスタを特定する。検索部37は、特定したクラスタに含まれるコンテンツベクトルに対応するコンテンツを検索対象として検索する。特定部35は、クラスタに含まれるコンテンツベクトルの代表ベクトルがクエリベクトルと類似するクラスタを特定する。代表ベクトルは、クラスタに含まれるコンテンツベクトルの重心である。特定部35は、検索対象の検索範囲を指定するフィルタ条件に合致するクラスタを抽出し、抽出したクラスタの中からクエリベクトルと類似するクラスタを特定する。特定部35は、クエリベクトルの向きおよびノルムが類似するクラスタを特定する。このような構成により、検索結果の質を高めることができる。
【0095】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0096】
〔その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0097】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0098】
また、上述してきた実施形態に記載した各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0099】
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、制御部3は、制御手段や制御回路に読み替えることができる。
【符号の説明】
【0100】
1 情報処理装置
2 通信部
3 制御部
4 記憶部
31 取得部
32 変換部
33 生成部
34 分類部
35 特定部
36 設定部
37 検索部
38 出力部
41 コンテンツ情報
42 ユーザ情報
50 ユーザ端末
N ネットワーク
S 情報処理システム
【要約】
【課題】検索結果の質を高めることができる情報処理装置、情報処理方法および情報処理プログラムを提供すること。
【解決手段】本願に係る情報処理装置は、分類部と、特定部と、検索部とを備える。分類部は、検索対象となる各コンテンツに対応するコンテンツベクトルをクラスタに分類する。特定部は、ユーザが入力した検索クエリに対応するクエリベクトルと類似するクラスタを特定する。検索部は、特定したクラスタに含まれるコンテンツベクトルに対応するコンテンツを検索対象として検索する。
【選択図】
図5