(57)【要約】【課題】アイテムを適切に抽出する。【解決手段】本願に係る情報処理装置は、取得部と、検索部とを有する。取得部は、複数のアイテムの各々に対応する複数のノードが、複数のアイテムの類似性に応じてエッジにより連結されたグラフ情報であって、複数のノードのうち、類似性とは異なる観点による所定の条件を満たすノード間がエッジとは異なる特別エッジにより連結されたグラフ情報を取得する。検索部は、取得部により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数のアイテムのうち、一のアイテムと類似するアイテムである類似アイテムを対象アイテムとして抽出し、グラフ情報の検索時において特別エッジが連結されたノードに到達した場合、当該ノードと特別エッジにより連結された他のノードを対象アイテムとして抽出する。【選択図】図３
2019160064.tif 000002
【特許請求の範囲】
【請求項１】
複数のアイテムの各々に対応する複数のノードが、前記複数のアイテムの類似性に応じてエッジにより連結されたグラフ情報であって、前記複数のノードのうち、前記類似性とは異なる観点による所定の条件を満たすノード間が前記エッジとは異なる特別エッジにより連結されたグラフ情報と、一のアイテムに関するアイテム情報を取得する取得部と、
前記取得部により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数のアイテムのうち、前記一のアイテムと類似するアイテムである類似アイテムを対象アイテムとして抽出し、前記グラフ情報の検索時において前記特別エッジが連結されたノードに到達した場合、当該ノードと前記特別エッジにより連結された他のノードを前記対象アイテムとして抽出する検索部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記起点ノードの決定に用いるインデックス情報に基づいて、前記起点ノードを決定する決定部、
をさらに備え、
前記検索部は、
前記決定部により決定された前記起点ノードを起点として、前記対象アイテムを抽出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定部は、
木構造型の前記インデックス情報に基づいて、前記起点ノードを決定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得部は、
前記複数のアイテムの各々に対応する複数のベクトルの類似性に応じて、前記複数のノードが連結されたグラフ情報を取得する
ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記取得部は、
前記複数のアイテムの各々の特徴を示す前記複数のベクトルが類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記取得部は、
所定のモデルを用いて前記複数のアイテムの各々から抽出された特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項４または請求項５に記載の情報処理装置。
【請求項７】
前記取得部は、
前記複数のアイテムに関する情報を所定のモデルに入力することにより、抽出される前記複数のアイテムの各々の特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項４〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記取得部は、
前記複数のアイテムのうち、ユーザ群の行動において所定の共通性を有するノード間が前記特別エッジにより連結されたグラフ情報を取得する
ことを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記取得部は、
所定の期間における前記ユーザ群の行動において、前記行動の対象として共起する回数が所定の閾値以上である複数のアイテムに各々対応する複数のノード間が、前記特別エッジにより連結されたグラフ情報を取得する
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記取得部は、
前記所定の期間において併せて購入される回数が所定の閾値以上である複数の商品である複数のアイテムに各々対応する複数のノード間が、前記特別エッジにより連結されたグラフ情報を取得する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記検索部により抽出された前記対象アイテムに基づいて、所定のサービスを提供する提供部、
をさらに備えたことを特徴とする請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記取得部は、
ユーザが利用する端末装置から前記一のアイテムに関する前記アイテム情報を取得し、
前記提供部は、
前記端末装置に前記所定のサービスを提供する
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記提供部は、
前記対象アイテムに基づいて、情報提供サービスを提供する
ことを特徴とする請求項１１または請求項１２に記載の情報処理装置。
【請求項１４】
コンピュータが実行する情報処理方法であって、
複数のアイテムの各々に対応する複数のノードが、前記複数のアイテムの類似性に応じてエッジにより連結されたグラフ情報であって、前記複数のノードのうち、前記類似性とは異なる観点による所定の条件を満たすノード間が前記エッジとは異なる特別エッジにより連結されたグラフ情報と、一のアイテムに関するアイテム情報を取得する取得工程と、
前記取得工程により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数のアイテムのうち、前記一のアイテムと類似するアイテムである類似アイテムを対象アイテムとして抽出し、前記グラフ情報の検索時において前記特別エッジが連結されたノードに到達した場合、当該ノードと前記特別エッジにより連結された他のノードを前記対象アイテムとして抽出する検索工程と、
を含んだことを特徴とする情報処理方法。
【請求項１５】
複数のアイテムの各々に対応する複数のノードが、前記複数のアイテムの類似性に応じてエッジにより連結されたグラフ情報であって、前記複数のノードのうち、前記類似性とは異なる観点による所定の条件を満たすノード間が前記エッジとは異なる特別エッジにより連結されたグラフ情報と、一のアイテムに関するアイテム情報を取得する取得手順と、
前記取得手順により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数のアイテムのうち、前記一のアイテムと類似するアイテムである類似アイテムを対象アイテムとして抽出し、前記グラフ情報の検索時において前記特別エッジが連結されたノードに到達した場合、当該ノードと前記特別エッジにより連結された他のノードを前記対象アイテムとして抽出する検索手順と、
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、種々の情報を抽出する技術が提供されている。例えば、他のカテゴリに属する概念間の相対的な関係を考慮した上で、概念間の類似性を推定する技術が提供されている。このような技術において推定された概念間の類似性に基づいて、アイテムの配信等の種々のサービスが提供される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２１３１５１号公報
【非特許文献】
【０００４】
【非特許文献１】岩崎雅二郎  "木構造型インデックスを利用した近似k最近傍グラフによる近傍検索",  情報処理学会論文誌,  2011/2,  Vol.  52,  No.  2.  pp.817-828.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、アイテムを適切に抽出することが難しい場合がある。例えば、他のカテゴリに属する概念間の類似性を推定するだけでは、所望の情報を抽出することが難しい。例えば、同じカテゴリに属する情報の類似性を推定することができるとは限らず、このような場合、所望の情報を抽出することが難しい。
【０００６】
本願は、上記に鑑みてなされたものであって、アイテムを適切に抽出する情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る情報処理装置は、複数のアイテムの各々に対応する複数のノードが、前記複数のアイテムの類似性に応じてエッジにより連結されたグラフ情報であって、前記複数のノードのうち、前記類似性とは異なる観点による所定の条件を満たすノード間が前記エッジとは異なる特別エッジにより連結されたグラフ情報と、一のアイテムに関するアイテム情報を取得する取得部と、前記取得部により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数のアイテムのうち、前記一のアイテムと類似するアイテムである類似アイテムを対象アイテムとして抽出し、前記グラフ情報の検索時において前記特別エッジが連結されたノードに到達した場合、当該ノードと前記特別エッジにより連結された他のノードを前記対象アイテムとして抽出する検索部と、を備えたことを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、アイテムを適切に抽出することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る情報処理の一例を示す図である。
【図２】図２は、実施形態に係る情報処理システムの構成例を示す図である。
【図３】図３は、実施形態に係る情報処理装置の構成例を示す図である。
【図４】図４は、実施形態に係るアイテム情報記憶部の一例を示す図である。
【図５】図５は、実施形態に係るインデックス情報記憶部の一例を示す図である。
【図６】図６は、実施形態に係るグラフ情報記憶部の一例を示す図である。
【図７】図７は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図８】図８は、実施形態に係る履歴情報記憶部の一例を示す図である。
【図９】図９は、実施形態に係る情報処理の一例を示すフローチャートである。
【図１０】図１０は、実施形態に係る生成処理の一例を示すフローチャートである。
【図１１】図１１は、実施形態に係る特徴量の抽出の一例を示す図である。
【図１２】図１２は、グラフ情報を用いた検索処理の一例を示すフローチャートである。
【図１３】図１３は、特別エッジの追加の一例を示す図である。
【図１４】図１４は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１１】
（実施形態）
〔１．情報処理〕
図１を用いて、実施形態に係る情報処理の一例について説明する。図１は、実施形態に係る情報処理の一例を示す図である。図１では、情報処理装置１００がアイテムの一例として、所定の電子商取引サービスで販売される商品をグラフ構造化したグラフデータ（グラフ情報）を検索することにより、類似するアイテムである類似アイテムを対象アイテムとして抽出する場合を示す。なお、ここでいう商品には、所定の電子商取引サービスで販売可能であればどのような対象であってもよく、サービス等が含まれてもよい。また、図１では、情報処理装置１００がグラフ情報の検索時に、後述する特別エッジが連結されたノードに到達した場合、当該ノードと特別エッジにより連結された他のノードを対象アイテムとして抽出する場合を示す。図１では、情報処理装置１００は、各アイテムに対応するベクトルデータ（「ベクトル情報」や、単に「ベクトル」ともいう）を用いてアイテムをグラフ構造化したグラフ情報を用いる。なお、情報処理装置１００が用いる情報は、ベクトルに限らず、各アイテムの類似性を表現可能な情報であれば、どのような形式の情報であってもよい。例えば、情報処理装置１００は、各アイテムに対応する所定のデータや値を用いてアイテムをグラフ構造化したグラフ情報を用いてもよい。例えば、情報処理装置１００は、各アイテムから生成された所定の数値（例えば２進数の値や１６進数の値）を用いてアイテムをグラフ構造化したグラフ情報を用いてもよい。また、図１の例では、商品（商品情報）をアイテムの一例として示すが、アイテムは、商品（商品情報）に限らず、記事コンテンツや動画コンテンツ等の種々の対象であってもよい。すなわち、対象とするアイテム（オブジェクト）は、各アイテム間の類似性を表現可能であれば、どのようなアイテム（情報）であってもよい。
【００１２】
〔１−１．グラフ情報について〕
また、情報処理装置１００は、図１中のグラフ情報ＧＲ１１に示すように、各ベクトル（ノード）が有向エッジにより連結されたグラフデータを用いて情報処理を行う。なお、図１中のグラフ情報ＧＲ１１に示すようなグラフ情報は、情報処理装置１００が生成してもよいし、情報処理装置１００は、図１中のグラフ情報ＧＲ１１に示すようなグラフ情報を情報提供装置５０（図２参照）等の他の外部装置から取得してもよい。
【００１３】
また、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「Ａ」から所定のノード「Ｂ」に連結される有向エッジとは、参照元をノード「Ａ」とし、参照先をノード「Ｂ」とするエッジであることを示す。なお、各ノードを連結するエッジは、有向エッジに限らず、種々のエッジであってもよい。例えば、各ノードを連結するエッジは、ノードを連結する方向のないエッジであってもよい。例えば、各ノードを連結するエッジは、相互に参照可能なエッジであってもよい。例えば、各ノードを連結するエッジは、全て双方向エッジであってもよい。
【００１４】
例えば、このようにノード「Ａ」を参照元とするエッジをノード「Ａ」の出力エッジという。また、例えば、このようにノード「Ｂ」を参照先とするエッジをノード「Ｂ」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する２つのノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。
【００１５】
例えば、情報処理装置１００は、数百万〜数億等の単位の膨大なアイテムに対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。図１の例では、説明を簡単にするために、８個のノードを図示して処理の概要を説明する。例えば、情報処理装置１００は、図１中のグラフ情報ＧＲ１１に示すように、ノードＮ１、Ｎ２、Ｎ３等に示すような複数のノード（ベクトル）を含むグラフ情報を取得する。また、図１の例では、グラフ情報ＧＲ１１における各ノードは、そのノードとの間の距離が近い方から所定数のノードへのエッジ（出力エッジ）が連結される。例えば、所定数は、目的や用途等に応じて、２や５や１０や１００等の種々の値であってもよい。例えば、所定数が２である場合、ノードＮ１からは、ノードＮ１からの距離が最も近いノード及び２番目に距離が近い２つのノードに出力エッジが連結される。なお、類似度を示す指標としての距離は、ベクトル（Ｎ次元ベクトル）間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。
【００１６】
また、このように「ノードＮ＊（＊は任意の数値）」と記載した場合、そのノードはノードＩＤ「Ｎ＊」により識別されるノードであることを示す。例えば、「ノードＮ１」と記載した場合、そのノードはノードＩＤ「Ｎ１」により識別されるノードである。
【００１７】
また、図１中のグラフ情報ＧＲ１１では、ノードＮ１０は、ノードＮ７へ向かう有向エッジであるエッジＥ７が連結される。すなわち、ノードＮ１０は、ノードＮ７とエッジＥ７により連結される。このように「エッジＥ＊（＊は任意の数値）」と記載した場合、そのエッジはエッジＩＤ「Ｅ＊」により識別されるエッジであることを示す。例えば、「エッジＥ１１」と記載した場合、そのエッジはエッジＩＤ「Ｅ１１」により識別されるエッジである。例えば、ノードＮ１０を参照元とし、ノードＮ７を参照先として連結されるエッジＥ７により、ノードＮ１０からノードＮ７に辿ることが可能となる。この場合、有向エッジであるエッジＥ７は、ノードＮ１０を中心として識別される場合、出力エッジとなり、ノードＮ７を中心として識別される場合、入力エッジとなる。また、図１のグラフ情報ＧＲ１１中の双方向矢印は、両方のノードから他方のノードへの有向エッジが連結されることを示す。例えば、グラフ情報ＧＲ１１中のノードＮ２とノードＮ４５１との間の双方向矢印は、ノードＮ２からノードＮ４５１へ向かう有向エッジと、ノードＮ４５１からノードＮ２へ向かう有向エッジとの２つのエッジが連結されることを示す。
【００１８】
また、図１中のグラフ情報ＧＲ１１は、ユークリッド空間であってもよい。また、図１に示すグラフ情報ＧＲ１１は、各ベクトル間の距離等の説明のための概念的な図であり、グラフ情報ＧＲ１１は、多次元空間である。例えば、図１に示すグラフ情報ＧＲ１１は、平面上に図示するため２次元の態様にて図示されるが、例えば１００次元や１０００次元等の多次元空間であるものとする。
【００１９】
ここで、ベクトルデータ間の距離は、アイテムの類似性を示し、距離が近いほど類似している。本実施形態においては、グラフ情報ＧＲ１１における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応するアイテムの類似性が、グラフ情報ＧＲ１１内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図１に示す例においては、グラフ情報ＧＲ１１における各ノード間の距離が短いオブジェクト同士の類似度が高く、グラフ情報ＧＲ１１における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、図１中のグラフ情報ＧＲ１１において、ノードＩＤ「Ｎ３５」により識別されるノードと、ノードＩＤ「Ｎ６９３」により識別されるノードとは近接している、すなわち距離が短い。そのため、ノードＩＤ「Ｎ３５」により識別されるノードに対応するオブジェクトと、ノードＩＤ「Ｎ６９３」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。
【００２０】
また、例えば、図１中のグラフ情報ＧＲ１１において、ノードＩＤ「Ｎ７」により識別されるノードと、ノードＩＤ「Ｎ２」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードＩＤ「Ｎ７」により識別されるノードに対応するオブジェクトと、ノードＩＤ「Ｎ２」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。
【００２１】
〔１−２．ベクトルの生成例〕
また、ここでいう、各ノード（ベクトル）は、各オブジェクト（アイテム）に対応する。アイテム情報が様々なアイテムの状態を示す数値データであれば、それをベクトルデータとして、そのまま扱うことも可能である。しかし、アイテム情報が、テキスト、画像、または、音声であったりする場合には、ベクトルデータへの変換が必要となる。そこで、図１の例では、各アイテムのアイテム情報から抽出された特徴量により生成された多次元（Ｎ次元）のベクトルがオブジェクトであってもよい。
【００２２】
例えば、情報処理装置１００は、アイテム情報の特徴を抽出するモデルを用いて各アイテムのアイテム情報からＮ次元ベクトルを生成してもよい。図１の例では、情報処理装置１００は、モデル情報記憶部１２４（図７参照）に示すように、モデルＩＤ「Ｍ１」により識別されるモデル（モデルＭ１）を用いて、各アイテムのアイテム情報からベクトルを生成する。上記のように、「モデルＭ＊（＊は任意の数値）」と記載した場合、そのモデルはモデルＩＤ「Ｍ＊」により識別されるモデルであることを示す。例えば、「モデルＭ１」と記載した場合、そのモデルはモデルＩＤ「Ｍ１」により識別されるモデルである。また、モデル情報記憶部１２４に示すように、モデルＭ１は用途「特徴抽出（商品）」、すなわちアイテムのデータ（アイテム情報）からの特徴抽出のために用いられるモデルであり、その具体的なモデルデータが「モデルデータＭＤＴ１」であることを示す。
【００２３】
例えば、情報処理装置１００は、モデルＭ１に任意のアイテムのアイテム情報を入力することにより、モデルＭ１中の各要素（ニューロン）の値を演算し、入力したアイテム情報と同様の情報を出力する。例えば、情報処理装置１００は、中間層の各要素（ニューロン）の値を特徴量として抽出し、各アイテムに対応するＮ次元のベクトルデータを生成してもよい。
【００２４】
ここで、図１１を用いて、各アイテムに対応するベクトルデータの生成の一例を示す。図１１は、実施形態に係る特徴量の抽出の一例を示す図である。図１１は、モデルＭ１の概念図である。なお、図１１では、各要素（ニューロン）の各接続関係を示す線の図示を省略する。図１１に示すように、モデルＭ１は、入力層ＩＬと、中間層ＣＬと、出力層ＯＬとを含む。例えば、モデルＭ１の入力層ＩＬは、アイテム情報が入力される層である。また、出力層ＯＬは、入力層ＩＬへの入力に応じて、入力されたアイテム情報と同様の情報を出力される層である。
【００２５】
また、例えば、中間層ＣＬの中央部の最も圧縮された圧縮層ＲＰは、入力されたアイテム情報の特徴を表現する層である。例えば、モデルＭ１の中間層ＣＬにおいて、入力層ＩＬから圧縮層ＲＰまでの間は、エンコードの処理を行う部分に対応する。モデルＭ１の中間層ＣＬにおいて、入力層ＩＬから圧縮層ＲＰまでの間は、入力されたアイテム情報の特徴を圧縮する処理を行う部分に対応する。例えば、モデルＭ１の中間層ＣＬにおいて、圧縮層ＲＰから出力層ＯＬまでの間は、デコードの処理を行う部分に対応する。モデルＭ１の中間層ＣＬにおいて、圧縮層ＲＰから出力層ＯＬまでの間は、圧縮されたアイテム情報を復元する処理を行う部分に対応する。
【００２６】
例えば、情報処理装置１００は、圧縮層ＲＰに含まれるニューロンＮＬ１やニューロンＮＬ２等の情報をベクトルに用いてもよい。例えば、情報処理装置１００は、あるアイテムのアイテム情報が入力された場合に、算出されるニューロンＮＬ１に対応する値ＶＥ１やニューロンＮＬ２に対応する値ＶＥ２をベクトルの要素（一の次元の値）として抽出してもよい。例えば、情報処理装置１００は、あるアイテムのアイテム情報が入力された場合に、算出されるニューロンＮＬ１に対応する値ＶＥ１をそのアイテムのベクトルの１次元目の要素として抽出してもよい。また、例えば、情報処理装置１００は、あるアイテムのアイテム情報が入力された場合に、算出されるニューロンＮＬ２に対応する値ＶＥ２をそのアイテムのベクトルの２次元目の要素として抽出してもよい。このように、情報処理装置１００は、各アイテムのアイテム情報をモデルＭ１に入力することにより、各アイテムに対応するベクトルを生成してもよい。なお、情報処理装置１００は、各アイテムに対応するベクトルを情報提供装置５０等の他の外部装置から取得してもよい。なお、情報処理装置１００は、ベクトルの各要素として、各ニューロンに対応する値自体を用いてもよいし、各ニューロンに対応する値に所定の係数を乗算した値を用いてもよい。また、図１の例では説明を簡単にするために、ベクトルの各要素（値）が整数である場合を示すが、ベクトルの各要素（値）は、小数点以下の数値を含む実数であってもよい。
【００２７】
なお、情報処理装置１００は、圧縮層ＲＰの要素（ニューロン）に限らず、中間層ＣＬ中の他の要素（ニューロン）の情報をベクトルに用いてもよい。例えば、情報処理装置１００は、エンコード部分のニューロンＮＬ３やデコード部分のニューロンＮＬ４等の情報をベクトルに用いてもよい。例えば、情報処理装置１００は、あるアイテムのアイテム情報が入力された場合に、算出されるニューロンＮＬ３に対応する値ＶＥ３やニューロンＮＬ４に対応する値ＶＥ４をベクトルの要素（一の次元の値）として抽出してもよい。なお、上記は、一例であり、情報処理装置１００は、オートエンコーダに限らず、種々のモデルを用いて、アイテム情報からの特徴抽出を行ってもよい。例えば、セール用等の所定の目的に適したアイテムと適さないアイテムを識別するように学習させたモデルを生成して、その中間層をベクトルデータとして抽出しても良い。また、例えば、トリプレットロス（triplet  loss）といった類似性を学習する方法によりモデルを生成しても良い。また、情報処理装置１００は、モデルを用いずに、特徴抽出を行ってもよい。例えば、情報処理装置１００は、情報処理装置１００の管理者等が設定して特徴（素性）に対応する情報をアイテム情報から抽出し、ベクトルを生成してもよい。例えば、情報処理装置１００は、アイテムの商品カテゴリ、タイトル、説明文、画像情報、製造元、サイズ等の特徴（素性）に対応する情報をアイテム情報から抽出し、ベクトルを生成してもよい。
【００２８】
また、例えば、情報処理装置１００は、情報提供装置５０等の他の外部装置からモデルＭ１を取得してもよい。なお、情報処理装置１００は、アイテム情報記憶部１２１（図４参照）に記憶された各アイテムのアイテム情報ＩＤＴ１、ＩＤＴ２、ＩＤＴ４５１等を入力として、モデルＭ１を生成してもよい。例えば、情報処理装置１００は、各アイテムのアイテム情報ＩＤＴ１、ＩＤＴ２、ＩＤＴ４５１等を入力として、モデルＭ１を生成してもよい。例えば、アイテム情報ＩＤＴ１、ＩＤＴ２、ＩＤＴ４５１等は、アイテムの商品カテゴリ、タイトル、説明文、画像情報、製造元、サイズ等を含んでもよい。例えば、商品等がアイテムである場合におけるアイテム情報（商品情報）は、商品カテゴリ、タイトル、説明文、画像情報、製造元、サイズ等に関する情報を含んでもよい。例えば、アイテム情報は、対応する商品の商品カテゴリが飲料水や酒類や調味料等のいずれであるかを示す情報を含んでもよい。例えば、アイテム情報は、対応する商品の商品カテゴリがビールやワインやケッチャプやソース等のいずれであるかを示す詳細な商品カテゴリを示す情報を含んでもよい。
【００２９】
また、例えば、アイテム情報は、対応する商品が撮像された画像情報を含んでもよい。例えば、アイテム情報は、対応する商品の製造元がどのメーカであるかを示す情報を含んでもよい。例えば、アイテム情報は、対応する商品の内容量等どのようなサイズであるかを示す情報を含んでもよい。例えば、アイテム情報は、対応する商品のターゲットとするユーザが２０代であることを示す情報や対応する商品のターゲットとするユーザが女性であることを示す情報等の商品のターゲットを示す情報を含んでもよい。なお、上記は一例であり、アイテム情報には、どのような情報が含まれてもよい。例えば、アイテムが記事コンテンツである場合、アイテム情報は、記事のタイトルや本文や画像等の種々の情報が含まれてもよい。すなわち、情報処理装置１００は、アイテムとなる対象に応じて、アイテム情報を適宜用いて、処理を行ってもよい。
【００３０】
情報処理装置１００は、アイテムのアイテム情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力されたアイテム情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルＭ１を生成してもよい。なお、情報処理装置１００は、ベクトル生成に用いるモデルを情報提供装置５０等の他の外部装置から取得してもよい。
【００３１】
〔１−３．処理例〕
ここから、グラフ情報を用いた処理について説明する。図１の例では、特別エッジの追加について説明した後、その特別エッジを含むグラフ情報を用いた情報処理について説明する。ここでいう特別エッジは、「エッジＥ＊（＊は任意の数値）」と記載されるエッジを連結する観点（基準）とは、異なる観点（基準）による所定の条件を満たすノード間を連結するエッジであってもよい。例えば、特別エッジは、アイテム情報の類似性とは異なる観点（基準）による所定の条件を満たすノード間を連結するエッジである。すなわち、特別エッジは、グラフ情報に通常とは異なる観点（基準）を導入し、グラフ情報を拡張するエッジ（拡張エッジ）である。
【００３２】
以下では、ステップＳ１１〜Ｓ１３の処理により、グラフ情報ＧＲ１１に追加されるエッジをエッジ特別とし、それ以外のエッジを「通常エッジ」と記載する場合がある。エッジＩＤ「Ｅ＊（＊は任意の数値）」により識別されるエッジを「通常エッジ」と記載する場合がある。また、エッジＩＤ「ＳＥ＊（＊は任意の数値）」により識別されるエッジを「特別エッジ」と記載する場合がある。すなわち、「エッジＥ＊（＊は任意の数値）」と記載されるエッジは「通常エッジ」であり、「特別エッジＳＥ＊（＊は任意の数値）」と記載されるエッジは「特別エッジ」である。
【００３３】
図１の例では、特別エッジの追加の一例として、商品であるアイテムがユーザに一緒に購入されている複数のアイテムが特別エッジで連結される場合を示す。すなわち、図１の例では、情報処理装置１００は、ユーザの購買行動において、合わせ購入の対象となっている複数のアイテムを、アイテム間の類似性に関わらず特別エッジで連結する場合を一例として示す。
【００３４】
まず、情報処理装置１００は、所定の履歴を示すログを取得する（ステップＳ１１）。情報処理装置１００は、所定の期間におけるユーザの行動を示す履歴情報を取得する。例えば、情報処理装置１００は、履歴情報記憶部１２５（図８参照）から履歴情報を取得する。ここでいう所定の期間は、目的に応じて種々の時間が設定されてもよく、１時間や３日や２週間や１ヶ月等の種々の期間であってもよい。図１の例では、所定の期間は、日時＃１１〜＃１３等を含む１週間であるものとし、収集対象期間と記載する場合がある。
【００３５】
例えば、情報処理装置１００は、ログ一覧ＬＧＴ１１に示すように、日時＃１１〜＃１３等を含む収集対象期間におけるユーザの行動履歴を取得する。図１の例では、図示を省略するが、情報処理装置１００は、各行動を行ったユーザの情報を含む履歴情報を取得してもよい。
【００３６】
「日時」は、対応する行動が行われた日時を示す。なお、日時＃１１〜日時＃１３等は、対応する行動が行われた具体的な日時であるものとする。「対象アイテム＃１（購入商品＃１）」、「対象アイテム＃２（購入商品＃２）」等は、対応する行動において共通して対象となったアイテムを示す。図１の例では、「対象アイテム＃１（購入商品＃１）」、「対象アイテム＃２（購入商品＃２）」等は、対応する行動において併せて購入されたアイテム（商品）を示す。
【００３７】
図１に示す例において、収集対象期間内の日時＃１１においてアイテム＃３５とアイテム＃８３１が合わせて購入されたことを示す。また、収集対象期間内の日時＃１１においてアイテム＃１は単体で購入されたことを示す。また、収集対象期間内の日時＃１１においてアイテム＃３５とアイテム＃８３１が合わせて購入されたことを示す。
【００３８】
そして、情報処理装置１００は、ログ一覧ＬＧＴ１１に示すような履歴情報に基づいて、特別な関連性を有するアイテムを判定する（ステップＳ１２）。例えば、情報処理装置１００は、ログ一覧ＬＧＴ１１において、１つの行動における対象として一緒に含まれるようなアイテム同士を特別な関連性を有するアイテムと判定する。
【００３９】
例えば、情報処理装置１００は、所定の期間におけるユーザ群の行動において、行動の対象として共起する回数が所定の閾値以上である複数のアイテムを特別な関連性を有するアイテムであると判定する。例えば、情報処理装置１００は、所定の期間において併せて購入される回数が所定の閾値以上である複数の商品である複数のアイテムに各々対応する複数のノードを特別な関連性を有するアイテムであると判定する。なお、アイテム同士を特別な関連性は、上記に限らず、グラフ情報を生成した際の観点とは異なる観点であり、アイテム間の有意な関係であれば、どのような関係であってもよい。
【００４０】
例えば、情報処理装置１００は、日時＃１１〜＃１３等を含む収集対象期間内において、所定の閾値（例えば、１０００回等）以上合せて購入された複数のノードを、特別な関連性を有するアイテムであると判定する。図１の例では、情報処理装置１００は、収集対象期間内において、アイテム＃３５とアイテム＃８３１との２つのアイテム（商品）が所定の閾値以上合せて購入されたと判定する。そして、情報処理装置１００は、アイテム＃３５とアイテム＃８３１とを、特別な関連性を有するアイテムであると判定する。そのため、情報処理装置１００は、アイテム＃３５とアイテム＃８３１との間に特別エッジを追加すると判定する。
【００４１】
そして、情報処理装置１００は、特別な関連性を有するアイテム間を連結する特別エッジを追加する。図１の例では、情報処理装置１００は、特別エッジ一覧ＳＥＬ１１に示すような、特別エッジＳＥ３５や特別エッジＳＥ８３１を追加する。
【００４２】
情報処理装置１００は、ノードＮ３５からノードＮ８３１に連結される特別エッジＳＥ３５を生成する。情報処理装置１００は、ノードＮ３５を参照元とし、ノードＮ８３１を参照先とする特別エッジＳＥ３５を生成する。情報処理装置１００は、特別エッジＳＥ３５の情報をグラフ情報記憶部１２３（図６参照）に追加（登録）する。
【００４３】
また、情報処理装置１００は、ノードＮ８３１からノードＮ３５に連結される特別エッジＳＥ８３１を生成する。情報処理装置１００は、ノードＮ８３１を参照元とし、ノードＮ３５を参照先とする特別エッジＳＥ８３１を生成する。情報処理装置１００は、特別エッジＳＥ８３１の情報をグラフ情報記憶部１２３（図６参照）に追加（登録）する。
【００４４】
例えば、情報処理装置１００は、図１中の情報群ＩＮＦ１１に示すように、グラフ情報ＧＲ１１に、点線で示す特別エッジＳＥ３５や特別エッジＳＥ８３１（図示省略）を追加する。これにより、情報処理装置１００は、特別な関連性を有するアイテム間を特別エッジで連結したグラフ情報を生成する。
【００４５】
ここから、特別エッジＳＥ３５が追加されたグラフ情報ＧＲ１１を用いた情報提供を一例として説明する。情報処理装置１００は、ユーザから一のアイテムのアイテム情報を取得し、一のアイテムに類似するアイテムに基づいてサービスを提供する場合を一例として説明する。図１の例では、端末装置１０は、ユーザＵ１により利用されるスマートフォンであり、ユーザＵ１がアイテムである商品の商品情報を閲覧している場合を示す。
【００４６】
まず、端末装置１０は、アイテムＸのアイテム情報ＩＤＴ１１を情報処理装置１００へ送信する。図１の例では、アイテム情報ＩＤＴ１１等は、アイテム（商品）の商品カテゴリ、タイトル、説明文、画像情報、製造元、サイズ等に関する情報を含む。なお、アイテム情報ＩＤＴ１１等は、アイテム（商品）の説明文（文字情報）のみであってもよい。
【００４７】
そして、情報処理装置１００は、一のアイテムに関するアイテム情報を取得する（ステップＳ１４）。図１の例では、情報処理装置１００は、ユーザＵ１の端末装置１０からアイテムＸに関するアイテム情報ＩＤＴ１１を取得する。なお、情報処理装置１００は、アイテムＸが携帯する端末装置１０（図２参照）からアイテムＸに関するアイテム情報ＩＤＴ１１を取得する。
【００４８】
そして、情報処理装置１００は、一のアイテムに対応するアイテム情報からグラフ情報の探索に用いるベクトルを生成する。図１の例では、情報処理装置１００は、処理群ＰＳ１１に示すような処理により、アイテムＸに対応するベクトルを生成する。情報処理装置１００は、アイテムＸに関するアイテム情報ＩＤＴ１１をモデルＭ１に入力する（ステップＳ１５）。具体的には、情報処理装置１００は、アイテムＸのアイテム情報ＩＤＴ１１をモデルＭ１に入力する。そして、情報処理装置１００は、アイテム情報ＩＤＴ１１の入力後のモデルＭ１中の情報を用いて、ベクトルを生成する（ステップＳ１６）。例えば、情報処理装置１００は、アイテム情報ＩＤＴ１１が入力されたモデルＭ１中の各要素を用いて、ベクトルデータを生成する。
【００４９】
図１の例では、情報処理装置１００は、アイテム情報ＩＤＴ１１が入力されたモデルＭ１中の各要素の値を用いて、ベクトルデータＶＤ１１（単に「ベクトルＶＤ１１」ともいう）を生成する。例えば、情報処理装置１００は、アイテムＸのアイテム情報ＩＤＴ１１が入力された場合における、モデルＭ１のニューロンＮＬ１に対応する値ＶＥ１（図１１参照）やニューロンＮＬ２に対応する値ＶＥ２（図１１参照）を用いて、ベクトルを生成する。例えば、情報処理装置１００は、アイテムＸのアイテム情報ＩＤＴ１１が入力された場合に、算出されるニューロンＮＬ１に対応する値ＶＥ１をベクトルＶＤ１１の１次元目の要素として抽出してもよい。また、例えば、情報処理装置１００は、あるアイテムのアイテム情報が入力された場合に、算出されるニューロンＮＬ２に対応する値ＶＥ２をベクトルＶＤ１１の２次元目の要素として、ベクトルＶＤ１１を生成する。図１の例では、情報処理装置１００は、１次元目の要素が「３５」であり、２次元目の要素が「６３」であるようなベクトルＶＤ１１を生成する。
【００５０】
そして、情報処理装置１００は、対象アイテムを検索する（ステップＳ１７）。例えば、情報処理装置１００は、アイテムＸに関する対象アイテムを検索する。例えば、情報処理装置１００は、非特許文献１に開示されるような近傍検索の技術等の種々の従来技術を適宜用いて、アイテムＸの対象アイテムを検索してもよい。例えば、情報処理装置１００は、類似性が高いノード間がエッジで連結されたグラフ情報ＧＲ１１を用いる。
【００５１】
図１の例では、情報処理装置１００は、情報群ＩＮＦ１１に示すように、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１を用いてアイテムＸの対象アイテムを検索する。例えば、情報処理装置１００は、グラフ情報記憶部１２３（図６参照）からアイテムに関するグラフ情報ＧＲ１１を取得する。また、例えば、情報処理装置１００は、インデックス情報記憶部１２２（図５参照）から、グラフ情報ＧＲ１１における検索の起点となるノード（以下、「起点ベクトル」ともいう）の決定に用いるインデックス情報ＩＮＤ１１を取得する。なお、インデックス情報ＩＮＤ１１は、情報処理装置１００が生成してもよいし、情報処理装置１００は、インデックス情報ＩＮＤ１１を情報提供装置５０等の他の外部装置から取得してもよい。
【００５２】
そして、情報処理装置１００は、一のアイテム（クエリ）に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。図１の例では、情報処理装置１００は、アイテムＸのベクトルＶＤ１１に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。すなわち、情報処理装置１００は、ベクトルＶＤ１１とインデックス情報ＩＮＤ１１とを用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する。
【００５３】
図１中のインデックス情報ＩＮＤ１１は、図５中のインデックス情報記憶部１２２に示す階層構造を有する。例えば、インデックス情報ＩＮＤ１１は、ルートＲＴの直下に位置する第１階層のノード（ベクトル）が、節点ＶＴ１、ＶＴ２等であることを示す。また、例えば、インデックス情報ＩＮＤ１１は、節点ＶＴ２の直下の第２階層のノードが、節点ＶＴ２−１〜ＶＴ２−４（図示せず）であることを示す。また、例えば、インデックス情報ＩＮＤ１１は、節点ＶＴ２−２の直下の第３階層のノードが、ノードＮ３５、ノードＮ４５１、ノードＮ６９３、すなわちグラフ情報ＧＲ１１中のノード（ベクトル）であることを示す。
【００５４】
例えば、情報処理装置１００は、図１中のインデックス情報ＩＮＤ１１に示すような木構造型のインデックス情報を用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する（ステップＳ１８）。図１の例では、情報処理装置１００は、ベクトルＶＤ１１を生成した後、インデックス情報ＩＮＤ１１を上から下へ辿ることにより、インデックス情報ＩＮＤ１１の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ（一のアイテム）に対応する起点ベクトルを決定することができる。
【００５５】
例えば、情報処理装置１００は、インデックス情報ＩＮＤ１１をルートＲＴからリーフノード（グラフ情報ＧＲ１１中のノード（ベクトル））まで辿ることにより、ベクトルＶＤ１１に対応する起点ベクトルを決定してもよい。図１の例では、例えば、情報処理装置１００は、インデックス情報ＩＮＤ１１をルートＲＴからノードＮ４５１まで辿ることにより、ノードＮ４５１を起点ベクトルとして決定する。例えば、情報処理装置１００は、木構造に関する種々の従来技術を適宜用いて、インデックス情報ＩＮＤ１１をルートＲＴからリーフノードまで辿ることにより、辿りついたリーフノードを起点ベクトルとして決定してもよい。例えば、情報処理装置１００は、ベクトルＶＤ１１との類似度に基づいて、インデックス情報ＩＮＤ１１を下へ辿ることにより、起点ベクトルを決定してもよい。例えば、情報処理装置１００は、ルートＲＴから節点ＶＴ１、ＶＴ２等のいずれの節点に辿るかを、ベクトルＶＤ１１と節点ＶＴ１、ＶＴ２との類似度に基づいて決定してもよい。例えば、情報処理装置１００は、ルートＲＴから節点ＶＴ１、ＶＴ２等のうち、ベクトルＶＤ１１との類似度が最も高い節点ＶＴ２へ辿ると決定してもよい。また、例えば、情報処理装置１００は、節点ＶＴ２から節点ＶＴ２−１〜ＶＴ２−４等のうち、ベクトルＶＤ１１との類似度が最も高い節点ＶＴ２−２へ辿ると決定してもよい。また、例えば、情報処理装置１００は、節点ＶＴ２−２からノードＮ３５、Ｎ４５１、Ｎ６９３等のうち、ベクトルＶＤ１１との類似度が最も高い節点ノードＮ４５１へ辿ると決定してもよい。なお、図１の例では、説明を簡単にするために、起点ベクトルを１つ決定する場合を示すが、情報処理装置１００は、複数個の起点ベクトルを決定してもよい。例えば、情報処理装置１００は、ノードＮ４５１、Ｎ３５、Ｎ６９３、Ｎ２等の複数個のベクトル（ノード）を起点ベクトルとして決定してもよい。なお、インデックス情報ＩＮＤ１１を用いずに、検索開始時にグラフ情報ＧＲ１１からランダムに１つ以上のノードを選択し、それを起点ベクトルとしてもよいし、または、予め指定された１つ以上のノードを起点ベクトルとしても良い。
【００５６】
そして、情報処理装置１００は、グラフ情報ＧＲ１１を検索することにより、アイテムＸの対象アイテムを抽出する（ステップＳ１９）。例えば、情報処理装置１００は、ノードＮ４５１の近傍に位置するノードを対象アイテムとして抽出する。例えば、情報処理装置１００は、ノードＮ４５１からの距離が近いノードを対象アイテムとして抽出する。例えば、情報処理装置１００は、ノードＮ４５１を起点として、エッジを辿ることにより、ノードＮ４５１から到達可能なノードを対象アイテムとして抽出する。例えば、情報処理装置１００は、所定数（例えば、２個や１０個等）のノードを対象アイテムとして抽出する。例えば、情報処理装置１００は、図１２に示すような検索処理により、アイテムＸの対象アイテムを抽出してもよいが、詳細は後述する。図１の例では、情報処理装置１００は、ノードＮ４５１を起点として、グラフ情報ＧＲ１１を探索することにより、ノードＮ４５１やノードＮ３５を対象アイテムとして抽出する。
【００５７】
ここで、ステップＳ１９において、情報処理装置１００は、グラフ情報ＧＲ１１における特別エッジ以外のエッジ（通常エッジ）を辿ってノード（以下「通常抽出ノード」ともいう）を抽出した場合、その通常抽出ノードから特別エッジが他のエッジに連結されているかどうかを判定する。例えば、情報処理装置１００は、通常抽出ノードを参照元として、通常抽出ノードと他のオブジェクトとを連結する特別エッジがあるかどうかを判定する。そして、情報処理装置１００は、通常抽出ノードを参照元として、通常抽出ノードと他のオブジェクト（特別オブジェクト）とを連結する特別エッジがあると判定した場合、その特別オブジェクトを抽出すると決定する。
【００５８】
まず、情報処理装置１００は、ノードＮ４５１を対象アイテムとして抽出した場合、ノードＮ４５１から特別エッジが他のエッジに連結されているかどうかを判定する。図１の例では、情報処理装置１００は、起点ノードであるノードＮ４５１を抽出した場合、ノードＮ４５１から特別エッジが他のエッジに連結されているかどうかを判定する。例えば、情報処理装置１００は、ノードＮ４５１からの特別エッジが０本、すなわちノードＮ４５１から他のエッジへの特別エッジはないと判定する。そして、情報処理装置１００は、ノードＮ４５１に関する特別オブジェクトの抽出はないと判定し、通常エッジでの検索を行う。
【００５９】
次に、情報処理装置１００は、ノードＮ３５を対象アイテムとして抽出した場合、ノードＮ３５から特別エッジが他のエッジに連結されているかどうかを判定する。図１の例では、情報処理装置１００は、ノードＮ４５１から通常エッジを辿ることよりノードＮ３５を抽出した場合、ノードＮ３５から特別エッジが他のエッジに連結されているかどうかを判定する。例えば、情報処理装置１００は、ノードＮ３５からはノードＮ８３１への特別エッジＳＥ３５が連結されているため、ノードＮ３５から他のエッジへの特別エッジがあると判定する。そのため、情報処理装置１００は、ノードＮ３５から特別エッジＳＥ３５が連結されたノードＮ８３１を対象アイテムとして抽出する。
【００６０】
なお、情報処理装置１００は、特別オブジェクトを抽出したオブジェクトの数に加えなくてもよい。すなわち、情報処理装置１００は、特別オブジェクトの数を所定数との比較に用いなくてもよい。この場合、情報処理装置１００は、対象アイテムとして抽出したオブジェクトのうち、特別オブジェクトを除くオブジェクトの数を所定数との比較に用いてもよい。また、情報処理装置１００は、特別エッジの連結により対象アイテムとして抽出されたノードから辿れるノードへの検索を行わなくてもよい。図１の例では、情報処理装置１００は、特別エッジの連結により対象アイテムとして抽出されたノードＮ８３１から辿れるノードへの検索を行わない。この場合、情報処理装置１００は、ノードＮ３５から通常エッジを辿ることによる検索を行う。これにより、情報処理装置１００は、アイテムＸと関連性の低いノードが対象アイテムとして抽出されるのを抑制することができる。なお、情報処理装置１００は、ノードＮ８３１から辿れるノードを対象アイテムとして抽出してもよい。
【００６１】
そして、抽出装置１００は、抽出した対象アイテムに関する情報を提供する（ステップＳ２０）。図１の例では、抽出装置１００は、ノードＮ４５１に対応するアイテム＃４５１や、ノードＮ３５に対応するアイテム＃３５や、ノードＮ８３１に対応するアイテム＃８３１を対象アイテムとしてユーザＵ１が利用する端末装置１０に提供する。
【００６２】
上述したように、情報処理装置１００は、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１を用いて、ユーザＵ１から取得したアイテムＸの対象アイテムを抽出する。例えば、情報処理装置１００は、インデックス情報ＩＮＤ１１を用いて、アイテムＸの対象アイテムを抽出する際のグラフ情報ＧＲ１１における起点ベクトルを決定する。そして、情報処理装置１００は、決定した起点ベクトルを起点としてグラフ情報ＧＲ１１を探索することにより、アイテムＸの対象アイテムを抽出する。これにより、情報処理装置１００は、アイテムを適切に抽出することができる。
【００６３】
また、情報処理装置１００は、グラフ情報の検索時において特別エッジが連結されたノードに到達した場合、ノードと特別エッジにより連結された他のノードを対象アイテムとして抽出することにより、異なる観点での対象アイテムも抽出することができる。例えば、情報処理装置１００は、グラフ情報の検索時において特別エッジが連結されたノードに到達した場合、ノードと特別エッジにより連結された他のノードを対象アイテムとして抽出することにより、異なる観点での対象アイテムも抽出することができる。
【００６４】
例えば、情報処理装置１００は、アイテムＸと類似するアイテム（類似アイテム）が、例えばアイテムＸと一見関係が無いように見える場合であっても、グラフ情報を用いることで、アイテムＸの類似アイテム（対象アイテム）として抽出でき、アイテムを適切に抽出することができる。例えば、ディープラーニングといった手法で、セール用アイテム等の所定の目的に適したアイテムを識別するという方法もあるが、所定の目的に適するかに影響する多種多様な要素が存在する場合においては、各要素の事例が少ないので、学習ができずに識別精度を向上させることが難しいという問題がある。例えば、ディープラーニングといった学習手法で生成したモデルを用いて、そのモデルにアイテムの情報を入力し、出力されたスコアからそのアイテムが所定の目的に適するかを識別するという方法もあるが、多種多様な要素が存在する場合においては、各要素の事例が少ないため、モデルの精度を向上させることが難しく、識別精度を向上させることが難しい。一方で、情報処理装置１００は、各アイテムから抽出した特徴を基に生成した複数のベクトルのグラフ構造化したグラフ情報を用いて検索を行うことにより、アイテムを適切に抽出することができる。
【００６５】
〔１−４．グラフ情報の生成（特別エッジの追加）について〕
図１の例で説明したように、情報処理装置１００は、所定の条件を満たすノード間を特別エッジで連結し、その連結を基にグラフを検索することにより、アイテムを適切に抽出することができる。ここで、従来からあるグラフベースインデックス（以下、「従来グラフ」とする）でも超大規模アイテムの検索や推薦（レコメンド）に有効である。一方で、従来グラフがある観点で構築された場合、その従来グラフを用いたアイテムレコメンドを行う際に、別観点の新しい情報を動的に（例えば期間限定で）考慮するのが困難であるという課題がある。
【００６６】
例えば、観点の新しい情報を動的に（例えば期間限定で）考慮する点については、以下のような例が挙げられる。例えば、アイテムのコンテンツ距離（類似性）で構築したグラフ情報（インデックス）があったときに、過去数時間で一緒に買われた頻度に関する距離を考慮したい場合がある。例えば、ユーザの行動履歴を用いることにより、雨が降っているとき、暑いとき、寒いとき、地震が発生したときなど、状況に応じて一緒に買われやすい傾向があるアイテムのクラスタを抽出し、その情報を反映させたい場合がある。しかしながら、状況が変化したときに従来グラフのグラフ情報を再構築するのは時間を要する。また、事前にすべての場合を想定して従来グラフのグラフ情報を個別に用意するのは困難であり、現実的ではない。
【００６７】
そこで、情報処理装置１００は、別観点の情報（距離尺度等）によりヒューリスティックにグラフ情報を拡張する。例えば、情報処理装置１００は、直近の過去数時間で一緒に買われた頻度に関する距離（類似度）を用いてグラフ情報を更新してもよい。例えば、情報処理装置１００は、直近の過去数時間に合せて購入される回数が急増した商品Ａと商品Ｂに拡張エッジ（特別エッジ）を追加する。例えば、情報処理装置１００は、テレビで所定の有名人（アーティストＡ）が商品ＡＡが好きだと言って話題になったときに、アーティストＡの商品（例えばＣＤ（Compact  Disc）等の音楽コンテンツ）と商品ＡＡをグラフ情報上において拡張エッジ（特別エッジ）で連結する。なお、情報処理装置１００が自動で行ってもよいし、情報処理装置１００の管理者等が手作業で行っても良い。
【００６８】
この場合、情報処理装置１００は、グラフ情報全体の再構築は必要なく、瞬時に更新することができる。また、情報処理装置１００は、更新後のグラフ情報を用いたサービス提供において、所望の効果がない場合は、追加したエッジを削除することにより、瞬時に元のグラフ情報に戻すことができる。
【００６９】
例えば、従来グラフで検索した候補の中から、別尺度で絞り込むといつ二段階での抽出方法も考えられる。しかしながら、この抽出方法では、所望の対象商品が抽出されない可能性があるため、効率的ではない。また、各尺度で別々に検索してマージする場合では、両方の尺度を考慮した検索（ノードの遷移）が考慮されないので潜在的な需要を見逃す可能性がある。
【００７０】
一方で、情報処理装置１００は、取得したデータから適当な距離を算出できない場合であっても、過去の知見（経験知）から情報処理装置１００の管理者等が強制的に、「これが好きな人はこれが好きなはず」等のノード間の特別な関連性を示す情報を埋め込むことができる。例えば、情報処理装置１００は、単独観点では難しい、グラフ情報の商品Ａ、Ｂの類似度のＸ倍といった相対的な指定もできる。例えば、情報処理装置１００は、上記のように、アイテムの類似性以外の観点（尺度）により、特別エッジを追加することにより、種々の観点に基づく検索を可能にし、アイテムの適切な抽出を可能にする。
【００７１】
例えば、類似度を「各ユーザの閲覧ログにおいて一定時間内に共起した（一緒に閲覧された）ページの頻度」と定義（設定）した場合、リアルタイムで距離関数が変化するため、リアルタイムにグラフ情報に完全に反映するのは現状の技術では困難である。そのため、情報処理装置１００は、ログから頻出パス（ショートカット）を別アルゴリズムで検出してエッジを追加すること等により、現状のグラフ情報をリアルタイムで（ヒューリスティックに）拡張して処理しつつ、所定の時間帯（深夜等）にバッチで全体のグラフ情報を更新してもよい。
【００７２】
〔１−４−１．特別エッジ〕
図１の例では、情報処理装置１００が所定の期間におけるユーザの行動に基づいて、アイテム間を特別エッジで連結するかの判定を行う場合を示したが、情報処理装置１００は、期間に限らず、種々の条件に基づいて、アイテム間を特別エッジで連結するかの判定を行ってもよい。例えば、情報処理装置１００は、ユーザの位置情報などのコンテキストを用いてもよい。例えば、情報処理装置１００は、ユーザのコンテキストが所定の条件を満たす場合のユーザの行動群を対象とし、その情報群に基づいて、アイテム間を特別エッジで連結するかの判定を行ってもよい。例えば、情報処理装置１００は、所定のエリアに位置するユーザの行動群を対象とし、その情報群に基づいて、アイテム間を特別エッジで連結するかの判定を行ってもよい。例えば、情報処理装置１００は、所定のエリアに位置するユーザの行動においてアイテム間に特別な関連性がある場合、そのアイテム間を特別エッジで連結すると判定してもよい。また、情報処理装置１００は、所定のエリア（Ｘエリア）に基づいて追加された特別エッジ（特別エッジＸ）を、Ｘエリアに位置するユーザが情報提供先である場合に用いると決定してもよい。例えば、情報処理装置１００は、Ｘエリアに位置するユーザが情報提供先である場合、検索時に特別エッジＸを辿ることにより対象アイテムを抽出する。また、情報処理装置１００は、Ｘエリア以外のエリアに位置するユーザが情報提供先である場合、検索時に特別エッジＸを辿らずに対象アイテムを抽出する。なお、情報処理装置１００は、特別エッジを用いるかどうかを種々の情報を基に決定してもよい。このように、情報処理装置１００は、種々の情報を用いて特別エッジの利用可否を決定してもよい。情報処理装置１００は、ユーザの位置情報などのコンテキストを用いて、特別エッジを用いて対象アイテムを抽出するかどうかを決定してもよい。情報処理装置１００は、ユーザが所定のエリアに位置するかどうかに応じて、特別エッジを用いて対象アイテムを抽出するかどうかを決定してもよい。例えば、情報処理装置１００は、特別エッジを用いて対象アイテムを抽出するかを、情報提供先となるユーザの属性情報に基づいて決定してもよい。
【００７３】
例えば、情報処理装置１００は、特別エッジに対象とするユーザ属性を示す情報を対応付けて記憶してもよい。この場合、情報処理装置１００は、特別エッジに対応付けられたユーザ属性と情報提供先のユーザのユーザ属性とを比較し、特別エッジに対応付けられたユーザ属性にユーザのユーザ属性が一致する場合、その特別エッジを用いると決定してもよい。
【００７４】
例えば、情報処理装置１００は、２０代男性を対象のユーザ属性とする特別エッジ（「特別エッジＹ」とする）がグラフ情報に含まれ、情報提供先のユーザが２０代男性である場合、特別エッジＹを用いて対象アイテムを抽出する。一方で、報処理装置１００は、２０代男性を対象のユーザ属性とする特別エッジＹがグラフ情報に含まれる場合であっても、情報提供先のユーザが２０代女性である場合、特別エッジＹを用いずに、対象アイテムを抽出する。
【００７５】
また、例えば、情報処理装置１００は、ユーザの購買情報に限らず、種々の情報を用いて、特別エッジの追加を判定してもよい。例えば、情報処理装置１００は、ユーザが所定のサービスにおいて投稿した投稿情報を含むユーザの行動情報を用いて、特別エッジの追加を判定してもよい。例えば、情報処理装置１００は、アイテム＃２２とアイテム＃３３がユーザの投稿情報において所定の閾値以上の回数で共起する場合、アイテム＃２２とアイテム＃３３との間に特別エッジを追加すると判定してもよい。
【００７６】
例えば、情報処理装置１００は、ＳＮＳにおいてユーザが投稿した投稿情報を用いて、特別エッジの追加を判定してもよい。例えば、情報処理装置１００は、Ｔｗｉｔｔｅｒ（登録商標）やＦａｃｅｂｏｏｋ（登録商標）等においてユーザが投稿した投稿情報を用いて、特別エッジの追加を判定してもよい。例えば、情報処理装置１００は、ユーザがＴｗｉｔｔｅｒにおいて投稿した文字情報を含むユーザの行動情報を用いて、特別エッジの追加を判定してもよい。例えば、情報処理装置１００は、ユーザがメッセージサービスにおいて入力した情報を含むユーザの行動情報を用いて、特別エッジの追加を判定してもよい。例えば、情報処理装置１００は、ユーザがＬＩＮＥ（登録商標）等のメッセージサービスにおいて入力した情報を含むユーザの行動情報を用いて、特別エッジの追加を判定してもよい。例えば、情報処理装置１００は、電子メールにおいて入力した情報を含むユーザの行動情報を用いて、特別エッジの追加を判定してもよい。なお、情報処理装置１００は、投稿情報に限らず、ユーザの種々の行動情報を用いて、特別エッジの追加を判定してもよい。
【００７７】
次に、図１３を用いて、グラフ情報への特別エッジの追加についいて説明する。図１３は、特別エッジの追加の一例を示す図である。まず、情報処理装置１００は、所定の履歴を示すログを取得する（ステップＳ５１）。情報処理装置１００は、所定の期間におけるユーザの行動を示す履歴情報を取得する。例えば、情報処理装置１００は、履歴情報記憶部１２５（図８参照）から履歴情報を取得する。図１３の例では、所定の期間は、日時＃５１〜＃５３等を含む３ヶ月であるものとし、収集対象期間と記載する場合がある。
【００７８】
例えば、情報処理装置１００は、ログ一覧ＬＧＴ５１に示すように、日時＃５１〜＃５３等を含む収集対象期間におけるユーザの行動履歴を取得する。図１３の例では、図示を省略するが、情報処理装置１００は、各行動を行ったユーザの情報を含む履歴情報を取得してもよい。
【００７９】
「日時」は、対応する行動が行われた日時を示す。なお、日時＃５１〜日時＃５３等は、対応する行動が行われた具体的な日時であるものとする。「対象アイテム＃１」、「対象アイテム＃２」等は、対応する行動において共通して対象となったアイテムを示す。図１３の例では、「対象アイテム＃１」、「対象アイテム＃２」等は、対応する行動において併せて購入されたアイテム（商品）を示す。
【００８０】
図１３に示す例において、収集対象期間内の日時＃５１においてアイテム＃５１とアイテム＃５５５が合わせて購入されたことを示す。また、収集対象期間内の日時＃５１においてアイテム＃５１とアイテム＃５５５が合わせて購入されたことを示す。また、収集対象期間内の日時＃５１においてアイテム＃５５５とアイテム＃５１が合わせて購入されたことを示す。
【００８１】
そして、情報処理装置１００は、ログ一覧ＬＧＴ５１に示すような履歴情報に基づいて、特別な関連性を有するアイテムを判定する（ステップＳ５２）。例えば、情報処理装置１００は、日時＃５１〜＃５３等を含む収集対象期間内において、所定の閾値（例えば、５０００回等）以上合せて購入された複数のノードを、特別な関連性を有するアイテムであると判定する。図１３の例では、情報処理装置１００は、収集対象期間内において、アイテム＃５１とアイテム＃５５５との２つのアイテム（商品）が所定の閾値以上合せて購入されたと判定する。そして、情報処理装置１００は、アイテム＃５１とアイテム＃５５５とを、特別な関連性を有するアイテムであると判定する。そのため、情報処理装置１００は、アイテム＃５１とアイテム＃５５５との間に特別エッジを追加すると判定する。
【００８２】
そして、情報処理装置１００は、特別な関連性を有するアイテム間を連結する特別エッジを追加する。図１３の例では、情報処理装置１００は、特別エッジＳＥ５１や特別エッジＳＥ５５５を追加する。
【００８３】
情報処理装置１００は、ノードＮ５１からノードＮ５５５に連結される特別エッジＳＥ５１を生成する。情報処理装置１００は、ノードＮ５１を参照元とし、ノードＮ５５５を参照先とする特別エッジＳＥ５１を生成する。例えば、情報処理装置１００は、特別エッジＳＥ５１の情報をグラフ情報記憶部１２３（図６参照）に追加（登録）する。
【００８４】
また、情報処理装置１００は、ノードＮ５５５からノードＮ５１に連結される特別エッジＳＥ５５５を生成する。情報処理装置１００は、ノードＮ５５５を参照元とし、ノードＮ５１を参照先とする特別エッジＳＥ５５５を生成する。情報処理装置１００は、特別エッジＳＥ５５５の情報をグラフ情報記憶部１２３（図６参照）に追加（登録）する。
【００８５】
例えば、情報処理装置１００は、図１３中のグラフ情報ＧＲ２１に、点線で示す特別エッジＳＥ５１や特別エッジＳＥ５５５を追加する。これにより、情報処理装置１００は、特別な関連性を有するアイテム間を特別エッジで連結したグラフ情報を生成する。なお、情報処理装置１００は、特別エッジＳＥ５１や特別エッジＳＥ５５５の追加から所定期間が経過した場合、特別エッジＳＥ５１や特別エッジＳＥ５５５を、グラフ情報ＧＲ２１から取り除いて良い。情報処理装置１００は、特別エッジＳＥ５１や特別エッジＳＥ５５５の追加から所定期間が経過した場合、グラフ情報記憶部１２３（図６参照）から特別エッジＳＥ５１や特別エッジＳＥ５５５を削除して良い。
【００８６】
このように、情報処理装置１００は、グラフ情報ＧＲ２１に示すように、距離が遠いノード間、すなわちアイテム情報での類似性が低いアイテムであっても、ユーザの行動を基に特別な関連性を判定し、特別エッジで連結する。これにより、情報処理装置１００は、ユーザの行動に適応的なグラフ情報を生成し、ユーザに適応的な情報提供を行うことができる。
【００８７】
〔１−５．インデックス情報〕
図１の例に示すインデックス情報（インデックスデータ）は一例であり、情報処理装置１００は、種々のインデックス情報を用いて、グラフ情報を検索してもよい。また、例えば、情報処理装置１００は、検索時に用いるインデックスデータを生成してもよい。例えば、情報処理装置１００は、高次元ベクトルを検索する検索インデックスをインデックスデータとして生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
【００８８】
例えば、情報処理装置１００は、図１に示すようなツリー構造（木構造）に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置１００は、ｋｄ木（k-dimensional  tree）に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置１００は、ＶＰ木（Vantage-Point  tree）に関する検索インデックスをインデックスデータとして生成してもよい。
【００８９】
また、例えば、情報処理装置１００は、その他の木構造を有するインデックスデータとして生成してもよい。例えば、情報処理装置１００は、木構造のインデックスデータのリーフがグラフデータに接続する種々のインデックスデータを生成してもよい。例えば、情報処理装置１００は、木構造のインデックスデータのリーフがグラフデータ中のノードに対応する種々のインデックスデータを生成してもよい。また、情報処理装置１００は、このようなインデックスデータを用いて検索を行う場合、インデックスデータを辿って到達したリーフ（ノード）からグラフデータを探索してもよい。
【００９０】
なお、上述したようなインデックスデータは一例であり、情報処理装置１００は、グラフデータ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置１００は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、インデックスデータを生成してもよい。例えば、情報処理装置１００は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置１００は、非特許文献１に記載されるようなグラフ型の検索インデックスに関する情報をインデックス情報として用いてもよい。情報処理装置１００は、上述のようなインデックスデータとグラフデータとを用いることにより、所定のアイテムに関するより効率的な検索を可能にすることができる。
【００９１】
〔２．情報処理システムの構成〕
図２に示すように、情報処理システム１は、端末装置１０と、情報提供装置５０と、情報処理装置１００とが含まれる。端末装置１０と、情報提供装置５０と、情報処理装置１００とは所定のネットワークＮを介して、有線または無線により通信可能に接続される。図２は、実施形態に係る情報処理システムの構成例を示す図である。なお、図２に示した情報処理システム１には、複数台の端末装置１０や、複数台の情報提供装置５０や、複数台の情報処理装置１００が含まれてもよい。
【００９２】
端末装置１０は、ユーザによって利用される情報処理装置である。端末装置１０は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置１０をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置１０と読み替えることもできる。なお、上述した端末装置１０は、例えば、スマートフォンや、タブレット型端末や、ノート型ＰＣ（Personal  Computer）や、デスクトップＰＣや、携帯電話機や、ＰＤＡ（Personal  Digital  Assistant）等により実現される。例えば、端末装置１０は、所定のサーバシステムを管理者が利用する情報処理装置であってもよい。例えば、端末装置１０は、アイテム情報を収集し、アイテム情報を情報処理装置１００へ送信する。
【００９３】
情報処理装置１００は、種々の情報処理を行う情報処理装置である。情報処理装置１００は、グラフ情報を検索することにより、複数のアイテムのうち、一のアイテムと類似するアイテムである類似アイテムを対象アイテムとして抽出する情報処理装置である。情報処理装置１００は、グラフ情報の検索時において特別エッジが連結されたノードに到達した場合、当該ノードと特別エッジにより連結された他のノードを対象アイテムとして抽出する情報処理装置である。例えば、情報処理装置１００は、一のアイテムに関するアイテム情報を取得し、アイテム情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。
【００９４】
情報処理装置１００は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報処理装置１００は、端末装置１０から一のアイテムのアイテム情報（以下、「クエリ情報」や「クエリ」ともいう）を取得すると、クエリに類似するアイテム（ベクトル情報等）を検索し、検索結果を端末装置１０に提供する。図１の例では、情報処理装置１００は、端末装置１０から一のアイテムのアイテム情報を取得すると、一のアイテムに類似するアイテムを検索し、検索結果を類似のアイテムとして端末装置１０に提供する。また、例えば、情報処理装置１００が端末装置１０に提供するデータは、アイテムの名称やアイテムのアイテム情報自体であってもよいし、ＵＲＬ（Uniform  Resource  Locator）等の対応するデータを参照するための情報であってもよい。
【００９５】
情報提供装置５０は、情報処理装置１００に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置５０は、ウェブサーバ等の種々の外部装置から収集したアイテム情報等が格納されてもよい。例えば、情報提供装置５０は、グラフ情報やインデックス情報やモデル等の種々の情報を情報処理装置１００に提供する情報処理装置である。
【００９６】
〔３．情報処理装置の構成〕
次に、図３を用いて、実施形態に係る情報処理装置１００の構成について説明する。図３は、実施形態に係る情報処理装置の構成例を示す図である。図３に示すように、情報処理装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、情報処理装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００９７】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１０は、ネットワーク（例えば図２中のネットワークＮ）と有線または無線で接続され、端末装置１０や情報提供装置５０との間で情報の送受信を行う。
【００９８】
（記憶部１２０）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部１２０は、図３に示すように、アイテム情報記憶部１２１と、インデックス情報記憶部１２２と、グラフ情報記憶部１２３と、モデル情報記憶部１２４と、履歴情報記憶部１２５を有する。
【００９９】
（アイテム情報記憶部１２１）
実施形態に係るアイテム情報記憶部１２１は、アイテム（オブジェクト）に関する各種情報を記憶する。例えば、アイテム情報記憶部１２１は、アイテムＩＤやベクトルデータを記憶する。図４の例では、アイテムに関するアイテム情報を記憶する。図４は、実施形態に係るアイテム情報記憶部の一例を示す図である。図４に示すアイテム情報記憶部１２１は、「アイテムＩＤ」、「アイテム」、「アイテム情報」、「ベクトル情報」といった項目が含まれる。
【０１００】
「アイテムＩＤ」は、アイテム（オブジェクト）を識別するための識別情報を示す。また、「アイテム」は、アイテムＩＤにより識別されるアイテムの具体的な名称や内容等を示す。なお、図４の例では、アイテムを「アイテム＃１」といった抽象的な符号で示すが、括弧内の「Ａ商品」等のように、アイテム（商品）を特定するための文字情報等が含まれてもよい。
【０１０１】
「アイテム情報」は、アイテムＩＤにより識別されるアイテムに関する情報を示す。なお、図４の例では、アイテム情報を「ＩＤＴ１」といった抽象的な符号で示すが、各アイテム情報は、アイテムＩＤにより識別されるアイテムの商品カテゴリ、タイトル、説明文、画像情報、製造元、サイズ等の種々のアイテムに関する情報を含んでもよい。「ベクトル情報」とは、アイテムＩＤにより識別されるアイテム（オブジェクト）に対応するベクトル情報を示す。すなわち、図４の例では、アイテム（オブジェクト）を識別するアイテムＩＤに対して、オブジェクトに対応するベクトルデータ（ベクトル情報）が対応付けられて登録されている。
【０１０２】
例えば、図４の例では、アイテムＩＤ「ＩＭ１」により識別されるアイテム（オブジェクト）は、「１０，２４，５４，２．．．」の多次元（Ｎ次元）のベクトル情報が対応付けられることを示す。例えば、アイテム＃１については、モデルＭ１等により、アイテム＃１の特徴を示す「１０，２４，５４，２．．．」の多次元（Ｎ次元）のベクトル情報がアイテム情報ＩＤＴ１から抽出されたことを示す。また、図４の例では、アイテム＃１の指標値は、「ＶＬ１」であることを示す。
【０１０３】
なお、アイテム情報記憶部１２１は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【０１０４】
（インデックス情報記憶部１２２）
実施形態に係るインデックス情報記憶部１２２は、インデックスに関する各種情報を記憶する。図５は、実施形態に係るインデックス情報記憶部の一例を示す図である。具体的には、図５の例では、インデックス情報記憶部１２２は、ツリー構造のインデックス情報を示す。図５の例では、インデックス情報記憶部１２２は、「ルート階層」、「第１階層」、「第２階層」、「第３階層」等といった項目が含まれる。なお、「第１階層」〜「第３階層」に限らず、インデックスの階層数に応じて、「第４階層」、「第５階層」、「第６階層」等が含まれてもよい。
【０１０５】
「ルート階層」は、インデックスを用いた起点ノードの決定の開始点となるルート（最上位）の階層を示す。「第１階層」は、インデックスの第１階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第１階層」に格納されるノードは、インデックスの根（ルート）に直接結ばれる階層に対応するノードとなる。
【０１０６】
「第２階層」は、インデックスの第２階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第２階層」に格納されるノードは、第１階層のノードに結ばれる直下の階層に対応するノードとなる。「第３階層」は、インデックスの第３階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第３階層」に格納されるノードは、第２階層のノードに結ばれる直下の階層に対応するノードとなる。
【０１０７】
例えば、図５に示す例においては、インデックス情報記憶部１２２には、図１中のインデックス情報ＩＮＤ１１に対応する情報が記憶される。例えば、インデックス情報記憶部１２２は、第１階層のノードが、節点ＶＴ１〜ＶＴ３等であることを示す。また、各節点の下の括弧内の数値は、各節点に対応するベクトルの値を示す。
【０１０８】
また、例えば、インデックス情報記憶部１２２は、節点ＶＴ２の直下の第２階層のノードが、節点ＶＴ２−１〜ＶＴ２−４であることを示す。また、例えば、インデックス情報記憶部１２２は、節点ＶＴ２−２の直下の第３階層のノードが、ノードＮ３５、ノードＮ４５１、ノードＮ６９３のグラフ情報ＧＲ１１中のノード（ベクトル）であることを示す。
【０１０９】
なお、インデックス情報記憶部１２２は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【０１１０】
（グラフ情報記憶部１２３）
実施形態に係るグラフ情報記憶部１２３は、グラフ情報に関する各種情報を記憶する。図６は、実施形態に係るグラフ情報記憶部の一例を示す図である。図６の例では、グラフ情報記憶部１２３は、「ノードＩＤ」、「アイテムＩＤ」、「エッジ情報」、および「特別エッジ情報」といった項目を有する。また、「エッジ情報」や「特別エッジ情報」には、「エッジＩＤ」や「参照先」といった情報が含まれる。
【０１１１】
「ノードＩＤ」は、グラフデータにおける各ノード（アイテム）を識別するための識別情報を示す。また、「アイテムＩＤ」は、アイテム（オブジェクト）を識別するための識別情報を示す。
【０１１２】
また、「エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。「エッジ情報」は、複数のアイテムの類似性に応じてノードを連結するエッジに関する情報を示す。例えば、「エッジ情報」は、通常エッジに関する情報を示す。図６の例では、「エッジ情報」は、エッジが有向エッジである場合を示し、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジＩＤ」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先（ノード）を示す情報を示す。すなわち、図６の例では、ノードを識別するノードＩＤに対して、そのノードに対応するオブジェクト（アイテム）を識別する情報やそのノードからの有向エッジ（出力エッジ）が連結される参照先（ノード）が対応付けられて登録されている。
【０１１３】
また、「特別エッジ情報」は、対応するノードに接続される特別エッジに関する情報を示す。「特別エッジ情報」は、通常エッジを連結する観点とは異なる観点による所定の条件を満たすノードを連結するエッジ（特別エッジ）に関する情報を示す。図６の例では、「特別エッジ情報」は、特別エッジが有向エッジである場合を示し、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジＩＤ」は、ノード間を連結する特別エッジを識別するための識別情報を示す。また、「参照先」は、特別エッジにより連結された参照先（ノード）を示す情報を示す。すなわち、図６の例では、ノードを識別するノードＩＤに対して、そのノードに対応するオブジェクト（アイテム）を識別する情報やそのノードからの有向エッジ（出力エッジ）が連結される参照先（ノード）が対応付けられて登録されている。
【０１１４】
例えば、図６の例では、ノードＩＤ「Ｎ１」により識別されるノード（ベクトル）は、アイテムＩＤ「ＩＭ１」により識別されるアイテム（オブジェクト）に対応することを示す。
【０１１５】
また、ノードＩＤ「Ｎ１」により識別されるノードからは、エッジＩＤ「Ｅ１１」により識別されるエッジ（通常エッジ）が、ノードＩＤ「Ｎ２５」により識別されるノード（ベクトル）に連結されることを示す。図６の例では、ノードＩＤ「Ｎ１」により識別されるノード（ベクトル）からはノードＩＤ「Ｎ２５」により識別されるノード（ベクトル）に辿ることができることを示す。すなわち、ノードＮ１からは、通常エッジであるエッジＥ１１によりノードＮ２５に辿ることができることを示す。
【０１１６】
また、ノードＩＤ「Ｎ１」により識別されるノードからは、特別エッジは他のノードへ接続されていないことを示す。図６の例では、ノードＩＤ「Ｎ１」により識別されるノード（ベクトル）を参照元とする特別エッジはないことを示す。すなわち、ノードＮ１からは、特別エッジにより辿ることができるノードはないことを示す。
【０１１７】
また、ノードＩＤ「Ｎ３５」により識別されるノードからは、エッジＩＤ「Ｅ３５１」により識別されるエッジ（通常エッジ）が、ノードＩＤ「Ｎ６９３」により識別されるノード（ベクトル）に連結されることを示す。図６の例では、ノードＩＤ「Ｎ３５」により識別されるノード（ベクトル）からはノードＩＤ「Ｎ６９３」により識別されるノード（ベクトル）に辿ることができることを示す。すなわち、ノードＮ３５からは、通常エッジであるエッジＥ３５１によりノードＮ６９３に辿ることができることを示す。
【０１１８】
また、ノードＩＤ「Ｎ３５」により識別されるノードからは、エッジＩＤ「ＳＥ３５」により識別される特別エッジが、ノードＩＤ「Ｎ８３１」により識別されるノード（ベクトル）に連結されることを示す。図６の例では、ノードＩＤ「Ｎ３５」により識別されるノード（ベクトル）からはノードＩＤ「Ｎ８３１」により識別されるノード（ベクトル）に辿ることができることを示す。すなわち、ノードＮ３５からは、特別エッジＳＥ３５によりノードＮ８３１に辿ることができることを示す。
【０１１９】
なお、グラフ情報記憶部１２３は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフ情報記憶部１２３は、各ノード（ベクトル）間を連結するエッジの長さが記憶されてもよい。すなわち、グラフ情報記憶部１２３は、各ノード（ベクトル）間の距離を示す情報が記憶されてもよい。
【０１２０】
（モデル情報記憶部１２４）
実施形態に係るモデル情報記憶部１２４は、モデルに関する情報を記憶する。例えば、モデル情報記憶部１２４は、生成処理により生成されたモデル情報（モデルデータ）を記憶する。図７は、実施形態に係るモデル情報記憶部の一例を示す図である。図７に示すモデル情報記憶部１２４は、「モデルＩＤ」、「用途」、「モデルデータ」といった項目が含まれる。なお、図７では、モデルＭ１、Ｍ２のみを図示するが、Ｍ２１、Ｍ２２等、各用途に応じて多数のモデル情報が記憶されてもよい。
【０１２１】
「モデルＩＤ」は、モデルを識別するための識別情報を示す。例えば、モデルＩＤ「Ｍ１」により識別されるモデルは、図１の例に示したモデルＭ１に対応する。「用途」は、対応するモデルの用途を示す。また、「モデルデータ」は、対応付けられた対応するモデルのデータを示す。例えば、「モデルデータ」には、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報が含まれる。
【０１２２】
例えば、図７に示す例において、モデルＩＤ「Ｍ１」により識別されるモデル（モデルＭ１）は、用途が「特徴抽出（商品）」であり、入力されたアイテム情報からの特徴の抽出に用いられることを示す。また、モデルＭ１のモデルデータは、モデルデータＭＤＴ１であることを示す。
【０１２３】
モデルＭ１（モデルデータＭＤＴ１）は、アイテムのアイテム情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力されたアイテム情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するよう、コンピュータを機能させるためのモデルである。
【０１２４】
また、モデルＭ１、Ｍ２等がＤＮＮ（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）」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【０２３３】
１  情報処理システム
１００  情報処理装置
１２１  アイテム情報記憶部
１２２  インデックス情報記憶部
１２３  グラフ情報記憶部
１２４  モデル情報記憶部
１２５  履歴情報記憶部
１３０  制御部
１３１  取得部
１３２  生成部
１３３  決定部
１３４  検索部
１３５  提供部
１０  端末装置
５０  情報提供装置
Ｎ  ネットワーク
【図１】
2019160064.tif 000003
【図２】
2019160064.tif 000004
【図３】
2019160064.tif 000005
【図４】
2019160064.tif 000006
【図５】
2019160064.tif 000007
【図６】
2019160064.tif 000008
【図７】
2019160064.tif 000009
【図８】
2019160064.tif 000010
【図９】
2019160064.tif 000011
【図１０】
2019160064.tif 000012
【図１１】
2019160064.tif 000013
【図１２】
2019160064.tif 000014
【図１３】
2019160064.tif 000015
【図１４】
2019160064.tif 000016