(57)【要約】【課題】適切なアイテムの推奨を可能にする。【解決手段】本願に係る情報処理装置は、取得部と、検索部と、決定部とを有する。取得部は、複数のアイテムの各々に対応する複数のノードが、複数のアイテムの類似性に応じて連結されたグラフ情報と、アイテムに関するクエリ情報を取得する。検索部は、取得部により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数のアイテムのうち、クエリ情報と類似性を有するアイテムである類似アイテムを抽出する。決定部は、類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する。【選択図】図４
2019159806.tif 000002
【特許請求の範囲】
【請求項１】
複数のアイテムの各々に対応する複数のノードが、前記複数のアイテムの類似性に応じて連結されたグラフ情報と、アイテムに関するクエリ情報を取得する取得部と、
前記取得部により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数のアイテムのうち、前記クエリ情報と類似性を有するアイテムである類似アイテムを抽出する検索部と、
前記類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する決定部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記決定部は、
前記起点ノードの決定に用いるインデックス情報に基づいて、前記起点ノードを決定し、
前記検索部は、
前記決定部により決定された前記起点ノードを起点として、前記類似アイテムを抽出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定部は、
木構造型の前記インデックス情報に基づいて、前記起点ノードを決定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得部は、
前記複数のアイテムの各々に対応する複数のベクトルの類似性に応じて、前記複数のノードが連結されたグラフ情報を取得する
ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記取得部は、
前記複数のアイテムの各々の特徴を示す前記複数のベクトルが類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記取得部は、
前記複数のアイテムの各々から抽出された特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項４または請求項５に記載の情報処理装置。
【請求項７】
前記取得部は、
所定のモデルの特徴量と重みとに基づく前記複数のベクトルが類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項４〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記取得部は、
前記複数のアイテムにおける異なる複数の基準に基づく類似性に応じて、前記複数のアイテムが連結された複数のグラフ情報であって、前記複数の基準の各々に対応する複数のグラフ情報を取得する
ことを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記取得部は、
前記複数のアイテムの前記ユーザに対するユーザビリティに関する類似性に応じて、前記複数のアイテムが連結されたグラフ情報を含む前記複数のグラフ情報を取得する
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記取得部は、
前記複数のアイテムの収益性に関する類似性に応じて、前記複数のアイテムが連結されたグラフ情報を含む前記複数のグラフ情報を取得する
ことを特徴とする請求項８または請求項９に記載の情報処理装置。
【請求項１１】
前記決定部は、
前記複数のグラフ情報のうち、前記ユーザへの推奨目的に応じて検索に用いる一のグラフ情報を決定し、
前記検索部は、
前記決定部により決定された前記一のグラフ情報を用いて、前記類似アイテムを抽出する
ことを特徴とする請求項８〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記取得部は、
一のアイテムに関するアイテム情報を前記クエリ情報として取得する
ことを特徴とする請求項１〜１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記取得部は、
前記ユーザに関するユーザ情報を前記クエリ情報として取得する
ことを特徴とする請求項１〜１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記決定部により決定された前記推奨アイテムに基づいて、所定のサービスを提供する提供部、
をさらに備えたことを特徴とする請求項１〜１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記提供部は、
前記推奨アイテムに基づいて、情報提供サービスを提供する
ことを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
前記提供部は、
前記ユーザが利用する端末装置に前記推奨アイテムを示す情報を提供する
ことを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
コンピュータが実行する情報処理方法であって、
複数のアイテムの各々に対応する複数のノードが、前記複数のアイテムの類似性に応じて連結されたグラフ情報と、一のアイテムに関するアイテム情報を取得する取得工程と、
前記取得工程により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数のアイテムのうち、前記一のアイテムと類似性を有するアイテムである類似アイテムを抽出する検索工程と、
前記類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する決定工程と、
を含んだことを特徴とする情報処理方法。
【請求項１８】
複数のアイテムの各々に対応する複数のノードが、前記複数のアイテムの類似性に応じて連結されたグラフ情報と、一のアイテムに関するアイテム情報を取得する取得手順と、
前記取得手順により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数のアイテムのうち、前記一のアイテムと類似性を有するアイテムである類似アイテムを抽出する検索手順と、
前記類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する決定手順と、
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、ユーザにニュース記事等のコンテンツや商品等の種々のアイテムを推奨する技術が提供されている。例えば、ユーザに類似するユーザを特定し、類似するユーザが過去に参照したアイテムの情報を、ユーザに対して推奨するアイテムの情報として出力する技術が提供されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−７３１１４号公報
【非特許文献】
【０００４】
【非特許文献１】岩崎雅二郎  "木構造型インデックスを利用した近似k最近傍グラフによる近傍検索",  情報処理学会論文誌,  2011/2,  Vol.  52,  No.  2.  pp.817-828.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、適切なアイテムの推奨を可能にすることが難しい場合がある。例えば、類似するユーザが過去に参照した情報を推奨するだけでは、ユーザにとって適切な情報であるとは限らず、適切なアイテムの推奨を行うことが難しい場合がある。
【０００６】
本願は、上記に鑑みてなされたものであって、適切なアイテムの推奨を可能にする情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る情報処理装置は、複数のアイテムの各々に対応する複数のノードが、前記複数のアイテムの類似性に応じて連結されたグラフ情報と、アイテムに関するクエリ情報を取得する取得部と、前記取得部により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数のアイテムのうち、前記クエリ情報と類似性を有するアイテムである類似アイテムを抽出する検索部と、前記類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する決定部と、を備えたことを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、適切なアイテムの推奨を可能にすることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る情報処理の一例を示す図である。
【図２】図２は、実施形態に係る情報処理の一例を示す図である。
【図３】図３は、実施形態に係る情報処理システムの構成例を示す図である。
【図４】図４は、実施形態に係る情報処理装置の構成例を示す図である。
【図５】図５は、実施形態に係るアイテム記憶部の一例を示す図である。
【図６】図６は、実施形態に係るインデックス情報記憶部の一例を示す図である。
【図７】図７は、実施形態に係るグラフ情報記憶部の一例を示す図である。
【図８】図８は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図９】図９は、実施形態に係る情報処理の一例を示すフローチャートである。
【図１０】図１０は、実施形態に係る生成処理の一例を示すフローチャートである。
【図１１】図１１は、実施形態に係るベクトルデータの生成の一例を示す図である。
【図１２】図１２は、グラフ情報を用いた検索処理の一例を示すフローチャートである。
【図１３】図１３は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１１】
（実施形態）
〔１．情報処理〕
図１及び図２を用いて、実施形態に係る情報処理の一例について説明する。図１及び図２は、実施形態に係る情報処理の一例を示す図である。図１及び図２では、情報処理装置１００がアイテムの一例として記事コンテンツをグラフ構造化したグラフデータ（グラフ情報）を検索することにより、類似するアイテムである類似アイテムを抽出する場合を示す。図１及び図２では、情報処理装置１００は、各アイテムに対応するベクトルデータ（「ベクトル情報」や、単に「ベクトル」ともいう）を用いてアイテムをグラフ構造化したグラフ情報を用いる。なお、情報処理装置１００が用いる情報は、ベクトルに限らず、各アイテムの類似性を表現可能な情報であれば、どのような形式の情報であってもよい。例えば、情報処理装置１００は、各アイテムに対応する所定のデータや値を用いてアイテムをグラフ構造化したグラフ情報を用いてもよい。例えば、情報処理装置１００は、各アイテムから生成された所定の数値（例えば２進数の値や１６進数の値）を用いてアイテムをグラフ構造化したグラフ情報を用いてもよい。また、図１及び図２の例では、記事コンテンツをアイテムの一例として示すが、アイテムは、記事コンテンツに限らず、商品や動画コンテンツ等の種々の対象であってもよい。例えば、アイテムは、所定の電子商取引で提供される商品等であってもよい。すなわち、対象とするアイテム（オブジェクト）は、各アイテム間の類似性を表現可能であれば、どのようなアイテム（情報）であってもよい。
【００１２】
〔１−１．グラフ情報について〕
詳細は図１及び図２において詳述するが、情報処理装置１００は、複数の基準（観点）の各々に対応する複数のグラフ情報から、用いるグラフ情報を決定し、決定したグラフ情報を用いて処理を行う。例えば、情報処理装置１００は、図２中のグラフ情報ＧＲ１１に示すように、各ベクトル（ノード）が有向エッジにより連結されたグラフデータを対象に情報処理を行う。なお、図２中のグラフ情報ＧＲ１１に示すようなグラフ情報は、情報処理装置１００が生成してもよいし、情報処理装置１００は、図２中のグラフ情報ＧＲ１１に示すようなグラフ情報を情報提供装置５０（図３参照）等の他の外部装置から取得してもよい。なお、グラフ情報ＧＲ１１は、複数の基準のうち、ユーザビリティをターゲットとしてアイテム情報（アイテムデータ）をグラフ構造化したグラフ情報である。例えば、グラフ情報ＧＲ１１は、ユーザビリティの観点に基づいてアイテム情報（アイテムデータ）をグラフ構造化したグラフ情報である。ここでいう、ターゲットとは、モデルやグラフ情報を生成する際の観点であってもよい。すなわち、ターゲットとは、モデルやグラフ情報がどのような観点でアイテム情報の類似性を見出すかを示す情報であってもよい。例えば、ターゲットとは、モデルやグラフ情報が何を対象とするものであるかを示す情報であってもよい。また、ターゲットとは、モデルやグラフ情報が用いられる目的や用途であってもよい。
【００１３】
また、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「Ａ」から所定のノード「Ｂ」に連結される有向エッジとは、参照元をノード「Ａ」とし、参照先をノード「Ｂ」とするエッジであることを示す。なお、各ノードを連結するエッジは、有向エッジに限らず、種々のエッジであってもよい。例えば、各ノードを連結するエッジは、ノードを連結する方向のないエッジであってもよい。例えば、各ノードを連結するエッジは、相互に参照可能なエッジであってもよい。例えば、各ノードを連結するエッジは、全て双方向エッジであってもよい。
【００１４】
例えば、このようにノード「Ａ」を参照元とするエッジをノード「Ａ」の出力エッジという。また、例えば、このようにノード「Ｂ」を参照先とするエッジをノード「Ｂ」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する２つのノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。
【００１５】
例えば、情報処理装置１００は、数百万〜数億単位のアイテムに対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。図２の例では、説明を簡単にするために、９個のノードを図示して処理の概要を説明する。例えば、情報処理装置１００は、図２中のグラフ情報ＧＲ１１に示すように、ノードＮ１、Ｎ２、Ｎ３等に示すような複数のノード（ベクトル）を含むグラフ情報を取得する。また、図２の例では、グラフ情報ＧＲ１１における各ノードは、そのノードとの間の距離が近い方から所定数のノードへのエッジ（出力エッジ）が連結される。例えば、所定数は、目的や用途等に応じて、２や５や１０や１００等の種々の値であってもよい。例えば、所定数が２である場合、ノードＮ１からは、ノードＮ１からの距離が最も近いノード及び２番目に距離が近い２つのノードに出力エッジが連結される。なお、類似度を示す指標としての距離は、ベクトル（Ｎ次元ベクトル）間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。例えば、情報処理装置１００は、下記の式（１）を用いてベクトル間の距離を算出してもよい。
【００１６】
また、このように「ノードＮ＊（＊は任意の数値）」と記載した場合、そのノードはノードＩＤ「Ｎ＊」により識別されるノードであることを示す。例えば、「ノードＮ１」と記載した場合、そのノードはノードＩＤ「Ｎ１」により識別されるノードである。
【００１７】
また、図２中のグラフ情報ＧＲ１１では、ノードＮ１は、ノードＮ３１２へ向かう有向エッジであるエッジＥ１２が連結される。すなわち、ノードＮ１は、ノードＮ３１２とエッジＥ１２により連結される。このように「エッジＥ＊（＊は任意の数値）」と記載した場合、そのエッジはエッジＩＤ「Ｅ＊」により識別されるエッジであることを示す。例えば、「エッジＥ１２」と記載した場合、そのエッジはエッジＩＤ「Ｅ１２」により識別されるエッジである。例えば、ノードＮ１を参照元とし、ノードＮ３１２を参照先として連結されるエッジＥ１２により、ノードＮ１からノードＮ３１２に辿ることが可能となる。この場合、有向エッジであるエッジＥ１２は、ノードＮ１を中心として識別される場合、出力エッジとなり、ノードＮ３１２を中心として識別される場合、入力エッジとなる。また、図２のグラフ情報ＧＲ１１中の双方向矢印は、両方のノードから他方のノードへの有向エッジが連結されることを示す。例えば、グラフ情報ＧＲ１１中のノードＮ８３とノードＮ６９３との間の双方向矢印は、ノードＮ８３からノードＮ６９３へ向かう有向エッジと、ノードＮ６９３からノードＮ８３へ向かう有向エッジとの２つのエッジが連結されることを示す。
【００１８】
また、図２中のグラフ情報ＧＲ１１は、ユークリッド空間であってもよい。また、図２に示すグラフ情報ＧＲ１１は、各ベクトル間の距離等の説明のための概念的な図であり、グラフ情報ＧＲ１１は、多次元空間である。例えば、図２に示すグラフ情報ＧＲ１１は、平面上に図示するため２次元の態様にて図示されるが、例えば１００次元や１０００次元等の多次元空間であるものとする。
【００１９】
ここで、ベクトルデータ間の距離は、アイテムの類似性を示し、距離が近いほど類似している。本実施形態においては、グラフ情報ＧＲ１１における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応する対象（アイテム）の類似性が、グラフ情報ＧＲ１１内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図２に示す例においては、グラフ情報ＧＲ１１における各ノード間の距離が短いオブジェクト同士の類似度が高く、グラフ情報ＧＲ１１における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、図２中のグラフ情報ＧＲ１１において、ノードＩＤ「Ｎ３」により識別されるノードと、ノードＩＤ「Ｎ６９３」により識別されるノードとは近接している、すなわち距離が短い。そのため、ノードＩＤ「Ｎ３」により識別されるノードに対応するオブジェクトと、ノードＩＤ「Ｎ６９３」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。この場合、例えば、ノードＩＤ「Ｎ３」により識別されるノードに対応するオブジェクトと、ノードＩＤ「Ｎ６９３」により識別されるノードに対応するオブジェクトとは、ユーザビリティの観点においては類似度が高いことを示す。
【００２０】
また、例えば、図２中のグラフ情報ＧＲ１１において、ノードＩＤ「Ｎ３１２」により識別されるノードと、ノードＩＤ「Ｎ２」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードＩＤ「Ｎ３１２」により識別されるノードに対応するオブジェクトと、ノードＩＤ「Ｎ２」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。この場合、例えば、ノードＩＤ「Ｎ２」により識別されるノードに対応するオブジェクトと、ノードＩＤ「Ｎ３１２」により識別されるノードに対応するオブジェクトとは、ユーザビリティの観点においては類似度が低いことを示す。
【００２１】
〔１−２．ベクトルの生成例〕
また、ここでいう、各ノード（ベクトル）は、各オブジェクト（アイテム）に対応する。アイテム情報が様々な観点に対応するアイテムの状態を示す数値データであれば、それをベクトルデータとして、そのまま扱うことも可能である。しかし、アイテム情報が、テキスト、画像、または、音声であったりする場合には、ベクトルデータへの変換が必要となる。そこで、図１の例では、各アイテムのアイテム情報から抽出された特徴量により生成された多次元（Ｎ次元）のベクトルがオブジェクトであってもよい。図１及び図２の例では、各アイテムのアイテムデータ（アイテム情報）から抽出された特徴量により生成された多次元（Ｎ次元）のベクトルがオブジェクトであってもよい。図１及び図２の例では、情報処理装置１００は、複数の基準ごとに生成されるベクトルを用いる。例えば、情報処理装置１００は、各アイテムについて、ユーザビリティ、収益性等の観点ごとに生成された多次元（Ｎ次元）のベクトルを用いる。この場合、情報処理装置１００は、各ターゲットについて生成される複数のグラフ情報を用いる。図１及び図２の例では、情報処理装置１００は、ターゲット「ユーザビリティ」について生成されるグラフ情報ＧＲ１１やターゲット「収益性」について生成されるグラフ情報ＧＲ１２を用いる場合を示す。なお、情報処理装置１００は、ターゲット「ユーザビリティ」やターゲット「収益性」に限らず、種々のターゲットに対応するグラフ情報を用いてもよいが、この点については後述する。
【００２２】
例えば、情報処理装置１００は、ターゲットごとに生成されたモデルを用いて各アイテム情報からＮ次元ベクトルを生成してもよい。図１及び図２の例では、情報処理装置１００は、モデル情報記憶部１２４（図８参照）に示すように、モデルＩＤ「Ｍ１」により識別されるモデル（モデルＭ１）を用いて、各アイテムのアイテムデータからベクトルを生成する。上記のように、「モデルＭ＊（＊は任意の数値）」と記載した場合、そのモデルはモデルＩＤ「Ｍ＊」により識別されるモデルであることを示す。例えば、「モデルＭ１」と記載した場合、そのモデルはモデルＩＤ「Ｍ１」により識別されるモデルである。また、モデル情報記憶部１２４に示すように、モデルＭ１はターゲット「ユーザビリティ」、すなわちユーザビリティの観点での各特徴量の重みの導出（生成）のために用いられるモデルである。
【００２３】
例えば、情報処理装置１００は、各アイテム情報と各ターゲットに対応するモデルとを用いて、各ターゲットに対応する各アイテムのベクトルデータを生成してもよい。情報処理装置１００は、アイテム＃１のアイテム情報ＩＭＤ１と、ターゲット「ユーザビリティ」に対応するモデルＭ１とを用いて、ターゲット「ユーザビリティ」に対応するアイテム＃１のＮ次元のベクトルデータを生成してもよい。
【００２４】
ここで、図１１を用いて、各アイテムのアイテムに対応するベクトルデータの生成の一例を示す。図１１は、実施形態に係るベクトルデータの生成の一例を示す図である。図１１中のモデル式ＭＦＭに示す「ｙ＝ｗ１＊ｘ１＋ｗ２＊ｘ２＋・・・＋ｗｎ＊ｘｎ」（ｎは任意の数値、Ｎ次元ベクトルの場合、ｎ＝Ｎ）の式は、ｎ個の特徴量（素性）とその重みとを含むモデルの式を示す。例えば、モデルＭ１、Ｍ２等は、モデル式ＭＦＭの形式により表現される。例えば、情報処理装置１００は、モデル式ＭＦＭ中の各特徴量とその重みとの組合せをベクトルの各次元の要素として、Ｎ次元ベクトルを生成する。例えば、情報処理装置１００は、図１１中のベクトル形式ＶＦＭに示すように、「ｗ１＊ｘ１」をベクトルの１次元目の要素とし、「ｗ２＊ｘ２」をベクトルの２次元目の要素とし、「ｗｎ＊ｘｎ」をベクトルのｎ次元目の要素としたＮ次元ベクトルを生成する。
【００２５】
次に、アイテムのアイテム情報と各ターゲットに対応するモデルとを用いたベクトルの生成の例を説明する。具体的には、情報処理装置１００がアイテム＃１について、ターゲット「ユーザビリティ」に対応するベクトルデータＶＤ１−１と、ターゲット「ユーザビリティ」に対応するベクトルデータＶＤ１−２を生成する場合を示す。
【００２６】
まず、図１１中のモデル情報記憶部１２４について説明する。「ターゲットＩＤ」は、どのような観点をターゲット（目的）とするかを識別するための識別情報を示す。また、「ターゲット」は、ターゲットＩＤにより識別されるターゲットの具体的な名称や内容等を示す。すなわい、「ターゲット」は、対応するモデルがどのような観点に基づくかを示す。「特徴量＃１」〜「特徴量＃３」の各々は、各モデルの一つの特徴量（要素）を示す。なお、図１１の例では、説明のために、各特徴量の項目に括弧書きで各特徴量に対応する対象を示す。例えば、「特徴量＃１」の下に示す「（単語＃１）」は、「特徴量＃１」に対応する対象が単語＃１であることを示す。例えば、「特徴量＃１」〜「特徴量＃３」等に対応する特徴については、予め設定されたものであってもよい。なお、図１１では、「特徴量＃３」までを図示するが、特徴量がｎ個（ｎは任意の数値）である場合、各モデルには、「特徴量＃１」〜「特徴量＃ｎ」のｎ個の特徴量が含まれる。例えば、特徴量が５千個である場合、各モデルには、「特徴量＃１」〜「特徴量＃５０００」の５千個の特徴量が含まれる。例えば、「特徴量＃１」〜「特徴量＃３」等に対応する特徴については、情報処理装置１００の管理者等が設定してもよい。例えば、情報処理装置１００は、「特徴量＃１」を「単語＃１」と設定され、「特徴量＃２」を「単語＃２」と設定され、「特徴量＃３」を「画像」と設定されたことを示す設定情報を、情報処理装置１００の管理者等の入力により取得してもよい。また、例えば、情報処理装置１００は、上記のような設定情報を、外部の情報処理装置（情報提供装置５０等）から取得してもよい。
【００２７】
例えば、図１１に示す例において、モデルＭ１は、ターゲット「ユーザビリティ」に対応するモデルであることを示す。また、例えば、図１１に示す例において、モデルＭ２は、ターゲット「収益性」に対応するモデルであることを示す。
【００２８】
例えば、図１１に示す例において、各モデルの特徴量＃１は単語＃１に対応する特徴量（素性）であることを示す。また、例えば、図１１に示す例において、各モデルの特徴量＃２は単語＃２に対応する特徴量であることを示す。また、例えば、図１１に示す例において、各モデルの特徴量＃３は画像に対応する特徴量であることを示す。
【００２９】
また、図１１中のアイテム情報一覧ＩＬＴは、アイテム情報から生成される情報であって、ベクトルの生成に用いられる情報（以下、「ベクトル用情報」ともいう）を示す。アイテム＃１における単語＃１の値（ｘ１）は「１」であることを示す。例えば、情報処理装置１００は、アイテム＃１における単語＃１の出現頻度が所定の閾値（例えば５回等）以上である場合、アイテム＃１における単語＃１（特徴量＃１）の値（ｘ１）を「１」と決定する。また、アイテム＃１における単語＃２の値（ｘ２）は「０」であることを示す。例えば、情報処理装置１００は、アイテム＃１における単語＃２の出現頻度が所定の閾値（例えば３回等）未満である場合、アイテム＃１における単語＃２（特徴量＃２）の値（ｘ２）を「０」と決定する。また、アイテム＃１における画像の値（ｘ３）は「１」であることを示す。例えば、情報処理装置１００は、アイテム＃１に画像が含まれる場合、アイテム＃１における画像（特徴量＃３）の値（ｘ３）を「１」と決定する。
【００３０】
この場合、情報処理装置１００は、ベクトル用情報一覧ＶＬＴ１に示すように、「ｘ１＝１」、「ｘ２＝０」、「ｘ３＝１」等の各次元の変数（変項）に入力される値を決定する。例えば、情報処理装置１００は、アイテム＃１のアイテム情報ＩＭＤ１等に含まれる文字情報を形態素解析等の自然言語処理技術を適宜用いて解析することにより、単語（キーワード）を抽出し、各単語の出現頻度を計数（カウント）してもよい。例えば、情報処理装置１００は、アイテム＃１のアイテム情報ＩＭＤ１から抽出された単語の情報に基づいて、アイテム＃１における各単語の出現頻度を計数する。また、情報処理装置１００は、アイテム＃１のアイテム情報ＩＭＤ１等に含まれる画像情報に基づいて、画像情報の有無を判定してもよい。
【００３１】
また、図１１に示す例において、モデルＭ１は、特徴量＃１の重みが「０．０２」、特徴量＃２の重みが「０．０５」、特徴量＃３の重みが「０．０１」等であることを示す。この場合、情報処理装置１００は、重み情報一覧ＷＬＴ１に示すように、「ｗ１＝０．０２」、「ｗ２＝０．０５」、「ｗ３＝０．０１」等、ターゲット「ユーザビリティ」に対応する各次元の重みの値を決定する。
【００３２】
そして、情報処理装置１００は、「ｗ１」を「０．０２」とし、「ｘ１」を「１」とし、「ｗ２」を「０．０５」とし、「ｘ２」を「０」とし、「ｗ３」を「０．０１」とし、「ｘ３」を「１」とした中間ベクトルＳＢ１−１を生成する。そして、情報処理装置１００は、次元ごとに特徴量と重みとを乗算することにより、各次元の要素を算出する。これにより、情報処理装置１００は、１次元目の値が「０．０２」であり、２次元目の値が「０」であり、３次元目の値が「０．０１」であるベクトルＶＤ１−１を生成する。すなわち、情報処理装置１００は、図１１中に示すように「０．０２，０，０．０１，…」のような、ターゲット「ユーザビリティ」に対応するベクトルＶＤ１−１を生成する。
【００３３】
また、モデルＭ２は、特徴量＃１の重みが「０．０１」、特徴量＃２の重みが「０」、特徴量＃３の重みが「０．０６」等であることを示す。この場合、情報処理装置１００は、重み情報一覧ＷＬＴ２に示すように、「ｗ１＝０．０１」、「ｗ２＝０」、「ｗ３＝０．０６」等、ターゲット「収益性」に対応する各次元の重みの値を決定する。
【００３４】
そして、情報処理装置１００は、「ｗ１」を「０．０１」とし、「ｘ１」を「１」とし、「ｗ２」を「０」とし、「ｘ２」を「０」とし、「ｗ３」を「０．０６」とし、「ｘ３」を「１」とした中間ベクトルＳＢ１−２を生成する。そして、情報処理装置１００は、次元ごとに特徴量と重みとを乗算することにより、各次元の要素を算出する。これにより、情報処理装置１００は、１次元目の値が「０．０１」であり、２次元目の値が「０」であり、３次元目の値が「０．０６」であるベクトルＶＤ１−２を生成する。すなわち、情報処理装置１００は、図１１中に示すように「０．０１，０，０．０６，…」のような、ターゲット「収益性」に対応するベクトルＶＤ１−２を生成する。
【００３５】
このように、情報処理装置１００は、１つのアイテムについて、複数の基準の各々に基づく複数のベクトルを生成する。なお、上記は一例であり、情報処理装置１００は、種々の情報を適宜用いて、１つのアイテムについて、複数の各々に基づく複数のベクトルを生成してもよい。なお、情報処理装置１００は、情報提供装置５０等の他の外部装置からモデルＭ１、Ｍ２等を取得してもよい。
【００３６】
また、情報処理装置１００は、生成したベクトルをアイテム情報記憶部１２１（図５参照）等の記憶部１２０（図４参照）に記憶してもよいし、ベクトルを用いる際に随時生成してもよい。例えば、情報処理装置１００は、ベクトル間の距離計算等のベクトルを用いた処理を行う際に、アイテム情報記憶部１２１に記憶されたベクトル用情報やモデル情報記憶部１２４（図８参照）に重み情報を含むモデルを用いて、ベクトルを生成してもよい。情報処理装置１００は、ベクトル間の距離計算時に、ベクトル用情報とモデルとを用いて、ベクトルを生成してもよい。また、情報処理装置１００は、ベクトル用情報をベクトルとして用いてもよい。
【００３７】
また、例えば、情報処理装置１００は、オートエンコーダ等の種々のモデルを用いて、アイテム情報からの特徴抽出を行い、その特徴を用いてベクトルの生成を行なってもよい。例えば、情報処理装置１００は、ターゲット「ユーザビリティ」に適したアイテム情報からオートエンコーダにより特徴抽出を行い、その特徴を用いてターゲット「ユーザビリティ」に対応するベクトルの生成を行なってもよい。例えば、情報処理装置１００は、ターゲット「収益性」に適したアイテム情報からオートエンコーダにより特徴抽出を行い、その特徴を用いてターゲット「収益性」に対応するベクトルの生成を行なってもよい。例えば、所定の目的に適したアイテム情報と適さないアイテム情報を識別するように学習させたモデルを生成して、その中間層をベクトルデータとして抽出しても良い。また、例えば、トリプレットロス（triplet  loss）といった類似性を学習する方法によりモデルを生成してもよい。例えば、情報処理装置１００は、記事コンテンツの特徴（素性）に対応する情報をアイテム情報から抽出し、ベクトルを生成してもよい。
【００３８】
なお、情報処理装置１００は、アイテム情報記憶部１２１（図５参照）に記憶された各アイテムのアイテム情報ＩＭＤ１、ＩＭＤ２、ＩＭＤ８３等を入力として、モデルを生成してもよい。情報処理装置１００は、各アイテムのアイテム情報ＩＭＤ１、ＩＭＤ２、ＩＭＤ８３等を入力とし、各ターゲットに対応する正解情報にモデルの出力値が近づくように学習することにより、各ターゲットに対応するモデルを生成してもよい。情報処理装置１００は、各アイテムのアイテム情報ＩＭＤ１、ＩＭＤ２、ＩＭＤ８３等を入力とし、ターゲット「ユーザビリティ」に対応する正解情報にモデルの出力値が近づくように学習することにより、ターゲット「ユーザビリティ」に対応するモデルを生成してもよい。例えば、アイテム情報ＩＭＤ１、ＩＭＤ２、ＩＭＤ８３等は、対応するアイテム中の記事コンテンツ全体であってもよい。また、例えば、アイテム情報ＩＭＤ１、ＩＭＤ２、ＩＭＤ８３等は、対応するアイテムのタイトルや本文等の文章から抽出された各要素、例えばアイテムに含まれる単語の一覧や単語の出現頻度等を示す情報であってもよい。また、例えば、アイテム情報ＩＭＤ１、ＩＭＤ２、ＩＭＤ８３等が、文章や単語群である場合、情報処理装置１００は、Ｗｏｒｄ２ＶｅｃやＤｏｃ２Ｖｅｃのようなアルゴリズム等を用いて、ベクトルを生成してもよい。例えば、情報処理装置１００は、アイテム情報ＩＭＤ１、ＩＭＤ２、ＩＭＤ８３等から、Ｄｏｃ２Ｖｅｃを用いてベクトルを生成してもよい。
【００３９】
情報処理装置１００は、アイテムのアイテム情報（アイテムデータ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力されたログ情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、所定のターゲット（目的）に適したアイテムかどうかを示すスコアの値を出力層から出力するモデルを生成してもよい。また、情報処理装置１００は、ベクトル生成に用いるモデルを情報提供装置５０等の他の外部装置から取得してもよい。
【００４０】
〔１−３．処理例〕
ここから、情報処理装置１００は、ユーザが閲覧した記事コンテンツである一のアイテムのアイテム情報を取得し、ユーザに推奨するアイテム（以下、「推奨アイテム」ともいう）に関する情報提供を行う場合を一例として説明する。図１の例では、端末装置１０は、記事コンテンツを閲覧するユーザＵ１が利用する。
【００４１】
例えば、ユーザＵ１は、端末装置１０を操作することにより、所定の記事コンテンツであるアイテムＸを端末装置１０に表示させ、アイテムＸを閲覧する。例えば、ユーザＵ１は、アイテムＸのタイトルを選択（クリック）することにより、端末装置１０にアイテムＸの記事全体を含む情報を端末装置１０に表示させ、アイテムＸを閲覧する。そして、端末装置１０は、ユーザＵ１がアイテムＸを選択（クリック）したことに応じて、アイテムＸに関する情報をクエリ情報として情報処理装置１００へ送信する。なお、端末装置１０は、ユーザＵ１がアイテムＸを選択（クリック）したことを示す履歴情報を情報処理装置１００に送信してもよい。そして、端末装置１０からユーザＵ１がアイテムＸを選択したことを示す情報を受信した情報処理装置１００は、アイテムＸに関する情報をユーザＵ１への推奨アイテムを決定するためのクエリ情報として用いてもよい。
【００４２】
図１の例では、端末装置１０は、アイテムＸのアイテム情報ＩＭＤ１１を、クエリ情報として情報処理装置１００へ送信する。例えば、アイテム情報ＩＭＤ１１は、アイテムＸの記事全体の情報であってもよい。また、例えば、端末装置１０は、アイテムＸを特定する情報と、アイテムＸのアイテムの文章から抽出された各要素、例えばアイテムＸのアイテムに含まれる単語の一覧や単語の出現頻度や画像の有無等を示す情報（ベクトル用情報）を、クエリ情報として情報処理装置１００へ送信してもよい。なお、端末装置１０は、アイテムＸをユーザＵ１が選択（クリック）したことを示す情報のみを情報処理装置１００へ送信してもよい。そして、ユーザＵ１が選択（クリック）を取得した情報処理装置１００は、その情報と記憶部１２０（図４参照）や他の外部装置（情報提供装置５０等）から取得した情報を基に推奨アイテムを決定してもよい。
【００４３】
そして、情報処理装置１００は、アイテムに関するクエリ情報を取得する（ステップＳ１１）。図１の例では、情報処理装置１００は、端末装置１０からアイテムＸに関するアイテム情報ＩＭＤ１１を、クエリ情報として取得する。
【００４４】
そして、情報処理装置１００は、ターゲットを決定する（ステップＳ１２）。図１の例では、情報処理装置１００は、ターゲットをユーザビリティと決定する。例えば、情報処理装置１００は、ユーザが選択したくなるようなアイテムをユーザに提供し、ユーザのユーザビリティを向上させるために、ターゲットをユーザビリティと決定する。例えば、情報処理装置１００は、提供する記事コンテンツがユーザにとって適切なものである可能性が高くなり、ユーザのユーザビリティを向上させるために、ターゲットをユーザビリティと決定する。情報処理装置１００は、ユーザＵ１が選択したアイテムＸに類似するようなアイテムをユーザＵ１に推奨するために、ターゲットをユーザビリティと決定する。情報処理装置１００は、種々の情報を適宜用いてターゲットを決定する。情報処理装置１００は、種々の基準に基づいてターゲットを決定する。例えば、情報処理装置１００は、収益性を向上させる場合、ターゲットを収益性と決定する。
【００４５】
そして、情報処理装置１００は、グラフを決定する（ステップＳ１３）。情報処理装置１００は、ターゲット「ユーザビリティ」に対応するグラフやターゲット「収益性」に対応するグラフのうち、検索に用いるグラフを決定する。図１の例では、情報処理装置１００は、複数グラフ情報群ＧＩＮＦに示すように、ターゲット「ユーザビリティ」に対応する検索用情報群ＩＮＦ１１やターゲット「収益性」に対応する検索用情報群ＩＮＦ１２のうち、検索に用いる情報を決定する。ターゲット「ユーザビリティ」に対応する検索用情報群ＩＮＦ１１には、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１が含まれる。また、ターゲット「収益性」に対応する検索用情報群ＩＮＦ１２には、グラフ情報ＧＲ１２やインデックス情報ＩＮＤ１２が含まれる。図１の例では、情報処理装置１００は、ターゲット「ユーザビリティ」に対応するグラフを用いると決定する。
【００４６】
そして、情報処理装置１００は、類似アイテムを抽出する抽出処理を行う（ステップＳ１４）。情報処理装置１００は、取得したアイテムＸのアイテム情報ＩＭＤ１１に基づいて、アイテムに類似する類似アイテムを抽出する抽出処理を行う。図１の例では、情報処理装置１００は、アイテム情報ＩＭＤ１１を用いて抽出処理を行う。
【００４７】
ここから、図２を用いて、抽出処理の具体例を説明する。図２に示すように、情報処理装置１００は、アイテムＸの情報からグラフ情報の探索に用いるベクトルを生成する。図２の例では、情報処理装置１００は、処理群ＰＳ１１に示すような処理により、アイテムＸに対応するベクトルを生成する。
【００４８】
まず、情報処理装置１００は、アイテムＸのベクトル用情報を生成する（ステップＳ１４−１）。情報処理装置１００は、アイテムＸのアイテム情報ＩＭＤ１１からアイテムＸのベクトル用情報を生成する。
【００４９】
例えば、情報処理装置１００は、アイテムＸのアイテム情報ＩＭＤ１１等に含まれる文字情報を形態素解析等の自然言語処理技術を適宜用いて解析することにより、単語（キーワード）を抽出し、各単語の出現頻度を計数（カウント）してもよい。また、情報処理装置１００は、アイテムＸのアイテム情報ＩＭＤ１１等に含まれる画像情報に基づいて、画像情報の有無を判定してもよい。
【００５０】
例えば、情報処理装置１００は、アイテムＸのアイテム情報ＩＭＤ１１から抽出された単語の情報に基づいて、アイテムＸにおける各単語の出現頻度を計数する。情報処理装置１００は、アイテムＸにおける単語＃１の出現頻度を５回であると計数する。そして、情報処理装置１００は、アイテムＸにおける単語＃１の出現頻度を１０回が所定の閾値（例えば５回等）以上であると判定し、アイテムＸにおける単語＃１（特徴量＃１）の値（ｘ１）を「１」と決定する。
【００５１】
また、情報処理装置１００は、アイテムＸにおける単語＃２の出現頻度を４回であると計数する。そして、情報処理装置１００は、アイテムＸにおける単語＃２の出現頻度を５回が所定の閾値（例えば３回等）以上であると判定し、アイテムＸにおける単語＃２（特徴量＃２）の値（ｘ２）を「１」と決定する。また、情報処理装置１００は、アイテム情報ＩＭＤ１１に画像情報が含まれているかどうかを判定する。図２の例では、情報処理装置１００は、アイテムＸには画像情報が含まれないと判定し、アイテムＸにおける単語＃３（特徴量＃３）の値（ｘ３）を「０」と決定する。このように、情報処理装置１００は、「ｘ１＝１」、「ｘ２＝１」、「ｘ３＝０」等の各次元の変数に入力される値を決定する。
【００５２】
そして、情報処理装置１００は、図２中のベクトル用情報一覧ＦＶＤ１１に示すように、「（１，１，０，…）」であるアイテムＸのベクトル用情報を生成する。情報処理装置１００は、１次元目に対応する値が「１」、２次元目に対応する値が「１」、３次元目に対応する値が「０」等であるベクトル用情報を生成する。
【００５３】
そして、情報処理装置１００は、ベクトル用情報と、ターゲットに対応するモデルの重み情報とを用いて、ベクトルを生成する（ステップＳ１４−２）。図２の例では、情報処理装置１００は、アイテムＸのベクトル用情報と、ターゲット「ユーザビリティ」に対応するモデルＭ１の重み情報とを用いて、アイテムＸのベクトル（以下、「ベクトルＶＤ１１」ともいう）を生成する。情報処理装置１００は、図２中の重み情報一覧ＷＤＴ１に示すように、「（０．０２，０．０５，０．０１，…）」であるモデルＭ１の重み情報を用いて、アイテムＸのベクトルＶＤ１１を生成する。情報処理装置１００は、１次元目に対応する値が「０．０２」、２次元目に対応する値が「０．０５」、３次元目に対応する値が「０．０１」等である重み情報を用いて、ベクトルＶＤ１１を生成する。すなわち、情報処理装置１００は、「ｗ１＝０．０２」、「ｗ２＝０．０５」、「ｗ３＝０．０１」等のモデルＭ１の重み情報を用いて、ベクトルＶＤ１１を生成する。
【００５４】
具体的には、情報処理装置１００は、図１１中のベクトル形式ＶＦＭに示すように、「ｗ１＊ｘ１」をベクトルの１次元目の要素とし、「ｗ２＊ｘ２」をベクトルの２次元目の要素とし、「ｗｎ＊ｘｎ」をベクトルのｎ次元目の要素としたベクトルＶＤ１１を生成する。情報処理装置１００は、「ｗ１」を「０．０２」とし、「ｘ１」を「１」とし、「ｗ２」を「０．０５」とし、「ｘ２」を「１」とし、「ｗ３」を「０．０１」とし、「ｘ３」を「０」として、ベクトルＶＤ１１を生成する。そして、情報処理装置１００は、次元ごとに特徴量と重みとを乗算することにより、各次元の要素を算出する。これにより、情報処理装置１００は、１次元目の値が「０．０２」であり、２次元目の値が「０．０５」であり、３次元目の値が「０」であるベクトルＶＤ１１を生成する。すなわち、情報処理装置１００は、「０．０２，０．０５，０，…」のような、ターゲット「ユーザビリティ」に対応するアイテムＸのベクトルＶＤ１１を生成する。
【００５５】
そして、情報処理装置１００は、アイテムＸに類似するアイテム（類似アイテム）を検索する（ステップＳ１４−３）。例えば、情報処理装置１００は、非特許文献１に開示されるような近傍検索の技術等の種々の従来技術を適宜用いて、アイテムＸの類似アイテムを検索してもよい。
【００５６】
図２の例では、情報処理装置１００は、検索用情報群ＩＮＦ１１に示すように、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１を用いてアイテムＸの類似アイテムを検索する。例えば、情報処理装置１００は、グラフ情報記憶部１２３（図７参照）からターゲット「ユーザビリティ」に対応するグラフ情報ＧＲ１１を取得する。具体的には、情報処理装置１００は、グラフデータセット１２３−１（図７参照）からターゲット「ユーザビリティ」に対応するグラフ情報ＧＲ１１を取得する。また、例えば、情報処理装置１００は、インデックス情報記憶部１２２（図６参照）から、グラフ情報ＧＲ１１における検索の起点となるノード（以下、「起点ベクトル」ともいう）の決定に用いるインデックス情報ＩＮＤ１１を取得する。具体的には、情報処理装置１００は、インデックスデータセット１２２−１（図６参照）からターゲット「ユーザビリティ」に対応するインデックス情報ＩＮＤ１１を取得する。なお、インデックス情報ＩＮＤ１１は、情報処理装置１００が生成してもよいし、情報処理装置１００は、インデックス情報ＩＮＤ１１を情報提供装置５０等の他の外部装置から取得してもよい。
【００５７】
そして、情報処理装置１００は、一のアイテム（クエリ）に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。図２の例では、情報処理装置１００は、アイテムＸのベクトルＶＤ１１に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。すなわち、情報処理装置１００は、ベクトルＶＤ１１とインデックス情報ＩＮＤ１１とを用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する。
【００５８】
図２中のインデックス情報ＩＮＤ１１は、図６中のインデックス情報記憶部１２２に示す階層構造を有する。例えば、インデックス情報ＩＮＤ１１は、ルートＲＴの直下に位置する第１階層のノード（ベクトル）が、節点ＶＴ１、ＶＴ２等であることを示す。また、例えば、インデックス情報ＩＮＤ１１は、節点ＶＴ２の直下の第２階層のノードが、節点ＶＴ２−１〜ＶＴ２−４（図示せず）であることを示す。また、例えば、インデックス情報ＩＮＤ１１は、節点ＶＴ２−２の直下の第３階層のノードが、ノードＮ８３、ノードＮ５１６、すなわちグラフ情報ＧＲ１１中のノード（ベクトル）であることを示す。
【００５９】
例えば、情報処理装置１００は、図２中のインデックス情報ＩＮＤ１１に示すような木構造型のインデックス情報を用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する（ステップＳ１４−４）。図２の例では、情報処理装置１００は、ベクトルＶＤ１１を生成した後、インデックス情報ＩＮＤ１１を上から下へ辿ることにより、インデックス情報ＩＮＤ１１の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ（一のアイテム）に対応する起点ベクトルを決定することができる。
【００６０】
例えば、情報処理装置１００は、インデックス情報ＩＮＤ１１をルートＲＴからリーフノード（グラフ情報ＧＲ１１中のノード（ベクトル））まで辿ることにより、ベクトルＶＤ１１に対応する起点ベクトルを決定してもよい。図２の例では、例えば、情報処理装置１００は、インデックス情報ＩＮＤ１１をルートＲＴからノードＮ８３まで辿ることにより、ノードＮ８３を起点ベクトルとして決定する。例えば、情報処理装置１００は、木構造に関する種々の従来技術を適宜用いて、インデックス情報ＩＮＤ１１をルートＲＴからリーフノードまで辿ることにより、辿りついたリーフノードを起点ベクトルとして決定してもよい。例えば、情報処理装置１００は、ベクトルＶＤ１１との類似度に基づいて、インデックス情報ＩＮＤ１１を下へ辿ることにより、起点ベクトルを決定してもよい。
【００６１】
例えば、情報処理装置１００は、ルートＲＴから節点ＶＴ１、ＶＴ２等のいずれの節点に辿るかを、ベクトルＶＤ１１と節点ＶＴ１、ＶＴ２との類似度に基づいて決定してもよい。例えば、情報処理装置１００は、ルートＲＴから節点ＶＴ１、ＶＴ２等のうち、ベクトルＶＤ１１との類似度が最も高い節点ＶＴ２へ辿ると決定してもよい。また、例えば、情報処理装置１００は、節点ＶＴ２から節点ＶＴ２−１〜ＶＴ２−４等のうち、ベクトルＶＤ１１との類似度が最も高い節点ＶＴ２−２へ辿ると決定してもよい。また、例えば、情報処理装置１００は、節点ＶＴ２−２からノードＮ８３、ノードＮ５１６等のうち、ベクトルＶＤ１１との類似度が最も高い節点ノードＮ８３へ辿ると決定してもよい。
【００６２】
なお、図２の例では、説明を簡単にするために、起点ベクトルを１つ決定する場合を示すが、情報処理装置１００は、複数個の起点ベクトルを決定してもよい。例えば、情報処理装置１００は、ノードＮ８３、ノードＮ５１６、ノードＮ１０等の複数個のベクトル（ノード）を起点ベクトルとして決定してもよい。なお、インデックス情報ＩＮＤ１１を用いずに、検索開始時にグラフ情報ＧＲ１１からランダムに１つ以上のノードを選択し、それを起点ベクトルとしてもよいし、または、予め指定された１つ以上のノードを起点ベクトルとしてもよい。
【００６３】
そして、情報処理装置１００は、グラフ情報ＧＲ１１を検索することにより、アイテムＸの類似アイテムを抽出する（ステップＳ１４−５）。例えば、情報処理装置１００は、ノードＮ８３の近傍に位置するノードを類似アイテムとして抽出する。例えば、情報処理装置１００は、ノードＮ８３からの距離が近いノードを類似アイテムとして抽出する。例えば、情報処理装置１００は、ノードＮ８３を起点として、エッジを辿ることにより、ノードＮ８３から到達可能なノードを類似アイテムとして抽出する。例えば、情報処理装置１００は、所定数（例えば、２個や１０個等）のノードを類似アイテムとして抽出する。例えば、情報処理装置１００は、図１２に示すような検索処理により、アイテムＸの類似アイテムを抽出してもよいが、詳細は後述する。図１及び図２の例では、情報処理装置１００は、ノードＮ８３を起点として、グラフ情報ＧＲ１１を探索することにより、ノードＮ８３やノードＮ６７を類似アイテムとして抽出する。
【００６４】
そして、情報処理装置１００は、抽出した類似アイテムに基づいて、ユーザに推奨する推奨アイテムを決定する（ステップＳ１５）。情報処理装置１００は、アイテムＸの類似アイテムであるノードＮ８３に対応するアイテム＃８３やノードＮ６７に対応するアイテム＃６７等のうち、ユーザに推奨する推奨アイテムを決定する。例えば、情報処理装置１００は、抽出した類似アイテムのうち、アイテムＸに最も類似するアイテムをユーザＵ１に推奨する推奨アイテムを決定する。例えば、情報処理装置１００は、抽出した類似アイテムのうち、アイテムＸのベクトルＶＤ１１に最も類似するアイテムをユーザＵ１に推奨する推奨アイテムを決定する。例えば、情報処理装置１００は、抽出した類似アイテムにおけるターゲット「ユーザビリティ」に対応するベクトルのうち、アイテムＸのベクトルＶＤ１１に最も類似するベクトルのアイテムをユーザＵ１に推奨する推奨アイテムを決定する。
【００６５】
この場合、情報処理装置１００は、アイテムＸのベクトルＶＤ１１と、ターゲット「ユーザビリティ」に対応するアイテム＃８３のベクトルＶＤ１−１やアイテム＃６７のベクトルとを比較することにより、アイテムＸに最も類似するアイテムを推奨アイテムに決定する。例えば、情報処理装置１００は、下記の式（１）を用いて、２つのベクトル間の距離を算出してもよい。そして、情報処理装置１００は、２つのベクトル間の距離が小さい（０に近い）程、２つのベクトルが類似していると判定する。
【００６６】
ｄ  ＝  （（ａ１−ａ２）２＋（ｂ１−ｂ２）２＋（ｃ１−ｃ２）２＋…）１／２  …（１）
【００６７】
ここで、上記式（１）の左辺中の距離「ｄ」は、２つのベクトル間の距離を示す。上記式（１）の右辺中の「ａ１」は、一方のベクトルの１次元目に対応する。上記式（１）の右辺中の「ａ２」は、他方のベクトルの１次元目に対応する。また、上記式（１）の右辺中の「ｂ１」は、一方のベクトルの２次元目に対応する。上記式（１）の右辺中の「ｂ２」は、他方のベクトルの２次元目に対応する。上記式（１）では、次元ごとの差分の二乗の総和を二分の一乗することにより距離「ｄ」を算出する。
【００６８】
例えば、情報処理装置１００は、アイテムＸとアイテム＃８３との間の距離を算出する場合、上記式（１）に基づいて以下の式（２）のように算出する。
【００６９】
ｄ１  ＝  （（０．０２−０．０２）２＋（０．０５−０）２＋（０−０．０１）２＋…）１／２  …（２）
【００７０】
ここで、上記式（２）の左辺中の距離「ｄ１」は、アイテムＸのベクトルＶＤ１１とアイテム＃８３のベクトルＶＤ１−１との間の距離を示す。上記式（２）のように、情報処理装置１００は、アイテムＸとアイテム＃８３との間の距離を算出する。
【００７１】
また、情報処理装置１００は、下記の式（１）と同等である下記の式（３）を用いて、２つのベクトル間の距離を算出してもよい。
【００７２】
ｄ  ＝  （（ｗ１（ｘ１１−ｘ１２））２＋（ｗ２（ｘ２１−ｘ２２））２＋…）１／２  …（３）
【００７３】
ここで、上記式（３）の左辺中の距離「ｄ」は、２つのベクトル間の距離を示す。上記式（３）の右辺中の「ｗ１」は、ベクトルの１次元目に対応する特徴量の重みに対応する。上記式（３）の右辺中の「ｘ１１」は、一方のベクトル用情報の１次元目に対応する。上記式（３）の右辺中の「ｘ１２」は、他方のベクトル用情報の１次元目に対応する。上記式（３）の右辺中の「ｗ２」は、ベクトルの２次元目に対応する特徴量の重みに対応する。上記式（３）の右辺中の「ｘ２１」は、一方のベクトル用情報の２次元目に対応する。上記式（３）の右辺中の「ｘ２２」は、他方のベクトル用情報の２次元目に対応する。上記式（３）では、次元ごとの差分の二乗の総和を二分の一乗することにより距離「ｄ」を算出する。上記式（１）により算出される距離「ｄ」が小さい（０に近い）程、２つのベクトルが類似する。なお、上記距離の算出は一例であり、情報処理装置１００は、種々の方法により２つのベクトル間の距離を算出してもよい。すなわち、情報処理装置１００は、種々の距離関数を用いて２つのベクトル間の距離を算出してもよい。例えば、下記の式（４）により距離を算出してもよい。
【００７４】
ｄ  ＝  （ｗ１（ｘ１１−ｘ１２）２＋ｗ２（ｘ２１−ｘ２２）２＋…）１／２  …（４）
【００７５】
図１の例では、情報処理装置１００は、アイテムＸのベクトルＶＤ１１との距離が最も近い（短い）ベクトルがアイテム＃６７のベクトルであると判定したものとする。そのため、情報処理装置１００は、アイテム＃６７をユーザＵ１に推奨する推奨アイテムを決定する。
【００７６】
なお、上記は一例であり、情報処理装置１００は、種々の基準に基づいて、推奨アイテムを決定してもよい。例えば、情報処理装置１００は、類似アイテムのうち、最も新しいアイテムを推奨アイテムとして決定してもよい。例えば、情報処理装置１００は、類似アイテムのうち、最新の記事コンテンツであるアイテムを推奨アイテムとして決定してもよい。例えば、情報処理装置１００は、類似アイテムのうち、配信日時が最も新しいアイテムを推奨アイテムとして決定してもよい。また、情報処理装置１００は、複数の類似アイテムを推奨アイテムとして決定してもよい。例えば、情報処理装置１００は、アイテム＃８３やアイテム＃６７等を推奨アイテムとして決定してもよい。例えば、情報処理装置１００は、抽出されたアイテムＸの類似アイテムの全てを推奨アイテムとして決定してもよい。
【００７７】
そして、情報処理装置１００は、決定した推奨アイテムに関する情報を提供する（ステップＳ１６）。図１の例では、情報処理装置１００は、アイテム＃６７を推奨アイテムとしてユーザＵ１が利用する端末装置１０に提供する。情報処理装置１００は、アイテム＃６７である記事コンテンツを端末装置１０に配信する。
【００７８】
上述したように、情報処理装置１００は、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１を用いて、ユーザＵ１から取得したアイテムＸの類似アイテムを抽出する。このように、情報処理装置１００は、ターゲットに応じて、検索に用いるグラフを決定することにより、用途に応じた適切なグラフを用いることができる。情報処理装置１００は、複数のターゲットの各々に対応する複数のグラフから、目的に応じて、検索に用いるグラフを決定することにより、用途に応じた適切なグラフを用いることができる。
【００７９】
そして、情報処理装置１００は、インデックス情報ＩＮＤ１１を用いて、アイテムＸの類似アイテムを抽出する際のグラフ情報ＧＲ１１における起点ベクトルを決定する。そして、情報処理装置１００は、決定した起点ベクトルを起点としてグラフ情報ＧＲ１１を探索することにより、アイテムＸの類似アイテムを抽出する。これにより、情報処理装置１００は、適切なアイテムの推奨を可能にすることができる。また、情報処理装置１００は、グラフ情報ＧＲ１１を探索することにより、類似するアイテムを高速に抽出することができる。
【００８０】
そして、情報処理装置１００は、抽出した類似アイテムに基づいて推奨アイテムを決定し、推奨アイテムに関する情報を端末装置１０に送信する。これにより、情報処理装置１００は、ユーザに対して適切なアイテムの推奨を行うことができる。したがって、情報処理装置１００は、適切なアイテムの推奨を可能にすることができる。
【００８１】
例えば、情報処理装置１００は、アイテムＸと類似性を有するアイテム（類似アイテム）が、例えばアイテムＸと一見関係が無いように見える場合であっても、グラフ情報を用いることで、アイテムＸの類似アイテムとして抽出でき、適切なアイテムの推奨を可能にすることができる。例えば、ディープラーニングといった手法で、特定のアイテムＹＹに類似する等の所定の目的に適したアイテムを識別するという方法もあるが、所定の目的に適するかに影響する多種多様な要素が存在する場合においては、各要素の事例が少ないので、学習ができずに識別精度を向上させることが難しいという問題がある。例えば、ディープラーニングといった学習手法で生成したモデルを用いて、そのモデルにアイテムの情報を入力し、出力されたスコアからそのアイテムが所定の目的に適するかを識別するという方法もあるが、多種多様な要素が存在する場合においては、各要素の事例が少ないため、モデルの精度を向上させることが難しく、識別精度を向上させることが難しい。一方で、情報処理装置１００は、各アイテムから抽出した特徴を基に生成した複数のベクトルのグラフ構造化したグラフ情報を用いて検索を行うことにより、アイテムのベクトルの比較によりアイテム間の類似度を判定し、一のアイテムが複数のアイテムに含まれるかどうかを適切に判定することができる。
【００８２】
〔１−４．複数の基準〕
なお、上述した例では、情報処理装置１００が１つのグラフを用いて推奨アイテムを決定する場合を示したが、情報処理装置１００は、複数のグラフを用いて推奨アイテムを決定してもよい。例えば、情報処理装置１００は、複数のグラフの各々に対応する複数の類似アイテム群を抽出し、複数の類似アイテム群に含まれるアイテムに基づいて、推奨アイテムを決定してもよい。例えば、情報処理装置１００は、複数のグラフの各々に対応する複数の類似アイテム群を抽出し、複数の類似アイテム群の全てに含まれるアイテムを推奨アイテムに決定してもよい。
【００８３】
例えば、情報処理装置１００は、ターゲット「ユーザビリティ」に対応するグラフ情報ＧＲ１１とターゲット「収益性」に対応するグラフ情報ＧＲ１２との２つのグラフを用いて、類似アイテム抽出し、両方に含まれる類似アイテムを推奨アイテムに決定してもよい。この場合、情報処理装置１００は、ユーザビリティと収益性の両方を満たすアイテムを推奨アイテムに決定することができる。したがって、情報処理装置１００は、ユーザビリティと収益性の両方を満たすアイテムをユーザに提供することができる。
【００８４】
また、情報処理装置１００は、他の基準に基づいて推奨アイテムの決定を行ってもよい。例えば、情報処理装置１００は、複数のグラフの各々に対応する複数の類似アイテム群が抽出された場合、複数の類似アイテム群に含まれる割合に応じて、推奨アイテムを決定してもよい。例えば、情報処理装置１００は、一のクエリに対して複数のグラフを用いて抽出された複数の類似アイテム群のうち、所定の閾値（例えば５０％や８０％等）以上の類似アイテム群に含まれるアイテム（アイテムＡＡ）がある場合、そのアイテム（アイテムＡＡ）を推奨アイテムに決定してもよい。
【００８５】
例えば、情報処理装置１００は、ターゲットの種類数が４つ、すなわちグラフの数が４つであり、閾値が５０％である場合、一のアイテムの３つのターゲットに対応する類似アイテム群に含まれる類似アイテム群に含まれるアイテム（アイテムＡＢ）がある場合、そのアイテム（アイテムＡＢ）を推奨アイテムに決定してもよい。上述のように、情報処理装置１００は、複数のターゲットでの抽出された割合に応じて、推奨アイテムを決定することにより、より適切に推奨アイテムを決定することができる。
【００８６】
〔１−５．クエリ情報〕
図１の例では、説明を簡単にするために、ユーザＵ１が選択（クリック）したアイテムＸのアイテム情報をクエリ情報として、類似アイテムを検索する場合を示したが、クエリ情報は、種々の情報であってもよい。なお、クエリ情報は、ユーザの端末装置１０から取得する場合に限らず、検索処理に用いられる情報であればどのように取得されてもよく、情報処理装置１００が記憶部１２０（図４参照）に記憶した情報等を用いてもよい。例えば、情報処理装置１００は、ユーザの端末装置１０からアイテムの要求があった場合に、そのユーザの行動履歴に含まれるアイテムに関する情報をクエリ情報として、ユーザへの推奨アイテムを決定してもよい。例えば、情報処理装置１００は、ユーザの端末装置１０から記事コンテンツであるアイテムの要求があった場合に、そのユーザが過去に閲覧したアイテムに関する情報をクエリ情報として、ユーザへの推奨アイテムを決定してもよい。
【００８７】
〔１−５−１．ユーザ情報〕
例えば、クエリ情報は、推奨アイテムを提供するユーザ（提供先ユーザ）のユーザ情報であってもよい。例えば、情報処理装置１００は、ユーザについて、各特徴量に対応する対象に対する関心の有無に応じて、ユーザのベクトル用情報を生成してもよい。
【００８８】
例えば、情報処理装置１００は、「単語＃１」に対応する対象に提供先ユーザが関心を有する場合、その提供先ユーザのベクトル用情報中の「ｘ１」の値を「１」としてもよい。例えば、「単語＃１」が「サッカー」である場合、情報処理装置１００は、サッカーに提供先ユーザが関心を有する場合、その提供先ユーザのベクトル用情報中の「ｘ１」の値を「１」としてもよい。
【００８９】
例えば、情報処理装置１００は、記憶部１２０（図４参照）に各ユーザのユーザ情報を記憶してもよい。例えば、情報処理装置１００は、記憶部１２０に各ユーザのユーザ情報を記憶してもよい。情報処理装置１００は、記憶部１２０に各ユーザの属性情報を記憶してもよい。情報処理装置１００は、記憶部１２０に各ユーザのサイコグラフィック属性やデモグラフィック属性を記憶してもよい。情報処理装置１００は、記憶部１２０に各ユーザの関心のある対象を示す情報やユーザの価値観、ライフスタイル、性格、嗜好等の情報を記憶してもよい。情報処理装置１００は、記憶部１２０に各ユーザの年齢、性別、居住地等の情報を記憶してもよい。
【００９０】
例えば、情報処理装置１００は、「単語＃２」に対応する対象に提供先ユーザが関心を有しない場合、その提供先ユーザのベクトル用情報中の「ｘ２」の値を「０」としてもよい。例えば、「単語＃２」が「野球」である場合、情報処理装置１００は、野球に提供先ユーザが関心を有しない場合、その提供先ユーザのベクトル用情報中の「ｘ２」の値を「０」としてもよい。
【００９１】
そして、情報処理装置１００は、「ｘ１」の値「１」や「ｘ２」の値「０」等の情報と、用いるモデルの重みとに基づいて、提供先ユーザに対応するベクトルデータを生成する。そして、情報処理装置１００は、そのベクトルデータを用いてグラフ情報を検索することにより、提供先ユーザに類似性を有する類似アイテムを抽出する。そして、情報処理装置１００は、抽出した類似アイテムを推奨アイテムとして、提供先ユーザへ提供する。これにより、情報処理装置１００は、ユーザの情報をクエリ情報として、ユーザに適切な推奨アイテムに関する情報を提供することができる。
【００９２】
〔１−５−２．新規追加アイテム〕
例えば、クエリ情報は、新規追加されたアイテムのアイテム情報であってもよい。この場合、例えば、情報処理装置１００は、新たなアイテム（以下、「新規アイテムＹＹ」とする）が追加された場合、新規アイテムＹＹのアイテム情報をクエリ情報として、新規アイテムＹＹの類似アイテムを抽出してもよい。
【００９３】
例えば、情報処理装置１００は、類似アイテムについて閲覧した履歴があるユーザに対して、新規アイテムＹＹを推奨アイテムとして提供してもよい。例えば、情報処理装置１００は、記憶部１２０に各ユーザのアイテムの閲覧履歴を記憶してもよい。例えば、情報処理装置１００は、所定期間内に新規アイテムＹＹの類似アイテムを閲覧した履歴があるユーザに対して、新規アイテムＹＹを推奨アイテムとして提供してもよい。
【００９４】
上記のように、情報処理装置１００は、抽出された類似アイテムを基に、推奨アイテムを提供するユーザを決定することができる。したがって、情報処理装置１００は、推奨アイテムの提供に適したユーザを決定することができる。これにより、情報処理装置１００は、新規追加されたアイテムのアイテム情報をクエリ情報として、ユーザに適切な推奨アイテムに関する情報を提供することができる。
【００９５】
〔１−６．インデックス情報〕
図１及び図２の例に示すインデックス情報（インデックスデータ）は一例であり、情報処理装置１００は、種々のインデックス情報を用いて、グラフ情報を検索してもよい。また、例えば、情報処理装置１００は、検索時に用いるインデックスデータを生成してもよい。例えば、情報処理装置１００は、高次元ベクトルを検索する検索インデックスをインデックスデータとして生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
【００９６】
例えば、情報処理装置１００は、図１に示すようなツリー構造（木構造）に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置１００は、ｋｄ木（k-dimensional  tree）に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置１００は、ＶＰ木（Vantage-Point  tree）に関する検索インデックスをインデックスデータとして生成してもよい。
【００９７】
また、例えば、情報処理装置１００は、その他の木構造を有するインデックスデータとして生成してもよい。例えば、情報処理装置１００は、木構造のインデックスデータのリーフがグラフデータに接続する種々のインデックスデータを生成してもよい。例えば、情報処理装置１００は、木構造のインデックスデータのリーフがグラフデータ中のノードに対応する種々のインデックスデータを生成してもよい。また、情報処理装置１００は、このようなインデックスデータを用いて検索を行う場合、インデックスデータを辿って到達したリーフ（ノード）からグラフデータを探索してもよい。
【００９８】
なお、上述したようなインデックスデータは一例であり、情報処理装置１００は、グラフデータ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置１００は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、インデックスデータを生成してもよい。例えば、情報処理装置１００は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置１００は、非特許文献１に記載されるようなグラフ型の検索インデックスに関する情報をインデックス情報として用いてもよい。情報処理装置１００は、上述のようなインデックスデータとグラフデータとを用いることにより、所定の対象に関するより効率的な検索を可能にすることができる。
【００９９】
〔１−７．ターゲット（観点）〕
図１及び図２の例では、ターゲット「ユーザビリティ」とターゲット「収益性」との２つのターゲット（観点）を一例として示したが、ターゲット（観点）は種々の観点であってもよい。例えば、図１及び図２の例では、ターゲット（観点）としてのユーザビリティがユーザの興味や関心の観点である場合を示した。すなわち、図１及び図２の例では、ターゲット「ユーザビリティ」はユーザの興味や関心に関する観点であり、情報処理装置１００は、複数のアイテムに対するユーザの興味や関心に関する類似性に応じて、複数のアイテムが連結されたグラフ情報ＧＲ１１を用いて処理を行う場合を示した。しかしながら、ターゲット「ユーザビリティ」は、ユーザの関心や興味に限らず、ユーザの操作性や視認性などユーザの利便性に関する観点であってもよい。例えば、情報処理装置１００は、ターゲット「関心・興味」やターゲット「操作性」等の複数のユーザビリティの観点ごとに生成されたグラフ情報やインデックス情報を用いてもよい。
【０１００】
また、ターゲット（観点）は、上記に限らず、時間的な観点や地理的な観点等の種々の観点であってもよい。例えば、情報処理装置１００は、複数の時間帯の各々に対応する複数のグラフを用いて、処理を行ってもよい。例えば、情報処理装置１００は、昼の時間帯に対応するグラフ（「昼用グラフ」とする）や夜の時間帯に対応するグラフ（「夜用グラフ」とする）等の複数のグラフを用いて、処理を行ってもよい。例えば、情報処理装置１００は、１２時から１８時迄の時間帯用の昼用グラフや１８時から２４時迄の時間帯用の夜用グラフやその他の時間帯（０時から１２時迄）用の他のグラフ等の複数のグラフを用いて、処理を行ってもよい。例えば、情報処理装置１００は、１４時においてユーザへの推奨アイテムに関するサービスを提供する場合、昼用グラフを用いて検索処理を行って、推奨アイテムを決定してもよい。
【０１０１】
また、例えば、情報処理装置１００は、Ａ地域（「Ａ地域用グラフ」とする）に対応するグラフやＢ地域に対応するグラフ（「Ｂ地域用グラフ」とする）等の複数のグラフを用いて、処理を行ってもよい。例えば、情報処理装置１００は、Ａ地域に位置するユーザへの推奨アイテムに関するサービスを提供する場合、Ａ地域用グラフを用いて検索処理を行って、推奨アイテムを決定してもよい。例えば、情報処理装置１００は、Ｂ地域に位置するユーザへの推奨アイテムに関するサービスを提供する場合、Ｂ地域用グラフを用いて検索処理を行って、推奨アイテムを決定してもよい。
【０１０２】
〔１−８．アイテム〕
図１及び図２の例では、記事コンテンツをアイテムの一例として示したが、アイテムは、記事コンテンツに限らず、種々の対象であってもよい。例えば、アイテムは、商品またはサービス（「商品等」とする）や楽曲（音楽コンテンツ）等の種々の対象であってもよい。例えば、アイテムは、所定の電子商取引で提供される商品等であってもよい。
【０１０３】
例えば、情報処理装置１００は、所定の電子商取引で提供される商品等がアイテムである場合、商品等に関する情報（「商品情報」とする）を入力とするモデルを用いて、各商品等のベクトルを生成してもよい。例えば、情報処理装置１００は、各商品等の商品情報を入力として、モデルを生成してもよい。例えば、商品等がアイテムである場合におけるアイテム情報である商品情報は、商品カテゴリ、タイトル、説明文、画像情報、製造元、サイズ等に関する情報を含んでもよい。例えば、商品情報の商品情報は、対応する商品の商品カテゴリが飲料水や酒類や調味料等のいずれであるかを示す情報を含んでもよい。例えば、商品情報の商品情報は、対応する商品の商品カテゴリがビールやワインやケッチャプやソース等のいずれであるかを示す詳細な商品カテゴリを示す情報を含んでもよい。
【０１０４】
また、例えば、商品情報は、対応する商品が撮像された画像情報を含んでもよい。例えば、商品情報は、対応する商品の製造元がどのメーカであるかを示す情報を含んでもよい。例えば、商品情報は、対応する商品の内容量等どのようなサイズであるかを示す情報を含んでもよい。例えば、商品情報は、対応する商品のターゲットとするユーザが２０代であることを示す情報や対応する商品のターゲットとするユーザが女性であることを示す情報等の商品のターゲットを示す情報を含んでもよい。なお、上記は一例であり、アイテム情報である商品情報には、どのような情報が含まれてもよい。すなわち、情報処理装置１００は、アイテムとなる対象に応じて、アイテム情報を適宜用いて、処理を行ってもよい。
【０１０５】
〔２．情報処理システムの構成〕
図３に示すように、情報処理システム１は、端末装置１０と、情報提供装置５０と、情報処理装置１００とが含まれる。端末装置１０と、情報提供装置５０と、情報処理装置１００とは所定のネットワークＮを介して、有線または無線により通信可能に接続される。図３は、実施形態に係る情報処理システムの構成例を示す図である。なお、図３に示した情報処理システム１には、複数台の端末装置１０や、複数台の情報提供装置５０や、複数台の情報処理装置１００が含まれてもよい。
【０１０６】
端末装置１０は、ユーザによって利用される情報処理装置である。端末装置１０は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置１０をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置１０と読み替えることもできる。なお、上述した端末装置１０は、例えば、スマートフォンや、タブレット型端末や、ノート型ＰＣ（Personal  Computer）や、デスクトップＰＣや、携帯電話機や、ＰＤＡ（Personal  Digital  Assistant）等により実現される。例えば、端末装置１０は、アイテム情報を収集し、アイテム情報を情報処理装置１００へ送信する。
【０１０７】
情報処理装置１００は、起点ベクトルを起点としてグラフ情報を検索することにより、複数のアイテムのうち、一のアイテムに類似するアイテムである類似アイテムを抽出する情報処理装置である。例えば、情報処理装置１００は、一のアイテムに関するアイテム情報を取得し、アイテムに対応するグラフ情報を取得する。例えば、情報処理装置１００は、一のアイテムに関するアイテム情報を取得し、アイテム情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。
【０１０８】
情報処理装置１００は、クエリと類似性を有する類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する情報処理装置である。情報処理装置１００は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報処理装置１００は、端末装置１０から一のアイテムのアイテム情報（以下、「クエリ情報」や「クエリ」ともいう）を取得すると、クエリに類似するアイテム（ベクトル情報等）を検索し、検索結果に基づく推奨アイテムを示す情報を端末装置１０に提供する。図１の例では、情報処理装置１００は、端末装置１０から一のアイテムのアイテム情報を取得すると、一のアイテムに類似するアイテムを検索し、検索結果に基づいて決定した推奨アイテムを端末装置１０に提供する。また、例えば、情報処理装置１００が端末装置１０に提供するデータは、アイテムの名称やアイテム自体であってもよいし、ＵＲＬ（Uniform  Resource  Locator）等の対応するデータを参照するための情報であってもよい。
【０１０９】
また、情報処理装置１００は、ベクトルデータ等の種々のデータを生成する。情報処理装置１００は、文字情報を形態素解析等の自然言語処理技術を適宜用いて解析することにより、文字情報から重要な単語（キーワード）を抽出する。
【０１１０】
情報提供装置５０は、情報処理装置１００に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置５０は、ウェブサーバ等の種々の外部装置から収集したアイテム等が格納されてもよい。例えば、情報提供装置５０は、グラフ情報やインデックス情報やモデル等の種々の情報を情報処理装置１００に提供する情報処理装置である。
【０１１１】
〔３．情報処理装置の構成〕
次に、図４を用いて、実施形態に係る情報処理装置１００の構成について説明する。図４は、実施形態に係る情報処理装置の構成例を示す図である。図４に示すように、情報処理装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、情報処理装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【０１１２】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１０は、ネットワーク（例えば図３中のネットワークＮ）と有線または無線で接続され、端末装置１０や情報提供装置５０との間で情報の送受信を行う。
【０１１３】
（記憶部１２０）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部１２０は、図４に示すように、アイテム情報記憶部１２１と、インデックス情報記憶部１２２と、グラフ情報記憶部１２３と、モデル情報記憶部１２４とを有する。なお、記憶部１２０は、各ユーザの属性情報等を含むユーザ情報を記憶してもよい。また、記憶部１２０は、各ユーザの記事コンテンツであるアイテムの閲覧履歴等の各ユーザの行動情報を記憶してもよい。
【０１１４】
（アイテム情報記憶部１２１）
実施形態に係るアイテム情報記憶部１２１は、アイテム（オブジェクト）に関する各種情報を記憶する。例えば、アイテム情報記憶部１２１は、アイテム情報を記憶する。また、例えば、アイテム情報記憶部１２１は、モデルの生成に用いる情報（学習データ）を記憶する。図５は、実施形態に係るアイテム記憶部の一例を示す図である。図５に示すアイテム情報記憶部１２１は、「アイテムＩＤ」、「アイテム」、「アイテム情報」、「ベクトル用情報」、「正解情報」といった項目が含まれる。
【０１１５】
図５の例では、「ベクトル用情報」には、「単語＃１」、「単語＃２」、「画像」といった項目が含まれる。なお、図５の例では、対象を「単語＃１」、「単語＃２」といった抽象的な符号で示すが、各対象は、具体的な名前、名称等であってもよい。例えば、「単語＃１」や「単語＃２」等は、「○○棋士」、「ダイエット」、「サッカー」等の具体的な対象を示す情報（文字列）であってもよい。
【０１１６】
また、「単語＃１」には、「出現頻度」、「値（ｘ１）」といった項目が含まれる。また、「単語＃２」には、「出現頻度」、「値（ｘ２）」といった項目が含まれる。また、「画像」には、「有無」、「値（ｘ３）」といった項目が含まれる。また、「正解情報」には、「ユーザビリティ（ＴＩＤ１）」、「収益性（ＴＩＤ２）」といった項目が含まれる。
【０１１７】
「アイテムＩＤ」は、アイテム（オブジェクト）を識別するための識別情報を示す。また、「アイテム」は、アイテムＩＤにより識別されるアイテムの具体的な名称や内容等を示す。なお、図５の例では、アイテムを「アイテム＃１」といった抽象的な符号で示すが、各アイテムは、アイテムの名称等が含まれてもよい。
【０１１８】
「アイテム情報」は、アイテムＩＤにより識別されるアイテムの情報を示す。なお、図５の例では、アイテム情報を「ＩＭＤ１」といった抽象的な符号で示すが、実際には、アイテム情報、または、その格納場所を示すファイルパス名などが格納される。例えば、アイテムが記事コンテンツである場合、「アイテム情報」には、文字情報や画像情報を含む記事自体、または、その格納場所を示すファイルパス名などが格納される。また、「アイテム情報」には、アイテムの文章やアイテムの文章から抽出された各要素、例えばアイテムに含まれる単語の一覧や単語の出現頻度等を示す情報等が含まれてもよい。
【０１１９】
「ベクトル用情報」は、ベクトルデータの生成の基となる情報を示す。例えば、「ベクトル用情報」には、アイテム情報から抽出されたアイテムの特徴を示す情報が含まれる。例えば、「ベクトル用情報」には、モデルの各特徴量に対応する情報が含まれる。例えば、「ベクトル用情報」には、「ｙ＝ｗ１＊ｘ１＋ｗ２＊ｘ２＋・・・＋ｗｎ＊ｘｎ」で示されるモデルの各特徴量に対応するｘ１やｘ２等といった変数に入力される値を示す情報が含まれる。
【０１２０】
「正解情報」は、モデルの生成時に用いられる正解情報を示す。「正解情報」には、各ターゲットに対応するモデルの生成時に用いられる各ターゲットに対応する正解情報が含まれる。例えば、「ユーザビリティ（ＴＩＤ１）」には、ターゲット「ユーザビリティ」に対応するモデルＭ１の生成に用いられる正解情報を示す。例えば、「収益性（ＴＩＤ２）」には、ターゲット「収益性」に対応するモデルＭ２の生成に用いられる正解情報を示す。
【０１２１】
例えば、図５の例では、アイテムＩＤ「ＩＭ１」により識別されるアイテム（オブジェクト）は、アイテム＃１であることを示す。また、アイテム＃１のアイテム情報は、アイテム情報ＩＭＤ１であることを示す。
【０１２２】
また、アイテム＃１における単語＃１の出現頻度は「ＦＲ１−１」であることを示す。なお、図５の例では、出現頻度を「ＦＲ１−１」といった抽象的な符号で示すが、出現頻度ＦＲ１−１は、具体的な数値等であってもよい。例えば、出現頻度ＦＲ１−１は、「３」や「１０」等の具体的な回数を示す情報（数値）であってもよい。また、アイテム＃１における単語＃１の値（ｘ１）は「１」であることを示す。アイテム＃１の場合、「ｙ＝ｗ１＊ｘ１＋ｗ２＊ｘ２＋・・・＋ｗｎ＊ｘｎ」における変数「ｘ１」の値が「１」になることを示す。
【０１２３】
また、アイテム＃１における単語＃２の出現頻度は「ＦＲ１−２」であることを示す。なお、図５の例では、出現頻度を「ＦＲ１−２」といった抽象的な符号で示すが、出現頻度ＦＲ１−２は、具体的な数値等であってもよい。例えば、出現頻度ＦＲ１−２は、「１」や「５」等の具体的な回数を示す情報（数値）であってもよい。また、アイテム＃１における単語＃２の値（ｘ２）は「０」であることを示す。アイテム＃１の場合、「ｙ＝ｗ１＊ｘ１＋ｗ２＊ｘ２＋・・・＋ｗｎ＊ｘｎ」における変数「ｘ２」の値が「０」になることを示す。
【０１２４】
また、アイテム＃１における画像の有無は「ＥＸ１」であることを示す。なお、図５の例では、有無を「ＥＸ１」といった抽象的な符号で示すが、有無ＥＸ１は、画像の有り無しを示す具体的な情報であってもよい。例えば、有無ＥＸ１は、「有」や「無」等の具体的な情報であってもよい。例えば、有無ＥＸ１は、画像有りを示す「１」や画像無しを示す「０」等の情報（数値）であってもよい。また、アイテム＃１における画像の値（ｘ３）は「１」であることを示す。アイテム＃１の場合、「ｙ＝ｗ１＊ｘ１＋ｗ２＊ｘ２＋・・・＋ｗｎ＊ｘｎ」における変数「ｘ３」の値が「１」になることを示す。
【０１２５】
また、アイテム＃１のターゲット「ユーザビリティ」に対応する正解情報が「０」であることを示す。アイテム＃１のアイテム情報ＩＭＤ１が、ターゲット「ユーザビリティ」に対応するモデルＭ１の学習データとして用いられる場合、その正解情報が「０」であることを示す。アイテム＃１のクリック率（ＣＴＲ：Click  Through  Rate）が所定の閾値（例えば１％等）未満である場合、記事コンテンツであるアイテム＃１のターゲット「ユーザビリティ」に対応する正解情報を「０」としてもよい。また、記事コンテンツであるアイテム＃１のクリック率が所定の閾値以上である場合、アイテム＃１のターゲット「ユーザビリティ」に対応する正解情報を「１」としてもよい。なお、情報処理装置１００は、アイテムのクリック率が所定の閾値未満である場合、アイテムのクリック率の比率を正解情報としてもよい。例えば、情報処理装置１００は、アイテム＃８３のクリック率が「０．３％」であり、所定の閾値が「０．５％」未満である場合、ターゲット「ユーザビリティ」に対応するアイテム＃８３の正解情報を「０．６（＝０．３／０．５）」とする。
【０１２６】
なお、上記は一例であり、各正解情報は適宜の手段により決定されてもよい。例えば、ユーザビリティの基準は、ＣＴＲに限らず、ユーザがアイテム（記事コンテンツ）を閲覧した時間等であってもよい。例えば、ユーザがアイテムを閲覧した時間が所定の閾値（例えば５分等）未満である場合、正解情報を「０」とし、ユーザがアイテムを閲覧した時間が所定の閾値以上である場合、正解情報を「１」としてもよい。
【０１２７】
また、アイテム＃１のターゲット「収益性」に対応する正解情報が「０」であることを示す。アイテム＃１のアイテム情報ＩＭＤ１が、ターゲット「収益性」に対応するモデルＭ１の学習データとして用いられる場合、その正解情報が「０」であることを示す。アイテム＃１の顧客転換率（ＣＶＲ：Conversion  Rate）が所定の閾値（例えば０．１％等）未満である場合、アイテム＃１のターゲット「収益性」に対応する正解情報を「０」としてもよい。また、アイテム＃１の顧客転換率が所定の閾値以上である場合、アイテム＃１のターゲット「収益性」に対応する正解情報を「１」としてもよい。なお、情報処理装置１００は、アイテムの顧客転換率が所定の閾値未満である場合、アイテムの顧客転換率の比率を正解情報としてもよい。例えば、情報処理装置１００は、アイテム＃８３の顧客転換率が「０．０２％」であり、所定の閾値が「０．１％」未満である場合、ターゲット「収益性」に対応するアイテム＃８３の正解情報を「０．２（＝０．０２／０．１）」とする。
【０１２８】
例えば、収益性の基準は、ＣＶＲに限らず、アイテム（記事コンテンツ）の配信により得られる広告収入等であってもよい。例えば、アイテムの配信による広告収入が所定の閾値（例えばＸ円等）未満である場合、正解情報を「０」とし、アイテムの配信による広告収入が所定の閾値以上である場合、正解情報を「１」としてもよい。
【０１２９】
なお、上記は一例であり、各正解情報は適宜の手段により決定されてもよい。また、正解情報は「０」、「１」に限らず、例えば「０．２」や「０．５６７」等の小数点以下を含む数値であってもよい。
【０１３０】
また、アイテム情報記憶部１２１は、上記に限らず、目的に応じて種々の情報を記憶してもよい。アイテム情報記憶部１２１は、各アイテムのカテゴリを示す情報を記憶してもよい。アイテム情報記憶部１２１は、記事コンテンツであるアイテムのカテゴリが「経済」、「スポーツ」、「芸能」等のいずれであるかを示す情報を記憶してもよい。
【０１３１】
また、例えば、アイテム情報記憶部１２１は、各アイテムと各ターゲットとの組合せごとにベクトル情報（ベクトルデータ）を記憶してもよい。例えば、アイテム情報記憶部１２１は、図１１に示すような処理により生成された各アイテムと各ターゲットとの組合せごとにベクトル情報（ベクトルデータ）を記憶してもよい。この場合、アイテムＩＤにより識別されるアイテム（オブジェクト）のアイテムには、各ターゲットに対応するベクトル情報が対応付けられて記憶される。すなわち、アイテム（オブジェクト）を識別するアイテムＩＤに対して、オブジェクトに対応するアイテムの複数のベクトルデータであって、複数のターゲットの各々に対応する複数のベクトルデータが対応付けられて登録されている。
【０１３２】
（インデックス情報記憶部１２２）
実施形態に係るインデックス情報記憶部１２２は、インデックスに関する各種情報を記憶する。図６は、実施形態に係るインデックス情報記憶部の一例を示す図である。具体的には、図６の例では、インデックス情報記憶部１２２は、ツリー構造のインデックス情報を示す。図６の例では、インデックス情報記憶部１２２は、インデックスデータセット１２２−１やインデックスデータセット１２２−２等のようにターゲットごとに情報（テーブル）を記憶する。図６に示すインデックスデータセット１２２、１２２−２等は、「ターゲット」、「ルート階層」、「第１階層」、「第２階層」、「第３階層」等といった項目を含む。なお、「第１階層」〜「第３階層」に限らず、インデックスの階層数に応じて、「第４階層」、「第５階層」、「第６階層」等が含まれてもよい。
【０１３３】
図６の例では、インデックスデータセット１２２−１は、ターゲットＩＤ「ＴＩＤ１」により識別されるターゲット「ユーザビリティ」に対応し、インデックスデータセット１２２−２は、ターゲットＩＤ「ＴＩＤ２」により識別されるターゲット「収益性」に対応する。例えば、ターゲット「ユーザビリティ」は、ユーザビリティをターゲット（目的）とするグラフ情報のインデックス情報であることを示す。例えば、ターゲット「収益性」は、収益性をターゲット（目的）とするグラフ情報のインデックス情報であることを示す。
【０１３４】
具体的には、インデックスデータセット１２２−１には、ターゲット「ユーザビリティ」に対応するインデックスに関する情報（インデックス情報ＩＮＤ１１）が記憶される。また、インデックスデータセット１２２−２には、ターゲット「収益性」に対応するインデックスに関する情報（インデックス情報ＩＮＤ１２）が記憶される。
【０１３５】
「ターゲット」は、対応するインデックスデータセットが対象とする観点（ターゲット）を示す。「ルート階層」は、インデックスを用いた起点ノードの決定の開始点となるルート（最上位）の階層を示す。「第１階層」は、インデックスの第１階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第１階層」に格納されるノードは、インデックスの根（ルート）に直接結ばれる階層に対応するノードとなる。
【０１３６】
「第２階層」は、インデックスの第２階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第２階層」に格納されるノードは、第１階層のノードに結ばれる直下の階層に対応するノードとなる。「第３階層」は、インデックスの第３階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第３階層」に格納されるノードは、第２階層のノードに結ばれる直下の階層に対応するノードとなる。
【０１３７】
例えば、図６に示す例においては、インデックス情報記憶部１２２のうち、インデックスデータセット１２２−１には、図１中のインデックス情報ＩＮＤ１１に対応する情報が記憶される。例えば、インデックスデータセット１２２−１は、第１階層のノードが、節点ＶＴ１〜ＶＴ３等であることを示す。なお、インデックスデータセット１２２、１２２−２等には、各節点に対応するベクトルの値が記憶されてもよい。
【０１３８】
また、例えば、インデックスデータセット１２２−１は、節点ＶＴ２の直下の第２階層のノードが、節点ＶＴ２−１〜ＶＴ２−４であることを示す。また、例えば、インデックスデータセット１２２−１は、節点ＶＴ２−２の直下の第３階層のノードが、ノードＮ８３、ノードＮ５１６のグラフ情報ＧＲ１１中のノード（ベクトル）であることを示す。
【０１３９】
なお、インデックス情報記憶部１２２は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【０１４０】
（グラフ情報記憶部１２３）
実施形態に係るグラフ情報記憶部１２３は、グラフ情報に関する各種情報を記憶する。図７は、実施形態に係るグラフ情報記憶部の一例を示す図である。図７の例では、グラフ情報記憶部１２３は、グラフデータセット１２３−１やグラフデータセット１２３−２等のようにターゲットごとに情報（テーブル）を記憶する。図７に示すグラフデータセット１２３−１、１２３−２等は、「ターゲット」、「ノードＩＤ」、「アイテムＩＤ」、および「エッジ情報」といった項目を有する。また、「エッジ情報」には、「エッジＩＤ」や「参照先」といった情報が含まれる。
【０１４１】
図７の例では、グラフデータセット１２３−１は、ターゲットＩＤ「ＴＩＤ１」により識別されるターゲット「ユーザビリティ」に対応し、グラフデータセット１２３−２は、ターゲットＩＤ「ＴＩＤ２」により識別されるターゲット「収益性」に対応する。例えば、ターゲット「ユーザビリティ」は、ユーザビリティをターゲット（目的）とするグラフ情報であることを示す。すなわち、グラフデータセット１２３−１に記憶されるグラフ情報（図１中のグラフ情報ＧＲ１１）は、ユーザビリティに関するモデル（モデルＭ１）を用いてアイテムがベクトル化されグラフ構造化された情報であることを示す。また、例えば、ターゲット「収益性」は、収益性をターゲット（目的）とするグラフ情報であることを示す。すなわち、グラフデータセット１２３−２に記憶されるグラフ情報は、収益性に関するモデル（モデルＭ２）を用いてアイテムがベクトル化されグラフ構造化された情報であることを示す。
【０１４２】
具体的には、グラフデータセット１２３−１には、ターゲット「ユーザビリティ」に対応するグラフに関する情報（グラフ情報ＧＲ１１）が記憶される。また、グラフデータセット１２３−２には、ターゲット「収益性」に対応するグラフに関する情報（グラフ情報ＧＲ１２）が記憶される。
【０１４３】
「ターゲット」は、対応するグラフデータセットが対象とするターゲット（目的）を示す。「ノードＩＤ」は、グラフデータにおける各ノード（対象）を識別するための識別情報を示す。また、「アイテムＩＤ」は、アイテムを識別するための識別情報を示す。
【０１４４】
また、「エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図７の例では、「エッジ情報」は、エッジが有向エッジである場合を示し、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジＩＤ」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先（ノード）を示す情報を示す。すなわち、図７の例では、ノードを識別するノードＩＤに対して、そのノードに対応するオブジェクト（対象）を識別する情報やそのノードからの有向エッジ（出力エッジ）が連結される参照先（ノード）が対応付けられて登録されている。
【０１４５】
例えば、図７の例では、グラフ情報記憶部１２３のうち、グラフデータセット１２３−１においては、ノードＩＤ「Ｎ１」により識別されるノード（ベクトル）は、アイテムＩＤ「ＩＭ１」により識別されるアイテム（オブジェクト）に対応することを示す。また、グラフデータセット１２３−１においては、ノードＩＤ「Ｎ１」により識別されるノードからは、エッジＩＤ「Ｅ１２」により識別されるエッジが、ノードＩＤ「Ｎ３１２」により識別されるノード（ベクトル）に連結されることを示す。すなわち、図７の例では、グラフデータセット１２３−１においては、ノードＩＤ「Ｎ１」により識別されるノード（ベクトル）からはノードＩＤ「Ｎ３１２」により識別されるノード（ベクトル）に辿ることができることを示す。
【０１４６】
なお、グラフ情報記憶部１２３は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフ情報記憶部１２３は、各ノード（ベクトル）間を連結するエッジの長さが記憶されてもよい。すなわち、グラフ情報記憶部１２３は、各ノード（ベクトル）間の距離を示す情報が記憶されてもよい。
【０１４７】
（モデル情報記憶部１２４）
実施形態に係るモデル情報記憶部１２４は、モデルに関する情報を記憶する。例えば、モデル情報記憶部１２４は、生成処理により生成されたモデル情報（モデルデータ）を記憶する。図８は、実施形態に係るモデル情報記憶部の一例を示す図である。図８に示すモデル情報記憶部１２４では、各ターゲットに対応するモデルが記憶される。図８に示すモデル情報記憶部１２４は、モデル情報として、各モデルＭ１、Ｍ２等に対応させて「特徴量＃１」〜「特徴量＃３」等といった項目を有する。モデル情報記憶部１２４には、モデルＭ１、Ｍ２の２つのモデルに限らず、各ターゲット等に応じて多数（例えば１０や１００等）のモデルが記憶されてもよい。
【０１４８】
「ターゲットＩＤ」は、ターゲット（目的）を識別するための識別情報を示す。また、「ターゲット」は、ターゲットＩＤにより識別されるターゲットの具体的な名称や内容等を示す。例えば、「ターゲット」は、どのような観点をターゲットにするかを示す具体的な情報であってもよい。「特徴量＃１」〜「特徴量＃３」の各々は、各モデルの一つの特徴量（要素）を示す。なお、図８の例では、説明のために、各特徴量の項目に括弧書きで各特徴量に対応する対象を示す。例えば、「特徴量＃１」の下に示す「（単語＃１）」は、「特徴量＃１」に対応する対象が単語＃１であることを示す。なお、図８の例では、対象を「単語＃１」、「単語＃２」といった抽象的な符号で示すが、各対象は、具体的な名前、名称等であってもよい。例えば、「単語＃１」や「単語＃２」等は、「○○棋士」、「ダイエット」、「サッカー」等の具体的な対象を示す情報（文字列）であってもよい。なお、各特徴量に対応する対象が不明であってもよい。
【０１４９】
例えば、図８に示す例において、モデルＭ１は、ターゲット「ユーザビリティ」に対応するモデルであることを示す。また、例えば、図８に示す例において、モデルＭ２は、ターゲット「収益性」に対応するモデルであることを示す。
【０１５０】
例えば、図８に示す例において、各モデルの特徴量＃１は単語＃１に対応する特徴量（素性）であることを示す。また、例えば、図８に示す例において、各モデルの特徴量＃２は単語＃２に対応する特徴量であることを示す。また、例えば、図８に示す例において、各モデルの特徴量＃３は画像に対応する特徴量であることを示す。
【０１５１】
例えば、モデルＭ１、Ｍ２等は「ｙ＝ｗ１＊ｘ１＋ｗ２＊ｘ２＋・・・＋ｗｎ＊ｘｎ」で示す回帰モデルで実現される。図８における各特徴量に対応するｘ１やｘ２等といった入力データ（ｘｎ）に対応する。また、各特徴量の重みは、ｘｎに対応する係数ｗｎに対応する。この場合、例えば、モデルＭ１、Ｍ２等の特徴量＃１がｘ１に対応し、特徴量＃１に格納された値がｗ１に対応する。また、ｘ１には、入力されたアイテムデータにおける特徴量＃１を示す情報に基づく値が対応する。例えば、モデルＭ１、Ｍ２等の特徴量＃２がｘ２に対応し、特徴量＃２に格納された値がｗ２に対応する。また、ｘ２には、入力されたアイテムデータにおける特徴量＃２を示す情報に基づく値が対応する。
【０１５２】
例えば、図８に示す例において、モデルＭ１は、特徴量＃１の重みが「０．０２」、特徴量＃２の重みが「０．０５」、特徴量＃３の重みが「０．０１」等であることを示す。例えば、モデルＭ１に対応するターゲット「ユーザビリティ」においては、特徴量＃１〜特徴量＃３のうちでは、重みが最大である特徴量＃２に対応する単語＃２が、最も影響が大きいことを示す。また、モデルＭ２は、特徴量＃１の重みが「０．０１」、特徴量＃２の重みが「０」、特徴量＃３の重みが「０．０６」等であることを示す。例えば、モデルＭ２に対応するターゲット「収益性」においては、特徴量＃１〜特徴量＃３のうちでは、重みが最大である特徴量＃２に対応する単語＃２が、最も影響が小さいことを示す。
【０１５３】
例えば、モデルの特徴量（素性）がｍ次元のベクトルで表現される場合、特徴量数はｍ個になり、特徴量＃１〜特徴量＃ｍの重みが記憶される。
【０１５４】
なお、モデル情報記憶部１２４には上記に限らず、種々の情報が記憶されてもよい。例えば、モデル情報記憶部１２４には、多層のモデルの情報が記憶されてもよい。例えば、モデル情報記憶部１２４には、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報が含まれるモデルデータが記憶されてもよい。
【０１５５】
例えば、モデル情報記憶部１２４には、アイテムのアイテム情報（アイテムデータ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力されたアイテム情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、所定の目的に適したアイテムかどうかを示すスコアの値を出力層から出力するよう、コンピュータを機能させるためのモデル（「モデルＸ」とする）の情報（モデルデータ）が記憶されてもよい。
【０１５６】
例えば、モデルＸがＤＮＮ（Deep  Neural  Network）等、１つまたは複数の中間層を有するニューラルネットワークで実現される場合、例えば、モデルＸが含む第１要素は、入力層または中間層が有するいずれかのノードに対応する。また、第２要素は、第１要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第１要素の重みは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。例えば、上記のような回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第１要素は、入力層が有するいずれかのノードに対応し、第２要素は、出力層が有するノードと見做すことができる。
【０１５７】
なお、モデル情報記憶部１２４は、上記に限らず、目的に応じて種々のモデル情報を記憶してもよい。
【０１５８】
（制御部１３０）
図４の説明に戻って、制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、情報処理装置１００内部の記憶装置に記憶されている各種プログラム（情報処理プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。例えば、制御部１３０は、モデル情報記憶部１２４に記憶されているモデルＭ１に従った情報処理により、アイテムのアイテム情報（アイテムデータ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力されたアイテム情報情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、所定の目的に適したアイテムかどうかを示すスコアの値を出力層から出力する。
【０１５９】
図４に示すように、制御部１３０は、取得部１３１と、生成部１３２と、決定部１３３と、検索部１３４と、提供部１３５とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図４に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【０１６０】
（取得部１３１）
取得部１３１は、各種情報を取得する。例えば、取得部１３１は、記憶部１２０から各種情報を取得する。例えば、取得部１３１は、アイテム情報記憶部１２１や、インデックス情報記憶部１２２や、グラフ情報記憶部１２３や、モデル情報記憶部１２４等から各種情報を取得する。また、取得部１３１は、各種情報を外部の情報処理装置から取得する。取得部１３１は、端末装置１０や情報提供装置５０から各種情報を取得する。
【０１６１】
取得部１３１は、複数のアイテムの各々に対応する複数のノードが、複数のアイテムの類似性に応じて連結されたグラフ情報を取得する。取得部１３１は、複数のアイテムの各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。取得部１３１は、複数のアイテムの各々の特徴を示す複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得する。取得部１３１は、所定のモデルの特徴量と重みとに基づく複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
【０１６２】
取得部１３１は、複数のアイテムにおける異なる複数の基準に基づく類似性に応じて、複数のアイテムが連結された複数のグラフ情報であって、複数の基準の各々に対応する複数のグラフ情報を取得する。取得部１３１は、複数のアイテムのユーザに対するユーザビリティに関する類似性に応じて、複数のアイテムが連結されたグラフ情報を含む複数のグラフ情報を取得する。取得部１３１は、複数のアイテムの収益性に関する類似性に応じて、複数のアイテムが連結されたグラフ情報を含む複数のグラフ情報を取得する。また、取得部１３１は、複数のアイテムの各々に含まれる各アイテムに対応する複数のベクトルが類似性に応じて連結されたグラフ情報を含む複数のグラフ情報を取得する。
【０１６３】
取得部１３１は、アイテムに関するクエリ情報を取得する。また、取得部１３１は、一のアイテムに関するアイテム情報をクエリ情報として取得する。取得部１３１は、ユーザに関するユーザ情報をクエリ情報として取得する。取得部１３１は、記憶部１２０（図４参照）や外部装置からクエリ情報を取得する。また、取得部１３１は、ユーザが利用する端末装置１０から情報を取得する。取得部１３１は、ユーザが利用する端末装置１０からクエリ情報を取得する。
【０１６４】
例えば、取得部１３１は、データ検索の対象となる複数のノード（ベクトル）を取得する。例えば、取得部１３１は、複数のノードと、複数のノードの各々を連結する複数の有向エッジを含む有向エッジ群を取得する。
【０１６５】
例えば、取得部１３１は、外部の情報処理装置からグラフ情報（グラフデータ）を取得する。例えば、取得部１３１は、グラフ情報記憶部１２３からグラフ情報を取得する。例えば、取得部１３１は、グラフ情報を取得する。図１及び図２の例では、取得部１３１は、グラフ情報ＧＲ１１を取得する。
【０１６６】
例えば、取得部１３１は、外部の情報処理装置からインデックス情報（インデックスデータ）を取得する。例えば、取得部１３１は、インデックス情報記憶部１２２からインデックス情報を取得する。例えば、取得部１３１は、木構造型のインデックス情報を取得する。図１及び図２の例では、取得部１３１は、インデックス情報ＩＮＤ１１を取得する。
【０１６７】
また、取得部１３１は、ユーザが利用する端末装置１０からアイテムを取得する。例えば、取得部１３１は、検索クエリとして、一のアイテムのアイテム情報を取得する。
【０１６８】
取得部１３１は、一のアイテムに関するアイテム情報（アイテム情報）を取得する。図１及び図２の例では、取得部１３１は、アイテムに関するクエリ情報を取得する。取得部１３１は、端末装置１０からアイテムＸに関するアイテム情報ＩＭＤ１１を、クエリ情報として取得する。取得部１３１は、端末装置１０からアイテムＸに関するアイテム情報を取得する。例えば、取得部１３１は、アイテムに関する検索クエリを取得する。取得部１３１は、ユーザＵ１がアイテムＸを閲覧したことを示す情報を取得する。
【０１６９】
例えば、取得部１３１は、グラフ情報記憶部１２３（図７参照）からターゲット「ユーザビリティ」に対応するグラフ情報ＧＲ１１を取得する。具体的には、取得部１３１は、グラフデータセット１２３−１（図７参照）からターゲット「ユーザビリティ」に対応するグラフ情報ＧＲ１１を取得する。また、例えば、取得部１３１は、インデックス情報記憶部１２２（図６参照）から、グラフ情報ＧＲ１１における検索の起点となるノードの決定に用いるインデックス情報ＩＮＤ１１を取得する。具体的には、取得部１３１は、インデックスデータセット１２２−１（図６参照）からターゲット「ユーザビリティ」に対応するインデックス情報ＩＮＤ１１を取得する。なお、インデックス情報ＩＮＤ１１は、取得部１３１が生成してもよいし、取得部１３１は、インデックス情報ＩＮＤ１１を情報提供装置５０等の他の外部装置から取得してもよい。
【０１７０】
（生成部１３２）
生成部１３２は、各種情報を生成する。例えば、生成部１３２は、記憶部１２０に記憶された情報）を用いて、モデル情報記憶部１２４に示すようなモデルを生成する。例えば、生成部１３２は、アイテム情報記憶部１２１に記憶された情報（学習データ）を用いて、モデル情報記憶部１２４に示すようなモデルを生成する。生成部１３２は、アイテム情報に基づいてターゲットごとのモデルを生成する。例えば、生成部１３２は、アイテム情報に基づいて生成したベクトル用情報と、正解情報とに基づいて、ターゲットごとのモデルを生成する。例えば、生成部１３２は、決定部１３３により決定された情報を用いて、モデルを生成する。例えば、生成部１３２は、検索部１３４により検索（抽出）された情報を用いて、モデルを生成する。
【０１７１】
生成部１３２は、「単語＃１」、「単語＃２」、「画像」等のアイテム情報に含まれる要素を特徴量（素性）とするモデルを生成する。例えば、生成部１３２は、ターゲット「ユーザビリティ」に対応するモデルＭ１を生成する場合、ユーザに選択（クリック）されたアイテムに多く含まれていた要素の重みが重くなるように学習し、モデルを生成する。
【０１７２】
生成部１３２は、ターゲット「ユーザビリティ」に対応する正解情報との組合せを学習データとしてターゲット「ユーザビリティ」に対応するモデルＭ１を生成する。例えば、生成部１３２は、ターゲット「ユーザビリティ」に対応するモデルＭ１を生成する場合、単語＃１の出現頻度が所定の閾値以上であるアイテムが、ユーザに選択（クリック）されている場合、「特徴量＃１（単語＃１）」の重みが重くなるように学習し、モデルＭ１を生成する。なお、生成部１３２は、各モデルが出力する値が０〜１の範囲になるように各モデルを正規化してもよい。図１及び図２の例では、生成部１３２は、各モデルが出力する値が０〜１の範囲になるように正規化された各モデルを用いてもよい。
【０１７３】
例えば、生成部１３２は、アイテム＃１やアイテム＃２のベクトル用情報と、ターゲット「ユーザビリティ」に対応する正解情報とを用いてモデルＭ１を生成する。例えば、生成部１３２は、アイテム＃１やアイテム＃２のベクトル用情報をモデルＭ１中の対応する変数「ｘ１」〜「ｘｎ」に入力し、出力値「ｙ」が正解情報の値に近づくように、各重み「ｗ１」〜「ｗｎ」の値を学習する。
【０１７４】
生成部１３２は、図５中のアイテム情報記憶部１２１に示すユーザビリティ（ＴＩＤ１）に対応する正解情報が「１」であるアイテム（「正例アイテム」とする）については、モデルＭ１に正例アイテムの情報（ベクトル用情報）が入力された場合に、モデルＭ１が出力するスコアが「１」に近づくように、学習処理を行う。例えば、生成部１３２は、ユーザビリティ（ＴＩＤ１）について、正例アイテムであるアイテム＃２の情報（ベクトル用情報）が入力された場合に、モデルＭ１が出力するスコアが「１」に近づくように、学習処理を行う。
【０１７５】
生成部１３２は、図５中のアイテム情報記憶部１２１に示すユーザビリティ（ＴＩＤ１）に対応する正解情報が「０」であるアイテム（「負例アイテム」とする）については、モデルＭ１に負例アイテムの情報（ベクトル用情報）が入力された場合に、モデルＭ１が出力するスコアが「０」に近づくように、学習処理を行う。例えば、生成部１３２は、ユーザビリティ（ＴＩＤ１）について、正例アイテムであるアイテム＃１の情報（ベクトル用情報）が入力された場合に、モデルＭ１が出力するスコアが「０」に近づくように、学習処理を行う。
【０１７６】
生成部１３２は、図５中のアイテム情報記憶部１２１に示す収益性（ＴＩＤ２）に対応する正解情報が「１」である正例アイテムについては、モデルＭ２に正例アイテムの情報（ベクトル用情報）が入力された場合に、モデルＭ２が出力するスコアが「１」に近づくように、学習処理を行う。例えば、生成部１３２は、収益性（ＴＩＤ２）について、正例アイテムであるアイテム＃１の情報（ベクトル用情報）が入力された場合に、モデルＭ２が出力するスコアが「１」に近づくように、学習処理を行う。
【０１７７】
生成部１３２は、図５中のアイテム情報記憶部１２１に示す収益性（ＴＩＤ２）に対応する正解情報が「０」である負例アイテムについては、モデルＭ２に負例アイテムの情報（ベクトル用情報）が入力された場合に、モデルＭ２が出力するスコアが「０」に近づくように、学習処理を行う。例えば、生成部１３２は、収益性（ＴＩＤ２）について、正例アイテムであるアイテム＃２の情報（ベクトル用情報）が入力された場合に、モデルＭ２が出力するスコアが「０」に近づくように、学習処理を行う。
【０１７８】
なお、生成部１３２は、図５中のアイテム情報記憶部１２１に示すように、「０」や「１」以外の値の正解情報を用いてモデルを学習してもよい。例えば、生成部１３２は、アイテム＃８３に対応する正解情報のように、「０．６」や「０．２」のような０から１の範囲の値の正解情報を用いてモデルを学習してもよい。例えば、生成部１３２は、ユーザビリティ（ＴＩＤ１）について、正解情報が「０．６」であるアイテム＃８３の情報（ベクトル用情報）が入力された場合に、モデルＭ１が出力するスコアが「０．６」に近づくように、学習処理を行う。また、例えば、生成部１３２は、収益性（ＴＩＤ２）について、正解情報が「０．２」であるアイテム＃８３の情報（ベクトル用情報）が入力された場合に、モデルＭ１が出力するスコアが「０．２」に近づくように、学習処理を行う。
【０１７９】
生成部１３２は、モデルＭ１、Ｍ２等を生成し、生成したモデルＭ１、Ｍ２等をモデル情報記憶部１２４に格納する。生成部１３２は、上記に限らず、いかなる学習アルゴリズムを用いてモデルＭ１を生成してもよい。
【０１８０】
なお、生成部１３２は、モデルＭ１、Ｍ２に限らず、他のターゲットに対応するモデルＭ３、Ｍ４等を生成してもよい。例えば、生成部１３２は、種々の学習アルゴリズムを用いてモデルを生成してもよい。例えば、生成部１３２は、ニューラルネットワーク（neural  network）、サポートベクターマシン（ＳＶＭ）、クラスタリング、強化学習等の学習アルゴリズムを用いてモデルを生成する。一例として、生成部１３２がニューラルネットワークを用いてモデル等を生成する場合、モデル等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
【０１８１】
例えば、生成部１３２は、取得部１３１により取得された学習データに基づいて、入力したログ情報と同様の情報を出力するモデル（オートエンコーダ）を生成してもよい。例えば、生成部１３２は、入力するログ情報自体を正解情報として、入力したログ情報と同様の情報を出力するモデル（オートエンコーダ）を生成してもよい。例えば、生成部１３２は、ニューラルネットワーク（neural  network）等の学習アルゴリズムを用いてモデルＭ１を生成する。一例として、生成部１３２がニューラルネットワークを用いてモデルＭ１等を生成する場合、モデルＭ１等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
【０１８２】
生成部１３２は、アイテムに関する情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力されたアイテム情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、所定の目的に適したアイテムかどうかを示すスコアの値を出力層から出力するモデルを生成する。
【０１８３】
例えば、生成部１３２は、学習データに基づいてモデルを生成する。例えば、生成部１３２は、学習データに基づいてモデルを生成する。例えば、生成部１３２は、アイテム情報記憶部１２１中のアイテム情報ＩＭＤ１、ＩＭＤ２等を学習データ（教師データ）として、学習を行なうことにより、モデルを生成する。
【０１８４】
例えば、生成部１３２は、アイテム情報ＩＭＤ１が入力された場合に、モデルＭ１がアイテム情報ＩＭＤ１と同様の情報を出力するように、学習処理を行う。例えば、生成部１３２は、アイテム情報ＩＭＤ２が入力された場合に、モデルＭ１がアイテム情報ＩＭＤ２と同様の情報を出力するように、学習処理を行う。生成部１３２は、モデルを生成し、生成したモデルをモデル情報記憶部１２４に格納する。なお、情報処理装置１００は、情報提供装置５０等の他の外部装置からモデルを取得する場合、生成部１３２を有しなくてもよい。
【０１８５】
生成部１３２は、図１１中のモデル式ＭＦＭ中の各特徴量とその重みとの組合せをベクトルの各次元の要素として、Ｎ次元ベクトルを生成する。例えば、生成部１３２は、図１１中のベクトル形式ＶＦＭに示すように、「ｗ１＊ｘ１」をベクトルの１次元目の要素とし、「ｗ２＊ｘ２」をベクトルの２次元目の要素とし、「ｗｎ＊ｘｎ」をベクトルのｎ次元目の要素としたＮ次元ベクトルを生成する。
【０１８６】
生成部１３２がアイテム＃１について、ターゲット「ユーザビリティ」に対応するベクトルデータＶＤ１−１と、ターゲット「ユーザビリティ」に対応するベクトルデータＶＤ１−２を生成する。
【０１８７】
生成部１３２は、「ｗ１」を「０．０２」とし、「ｘ１」を「１」とし、「ｗ２」を「０．０５」とし、「ｘ２」を「０」とし、「ｗ３」を「０．０１」とし、「ｘ３」を「１」とした中間ベクトルＳＢ１−１を生成する。そして、生成部１３２は、次元ごとに特徴量と重みとを乗算することにより、各次元の要素を算出する。これにより、生成部１３２は、１次元目の値が「０．０２」であり、２次元目の値が「０」であり、３次元目の値が「０．０１」であるベクトルＶＤ１−１を生成する。すなわち、生成部１３２は、図１１中に示すように「０．０２，０，０．０１，…」のような、ターゲット「ユーザビリティ」に対応するベクトルＶＤ１−１を生成する。
【０１８８】
生成部１３２は、「ｗ１」を「０．０１」とし、「ｘ１」を「１」とし、「ｗ２」を「０」とし、「ｘ２」を「０」とし、「ｗ３」を「０．０６」とし、「ｘ３」を「１」とした中間ベクトルＳＢ１−２を生成する。そして、生成部１３２は、次元ごとに特徴量と重みとを乗算することにより、各次元の要素を算出する。これにより、生成部１３２は、１次元目の値が「０．０１」であり、２次元目の値が「０」であり、３次元目の値が「０．０６」であるベクトルＶＤ１−２を生成する。すなわち、生成部１３２は、図１１中に示すように「０．０１，０，０．０６，…」のような、ターゲット「収益性」に対応するベクトルＶＤ１−２を生成する。
【０１８９】
図１及び図２の例では、生成部１３２は、アイテムＸの情報からグラフ情報の探索に用いるベクトルを生成する。図２の例では、生成部１３２は、処理群ＰＳ１１に示すような処理により、アイテムＸに対応するベクトルを生成する。生成部１３２は、アイテムＸのベクトル用情報を生成する。生成部１３２は、アイテムＸのアイテム情報ＩＭＤ１１からアイテムＸのベクトル用情報を生成する。生成部１３２は、図２中のベクトル用情報一覧ＦＶＤ１１に示すように、「（１，１，０，…）」であるアイテムＸのベクトル用情報を生成する。生成部１３２は、１次元目に対応する値が「１」、２次元目に対応する値が「１」、３次元目に対応する値が「０」等であるベクトル用情報を生成する。
【０１９０】
そして、生成部１３２は、ベクトル用情報と、ターゲットに対応するモデルの重み情報とを用いて、ベクトルを生成する。図２の例では、生成部１３２は、アイテムＸのベクトル用情報と、ターゲット「ユーザビリティ」に対応するモデルＭ１の重み情報とを用いて、アイテムＸのベクトル（以下、「ベクトルＶＤ１１」ともいう）を生成する生成部１３２は、図２中の重み情報一覧ＷＤＴ１に示すように、「（０．０２，０．０５，０．０１，…）」であるモデルＭ１の重み情報を用いて、アイテムＸのベクトルＶＤ１１を生成する。生成部１３２は、１次元目に対応する値が「０．０２」、２次元目に対応する値が「０．０５」、３次元目に対応する値が「０．０１」等である重み情報を用いて、ベクトルＶＤ１１を生成する。すなわち、生成部１３２は、「ｗ１＝０．０２」、「ｗ２＝０．０５」、「ｗ３＝０．０１」等のモデルＭ１の重み情報を用いて、ベクトルＶＤ１１を生成する。
【０１９１】
具体的には、生成部１３２は、図１１中のベクトル形式ＶＦＭに示すように、「ｗ１＊ｘ１」をベクトルの１次元目の要素とし、「ｗ２＊ｘ２」をベクトルの２次元目の要素とし、「ｗｎ＊ｘｎ」をベクトルのｎ次元目の要素としたベクトルＶＤ１１を生成する。生成部１３２は、「ｗ１」を「０．０２」とし、「ｘ１」を「１」とし、「ｗ２」を「０．０５」とし、「ｘ２」を「１」とし、「ｗ３」を「０．０１」とし、「ｘ３」を「０」として、ベクトルＶＤ１１を生成する。そして、生成部１３２は、次元ごとに特徴量と重みとを乗算することにより、各次元の要素を算出する。これにより、生成部１３２は、１次元目の値が「０．０２」であり、２次元目の値が「０．０５」であり、３次元目の値が「０」であるベクトルＶＤ１１を生成する。すなわち、生成部１３２は、「０．０２，０．０５，０，…」のような、ターゲット「ユーザビリティ」に対応するアイテムＸのベクトルＶＤ１１を生成する。
【０１９２】
（決定部１３３）
決定部１３３は、各種情報を決定する。決定部１３３は、取得部１３１により取得された情報を用いて種々の情報を決定する。決定部１３３は、生成部１３２により生成された情報を用いて種々の情報を決定する。決定部１３３は、検索部１３４により検索（抽出）された情報を用いて種々の情報を決定する。決定部１３３は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。決定部１３３は、木構造型のインデックス情報に基づいて、起点ノードを決定する。例えば、決定部１３３は、取得部１３１により取得された一のアイテムに関する情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。また、決定部１３３は、起点ベクトルの決定に用いるインデックス情報に基づいて、起点ベクトルを決定する。また、決定部１３３は、木構造型のインデックス情報に基づいて、起点ベクトルを決定する。例えば、決定部１３３は、アイテム情報と、グラフ情報の検索の起点ベクトルの決定の基準となる情報とに基づいて、起点ベクトルを決定する。
【０１９３】
図１及び図２の例では、決定部１３３は、一のアイテム（クエリ）に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。図１及び図２の例では、決定部１３３は、アイテムＸのベクトルＶＤ１１に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。すなわち、決定部１３３は、ベクトルＶＤ１１とインデックス情報ＩＮＤ１１とを用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する。
【０１９４】
例えば、決定部１３３は、図２中のインデックス情報ＩＮＤ１１に示すような木構造型のインデックス情報を用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する。図１及び図２の例では、決定部１３３は、ベクトルＶＤ１１を生成した後、インデックス情報ＩＮＤ１１を上から下へ辿ることにより、インデックス情報ＩＮＤ１１の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ（一のアイテム）に対応する起点ベクトルを決定することができる。
【０１９５】
例えば、決定部１３３は、インデックス情報ＩＮＤ１１をルートＲＴからリーフノード（グラフ情報ＧＲ１１中のノード（ベクトル））まで辿ることにより、ベクトルＶＤ１１に対応する起点ベクトルを決定してもよい。図１及び図２の例では、例えば、決定部１３３は、インデックス情報ＩＮＤ１１をルートＲＴからノードＮ８３まで辿ることにより、ノードＮ８３を起点ベクトルとして決定する。
【０１９６】
決定部１３３は、類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する。決定部１３３は、検索部１３４により抽出された類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する。
【０１９７】
図１及び図２の例では、決定部１３３は、ターゲットを決定する。決定部１３３は、ターゲットをユーザビリティと決定する。決定部１３３は、ユーザが選択したくなるようなアイテムをユーザに提供し、ユーザのユーザビリティを向上させるために、ターゲットをユーザビリティと決定する。例えば、決定部１３３は、提供する記事コンテンツがユーザにとって適切なものである可能性が高くなり、ユーザのユーザビリティを向上させるために、ターゲットをユーザビリティと決定する。決定部１３３は、ユーザＵ１が選択したアイテムＸに類似するようなアイテムをユーザＵ１に推奨するために、ターゲットをユーザビリティと決定する。決定部１３３は、種々の情報を適宜用いてターゲットを決定する。決定部１３３は、種々の基準に基づいてターゲットを決定する。例えば、決定部１３３は、収益性を向上させる場合、ターゲットを収益性と決定する。
【０１９８】
決定部１３３は、グラフを決定する。決定部１３３は、ターゲット「ユーザビリティ」に対応するグラフやターゲット「収益性」に対応するグラフのうち、検索に用いるグラフを決定する。図１の例では、決定部１３３は、複数グラフ情報群ＧＩＮＦに示すように、ターゲット「ユーザビリティ」に対応する検索用情報群ＩＮＦ１１やターゲット「収益性」に対応する検索用情報群ＩＮＦ１２のうち、検索に用いる情報を決定する。ターゲット「ユーザビリティ」に対応する検索用情報群ＩＮＦ１１には、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１が含まれる。また、ターゲット「収益性」に対応する検索用情報群ＩＮＦ１２には、グラフ情報ＧＲ１２やインデックス情報ＩＮＤ１２が含まれる。図１の例では、決定部１３３は、ターゲット「ユーザビリティ」に対応するグラフを用いると決定する。
【０１９９】
例えば、決定部１３３は、アイテムＸのアイテム情報ＩＭＤ１１から抽出された単語の情報に基づいて、アイテムＸにおける各単語の出現頻度を計数する。決定部１３３は、アイテムＸにおける単語＃１の出現頻度を５回であると計数する。そして、決定部１３３は、アイテムＸにおける単語＃１の出現頻度を１０回が所定の閾値（例えば５回等）以上であると判定し、アイテムＸにおける単語＃１（特徴量＃１）の値（ｘ１）を「１」と決定する。
【０２００】
また、決定部１３３は、アイテムＸにおける単語＃２の出現頻度を４回であると計数する。そして、決定部１３３は、アイテムＸにおける単語＃２の出現頻度を５回が所定の閾値（例えば３回等）以上であると判定し、アイテムＸにおける単語＃２（特徴量＃２）の値（ｘ２）を「１」と決定する。また、決定部１３３は、アイテム情報ＩＭＤ１１に画像情報が含まれているかどうかを判定する。図２の例では、決定部１３３は、アイテムＸには画像情報が含まれないと判定し、アイテムＸにおける単語＃３（特徴量＃３）の値（ｘ３）を「０」と決定する。このように、決定部１３３は、「ｘ１＝１」、「ｘ２＝１」、「ｘ３＝０」等の各次元の変数に入力される値を決定する。
【０２０１】
そして、決定部１３３は、抽出した類似アイテムに基づいて、ユーザに推奨する推奨アイテムを決定する。決定部１３３は、アイテムＸの類似アイテムであるノードＮ８３に対応するアイテム＃８３やノードＮ６７に対応するアイテム＃６７等のうち、ユーザに推奨する推奨アイテムを決定する。例えば、決定部１３３は、抽出した類似アイテムのうち、アイテムＸに最も類似するアイテムをユーザＵ１に推奨する推奨アイテムを決定する。例えば、決定部１３３は、抽出した類似アイテムのうち、アイテムＸのベクトルＶＤ１１に最も類似するアイテムをユーザＵ１に推奨する推奨アイテムを決定する。例えば、決定部１３３は、抽出した類似アイテムにおけるターゲット「ユーザビリティ」に対応するベクトルのうち、アイテムＸのベクトルＶＤ１１に最も類似するベクトルのアイテムをユーザＵ１に推奨する推奨アイテムを決定する。
【０２０２】
決定部１３３は、アイテムＸのベクトルＶＤ１１と、ターゲット「ユーザビリティ」に対応するアイテム＃８３のベクトルＶＤ１−１やアイテム＃６７のベクトルとを比較することにより、アイテムＸに最も類似するアイテムを推奨アイテムに決定する。例えば、決定部１３３は、上記式（１）を用いて、２つのベクトル間の距離を算出してもよい。そして、決定部１３３は、２つのベクトル間の距離が小さい（０に近い）程、２つのベクトルが類似していると判定する。図１の例では、決定部１３３は、アイテムＸのベクトルＶＤ１１との距離が最も短いベクトルがアイテム＃６７のベクトルであると判定し、アイテム＃６７をユーザＵ１に推奨する推奨アイテムを決定する。
【０２０３】
（検索部１３４）
検索部１３４は、各種情報を抽出する。例えば、検索部１３４は、各種判定処理を行う。例えば、検索部１３４は、取得部１３１により取得された情報を用いて、各種情報を判定する。例えば、検索部１３４は、記憶部１２０に記憶された各種情報を検索する。例えば、検索部１３４は、各種情報を用いて算出処理を行う。例えば、検索部１３４は、ベクトルに関する情報を用いて、ベクトル間の距離を算出する。検索部１３４は、取得部１３１により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点としてグラフ情報を検索することにより、複数のアイテムのうち、一のアイテムに類似するアイテムである類似アイテムを抽出する。検索部１３４は、決定部１３３により決定された起点ノードを起点として、類似アイテムを抽出する。検索部１３４は、取得部１３１により取得されたグラフ情報の複数のベクトルのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ベクトルを起点としてグラフ情報を検索することにより、複数のアイテムのうち、一のアイテムに類似するアイテムである類似アイテムを抽出する。例えば、検索部１３４は、決定部１３３により決定された起点ベクトルを起点としてグラフ情報を検索することにより、複数のアイテムのうち、一のアイテムに類似するアイテムである類似アイテムを抽出する。例えば、検索部１３４は、グラフ情報記憶部１２３に記憶された各ノード（ベクトル）間を連結するエッジの長さ（距離）の情報を用いてもよいし、各ノードのベクトル情報から各ノード（ベクトル）間を連結するエッジの長さ（距離）の情報を算出し、算出した長さ（距離）の情報を用いてもよい。
【０２０４】
検索部１３４は、取得部１３１により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数のアイテムのうち、クエリ情報と類似性を有するアイテムである類似アイテムを抽出する。検索部１３４は、決定部１３３により決定された一のグラフ情報を用いて、類似アイテムを抽出する。
【０２０５】
検索部１３４は、取得部１３１により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数のアイテムのうち、一のアイテムと類似性を有するアイテムである類似アイテムを抽出する。検索部１３４は、決定部１３３により決定された起点ノードを起点として、類似アイテムを抽出する。検索部１３４は、取得部１３１により取得されたグラフ情報の複数のベクトルのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ベクトルを起点としてグラフ情報を検索することにより、複数のアイテムのうち、一のアイテムに類似するアイテムである類似アイテムを抽出する。検索部１３４は、各種情報を抽出する。例えば、検索部１３４は、決定部１３３により決定された起点ベクトルを起点としてグラフ情報を検索することにより、複数のアイテムのうち、一のアイテムに類似するアイテムである類似アイテムを抽出する。
【０２０６】
図１及び図２の例では、検索部１３４は、検索用情報群ＩＮＦ１１に示すように、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１を用いてアイテムＸの類似アイテムを検索する。図１及び図２の例では、検索部１３４は、アイテムＸに類似するアイテムを検索する。例えば、検索部１３４は、グラフ情報ＧＲ１１を検索することにより、アイテムＸの類似アイテムを抽出する。例えば、検索部１３４は、ノードＮ８３の近傍に位置するノードを類似アイテムとして抽出する。例えば、検索部１３４は、ノードＮ８３からの距離が近いノードを類似アイテムとして抽出する。例えば、検索部１３４は、ノードＮ８３を起点として、エッジを辿ることにより、ノードＮ８３から到達可能なノードを類似アイテムとして抽出する。例えば、検索部１３４は、所定数（例えば、２個や１０個等）のノードを類似アイテムとして抽出する。例えば、検索部１３４は、図１２に示すような検索処理により、アイテムＸの類似アイテムを抽出してもよいが、詳細は後述する。図１及び図２の例では、検索部１３４は、ノードＮ８３を起点として、グラフ情報ＧＲ１１を探索することにより、ノードＮ８３やノードＮ６７を類似アイテムとして抽出する。
【０２０７】
（提供部１３５）
提供部１３５は、各種情報を提供する。例えば、提供部１３５は、端末装置１０や情報提供装置５０に各種情報を送信する。例えば、提供部１３５は、端末装置１０や情報提供装置５０に各種情報を配信する。例えば、提供部１３５は、端末装置１０や情報提供装置５０に各種情報を提供する。提供部１３５は、検索部１３４により抽出された類似アイテムに基づいて、所定のサービスを提供する。また、提供部１３５は、類似アイテムに関する情報提供サービスを提供する。提供部１３５は、端末装置１０に類似アイテムに関する情報を提供する。
【０２０８】
提供部１３５は、決定部１３３により決定された推奨アイテムに基づいて、所定のサービスを提供する。提供部１３５は、推奨アイテムに基づいて、情報提供サービスを提供する。提供部１３５は、ユーザが利用する端末装置１０に推奨アイテムを示す情報を提供する。
【０２０９】
図１及び図２の例では、提供部１３５は、アイテム＃６７を推奨アイテムとしてユーザＵ１が利用する端末装置１０に提供する。提供部１３５は、アイテム＃６７である記事コンテンツを端末装置１０に配信する。提供部１３５は、推奨アイテムに関する情報を端末装置１０に送信する。
【０２１０】
例えば、提供部１３５は、クエリに対応するオブジェクトＩＤを検索結果として提供する。例えば、提供部１３５は、検索部１３４により選択されたオブジェクトＩＤを情報提供装置５０へ提供する。提供部１３５は、検索部１３４により選択されたオブジェクトＩＤをクエリに対応するベクトルを示す情報として情報提供装置５０に提供する。また、提供部１３５は、生成部１３２により生成されたモデルを外部の情報処理装置へ提供してもよい。例えば、図１及び図２の例では、提供部１３５は、ノードＮ８３に対応するアイテム＃８３や、ノードＮ３５に対応するアイテム＃３５をアイテムＸに類似するアイテムとしてユーザＵ１が利用する端末装置１０に提供してもよい。
【０２１１】
〔４．情報処理のフロー〕
次に、図９を用いて、実施形態に係る情報処理システム１による情報処理の手順について説明する。図９は、実施形態に係る情報処理の一例を示すフローチャートである。
【０２１２】
図９に示すように、情報処理装置１００は、アイテムに関するクエリ情報を取得する（ステップＳ１０１）。例えば、情報処理装置１００は、アイテムの検索に関するクエリ情報を取得する。例えば、情報処理装置１００は、一のアイテムに関するアイテム情報をクエリ情報として取得する。図１及び図２の例では、情報処理装置１００は、端末装置１０からアイテムＸに関するアイテム情報ＩＭＤ１１を取得する。
【０２１３】
情報処理装置１００は、所定の基準に基づいて、類似アイテムに関するターゲットを決定する（ステップＳ１０２）。情報処理装置１００は、ターゲットをユーザビリティに決定する。また、情報処理装置１００は、ターゲットに対応するグラフ情報を取得する。例えば、情報処理装置１００は、グラフ情報記憶部１２３のうち、ターゲット「ユーザビリティ」に対応するグラフデータセット１２３−１から、ターゲット「ユーザビリティ」に関するグラフ情報ＧＲ１１を取得する。また、情報処理装置１００は、ターゲットに対応するモデルを取得する。例えば、情報処理装置１００は、モデル情報記憶部１２４のうち、ターゲット「ユーザビリティ」に対応するモデルＭ１を取得する。
【０２１４】
そして、情報処理装置１００は、ターゲットに対応するモデルを用いてクエリ情報からベクトルを生成する（ステップＳ１０３）。例えば、情報処理装置１００は、モデルを用いてクエリ情報に対応する一のアイテムのアイテム情報からベクトルを生成する。図１及び図２の例では、情報処理装置１００は、モデル情報記憶部１２４に記憶されたモデルＭ１を用いて、アイテム情報ＩＭＤ１１からベクトルＶＤ１１を生成する。
【０２１５】
そして、情報処理装置１００は、生成したベクトルとインデックス情報を用いて起点ベクトルを決定する（ステップＳ１０４）。図１及び図２の例では、情報処理装置１００は、ベクトルＶＤ１１と、インデックス情報記憶部１２２に記憶されたインデックス情報ＩＮＤ１１とを用いて、起点ベクトルをノードＮ８３に決定する。
【０２１６】
そして、情報処理装置１００は、グラフ情報を検索することにより、クエリ情報の類似アイテムを抽出する（ステップＳ１０５）。図１及び図２の例では、情報処理装置１００は、ノードＮ８３を起点として、グラフ情報ＧＲ１１を探索することにより、ノードＮ８３やノードＮ６７を類似アイテムとして抽出する。
【０２１７】
そして、情報処理装置１００は、抽出した類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する（ステップＳ１０６）。図１及び図２の例では、情報処理装置１００は、アイテム＃８３やアイテム＃６７のうち、アイテムＸに最も類似するアイテム＃６７を推奨アイテムに決定する。
【０２１８】
そして、情報処理装置１００は、推奨アイテムに関するサービスを提供する（ステップＳ１０７）。図１及び図２の例では、情報処理装置１００は、例えばアイテム＃６７を推奨アイテムとしてユーザＵ１が利用する端末装置１０に提供する。
【０２１９】
〔５．生成処理のフロー〕
次に、図１０を用いて、実施形態に係る情報処理システム１による生成処理の手順について説明する。図１０は、実施形態に係る生成処理の一例を示すフローチャートである。
【０２２０】
図１０に示すように、情報処理装置１００は、学習データを取得する（ステップＳ２０１）。例えば、情報処理装置１００は、アイテム情報記憶部１２１から学習データを取得する。例えば、情報処理装置１００は、アイテム情報記憶部１２１からアイテム＃１やアイテム＃２のベクトル用情報や正解情報等を学習データとして取得する。
【０２２１】
その後、情報処理装置１００は、学習データに基づきモデルを生成する（ステップＳ２０２）。例えば、情報処理装置１００は、アイテム＃１やアイテム＃２のベクトル用情報と、ターゲット「ユーザビリティ」に対応する正解情報とを用いてモデルＭ１を生成する。例えば、情報処理装置１００は、アイテム＃１やアイテム＃２のベクトル用情報をモデルＭ１中の対応する変数「ｘ１」〜「ｘｎ」に入力し、出力値「ｙ」が正解情報の値に近づくように、各重み「ｗ１」〜「ｗｎ」の値を学習する。
【０２２２】
〔６．検索例〕
ここで、上述したグラフ情報を用いた検索の一例を示す。なお、グラフ情報（グラフデータ）を用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、図１２を一例として説明する。図１２は、グラフデータ（グラフ情報）を用いた検索処理の一例を示すフローチャートである。また、以下でいうオブジェクトは、ベクトルやノードと読み替えてもよい。以下に説明する検索処理は、例えば情報処理装置１００の検索部１３４によって行われる。なお、以下では、情報処理装置１００が検索処理を行うものとして説明するが、検索処理は他の装置により行われてもよい。例えば、情報処理装置１００は、検索クエリとして、一のアイテムのアイテム情報（アイテムデータ）から生成されたベクトルデータを用いる。例えば、情報処理装置１００は、一のアイテムのアイテム情報（アイテムデータ）から生成されたベクトルデータとインデックス情報とに基づいて決定された起点ベクトルを起点としてグラフデータを検索する。図１及び図２の例では、情報処理装置１００は、アイテムＸのベクトルＶＤ１１とインデックス情報ＩＮＤ１１とに基づいて決定された起点ベクトルであるノードＮ８３を起点としてグラフ情報ＧＲ１１を検索する。
【０２２３】
ここでは、近傍オブジェクト集合Ｎ（Ｇ，ｙ）は、ノードｙに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「Ｇ」は、所定のグラフデータ（例えば、グラフ情報ＧＲ１１等）であってもよい。例えば、情報処理装置１００は、ｋ近傍検索処理を実行する。
【０２２４】
例えば、情報処理装置１００は、超球の半径ｒを∞（無限大）に設定し（ステップＳ３００）、既存のオブジェクト集合から部分集合Ｓを抽出する（ステップＳ３０１）。例えば、情報処理装置１００は、ルートノード（起点ベクトル）として選択されたオブジェクト（ノード）を部分集合Ｓとして抽出してもよい。図１及び図２の例では、情報処理装置１００は、起点ベクトルであるノードＮ８３等を部分集合Ｓとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップＳ３０１において抽出されたオブジェクト集合Ｓに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Ｒの初期集合にも含められる。
【０２２５】
次に、情報処理装置１００は、オブジェクト集合Ｓに含まれるオブジェクトの中で、検索クエリオブジェクトをｙとするとオブジェクトｙとの距離が最も短いオブジェクトを抽出し、オブジェクトｓとする（ステップＳ３０２）。図１及び図２の例では、情報処理装置１００は、オブジェクト集合Ｓに含まれるオブジェクトの中で、検索クエリオブジェクトであるベクトルＶＤ１１との距離が最も短いオブジェクトを抽出し、オブジェクトｓとする。例えば、情報処理装置１００は、オブジェクト集合Ｓに含まれるオブジェクトの中で、ベクトルＶＤ１１との距離が最も短いノードＮ８３を抽出し、オブジェクトｓとする。例えば、情報処理装置１００は、ルートノード（起点ベクトル）として選択されたオブジェクト（ノード）のみがオブジェクト集合Ｓの要素の場合には、結果的にルートノード（起点ベクトル）がオブジェクトｓとして抽出される。次に、情報処理装置１００は、オブジェクトｓをオブジェクト集合Ｓから除外する（ステップＳ３０３）。
【０２２６】
次に、情報処理装置１００は、オブジェクトｓとオブジェクトｙとの距離ｄ（ｓ，ｙ）がｒ（１＋ε）を超えるか否かを判定する（ステップＳ３０４）。ここで、εは拡張要素であり、ｒ（１＋ε）は、探索範囲（この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる）の半径を示す値である。オブジェクトｓとオブジェクトｙとの距離ｄ（ｓ，ｙ）がｒ（１＋ε）を超える場合（ステップＳ３０４：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｒをオブジェクトｙの近傍オブジェクト集合として出力し（ステップＳ３０５）、処理を終了する。
【０２２７】
オブジェクトｓと検索クエリオブジェクトｙとの距離ｄ（ｓ，ｙ）がｒ（１＋ε）を超えない場合（ステップＳ３０４：Ｎｏ）、情報処理装置１００は、オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトの中からオブジェクト集合Ｃに含まれないオブジェクトを一つ選択し、選択したオブジェクトｕを、オブジェクト集合Ｃに格納する（ステップＳ３０６）。オブジェクト集合Ｃは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定される。
【０２２８】
次に、情報処理装置１００は、オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ（１＋ε）以下であるか否かを判定する（ステップＳ３０７）。オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ（１＋ε）以下である場合（ステップＳ３０７：Ｙｅｓ）、情報処理装置１００は、オブジェクトｕをオブジェクト集合Ｓに追加する（ステップＳ３０８）。また、オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ（１＋ε）以下ではない場合（ステップＳ３０７：Ｎｏ）、情報処理装置１００は、ステップＳ３０９の判定（処理）を行う。
【０２２９】
次に、情報処理装置１００は、オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ以下であるか否かを判定する（ステップＳ３０９）。オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒを超える場合（ステップＳ３０９：Ｎｏ）、情報処理装置１００は、ステップＳ３１５の判定（処理）を行う。すなわち、オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ以下ではない場合（ステップＳ３０９：Ｎｏ）、情報処理装置１００は、ステップＳ３１５の判定（処理）を行う。
【０２３０】
オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ以下である場合（ステップＳ３０９：Ｙｅｓ）、情報処理装置１００は、オブジェクトｕをオブジェクト集合Ｒに追加する（ステップＳ３１０）。そして、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクト数がｋｓを超えるか否かを判定する（ステップＳ３１１）。所定数ｋｓは、任意に定められる自然数である。例えば、ｋｓ＝２やｋｓ＝１０等の種々の設定であってもよい。オブジェクト集合Ｒに含まれるオブジェクト数がｋｓを超えない場合（ステップＳ３１１：Ｎｏ）、情報処理装置１００は、ステップＳ３１３の判定（処理）を行う。
【０２３１】
オブジェクト集合Ｒに含まれるオブジェクト数がｋｓを超える場合（ステップＳ３１１：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクトの中でオブジェクトｙとの距離が最も長い（遠い）オブジェクトを、オブジェクト集合Ｒから除外する（ステップＳ３１２）。
【０２３２】
次に、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクト数がｋｓと一致するか否かを判定する（ステップＳ３１３）。オブジェクト集合Ｒに含まれるオブジェクト数がｋｓと一致しない場合（ステップＳ３１３：Ｎｏ）、情報処理装置１００は、ステップＳ３１５の判定（処理）を行う。また、オブジェクト集合Ｒに含まれるオブジェクト数がｋｓと一致する場合（ステップＳ３１３：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクトの中でオブジェクトｙとの距離が最も長い（遠い）オブジェクトと、オブジェクトｙとの距離を、新たなｒに設定する（ステップＳ３１４）。
【０２３３】
そして、情報処理装置１００は、オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えたか否かを判定する（ステップＳ３１５）。オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えていない場合（ステップＳ３１５：Ｎｏ）、情報処理装置１００は、ステップＳ３０６に戻って処理を繰り返す。
【０２３４】
オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えた場合（ステップＳ３１５：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｓが空集合であるか否かを判定する（ステップＳ３１６）。オブジェクト集合Ｓが空集合でない場合（ステップＳ３１６：Ｎｏ）、情報処理装置１００は、ステップＳ３０２に戻って処理を繰り返す。また、オブジェクト集合Ｓが空集合である場合（ステップＳ３１６：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｒを出力し、処理を終了する（ステップＳ３１７）。例えば、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクト（ノード）を検索クエリ（入力オブジェクトｙ）に対応する検索結果として、検索を行った端末装置１０等へ提供してもよい。図１及び図２の例では、情報処理装置１００は、オブジェクト集合Ｒに含まれるノードＮ８３やノードＮ６７を検索クエリ（アイテムＸのベクトルＶＤ１１）に対応する検索結果として、ユーザＵ１が利用する端末装置１０等へ提供してもよい。例えば、情報処理装置１００は、ノードＮ８３に対応するアイテム＃８３や、ノードＮ６７に対応するアイテム＃６７をアイテムＸに類似するアイテムとしてユーザＵ１が利用する端末装置１０に提供する。
【０２３５】
〔７．効果〕
上述してきたように、実施形態に係る情報処理装置１００は、取得部１３１と、決定部１３３と、検索部１３４とを有する。取得部１３１は、複数のアイテムの各々に対応する複数のノードが、複数のアイテムの類似性に応じて連結されたグラフ情報と、アイテムに関するクエリ情報を取得する。検索部１３４は、取得部１３１により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数のアイテムのうち、クエリ情報と類似性を有するアイテムである類似アイテムを抽出する。決定部１３３は、類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定する。
【０２３６】
このように、実施形態に係る情報処理装置１００は、起点ノードを起点としてグラフ情報を検索し、複数のアイテムのうち、一のアイテムに類似するアイテムである類似アイテムを抽出する。そして、情報処理装置１００は、類似アイテムに基づいて、ユーザに推奨するアイテムである推奨アイテムを決定することにより、適切なアイテムの推奨を可能にすることができる。
【０２３７】
また、実施形態に係る情報処理装置１０において、決定部１３３は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。検索部１３４は、決定部１３３により決定された起点ノードを起点として、類似アイテムを抽出する。
【０２３８】
このように、実施形態に係る情報処理装置１００は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定することにより、適切なアイテムの推奨を可能にすることができる。
【０２３９】
また、実施形態に係る情報処理装置１００において、決定部１３３は、木構造型のインデックス情報に基づいて、起点ノードを決定する。
【０２４０】
このように、実施形態に係る情報処理装置１００は、木構造型のインデックス情報に基づいて、起点ノードを決定することにより、適切なアイテムの推奨を可能にすることができる。
【０２４１】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数のアイテムの各々に対応する複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得する。
【０２４２】
このように、実施形態に係る情報処理装置１００は、複数のアイテムの各々に対応する複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得することにより、適切なアイテムの推奨を可能にすることができる。
【０２４３】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数のアイテムの各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
【０２４４】
このように、実施形態に係る情報処理装置１００は、複数のアイテムの各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得することにより、適切なアイテムの推奨を可能にすることができる。
【０２４５】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数のアイテムの各々の特徴を示す複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得する。
【０２４６】
このように、実施形態に係る情報処理装置１００は、複数のアイテムの各々の特徴を示す複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得することにより、適切なアイテムの推奨を可能にすることができる。
【０２４７】
また、実施形態に係る情報処理装置１００において、取得部１３１は、所定のモデルの特徴量と重みとに基づく複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
【０２４８】
このように、実施形態に係る情報処理装置１００は、所定のモデルの特徴量と重みとに基づく複数のベクトルが類似性に応じて連結されたグラフ情報を取得することにより、適切なアイテムの推奨を可能にすることができる。
【０２４９】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数のアイテムにおける異なる複数の基準に基づく類似性に応じて、複数のアイテムが連結された複数のグラフ情報であって、複数の基準の各々に対応する複数のグラフ情報を取得する。
【０２５０】
このように、実施形態に係る情報処理装置１００は、複数のアイテムにおける異なる複数の基準に基づく類似性に応じて、複数のアイテムが連結された複数のグラフ情報であって、複数の基準の各々に対応する複数のグラフ情報を取得することにより、異なる複数の基準に応じて適切なアイテムの推奨を可能にすることができる。
【０２５１】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数のアイテムのユーザに対するユーザビリティに関する類似性に応じて、複数のアイテムが連結されたグラフ情報を含む複数のグラフ情報を取得する。
【０２５２】
このように、実施形態に係る情報処理装置１００は、複数のアイテムのユーザに対するユーザビリティに関する類似性に応じて、複数のアイテムが連結されたグラフ情報を含む複数のグラフ情報を取得することにより、各アイテムのユーザビリティに応じて適切なアイテムの推奨を可能にすることができる。
【０２５３】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数のアイテムの収益性に関する類似性に応じて、複数のアイテムが連結されたグラフ情報を含む複数のグラフ情報を取得する。
【０２５４】
このように、実施形態に係る情報処理装置１００は、複数のアイテムの収益性に関する類似性に応じて、複数のアイテムが連結されたグラフ情報を含む複数のグラフ情報を取得することにより、各アイテムの収益性に応じて適切なアイテムの推奨を可能にすることができる。
【０２５５】
また、実施形態に係る情報処理装置１００において、決定部１３３は、複数のグラフ情報のうち、ユーザへの推奨目的に応じて検索に用いる一のグラフ情報を決定する。検索部１３４は、決定部１３３により決定された一のグラフ情報を用いて、類似アイテムを抽出する。
【０２５６】
このように、実施形態に係る情報処理装置１００は、複数のグラフ情報のうち、ユーザへの推奨目的に応じて検索に用いる一のグラフ情報を決定し、その一のグラフ情報を用いて類似アイテムを抽出することにより、推奨目的に応じて適切なアイテムの推奨を可能にすることができる。
【０２５７】
また、実施形態に係る情報処理装置１００において、取得部１３１は、一のアイテムに関するアイテム情報をクエリ情報として取得する。
【０２５８】
このように、実施形態に係る情報処理装置１００は、一のアイテムに関するアイテム情報をクエリ情報として取得することにより、適切なアイテムの推奨を可能にすることができる。
【０２５９】
また、実施形態に係る情報処理装置１００において、取得部１３１は、ユーザに関するユーザ情報をクエリ情報として取得する。
【０２６０】
このように、実施形態に係る情報処理装置１００は、ユーザに関するユーザ情報をクエリ情報として取得することにより、適切なアイテムの推奨を可能にすることができる。
【０２６１】
また、実施形態に係る情報処理装置１００は、提供部１３５を有する。提供部１３５は、決定部１３３により決定された推奨アイテムに基づいて、所定のサービスを提供する。
【０２６２】
このように、実施形態に係る情報処理装置１００は、推奨アイテムに基づいて、所定のサービスを提供することにより、推奨アイテムに関する情報を用いたサービスを適切に提供することができる。
【０２６３】
また、実施形態に係る情報処理装置１００において、提供部１３５は、推奨アイテムに基づいて、情報提供サービスを提供する。
【０２６４】
このように、実施形態に係る情報処理装置１００は、推奨アイテムに基づいて、情報提供サービスを提供することにより、推奨アイテムに関する情報を用いたサービスを適切に提供することができる。
【０２６５】
また、実施形態に係る情報処理装置１００において、提供部１３５は、ユーザが利用する端末装置１０に推奨アイテムを示す情報を提供する。
【０２６６】
このように、実施形態に係る情報処理装置１００は、ユーザが利用する端末装置１０に推奨アイテムを示す情報を提供することにより、ユーザに対して推奨アイテムに関する情報を用いたサービスを適切に提供することができる。
【０２６７】
〔８．ハードウェア構成〕
上述してきた実施形態に係る情報処理装置１００は、例えば図１３に示すような構成のコンピュータ１０００によって実現される。図１３は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ（Read  Only  Memory）１３００、ＨＤＤ（Hard  Disk  Drive）１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０２６８】
ＣＰＵ１１００は、ＲＯＭ１３００またはＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０２６９】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス１５００は、ネットワークＮを介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が生成したデータをネットワークＮを介して他の機器へ送信する。
【０２７０】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、生成したデータを入出力インターフェイス１６００を介して出力装置へ出力する。
【０２７１】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラムまたはデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０２７２】
例えば、コンピュータ１０００が実施形態に係る情報処理装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムまたはデータ（例えば、モデルＭ１（モデルデータＭＤＴ１））を実行することにより、制御部１３０の機能を実現する。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムまたはデータ（例えば、モデルＭ１（モデルデータＭＤＴ１））を記録媒体１８００から読み取って実行するが、他の例として、他の装置からネットワークＮを介してこれらのプログラムを取得してもよい。
【０２７３】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０２７４】
〔９．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０２７５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０２７６】
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０２７７】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【０２７８】
１  情報処理システム
１００  情報処理装置
１２１  アイテム情報記憶部
１２２  インデックス情報記憶部
１２３  グラフ情報記憶部
１２４  モデル情報記憶部
１３０  制御部
１３１  取得部
１３２  生成部
１３３  決定部
１３４  検索部
１３５  提供部
１０  端末装置
５０  情報提供装置
Ｎ  ネットワーク
【図１】
2019159806.tif 000003
【図２】
2019159806.tif 000004
【図３】
2019159806.tif 000005
【図４】
2019159806.tif 000006
【図５】
2019159806.tif 000007
【図６】
2019159806.tif 000008
【図７】
2019159806.tif 000009
【図８】
2019159806.tif 000010
【図９】
2019159806.tif 000011
【図１０】
2019159806.tif 000012
【図１１】
2019159806.tif 000013
【図１２】
2019159806.tif 000014
【図１３】
2019159806.tif 000015