(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】情報処理装置、情報処理方法、及び情報処理プログラム
(51)【国際特許分類】
G06F 16/906 20190101AFI20240109BHJP
【FI】
G06F16/906
(21)【出願番号】P 2022124204
(22)【出願日】2022-08-03
(62)【分割の表示】P 2021044968の分割
【原出願日】2018-02-28
【審査請求日】2022-09-01
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】LINEヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】谷口 博基
【審査官】原 秀人
(56)【参考文献】
【文献】特開2017-134582(JP,A)
【文献】特開2013-073524(JP,A)
【文献】特開2010-232715(JP,A)
【文献】特開2017-021493(JP,A)
【文献】特開2016-099705(JP,A)
【文献】特開2011-060182(JP,A)
【文献】特開2010-020731(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
所定のデバイスにおいて実行されるアプリケーションである複数のコンテンツの各々に対応する複数のノードが、前記複数のコンテンツの類似性に応じて連結されたグラフ情報と、一のコンテンツに関するコンテンツ情報を取得する取得部と、
前記取得部により取得された前記グラフ情報を検索することにより、前記複数のコンテンツのうち、前記一のコンテンツと類似するコンテンツである類似コンテンツを抽出する検索部と、
を備え
、
前記取得部は、
前記類似コンテンツの流行に関する流行情報を取得し、
前記検索部は、
前記取得部により取得された前記流行情報に基づいて、前記一のコンテンツが流行するかどうかを判定する
ことを特徴とする情報処理装置。
【請求項2】
前記検索部は、
前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記類似コンテンツを抽出する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記起点ノードの決定に用いるインデックス情報に基づいて、前記起点ノードを決定する決定部、
をさらに備え、
前記検索部は、
前記決定部により決定された前記起点ノードを起点として、前記類似コンテンツを抽出する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記決定部は、
木構造型の前記インデックス情報に基づいて、前記起点ノードを決定する
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記取得部は、
前記複数のコンテンツの各々に対応する複数のベクトルの類似性に応じて、前記複数のノードが連結されたグラフ情報を取得する
ことを特徴とする請求項1~4のいずれか1項に記載の情報処理装置。
【請求項6】
前記取得部は、
前記複数のコンテンツの各々の特徴を示す前記複数のベクトルが類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記取得部は、
所定のモデルを用いて前記複数のコンテンツの各々から抽出された特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項5または請求項6に記載の情報処理装置。
【請求項8】
前記取得部は、
前記複数のコンテンツに関する情報を所定のモデルに入力することにより、抽出される前記複数のコンテンツの各々の特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項5~7のいずれか1項に記載の情報処理装置。
【請求項9】
前記取得部は、
前記類似コンテンツの流行に関する指標値を示す前記流行情報を取得し、
前記検索部は、
前記類似コンテンツの前記指標値が所定の基準を満たす場合、前記一のコンテンツを流行する可能性がある流行コンテンツであると判定する
ことを特徴とする請求項
1~8のいずれか1項に記載の情報処理装置。
【請求項10】
前記検索部は、
前記類似コンテンツの前記指標値と所定の閾値とを比較し、前記類似コンテンツの前記指標値が前記所定の閾値以上である場合、前記一のコンテンツを前記流行コンテンツであると判定する
ことを特徴とする請求項
9に記載の情報処理装置。
【請求項11】
前記検索部により抽出された前記類似コンテンツに基づいて、所定のサービスを提供する提供部、
をさらに備えたことを特徴とする請求項1~
10のいずれか1項に記載の情報処理装置。
【請求項12】
前記取得部は、
ユーザが利用する端末装置から前記一のコンテンツに関する前記コンテンツ情報を取得し、
前記提供部は、
前記端末装置に前記所定のサービスを提供する
ことを特徴とする請求項
11に記載の情報処理装置。
【請求項13】
前記提供部は、
前記類似コンテンツに関する情報提供サービスを提供する
ことを特徴とする請求項
11または請求項
12に記載の情報処理装置。
【請求項14】
コンピュータが実行する情報処理方法であって、
所定のデバイスにおいて実行されるアプリケーションである複数のコンテンツの各々に対応する複数のノードが、前記複数のコンテンツの類似性に応じて連結されたグラフ情報と、一のコンテンツに関するコンテンツ情報を取得する取得工程と、
前記取得工程により取得された前記グラフ情報を検索することにより、前記複数のコンテンツのうち、前記一のコンテンツと類似するコンテンツである類似コンテンツを抽出する検索工程と、
を含
み、
前記取得工程は、
前記類似コンテンツの流行に関する流行情報を取得し、
前記検索工程は、
前記取得工程により取得された前記流行情報に基づいて、前記一のコンテンツが流行するかどうかを判定する
ことを特徴とする情報処理方法。
【請求項15】
所定のデバイスにおいて実行されるアプリケーションである複数のコンテンツの各々に対応する複数のノードが、前記複数のコンテンツの類似性に応じて連結されたグラフ情報と、一のコンテンツに関するコンテンツ情報を取得する取得手順と、
前記取得手順により取得された前記グラフ情報を検索することにより、前記複数のコンテンツのうち、前記一のコンテンツと類似するコンテンツである類似コンテンツを抽出する検索手順と、
をコンピュータに実行させ
、
前記取得手順は、
前記類似コンテンツの流行に関する流行情報を取得し、
前記検索手順は、
前記取得手順により取得された前記流行情報に基づいて、前記一のコンテンツが流行するかどうかを判定する
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【0002】
従来、種々の情報を抽出する技術が提供されている。例えば、他のカテゴリーに属する概念間の相対的な関係を考慮した上で、概念間の類似性を推定する技術が提供されている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】岩崎雅二郎 "木構造型インデックスを利用した近似k最近傍グラフによる近傍検索", 情報処理学会論文誌, 2011/2, Vol. 52, No. 2. pp.817-828.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、類似のコンテンツを適切に抽出することが難しい場合がある。例えば、他のカテゴリーに属する概念間の類似性を推定するだけでは、所望の情報を抽出することが難しい。例えば、同じカテゴリーに属する情報の類似性を推定することができるとは限らず、このような場合、所望の情報を抽出することが難しい。
【0006】
本願は、上記に鑑みてなされたものであって、類似のコンテンツを適切に抽出する情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願に係る情報処理装置は、所定のデバイスにおいて実行されるアプリケーションである複数のコンテンツの各々に対応する複数のノードが、前記複数のコンテンツの類似性に応じて連結されたグラフ情報と、一のコンテンツに関するコンテンツ情報を取得する取得部と、前記取得部により取得された前記グラフ情報を検索することにより、前記複数のコンテンツのうち、前記一のコンテンツと類似するコンテンツである類似コンテンツを抽出する検索部と、を備えたことを特徴とする。
【発明の効果】
【0008】
実施形態の一態様によれば、類似のコンテンツを適切に抽出することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係る情報処理の一例を示す図である。
【
図2】
図2は、実施形態に係る情報処理システムの構成例を示す図である。
【
図3】
図3は、実施形態に係る情報処理装置の構成例を示す図である。
【
図4】
図4は、実施形態に係るコンテンツ情報記憶部の一例を示す図である。
【
図5】
図5は、実施形態に係るインデックス情報記憶部の一例を示す図である。
【
図6】
図6は、実施形態に係るグラフ情報記憶部の一例を示す図である。
【
図7】
図7は、実施形態に係るモデル情報記憶部の一例を示す図である。
【
図8】
図8は、実施形態に係る情報処理の一例を示すフローチャートである。
【
図9】
図9は、実施形態に係る生成処理の一例を示すフローチャートである。
【
図10】
図10は、実施形態に係る特徴量の抽出の一例を示す図である。
【
図11】
図11は、グラフ情報を用いた検索処理の一例を示すフローチャートである。
【
図12】
図12は、コンテンツの流行判定の一例を示す図である。
【
図13】
図13は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0010】
以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0011】
(実施形態)
〔1.情報処理〕
図1を用いて、実施形態に係る情報処理の一例について説明する。
図1は、実施形態に係る情報処理の一例を示す図である。
図1では、情報処理装置100がコンテンツの一例として、端末装置10(
図2参照)等の所定のデバイスにおいて実行されるアプリケーション(以下、単に「アプリ」ともいう)であるコンテンツをグラフ構造化したグラフデータ(グラフ情報)を検索することにより、一のコンテンツに類似するコンテンツ(以下、「類似コンテンツ」ともいう)を抽出する場合を示す。なお、所定のデバイスは、スマートフォンやPC(Personal Computer)等の種々のコンピュータであってもよい。また、コンテンツは、アプリに限らず、映画等の動画コンテンツや楽曲等の音楽コンテンツや記事コンテンツ等の種々のものであってもよい。
図1では、情報処理装置100は、各コンテンツに対応するベクトルデータ(「ベクトル情報」や、単に「ベクトル」ともいう)を用いてコンテンツをグラフ構造化したグラフ情報を用いる場合を一例として説明する。
【0012】
なお、情報処理装置100が用いる情報は、ベクトルに限らず、各コンテンツの類似性を表現可能な情報であれば、どのような形式の情報であってもよい。例えば、情報処理装置100は、各コンテンツに対応する所定のデータや値を用いてコンテンツをグラフ構造化したグラフ情報を用いてもよい。例えば、情報処理装置100は、各コンテンツから生成された所定の数値(例えば2進数の値や16進数の値)を用いてコンテンツをグラフ構造化したグラフ情報を用いてもよい。例えば、ベクトルに代えて、データ間の距離(類似度)が定義されていれば任意の形態のデータであっても良い。なお、
図1の例では、抽出した類似コンテンツに基づいて、一のコンテンツが流行するかを判定し、判定結果の情報を提供するサービスを行う場合を示すが、類似コンテンツに基づくサービスであればそのようなサービスを提供してもよい。この点についての詳細は後述する。
【0013】
〔1-1.グラフ情報について〕
また、情報処理装置100は、
図1中のグラフ情報GR11に示すように、各ベクトル(ノード)が有向エッジにより連結されたグラフデータを用いて情報処理を行う。なお、
図1中のグラフ情報GR11に示すようなグラフ情報は、情報処理装置100が生成してもよいし、情報処理装置100は、
図1中のグラフ情報GR11に示すようなグラフ情報を情報提供装置50(
図2参照)等の他の外部装置から取得してもよい。
【0014】
また、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「A」から所定のノード「B」に連結される有向エッジとは、参照元をノード「A」とし、参照先をノード「B」とするエッジであることを示す。なお、各ノードを連結するエッジは、有向エッジに限らず、種々のエッジであってもよい。例えば、各ノードを連結するエッジは、ノードを連結する方向のないエッジであってもよい。例えば、各ノードを連結するエッジは、相互に参照可能なエッジであってもよい。例えば、各ノードを連結するエッジは、全て双方向エッジであってもよい。
【0015】
例えば、このようにノード「A」を参照元とするエッジをノード「A」の出力エッジという。また、例えば、このようにノード「B」を参照先とするエッジをノード「B」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する2つのノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。
【0016】
例えば、情報処理装置100は、数百万~数億等の単位の膨大なコンテンツに対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。
図1の例では、説明を簡単にするために、8個のノードを図示して処理の概要を説明する。例えば、情報処理装置100は、
図1中のグラフ情報GR11に示すように、ノードN1、N2、N3等に示すような複数のノード(ベクトル)を含むグラフ情報を取得する。また、
図1の例では、グラフ情報GR11における各ノードは、そのノードとの間の距離が近い方から所定数のノードへのエッジ(出力エッジ)が連結される。例えば、所定数は、目的や用途等に応じて、2や5や10や100等の種々の値であってもよい。例えば、所定数が2である場合、ノードN1からは、ノードN1からの距離が最も近いノード及び2番目に距離が近い2つのノードに出力エッジが連結される。なお、類似度を示す指標としての距離は、ベクトル(N次元ベクトル)間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。
【0017】
また、このように「ノードN*(*は任意の数値)」と記載した場合、そのノードはノードID「N*」により識別されるノードであることを示す。例えば、「ノードN1」と記載した場合、そのノードはノードID「N1」により識別されるノードである。
【0018】
また、
図1中のグラフ情報GR11では、ノードN10は、ノードN7へ向かう有向エッジであるエッジE7が連結される。すなわち、ノードN10は、ノードN7とエッジE7により連結される。このように「エッジE*(*は任意の数値)」と記載した場合、そのエッジはエッジID「E*」により識別されるエッジであることを示す。例えば、「エッジE11」と記載した場合、そのエッジはエッジID「E11」により識別されるエッジである。例えば、ノードN10を参照元とし、ノードN7を参照先として連結されるエッジE7により、ノードN10からノードN7に辿ることが可能となる。この場合、有向エッジであるエッジE7は、ノードN10を中心として識別される場合、出力エッジとなり、ノードN7を中心として識別される場合、入力エッジとなる。また、
図1のグラフ情報GR11中の双方向矢印は、両方のノードから他方のノードへの有向エッジが連結されることを示す。例えば、グラフ情報GR11中のノードN2とノードN451との間の双方向矢印は、ノードN2からノードN451へ向かう有向エッジと、ノードN451からノードN2へ向かう有向エッジとの2つのエッジが連結されることを示す。
【0019】
また、
図1中のグラフ情報GR11は、ユークリッド空間であってもよい。また、
図1に示すグラフ情報GR11は、各ベクトル間の距離等の説明のための概念的な図であり、グラフ情報GR11は、多次元空間である。例えば、
図1に示すグラフ情報GR11は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。
【0020】
ここで、ベクトルデータ間の距離は、コンテンツの類似性を示し、距離が近いほど類似している。本実施形態においては、グラフ情報GR11における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応するコンテンツの類似性が、グラフ情報GR11内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、
図1に示す例においては、グラフ情報GR11における各ノード間の距離が短いオブジェクト同士の類似度が高く、グラフ情報GR11における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、
図1中のグラフ情報GR11において、ノードID「N35」により識別されるノードと、ノードID「N693」により識別されるノードとは近接している、すなわち距離が短い。そのため、ノードID「N35」により識別されるノードに対応するオブジェクトと、ノードID「N693」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。
【0021】
また、例えば、
図1中のグラフ情報GR11において、ノードID「N7」により識別されるノードと、ノードID「N2」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードID「N7」により識別されるノードに対応するオブジェクトと、ノードID「N2」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。
【0022】
〔1-2.ベクトルの生成例〕
また、ここでいう、各ノード(ベクトル)は、各オブジェクト(コンテンツ)に対応する。コンテンツ情報が様々なコンテンツの状態を示す数値データであれば、それをベクトルデータとして、そのまま扱うことも可能である。しかし、コンテンツ情報が、テキスト、画像、または、音声であったりする場合には、ベクトルデータへの変換が必要となる。そこで、
図1の例では、各コンテンツのコンテンツ情報から抽出された特徴量により生成された多次元(N次元)のベクトルがオブジェクトであってもよい。
【0023】
例えば、情報処理装置100は、コンテンツ情報の特徴を抽出するモデルを用いて各コンテンツのコンテンツ情報からN次元ベクトルを生成してもよい。
図1の例では、情報処理装置100は、モデル情報記憶部124(
図7参照)に示すように、モデルID「M1」により識別されるモデル(モデルM1)を用いて、各コンテンツのコンテンツ情報からベクトルを生成する。上記のように、「モデルM*(*は任意の数値)」と記載した場合、そのモデルはモデルID「M*」により識別されるモデルであることを示す。例えば、「モデルM1」と記載した場合、そのモデルはモデルID「M1」により識別されるモデルである。また、モデル情報記憶部124に示すように、モデルM1は用途「特徴抽出(アプリ)」、すなわちコンテンツのデータ(コンテンツ情報)からの特徴抽出のために用いられるモデルであり、その具体的なモデルデータが「モデルデータMDT1」であることを示す。
【0024】
例えば、情報処理装置100は、モデルM1に任意のコンテンツのコンテンツ情報を入力することにより、モデルM1中の各要素(ニューロン)の値を演算し、入力したコンテンツ情報と同様の情報を出力する。例えば、情報処理装置100は、中間層の各要素(ニューロン)の値を特徴量として抽出し、各コンテンツに対応するN次元のベクトルデータを生成してもよい。
【0025】
ここで、
図10を用いて、各コンテンツに対応するベクトルデータの生成の一例を示す。
図10は、実施形態に係る特徴量の抽出の一例を示す図である。
図10は、モデルM1の概念図である。なお、
図10では、各要素(ニューロン)の各接続関係を示す線の図示を省略する。
図10に示すように、モデルM1は、入力層ILと、中間層CLと、出力層OLとを含む。例えば、モデルM1の入力層ILは、コンテンツ情報が入力される層である。また、出力層OLは、入力層ILへの入力に応じて、入力されたコンテンツ情報と同様の情報を出力される層である。
【0026】
また、例えば、中間層CLの中央部の最も圧縮された圧縮層RPは、入力されたコンテンツ情報の特徴を表現する層である。例えば、モデルM1の中間層CLにおいて、入力層ILから圧縮層RPまでの間は、エンコードの処理を行う部分に対応する。モデルM1の中間層CLにおいて、入力層ILから圧縮層RPまでの間は、入力されたコンテンツ情報の特徴を圧縮する処理を行う部分に対応する。例えば、モデルM1の中間層CLにおいて、圧縮層RPから出力層OLまでの間は、デコードの処理を行う部分に対応する。モデルM1の中間層CLにおいて、圧縮層RPから出力層OLまでの間は、圧縮されたコンテンツ情報を復元する処理を行う部分に対応する。
【0027】
例えば、情報処理装置100は、圧縮層RPに含まれるニューロンNL1やニューロンNL2等の情報をベクトルに用いてもよい。例えば、情報処理装置100は、あるコンテンツのコンテンツ情報が入力された場合に、算出されるニューロンNL1に対応する値VE1やニューロンNL2に対応する値VE2をベクトルの要素(一の次元の値)として抽出してもよい。例えば、情報処理装置100は、あるコンテンツのコンテンツ情報が入力された場合に、算出されるニューロンNL1に対応する値VE1をそのコンテンツのベクトルの1次元目の要素として抽出してもよい。また、例えば、情報処理装置100は、あるコンテンツのコンテンツ情報が入力された場合に、算出されるニューロンNL2に対応する値VE2をそのコンテンツのベクトルの2次元目の要素として抽出してもよい。このように、情報処理装置100は、各コンテンツのコンテンツ情報をモデルM1に入力することにより、各コンテンツに対応するベクトルを生成してもよい。なお、情報処理装置100は、各コンテンツに対応するベクトルを情報提供装置50等の他の外部装置から取得してもよい。なお、情報処理装置100は、ベクトルの各要素として、各ニューロンに対応する値自体を用いてもよいし、各ニューロンに対応する値に所定の係数を乗算した値を用いてもよい。また、
図1の例では説明を簡単にするために、ベクトルの各要素(値)が整数である場合を示すが、ベクトルの各要素(値)は、小数点以下の数値を含む実数であってもよい。
【0028】
なお、情報処理装置100は、圧縮層RPの要素(ニューロン)に限らず、中間層CL中の他の要素(ニューロン)の情報をベクトルに用いてもよい。例えば、情報処理装置100は、エンコード部分のニューロンNL3やデコード部分のニューロンNL4等の情報をベクトルに用いてもよい。例えば、情報処理装置100は、あるコンテンツのコンテンツ情報が入力された場合に、算出されるニューロンNL3に対応する値VE3やニューロンNL4に対応する値VE4をベクトルの要素(一の次元の値)として抽出してもよい。なお、上記は、一例であり、情報処理装置100は、オートエンコーダに限らず、種々のモデルを用いて、コンテンツ情報からの特徴抽出を行ってもよい。例えば、スタートアップメンバ等の所定の目的に適したコンテンツと適さないコンテンツを識別するように学習させたモデルを生成して、その中間層をベクトルデータとして抽出しても良い。また、例えば、トリプレットロス(triplet loss)といった類似性を学習する方法によりモデルを生成しても良い。また、情報処理装置100は、モデルを用いずに、特徴抽出を行ってもよい。例えば、情報処理装置100は、情報処理装置100の管理者等が設定して特徴(素性)に対応する情報をコンテンツ情報から抽出し、ベクトルを生成してもよい。例えば、情報処理装置100は、コンテンツのジャンル(カテゴリー)や内容等の特徴(素性)に対応する情報をコンテンツ情報から抽出し、ベクトルを生成してもよい。
【0029】
また、例えば、情報処理装置100は、情報提供装置50等の他の外部装置からモデルM1を取得してもよい。なお、情報処理装置100は、コンテンツ情報記憶部121(
図4参照)に記憶された各コンテンツのコンテンツ情報CDT1、CDT2、CDT451等を入力として、モデルM1を生成してもよい。例えば、情報処理装置100は、各コンテンツのコンテンツ情報CDT1、CDT2、CDT451等を入力として、モデルM1を生成してもよい。例えば、コンテンツ情報CDT1、CDT2、CDT451等は、コンテンツのジャンル(カテゴリー)や内容等を含んでもよい。例えば、コンテンツ情報CDT1、CDT2、CDT451等のコンテンツ情報は、コンテンツがアプリである場合、「天気」、「路線」、「ゲーム」等のカテゴリーを示す情報や、起動時の画面を示す画像情報や、課金額を示す情報等の種々の情報を含んでもよい。例えば、コンテンツ情報CDT1、CDT2、CDT451等のコンテンツ情報は、コンテンツが記事コンテンツである場合、その記事コンテンツに対応する文字情報や画像情報等の情報を含んでもよい。また、例えば、コンテンツ情報CDT1、CDT2、CDT451等のコンテンツ情報は、コンテンツが動画コンテンツである場合、その動画コンテンツに対応する画像情報や音声情報等の情報を含んでもよい。なお、コンテンツ情報は、コンテンツがアプリである場合、そのソースコード(文字情報)のみであってもよい。
【0030】
情報処理装置100は、コンテンツのコンテンツ情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力されたコンテンツ情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルM1を生成してもよい。なお、情報処理装置100は、ベクトル生成に用いるモデルを情報提供装置50等の他の外部装置から取得してもよい。
【0031】
〔1-3.処理例〕
ここから、情報処理装置100は、ユーザから一のコンテンツのコンテンツ情報を取得し、一のコンテンツに類似するコンテンツに基づいてサービスを提供する場合を一例として説明する。
図1の例では、端末装置10は、所定のソフトウェア開発会社に属するユーザU1により利用される。例えば、ユーザU1は、スマートフォン用のアプリを開発する企業でアプリ開発を行うユーザであってもよい。
図1の例では、スマートフォン用のアプリの開発者であるユーザU1自身が開発したアプリであるコンテンツXが流行するかどうかの情報を所望する場合を示す。
【0032】
まず、端末装置10は、コンテンツXのコンテンツ情報CDT11を情報処理装置100へ送信する。
図1の例では、コンテンツ情報CDT11等は、コンテンツ(アプリ)のジャンル(カテゴリー)や内容等に関する情報を含む。なお、コンテンツ情報CDT11等は、コンテンツ(アプリ)のソースコード(文字情報)のみであってもよい。
【0033】
そして、情報処理装置100は、一のコンテンツに関するコンテンツ情報を取得する(ステップS11)。
図1の例では、情報処理装置100は、ユーザU1の端末装置10からコンテンツXに関するコンテンツ情報CDT11を取得する。なお、情報処理装置100は、コンテンツXが携帯する端末装置10(
図2参照)からコンテンツXに関するコンテンツ情報CDT11を取得する。
【0034】
そして、情報処理装置100は、一のコンテンツに対応するコンテンツ情報からグラフ情報の探索に用いるベクトルを生成する。
図1の例では、情報処理装置100は、処理群PS11に示すような処理により、コンテンツXに対応するベクトルを生成する。情報処理装置100は、コンテンツXに関するコンテンツ情報CDT11をモデルM1に入力する(ステップS12)。具体的には、情報処理装置100は、コンテンツXのコンテンツ情報CDT11をモデルM1に入力する。そして、情報処理装置100は、コンテンツ情報CDT11の入力後のモデルM1中の情報を用いて、ベクトルを生成する(ステップS13)。例えば、情報処理装置100は、コンテンツ情報CDT11が入力されたモデルM1中の各要素を用いて、ベクトルデータを生成する。
【0035】
図1の例では、情報処理装置100は、コンテンツ情報CDT11が入力されたモデルM1中の各要素の値を用いて、ベクトルデータVD11(単に「ベクトルVD11」ともいう)を生成する。例えば、情報処理装置100は、コンテンツXのコンテンツ情報CDT11が入力された場合における、モデルM1のニューロンNL1に対応する値VE1(
図10参照)やニューロンNL2に対応する値VE2(
図10参照)を用いて、ベクトルを生成する。例えば、情報処理装置100は、コンテンツXのコンテンツ情報CDT11が入力された場合に、算出されるニューロンNL1に対応する値VE1をベクトルVD11の1次元目の要素として抽出してもよい。また、例えば、情報処理装置100は、あるコンテンツのコンテンツ情報が入力された場合に、算出されるニューロンNL2に対応する値VE2をベクトルVD11の2次元目の要素として、ベクトルVD11を生成する。
図1の例では、情報処理装置100は、1次元目の要素が「35」であり、2次元目の要素が「63」であるようなベクトルVD11を生成する。
【0036】
そして、情報処理装置100は、コンテンツXに類似するコンテンツ(以下、「類似コンテンツ」ともいう)を検索する(ステップS14)。例えば、情報処理装置100は、非特許文献1に開示されるような近傍検索の技術等の種々の従来技術を適宜用いて、コンテンツXの類似コンテンツを検索してもよい。例えば、情報処理装置100は、類似性が高いノード間がエッジで連結されたグラフ情報GR11を用いる。
【0037】
図1の例では、情報処理装置100は、情報群INF11に示すように、グラフ情報GR11やインデックス情報IND11を用いてコンテンツXの類似コンテンツを検索する。例えば、情報処理装置100は、グラフ情報記憶部123(
図6参照)からコンテンツに関するグラフ情報GR11を取得する。また、例えば、情報処理装置100は、インデックス情報記憶部122(
図5参照)から、グラフ情報GR11における検索の起点となるノード(以下、「起点ベクトル」ともいう)の決定に用いるインデックス情報IND11を取得する。なお、インデックス情報IND11は、情報処理装置100が生成してもよいし、情報処理装置100は、インデックス情報IND11を情報提供装置50等の他の外部装置から取得してもよい。
【0038】
そして、情報処理装置100は、一のコンテンツ(クエリ)に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。
図1の例では、情報処理装置100は、コンテンツXのベクトルVD11に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。すなわち、情報処理装置100は、ベクトルVD11とインデックス情報IND11とを用いて、グラフ情報GR11における起点ベクトルを決定する。
【0039】
図1中のインデックス情報IND11は、
図5中のインデックス情報記憶部122に示す階層構造を有する。例えば、インデックス情報IND11は、ルートRTの直下に位置する第1階層のノード(ベクトル)が、節点VT1、VT2等であることを示す。また、例えば、インデックス情報IND11は、節点VT2の直下の第2階層のノードが、節点VT2-1~VT2-4(図示せず)であることを示す。また、例えば、インデックス情報IND11は、節点VT2-2の直下の第3階層のノードが、ノードN35、ノードN451、ノードN693、すなわちグラフ情報GR11中のノード(ベクトル)であることを示す。
【0040】
例えば、情報処理装置100は、
図1中のインデックス情報IND11に示すような木構造型のインデックス情報を用いて、グラフ情報GR11における起点ベクトルを決定する(ステップS15)。
図1の例では、情報処理装置100は、ベクトルVD11を生成した後、インデックス情報IND11を上から下へ辿ることにより、インデックス情報IND11の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ(一のコンテンツ)に対応する起点ベクトルを決定することができる。
【0041】
例えば、情報処理装置100は、インデックス情報IND11をルートRTからリーフノード(グラフ情報GR11中のノード(ベクトル))まで辿ることにより、ベクトルVD11に対応する起点ベクトルを決定してもよい。
図1の例では、例えば、情報処理装置100は、インデックス情報IND11をルートRTからノードN451まで辿ることにより、ノードN451を起点ベクトルとして決定する。例えば、情報処理装置100は、木構造に関する種々の従来技術を適宜用いて、インデックス情報IND11をルートRTからリーフノードまで辿ることにより、辿りついたリーフノードを起点ベクトルとして決定してもよい。例えば、情報処理装置100は、ベクトルVD11との類似度に基づいて、インデックス情報IND11を下へ辿ることにより、起点ベクトルを決定してもよい。例えば、情報処理装置100は、ルートRTから節点VT1、VT2等のいずれの節点に辿るかを、ベクトルVD11と節点VT1、VT2との類似度に基づいて決定してもよい。例えば、情報処理装置100は、ルートRTから節点VT1、VT2等のうち、ベクトルVD11との類似度が最も高い節点VT2へ辿ると決定してもよい。また、例えば、情報処理装置100は、節点VT2から節点VT2-1~VT2-4等のうち、ベクトルVD11との類似度が最も高い節点VT2-2へ辿ると決定してもよい。また、例えば、情報処理装置100は、節点VT2-2からノードN35、N451、N693等のうち、ベクトルVD11との類似度が最も高い節点ノードN451へ辿ると決定してもよい。なお、
図1の例では、説明を簡単にするために、起点ベクトルを1つ決定する場合を示すが、情報処理装置100は、複数個の起点ベクトルを決定してもよい。例えば、情報処理装置100は、ノードN451、N35、N693、N2等の複数個のベクトル(ノード)を起点ベクトルとして決定してもよい。なお、インデックス情報IND11を用いずに、検索開始時にグラフ情報GR11からランダムに1つ以上のノードを選択し、それを起点ベクトルとしてもよいし、または、予め指定された1つ以上のノードを起点ベクトルとしても良い。
【0042】
そして、情報処理装置100は、グラフ情報GR11を検索することにより、コンテンツXの類似コンテンツを抽出する(ステップS16)。例えば、情報処理装置100は、ノードN451の近傍に位置するノードを類似コンテンツとして抽出する。例えば、情報処理装置100は、ノードN451からの距離が近いノードを類似コンテンツとして抽出する。例えば、情報処理装置100は、ノードN451を起点として、エッジを辿ることにより、ノードN451から到達可能なノードを類似コンテンツとして抽出する。例えば、情報処理装置100は、所定数(例えば、2個や10個等)のノードを類似コンテンツとして抽出する。例えば、情報処理装置100は、
図11に示すような検索処理により、コンテンツXの類似コンテンツを抽出してもよいが、詳細は後述する。
図1の例では、情報処理装置100は、ノードN451を起点として、グラフ情報GR11を探索することにより、ノードN451やノードN35を類似コンテンツとして抽出する。
【0043】
そして、情報処理装置100は、類似コンテンツの指標値に関する情報を取得する。
図1の例では、情報処理装置100は、コンテンツ情報記憶部121(
図4参照)から類似コンテンツの指標値を取得する。ここでいう、コンテンツの指標値とは、そのコンテンツが流行したかどうかの判定に用いる情報であれば、コンテンツの売上やコンテンツに関するユーザの投稿回数等の種々の指標値であってもよい。例えば、コンテンツがアプリである場合、ダウンロード数や利用ユーザ数等が指標値として用いられてもよい。また、情報処理装置100は、複数の指標値を用いてもよい。
【0044】
図1の例では、コンテンツの指標値として、そのコンテンツ(アプリ)の売上を用いるものとする。
図1の例では、情報処理装置100は、類似情報SLTに示すようなノードN451(コンテンツ#451)の指標値VL451やノードN35(コンテンツ#35)の指標値VL35等の情報を取得する。例えば、指標値VL451は、コンテンツ#451の売上を示し、指標値VL35は、コンテンツ#35の売上を示す。例えば、指標値VL451や指標値VL35は、200万円や1億円等の具体的な数値であるものとする。
【0045】
そして、情報処理装置100は、判定に用いる指標値(判定用指標値)を決定する(ステップS17)。
図1の例では、情報処理装置100は、類似情報SLTに示すようなノードN451(コンテンツ#451)の指標値VL451やノードN35(コンテンツ#35)の指標値VL35等の情報に基づいて、判定用指標値を決定する。
【0046】
例えば、情報処理装置100は、類似情報SLTに含まれる類似コンテンツの評価値(指標値)の平均を判定用指標値として決定する。
図1の例では、情報処理装置100は、ステップS16で抽出した類似コンテンツの指標値の平均を判定用指標値として決定する。すなわち、情報処理装置100は、類似情報SLTに含まれるコンテンツ#45の指標値VL451やコンテンツ#35の指標値VL35の平均を判定用指標値として決定する。この場合、情報処理装置100は、コンテンツ#45の指標値VL451やコンテンツ#35の指標値VL35を加算することにより、類似コンテンツの指標値の合計値を算出する。そして、情報処理装置100は、類似コンテンツの指標値の合計値を、類似コンテンツ数で除することにより、判定用指標値を算出する。例えば、情報処理装置100は、類似コンテンツがコンテンツ#45とコンテンツ#35との2つである場合、指標値VL451と指標値VL35とを加算した合計値を類似コンテンツの数「2」で除することにより、判定用指標値を算出する。
図1の例では、情報処理装置100は、判定用情報VLTに示すように、判定用指標値DVL11を決定する。
【0047】
なお、上記は一例であり、情報処理装置100は、類似情報SLTに含まれる類似コンテンツの指標値に基づけばどのような評価値(指標値)を判定用指標値として決定してもよい。例えば、情報処理装置100は、類似情報SLTのうち、最も高い指標値を判定用指標値として決定してもよい。例えば、情報処理装置100は、類似情報SLTのうち、最も低い指標値を判定用指標値として決定してもよい。例えば、情報処理装置100は、類似情報SLTのうち、最もコンテンツXに類似するコンテンツの指標値を判定用指標値として決定してもよい。
【0048】
そして、情報処理装置100は、判定用指標値を用いて判定処理を行う(ステップS18)。例えば、情報処理装置100は、判定用指標値と所定の閾値との比較により、コンテンツXが流行するかどうかを判定する。例えば、情報処理装置100は、判定用指標値が所定の閾値以上である場合、コンテンツXが流行すると判定する。例えば、情報処理装置100は、判定用指標値が所定の閾値未満である場合、コンテンツXが流行しないと判定する。
図1の例では、情報処理装置100は、閾値情報TLTに示すような閾値TH11を用いて、判定処理を行う。例えば、閾値TH11は、500万円や1億円等の具体的な数値であるものとする。情報処理装置100は、閾値TH11を記憶した記憶部120(
図3参照)から閾値TH11を取得してもよいし、外部の情報処理装置から閾値TH11を取得してもよい。例えば、情報処理装置100が記憶部120から閾値TH11を取得する場合、閾値TH11は記憶部120に格納されている。なお、以下では、閾値TH11が「1千万円」であり、判定用指標値DVL11が「3千万円」であるものとして説明する。
【0049】
上記のように、閾値TH11が「1千万円」であり、判定用指標値DVL11が「3千万円」であるため、情報処理装置100は、判定用指標値DVL11と所定の閾値TH11とを比較し、判定用指標値DVL11が所定の閾値TH11以上であると判定する。この場合、情報処理装置100は、判定用指標値DVL11が所定の閾値TH11以上であるという基準を満たすため、流行判定結果DRSに示すように、コンテンツXが流行すると判定する。
【0050】
そして、情報処理装置100は、判定結果に基づいてサービスを提供する。
図1の例では、情報処理装置100は、コンテンツXが流行する可能性があるコンテンツ(流行コンテンツ)であることを示す情報(流行判定情報)を端末装置10に提供する(ステップS19)。例えば、情報処理装置100は、コンテンツXが流行コンテンツであることを示す流行判定情報を端末装置10に送信する。これにより、ユーザU1は、コンテンツXが流行する可能性があると判断することができる。
【0051】
一方、情報処理装置100は、判定用指標値DVL11が所定の閾値TH11未満であると判定した場合、コンテンツXが流行しないと判定する。そして、情報処理装置100は、コンテンツXが流行しない可能性が高いことを示す流行判定情報を端末装置10に送信する。これにより、ユーザU1は、コンテンツXが流行しない可能性が高いと判断でき、コンテンツXの仕様変更等を行い流行するコンテンツの開発を行うことができる。
【0052】
上述したように、情報処理装置100は、グラフ情報GR11やインデックス情報IND11を用いて、ユーザU1から取得したコンテンツXの類似コンテンツを抽出する。例えば、情報処理装置100は、インデックス情報IND11を用いて、コンテンツXの類似コンテンツを抽出する際のグラフ情報GR11における起点ベクトルを決定する。そして、情報処理装置100は、決定した起点ベクトルを起点としてグラフ情報GR11を探索することにより、コンテンツXの類似コンテンツを抽出する。これにより、情報処理装置100は、類似のコンテンツを適切に抽出することができる。
【0053】
例えば、情報処理装置100は、コンテンツXと類似するコンテンツ(類似コンテンツ)が、例えばコンテンツXと一見関係が無いように見える場合であっても、グラフ情報を用いることで、コンテンツXの類似コンテンツとして抽出でき、類似のコンテンツを適切に抽出することができる。例えば、ディープラーニングといった手法で、XXのゲームやYYの記事コンテンツ等の所定の目的に適したコンテンツを識別するという方法もあるが、所定の目的に適するかに影響する多種多様な要素が存在する場合においては、各要素の事例が少ないので、学習ができずに識別精度を向上させることが難しいという問題がある。例えば、ディープラーニングといった学習手法で生成したモデルを用いて、そのモデルにコンテンツの情報を入力し、出力されたスコアからそのコンテンツが所定の目的に適するかを識別するという方法もあるが、多種多様な要素が存在する場合においては、各要素の事例が少ないため、モデルの精度を向上させることが難しく、識別精度を向上させることが難しい。一方で、情報処理装置100は、各コンテンツから抽出した特徴を基に生成した複数のベクトルのグラフ構造化したグラフ情報を用いて検索を行うことにより、コンテンツのベクトルの比較によりコンテンツ間の類似度を判定し、一のコンテンツが複数のコンテンツに含まれるかどうかを適切に判定することができる。そのため、情報処理装置100は、類似のコンテンツを適切に抽出することができる。
【0054】
〔1-4.サービスについて〕
図1の例では、コンテンツが流行するかの判定を一例として説明したが、情報処理装置100は、抽出した類似コンテンツの情報を用いて種々のサービスを提供してもよい。この点について、以下説明する。
【0055】
〔1-4-1.ユーザに関する情報提供〕
例えば、情報処理装置100は、抽出した類似コンテンツの情報を用いて、コンテンツを利用するユーザに関する情報を提供してもよい。例えば、情報処理装置100は、抽出した類似コンテンツの情報を用いて、一のコンテンツがどのようなユーザに利用されるかを示す情報を提供してもよい。
【0056】
図1の例では、情報処理装置100は、類似コンテンツであるコンテンツ#451やコンテンツ#35を利用するユーザの情報を用いて、コンテンツXがどのようなユーザに利用されるかを示す情報をユーザU1に提供してもよい。情報処理装置100は、類似コンテンツであるコンテンツ#451やコンテンツ#35を利用するユーザの情報を用いて、コンテンツXがどのようなユーザに利用されるかを示す情報(分析情報)をユーザU1に提供してもよい。例えば、情報処理装置100は、コンテンツ#451やコンテンツ#35を利用するユーザの属性情報を、ユーザU1に提供してもよい。例えば、情報処理装置100は、コンテンツ#451やコンテンツ#35を利用するユーザに20代男性が多い場合、コンテンツXが20代男性のユーザに利用される可能性が高いことを示す分析情報をユーザU1の端末装置10に送信してもよい。
【0057】
また、例えば、情報処理装置100は、コンテンツ#451やコンテンツ#35を利用するユーザのうち、各属性が占める割合を示す分析情報をユーザU1の端末装置10に送信してもよい。例えば、情報処理装置100は、コンテンツ#451やコンテンツ#35を利用するユーザのうち、男性が80%であり、女性が20%である場合、男性が80%であり、女性が20%であることを示す分析情報をユーザU1の端末装置10に送信してもよい。
【0058】
〔1-4-2.生成したコンテンツの判定〕
図1の例では、情報処理装置100がユーザU1から取得したコンテンツXの流行判定を行ったが、情報処理装置100は、コンテンツを生成し、生成したコンテンツの流行判定を行ってもよい。例えば、情報処理装置100は、アプリや動画コンテンツや音楽コンテンツや記事コンテンツ等のコンテンツを生成し、グラフ情報を用いて生成したコンテンツの類似コンテンツを抽出することにより、生成したコンテンツの流行判定を行ってもよい。この点について、
図12を用いて説明する。
図12は、コンテンツの流行判定の一例を示す図である。
図12の例では、コンテンツがアプリである場合を示す。また、グラフ情報GR21は、
図1中のグラフ情報GR11であってもよい。なお、
図1と同様の点については適宜説明を省略する。
【0059】
まず、情報処理装置100は、コンテンツを生成する(ステップS51)。なお、ここでいうコンテンツの生成は、情報処理装置100自体が生成を行う場合と情報処理装置100が他の外部装置に要求してコンテンツを生成する場合が含まれるものとする。情報処理装置100は、自装置においてアプリYを生成してもよいし、他の外部装置にアプリYの生成を要求し、アプリYを生成した他の外部装置からアプリYを取得してもよい。例えば、情報処理装置100は、自動生成に関する技術を適宜用いて、ランダムにアプリYを生成してもよい。また、例えば、情報処理装置100は、コンテンツが楽曲等の音楽コンテンツである場合、過去の複数の楽曲から、数秒や数小節等の区間ごとの抽出しランダムに組み合わせることで、音楽コンテンツを生成してもよい。例えば、情報処理装置100は、過去に流行した複数の楽曲の区間をランダムに組合せることにより生成してもよい。例えば、情報処理装置100は、売上が所定の閾値(例えば10億円等)以上等の流行に関する条件を満たす複数の楽曲の区間を、ランダムに組合せることにより生成してもよい。なお、情報処理装置100は、上記に限らず、コンテンツを生成可能であれば、自動生成に関する技術やランダム生成等のどのような方法によりコンテンツを生成してもよい。例えば、情報処理装置100は、情報提供装置50にアプリYの生成を要求し、アプリYを生成した情報提供装置50からアプリYを取得してもよい。
図12の例では、情報処理装置100は、アプリYを生成する。
【0060】
そして、情報処理装置100は、グラフ情報を用いてコンテンツの流行判定を行う(ステップS52)。
図12の例では、情報処理装置100は、グラフ情報GR21を用いてアプリYの流行判定を行う。例えば、情報処理装置100は、生成した一のコンテンツ(アプリY)を対象として、アプリYに類似するコンテンツ(類似コンテンツ)の情報をグラフ情報GR21から抽出する。例えば、情報処理装置100は、アプリYに関するコンテンツ情報(コンテンツ情報YLD)を取得する。例えば、情報処理装置100は、グラフ情報GR21をグラフ情報記憶部123から取得する。例えば、情報処理装置100は、コンテンツの各々に対応する複数のノードが、複数のコンテンツの類似性に応じて連結されたグラフ情報GR21を取得する。そして、情報処理装置100は、モデル情報記憶部124に記憶されたモデルM1を用いて、アプリYのコンテンツ情報YDTからベクトル(ベクトルYVD)を生成する。
【0061】
そして、情報処理装置100は、生成したベクトルYVDとインデックス情報を用いて起点ベクトルをノードYNE(
図12中のアプリAP5に対応)に決定する。そして、情報処理装置100は、起点ベクトルであるノードYNEを起点としてグラフ情報GR21を検索することにより、アプリYの類似コンテンツ(類似グループ)を抽出する。例えば、情報処理装置100は、ノードYNEを起点として、グラフ情報GR21を探索することにより、所定数(例えば2個など)のノードを類似コンテンツとして抽出する。
図12の例では、情報処理装置100は、類似コンテンツ範囲SAR11に含まれるアプリAP1(ノードNET1)やアプリAP5(ノードNET5)を類似コンテンツとして抽出する。
【0062】
そして、情報処理装置100は、抽出した類似コンテンツの指標値を用いて、アプリYが流行するかどうかを判定する。例えば、情報処理装置100は、類似コンテンツの指標値に関する情報を取得する。
図12の例では、コンテンツの指標値として、そのコンテンツ(アプリ)のダウンロード数を用いるものとする。
図12の例では、情報処理装置100は、コンテンツ情報記憶部121(
図4参照)から類似コンテンツの指標値を取得する。そして、情報処理装置100は、判定に用いる指標値(判定用指標値)を決定する。
図12の例では、情報処理装置100は、アプリAP1とアプリAP5とのうち、最もダウンロード数が多いアプリ(例えばアプリAP1)の指標値VLAP1を、判定用指標値(以下、「判定用指標値DVL51」とする)として決定する。指標値VLAP1は、5万回や100万回等の具体的な数値であるものとする。
【0063】
そして、情報処理装置100は、判定用指標値を用いて判定処理を行う。例えば、情報処理装置100は、判定用指標値と所定の閾値との比較により、コンテンツXが流行するかどうかを判定する。
図12の例では、情報処理装置100は、閾値TH51を用いて、判定処理を行う。例えば、閾値TH11は、25万回や500万回等の具体的な数値であるものとする。情報処理装置100は、閾値TH51を記憶した記憶部120(
図3参照)から閾値TH51を取得してもよいし、外部の情報処理装置から閾値TH51を取得してもよい。
【0064】
例えば、情報処理装置100は、判定用指標値DVL51が所定の閾値TH51以上であると判定した場合、コンテンツXが流行すると判定する。一方、情報処理装置100は、判定用指標値DVL11が所定の閾値TH11未満であると判定した場合、コンテンツXが流行しないと判定する。このように、情報処理装置100は、生成したコンテンツの流行を判定することにより、流行するコンテンツを適切に生成することができる。また、情報処理装置100は、生成したコンテンツが流行する判定した場合、生成したコンテンツを販売やリリースすると決定してもよい。そして、情報処理装置100は、生成したコンテンツを端末装置10や情報提供装置50等の種々の外部装置に提供してもよい。
【0065】
〔1-5.インデックス情報〕
図1の例に示すインデックス情報(インデックスデータ)は一例であり、情報処理装置100は、種々のインデックス情報を用いて、グラフ情報を検索してもよい。また、例えば、情報処理装置100は、検索時に用いるインデックスデータを生成してもよい。例えば、情報処理装置100は、高次元ベクトルを検索する検索インデックスをインデックスデータとして生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
【0066】
例えば、情報処理装置100は、
図1に示すようなツリー構造(木構造)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置100は、kd木(k-dimensional tree)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置100は、VP木(Vantage-Point tree)に関する検索インデックスをインデックスデータとして生成してもよい。
【0067】
また、例えば、情報処理装置100は、その他の木構造を有するインデックスデータとして生成してもよい。例えば、情報処理装置100は、木構造のインデックスデータのリーフがグラフデータに接続する種々のインデックスデータを生成してもよい。例えば、情報処理装置100は、木構造のインデックスデータのリーフがグラフデータ中のノードに対応する種々のインデックスデータを生成してもよい。また、情報処理装置100は、このようなインデックスデータを用いて検索を行う場合、インデックスデータを辿って到達したリーフ(ノード)からグラフデータを探索してもよい。
【0068】
なお、上述したようなインデックスデータは一例であり、情報処理装置100は、グラフデータ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置100は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、インデックスデータを生成してもよい。例えば、情報処理装置100は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置100は、非特許文献1に記載されるようなグラフ型の検索インデックスに関する情報をインデックス情報として用いてもよい。情報処理装置100は、上述のようなインデックスデータとグラフデータとを用いることにより、所定のコンテンツに関するより効率的な検索を可能にすることができる。
【0069】
〔2.情報処理システムの構成〕
図2に示すように、情報処理システム1は、端末装置10と、情報提供装置50と、情報処理装置100とが含まれる。端末装置10と、情報提供装置50と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。
図2は、実施形態に係る情報処理システムの構成例を示す図である。なお、
図2に示した情報処理システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の情報処理装置100が含まれてもよい。
【0070】
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。なお、上述した端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。例えば、端末装置10は、所定のサーバシステムを管理者が利用する情報処理装置であってもよい。例えば、端末装置10は、コンテンツ情報を収集し、コンテンツ情報を情報処理装置100へ送信する。
【0071】
情報処理装置100は、起点ベクトルを起点としてグラフ情報を検索することにより、複数のコンテンツのうち、一のコンテンツが複数のコンテンツに含まれるかどうかを判定する情報処理装置である。例えば、情報処理装置100は、一のコンテンツに関するコンテンツ情報を取得し、コンテンツ情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。
【0072】
情報処理装置100は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報処理装置100は、端末装置10から一のコンテンツのコンテンツ情報(以下、「クエリ情報」や「クエリ」ともいう)を取得すると、クエリに類似するコンテンツ(ベクトル情報等)を検索し、検索結果を端末装置10に提供する。
図1の例では、情報処理装置100は、端末装置10から一のコンテンツのコンテンツ情報を取得すると、一のコンテンツに類似するコンテンツを検索し、検索結果を類似のコンテンツとして端末装置10に提供する。また、例えば、情報処理装置100が端末装置10に提供するデータは、コンテンツの名称やコンテンツのコンテンツ情報自体であってもよいし、URL(Uniform Resource Locator)等の対応するデータを参照するための情報であってもよい。
【0073】
情報提供装置50は、情報処理装置100に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置50は、ウェブサーバ等の種々の外部装置から収集したコンテンツ情報等が格納されてもよい。例えば、情報提供装置50は、グラフ情報やインデックス情報やモデル等の種々の情報を情報処理装置100に提供する情報処理装置である。
【0074】
〔3.情報処理装置の構成〕
次に、
図3を用いて、実施形態に係る情報処理装置100の構成について説明する。
図3は、実施形態に係る情報処理装置の構成例を示す図である。
図3に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
【0075】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば
図2中のネットワークN)と有線または無線で接続され、端末装置10や情報提供装置50との間で情報の送受信を行う。
【0076】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、
図3に示すように、コンテンツ情報記憶部121と、インデックス情報記憶部122と、グラフ情報記憶部123と、モデル情報記憶部124とを有する。また、記憶部120は、閾値TH11等の情報を記憶してもよい。
【0077】
(コンテンツ情報記憶部121)
実施形態に係るコンテンツ情報記憶部121は、コンテンツ(オブジェクト)に関する各種情報を記憶する。例えば、コンテンツ情報記憶部121は、コンテンツIDやベクトルデータを記憶する。
図4の例では、コンテンツに関するコンテンツ情報を記憶する。
図4は、実施形態に係るコンテンツ情報記憶部の一例を示す図である。
図4に示すコンテンツ情報記憶部121は、「コンテンツID」、「コンテンツ」、「コンテンツ情報」、「指標値」、「ベクトル情報」といった項目が含まれる。
【0078】
「コンテンツID」は、コンテンツ(オブジェクト)を識別するための識別情報を示す。また、「コンテンツ」は、コンテンツIDにより識別されるコンテンツの具体的な名称や内容等を示す。なお、
図4の例では、コンテンツを「コンテンツ#1」といった抽象的な符号で示すが、括弧内の「Aコンテンツ」等のように、コンテンツを特定するための文字情報等が含まれてもよい。「指標値」は、コンテンツIDにより識別されるコンテンツの所定の指標値を示す。例えば、「指標値」は、指標が「売上」である場合、コンテンツの売上を示す値であってもよい。また、例えば、コンテンツがアプリである場合、「指標値」は、ダウンロード数や利用ユーザ数等であってもよい。なお、「指標値」は、上記に限らず、コンテンツに関するものであれば、どのような指標値であってもよい。また、複数の指標値を用いる場合、「指標値」の項目は、用いる指標値の個数に応じた個数(複数個)であってもよい。なお、
図4の例では、指標値を「VL1」といった抽象的な符号で示すが、1000や100万等、指標値に応じた具体的な数値が記憶されてもよい。
【0079】
「コンテンツ情報」は、コンテンツIDにより識別されるコンテンツに関する情報を示す。なお、
図4の例では、コンテンツ情報を「CDT1」といった抽象的な符号で示すが、各コンテンツ情報は、コンテンツIDにより識別されるコンテンツのジャンル(カテゴリー)や内容等の種々のコンテンツに関する情報を含んでもよい。「ベクトル情報」とは、コンテンツIDにより識別されるコンテンツ(オブジェクト)に対応するベクトル情報を示す。すなわち、
図4の例では、コンテンツ(オブジェクト)を識別するコンテンツIDに対して、オブジェクトに対応するベクトルデータ(ベクトル情報)が対応付けられて登録されている。
【0080】
例えば、
図4の例では、コンテンツID「CT1」により識別されるコンテンツ(オブジェクト)は、「10,24,54,2...」の多次元(N次元)のベクトル情報が対応付けられることを示す。例えば、コンテンツ#1については、モデルM1等により、コンテンツ#1の特徴を示す「10,24,54,2...」の多次元(N次元)のベクトル情報がコンテンツ情報CDT1から抽出されたことを示す。また、
図4の例では、コンテンツ#1の指標値は、「VL1」であることを示す。
【0081】
なお、コンテンツ情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【0082】
(インデックス情報記憶部122)
実施形態に係るインデックス情報記憶部122は、インデックスに関する各種情報を記憶する。
図5は、実施形態に係るインデックス情報記憶部の一例を示す図である。具体的には、
図5の例では、インデックス情報記憶部122は、ツリー構造のインデックス情報を示す。
図5の例では、インデックス情報記憶部122は、「ルート階層」、「第1階層」、「第2階層」、「第3階層」等といった項目が含まれる。なお、「第1階層」~「第3階層」に限らず、インデックスの階層数に応じて、「第4階層」、「第5階層」、「第6階層」等が含まれてもよい。
【0083】
「ルート階層」は、インデックスを用いた起点ノードの決定の開始点となるルート(最上位)の階層を示す。「第1階層」は、インデックスの第1階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第1階層」に格納されるノードは、インデックスの根(ルート)に直接結ばれる階層に対応するノードとなる。
【0084】
「第2階層」は、インデックスの第2階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第2階層」に格納されるノードは、第1階層のノードに結ばれる直下の階層に対応するノードとなる。「第3階層」は、インデックスの第3階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第3階層」に格納されるノードは、第2階層のノードに結ばれる直下の階層に対応するノードとなる。
【0085】
例えば、
図5に示す例においては、インデックス情報記憶部122には、
図1中のインデックス情報IND11に対応する情報が記憶される。例えば、インデックス情報記憶部122は、第1階層のノードが、節点VT1~VT3等であることを示す。また、各節点の下の括弧内の数値は、各節点に対応するベクトルの値を示す。
【0086】
また、例えば、インデックス情報記憶部122は、節点VT2の直下の第2階層のノードが、節点VT2-1~VT2-4であることを示す。また、例えば、インデックス情報記憶部122は、節点VT2-2の直下の第3階層のノードが、ノードN35、ノードN451、ノードN693のグラフ情報GR11中のノード(ベクトル)であることを示す。
【0087】
なお、インデックス情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【0088】
(グラフ情報記憶部123)
実施形態に係るグラフ情報記憶部123は、グラフ情報に関する各種情報を記憶する。
図6は、実施形態に係るグラフ情報記憶部の一例を示す図である。
図6の例では、グラフ情報記憶部123は、「ノードID」、「コンテンツID」、および「エッジ情報」といった項目を有する。また、「エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
【0089】
「ノードID」は、グラフデータにおける各ノード(コンテンツ)を識別するための識別情報を示す。また、「コンテンツID」は、コンテンツ(オブジェクト)を識別するための識別情報を示す。
【0090】
また、「エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。
図6の例では、「エッジ情報」は、エッジが有向エッジである場合を示し、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、
図6の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(コンテンツ)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。
【0091】
例えば、
図6の例では、ノードID「N1」により識別されるノード(ベクトル)は、コンテンツID「CT1」により識別されるコンテンツ(オブジェクト)に対応することを示す。また、ノードID「N1」により識別されるノードからは、エッジID「E11」により識別されるエッジが、ノードID「N25」により識別されるノード(ベクトル)に連結されることを示す。すなわち、
図6の例では、ノードID「N1」により識別されるノード(ベクトル)からはノードID「N25」により識別されるノード(ベクトル)に辿ることができることを示す。
【0092】
なお、グラフ情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフ情報記憶部123は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、グラフ情報記憶部123は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。
【0093】
(モデル情報記憶部124)
実施形態に係るモデル情報記憶部124は、モデルに関する情報を記憶する。例えば、モデル情報記憶部124は、生成処理により生成されたモデル情報(モデルデータ)を記憶する。
図7は、実施形態に係るモデル情報記憶部の一例を示す図である。
図7に示すモデル情報記憶部124は、「モデルID」、「用途」、「モデルデータ」といった項目が含まれる。なお、
図7では、モデルM1、M2のみを図示するが、M21、M22等、各用途(予測の対象)に応じて多数のモデル情報が記憶されてもよい。
【0094】
「モデルID」は、モデルを識別するための識別情報を示す。例えば、モデルID「M1」により識別されるモデルは、
図1の例に示したモデルM1に対応する。「用途」は、対応するモデルの用途を示す。また、「モデルデータ」は、対応付けられた対応するモデルのデータを示す。例えば、「モデルデータ」には、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報が含まれる。
【0095】
例えば、
図7に示す例において、モデルID「M1」により識別されるモデル(モデルM1)は、用途が「特徴抽出(アプリ)」であり、入力されたコンテンツ情報からの特徴の抽出に用いられることを示す。また、モデルM1のモデルデータは、モデルデータMDT1であることを示す。
【0096】
モデルM1(モデルデータMDT1)は、コンテンツのコンテンツ情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力されたコンテンツ情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するよう、コンピュータを機能させるためのモデルである。
【0097】
また、モデルM1、M2等がDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、例えば、モデルM1、M2が含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
【0098】
ここで、モデルM21、M22等が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、例えば、モデルM21、M22が含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。
【0099】
なお、モデル情報記憶部124は、上記に限らず、目的に応じて種々のモデル情報を記憶してもよい。
【0100】
(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。制御部130は、モデル情報記憶部124に記憶されているモデルM1、M2等に従った情報処理により、コンテンツのコンテンツ情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力されたコンテンツ情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力する。
【0101】
図3に示すように、制御部130は、取得部131と、生成部132と、決定部133と、検索部134と、提供部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、
図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【0102】
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、記憶部120から各種情報を取得する。例えば、取得部131は、コンテンツ情報記憶部121や、インデックス情報記憶部122や、グラフ情報記憶部123や、モデル情報記憶部124等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。取得部131は、端末装置10や情報提供装置50から各種情報を取得する。
【0103】
取得部131は、複数のコンテンツの各々に対応する複数のノードが、複数のコンテンツの類似性に応じて連結されたグラフ情報と、一のコンテンツに関するコンテンツ情報を取得する。取得部131は、複数のコンテンツの各々に対応する複数のベクトルが、複数のコンテンツの類似性に応じて連結されたグラフ情報と、一のコンテンツに関するコンテンツ情報を取得する。取得部131は、複数のコンテンツの各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
【0104】
取得部131は、所定のモデルを用いて複数のコンテンツの各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。取得部131は、複数のコンテンツに関する情報を所定のモデルに入力することにより、抽出される複数のコンテンツの各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
【0105】
取得部131は、類似コンテンツの流行に関する流行情報を取得する。取得部131は、類似コンテンツの流行に関する指標値を示す流行情報を取得する。取得部131は、ユーザが利用する端末装置から一のコンテンツに関するコンテンツ情報を取得する。
【0106】
例えば、取得部131は、データ検索のコンテンツとなる複数のノード(ベクトル)を取得する。例えば、取得部131は、複数のノードと、複数のノードの各々を連結する複数の有向エッジを含む有向エッジ群を取得する。
【0107】
例えば、取得部131は、外部の情報処理装置からグラフ情報(グラフデータ)を取得する。例えば、取得部131は、グラフ情報記憶部123からグラフ情報を取得する。例えば、取得部131は、グラフ情報を取得する。
図1の例では、取得部131は、グラフ情報GR11を取得する。
【0108】
例えば、取得部131は、外部の情報処理装置からインデックス情報(インデックスデータ)を取得する。例えば、取得部131は、インデックス情報記憶部122からインデックス情報を取得する。例えば、取得部131は、木構造型のインデックス情報を取得する。
図1の例では、取得部131は、インデックス情報IND11を取得する。
【0109】
また、取得部131は、ユーザが利用する端末装置10から一のコンテンツに関するコンテンツ情報を取得する。例えば、取得部131は、検索クエリとして、一のコンテンツのコンテンツ情報を取得する。例えば、取得部131は、コンテンツに関する検索クエリを取得する。取得部131は、ユーザU1が利用する端末装置10からコンテンツXに関するコンテンツ情報CDT11を取得する。
【0110】
例えば、取得部131は、一のコンテンツに関するコンテンツ情報を取得する。例えば、取得部131は、端末装置10からコンテンツXに関するコンテンツ情報CDT11を取得する。例えば、取得部131は、グラフ情報記憶部123からコンテンツに関するグラフ情報GR11を取得する。また、例えば、取得部131は、インデックス情報記憶部122(
図5参照)から、グラフ情報GR11における検索の起点となるノード(起点ベクトル)の決定に用いるインデックス情報IND11を取得する。
【0111】
図1の例では、取得部131は、コンテンツ情報記憶部121(
図4参照)から類似コンテンツの指標値を取得する。取得部131は、類似情報SLTに示すようなノードN451(コンテンツ#451)の指標値VL451やノードN35(コンテンツ#35)の指標値VL35等の情報を取得する。また、取得部131は、閾値TH11を記憶した記憶部120から閾値TH11を取得する。
【0112】
(生成部132)
生成部132は、各種情報を生成する。例えば、生成部132は、コンテンツ情報記憶部121に記憶された学習データ(コンテンツ情報)を用いて、モデル情報記憶部124に示すようなモデルを生成する。例えば、生成部132は、取得部131により取得された学習データに基づいて、入力したコンテンツ情報と同様の情報を出力するモデル(オートエンコーダ)を生成する。例えば、生成部132は、入力するコンテンツ情報自体を正解情報として、入力したコンテンツ情報と同様の情報を出力するモデル(オートエンコーダ)を生成する。
【0113】
例えば、生成部132は、モデルM1等を生成し、生成したモデルM1等をモデル情報記憶部124に格納する。なお、生成部132は、いかなる学習アルゴリズムを用いてモデルM1を生成してもよい。例えば、生成部132は、ニューラルネットワーク(neural network)等の学習アルゴリズムを用いてモデルM1を生成する。一例として、生成部132がニューラルネットワークを用いてモデルM1等を生成する場合、モデルM1等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
【0114】
生成部132は、コンテンツのコンテンツ情報が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力されたコンテンツ情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルを生成する。
【0115】
例えば、生成部132は、学習データに基づいてモデルを生成する。例えば、生成部132は、コンテンツ情報記憶部121中のコンテンツ情報CDT1、CDT2等を学習データ(教師データ)として、学習を行なうことにより、モデルを生成する。
【0116】
例えば、生成部132は、コンテンツ情報CDT1が入力された場合に、モデルM1がコンテンツ情報CDT1と同様の情報を出力するように、学習処理を行う。例えば、生成部132は、コンテンツ情報CDT2が入力された場合に、モデルM1がコンテンツ情報CDT2と同様の情報を出力するように、学習処理を行う。
【0117】
なお、生成部132は、オートエンコーダとしてのモデルM1に限らず、種々の学習アルゴリズムを用いてコンテンツ(入館)に対応するモデルM21やコンテンツ(入国)に対応するモデルM22等を生成してもよい。例えば、生成部132は、ニューラルネットワーク(neural network)、サポートベクターマシン(SVM)、クラスタリング、強化学習等の学習アルゴリズムを用いてモデルM21、M22等を生成する。一例として、生成部132がニューラルネットワークを用いてモデルM21、M22等を生成する場合、モデルM21、M22等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。なお、情報処理装置100は、情報提供装置50等の他の外部装置からモデルを取得する場合、生成部132を有しなくてもよい。
【0118】
図1の例では、生成部132は、コンテンツ情報の特徴を抽出するモデルを用いて各コンテンツのコンテンツ情報からN次元ベクトルを生成する。生成部132は、モデル情報記憶部124(
図7)に示すモデルM1を用いて、各コンテンツのコンテンツ情報からベクトルを生成する。
【0119】
また、生成部132は、一のコンテンツに対応するコンテンツ情報からグラフ情報の探索に用いるベクトルを生成する。
図1の例では、生成部132は、処理群PS11に示すような処理により、コンテンツXに対応するベクトルを生成する。生成部132は、コンテンツXに関するコンテンツ情報CDT11をモデルM1に入力する。具体的には、生成部132は、コンテンツXのジャンル(カテゴリー)や内容等の情報を含むコンテンツ情報CDT11をモデルM1に入力する。そして、生成部132は、コンテンツ情報CDT11の入力後のモデルM1中の情報を用いて、ベクトルを生成する。例えば、生成部132は、コンテンツ情報CDT11が入力されたモデルM1中の各要素を用いて、ベクトルデータを生成する。
【0120】
図1の例では、生成部132は、コンテンツ情報CDT11が入力されたモデルM1中の各要素の値を用いて、ベクトルVD11を生成する。例えば、生成部132は、コンテンツXのコンテンツ情報CDT11が入力された場合における、モデルM1のニューロンNL1に対応する値VE1(
図10参照)やニューロンNL2に対応する値VE2(
図10参照)を用いて、ベクトルを生成する。例えば、生成部132は、コンテンツXのコンテンツ情報CDT11が入力された場合に、算出されるニューロンNL1に対応する値VE1をベクトルVD11の1次元目の要素として抽出してもよい。また、例えば、生成部132は、コンテンツのコンテンツ情報が入力された場合に、算出されるニューロンNL2に対応する値VE2をベクトルVD11の2次元目の要素として、ベクトルVD11を生成する。
図1の例では、生成部132は、1次元目の要素が「35」であり、2次元目の要素が「63」であるようなベクトルVD11を生成する。
【0121】
(決定部133)
決定部133は、各種情報を決定する。決定部133は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。例えば、決定部133は、取得部131により取得されたコンテンツ情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。例えば、決定部133は、コンテンツ情報と、グラフ情報の検索の起点ベクトルの決定の基準となる情報とに基づいて、起点ベクトルを決定する。また、決定部133は、起点ベクトルの決定に用いるインデックス情報に基づいて、起点ベクトルを決定する。また、決定部133は、木構造型のインデックス情報に基づいて、起点ベクトルを決定する。
【0122】
図1の例では、決定部133は、一のコンテンツ(クエリ)に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。例えば、決定部133は、コンテンツXのベクトルVD11に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。決定部133は、ベクトルVD11とインデックス情報IND11とを用いて、グラフ情報GR11における起点ベクトルを決定する。
【0123】
例えば、決定部133は、
図1中のインデックス情報IND11に示すような木構造型のインデックス情報を用いて、グラフ情報GR11における起点ベクトルを決定する。
図1の例では、決定部133は、ベクトルVD11を生成した後、インデックス情報IND11を上から下へ辿ることにより、インデックス情報IND11の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ(一のコンテンツ)に対応する起点ベクトルを決定する。
【0124】
例えば、決定部133は、インデックス情報IND11をルートRTからリーフノード(グラフ情報GR11中のノード(ベクトル))まで辿ることにより、ベクトルVD11に対応する起点ベクトルを決定する。
図1の例では、決定部133は、インデックス情報IND11をルートRTからノードN451まで辿ることにより、ノードN451を起点ベクトルとして決定する。
【0125】
決定部133は、判定に用いる指標値(判定用指標値)を決定する。
図1の例では、決定部133は、類似情報SLTに示すようなノードN451(コンテンツ#451)の指標値VL451やノードN35(コンテンツ#35)の指標値VL35等の情報に基づいて、判定用指標値を決定する。
【0126】
図1の例では、決定部133は、類似情報SLTに含まれる類似コンテンツの指標値の平均を判定用指標値として決定する。決定部133は、類似コンテンツの指標値の平均を判定用指標値として決定する。決定部133は、類似情報SLTに含まれるコンテンツ#45の指標値VL451やコンテンツ#35の指標値VL35の平均を判定用指標値として決定する。この場合、決定部133は、コンテンツ#45の指標値VL451やコンテンツ#35の指標値VL35を加算することにより、類似コンテンツの指標値の合計値を算出する。そして、決定部133は、類似コンテンツの指標値の合計値を、類似コンテンツ数で除することにより、判定用指標値を算出する。例えば、決定部133は、類似コンテンツがコンテンツ#45とコンテンツ#35との2つである場合、指標値VL451と指標値VL35とを加算した合計値を類似コンテンツの数「2」で除することにより、判定用指標値を算出する。
図1の例では、決定部133は、判定用情報VLTに示すように、判定用指標値DVL11を決定する。
【0127】
決定部133は、類似情報SLTに含まれる類似コンテンツの指標値に基づけばどのような指標値を判定用指標値として決定してもよい。例えば、決定部133は、類似情報SLTのうち、最も高い指標値を判定用指標値として決定してもよい。例えば、決定部133は、類似情報SLTのうち、最も低い指標値を判定用指標値として決定してもよい。例えば、決定部133は、類似情報SLTのうち、最もコンテンツXに類似するコンテンツの指標値を判定用指標値として決定してもよい。
【0128】
(検索部134)
検索部134は、各種情報を検索する。例えば、検索部134は、取得部131により取得された情報を用いて、各種情報を検索する。例えば、検索部134は、各種情報を抽出する。例えば、検索部134は、取得部131により取得された情報を用いて、各種情報を抽出する。例えば、検索部134は、各種判定処理を行う。例えば、検索部134は、取得部131により取得された情報を用いて、各種情報を判定する。例えば、検索部134は、記憶部120に記憶された各種情報を検索する。例えば、取得部131は、コンテンツ情報記憶部121や、インデックス情報記憶部122や、グラフ情報記憶部123や、モデル情報記憶部124等に記憶された各種情報を検索する。例えば、検索部134は、各種情報を用いて算出処理を行う。例えば、検索部134は、ベクトルに関する情報を用いて、ベクトル間の距離を算出する。例えば、検索部134は、グラフ情報記憶部123に記憶された各ノード(ベクトル)間を連結するエッジの長さ(距離)の情報を用いてもよいし、各ノードのベクトル情報から各ノード(ベクトル)間を連結するエッジの長さ(距離)の情報を算出し、算出した長さ(距離)の情報を用いてもよい。
【0129】
検索部134は、取得部131により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数のコンテンツのうち、一のコンテンツと類似するコンテンツである類似コンテンツを抽出する。検索部134は、決定部133により決定された起点ノードを起点として、類似コンテンツを抽出する。
【0130】
検索部134は、取得部131により取得された流行情報に基づいて、一のコンテンツが流行するかどうかを判定する。検索部134は、類似コンテンツの指標値が所定の基準を満たす場合、一のコンテンツを流行する可能性がある流行コンテンツであると判定する。検索部134は、類似コンテンツの指標値と所定の閾値とを比較し、類似コンテンツの指標値が所定の閾値以上である場合、一のコンテンツを流行コンテンツであると判定する。
【0131】
検索部134は、取得部131により取得されたグラフ情報の複数のベクトルのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ベクトルを起点としてグラフ情報を検索することにより、複数のコンテンツのうち、一のコンテンツに類似するコンテンツである類似コンテンツを抽出する。検索部134は、各種情報を抽出する。例えば、検索部134は、決定部133により決定された起点ベクトルを起点としてグラフ情報を検索することにより、複数のコンテンツのうち、一のコンテンツに類似するコンテンツである類似コンテンツを抽出する。
【0132】
検索部134は、取得部131により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、一のコンテンツが複数のコンテンツに含まれるかどうかを判定する。検索部134は、決定部133により決定された起点ノードを起点として、一のコンテンツが複数のコンテンツに含まれるかどうかを判定する。
【0133】
図1の例では、検索部134は、コンテンツXに類似するコンテンツを検索する。例えば、検索部134は、グラフ情報GR11を検索することにより、コンテンツXの類似コンテンツを抽出する。検索部134は、ノードN451の近傍に位置するノードを類似コンテンツとして抽出する。例えば、検索部134は、ノードN451からの距離が近いノードを類似コンテンツとして抽出する。例えば、検索部134は、ノードN451を起点として、エッジを辿ることにより、ノードN451から到達可能なノードを類似コンテンツとして抽出する。例えば、検索部134は、所定数(例えば、2個や10個等)のノードを類似コンテンツとして抽出する。例えば、検索部134は、
図11に示すような検索処理により、コンテンツXの類似コンテンツを抽出する。
図1の例では、検索部134は、ノードN451を起点として、グラフ情報GR11を探索することにより、ノードN451やノードN35を類似コンテンツとして抽出する。
【0134】
図1の例では、検索部134は、判定用指標値を用いて判定処理を行う。検索部134は、決定部133により決定された判定用指標値を用いて判定処理を行う。例えば、検索部134は、判定用指標値と所定の閾値との比較により、コンテンツXが流行するかどうかを判定する。例えば、検索部134は、判定用指標値が所定の閾値以上である場合、コンテンツXが流行すると判定する。例えば、検索部134は、判定用指標値が所定の閾値未満である場合、コンテンツXが流行しないと判定する。
【0135】
図1の例では、検索部134は、判定用指標値DVL11と所定の閾値TH11とを比較し、判定用指標値DVL11が所定の閾値TH11以上であると判定する。この場合、検索部134は、判定用指標値DVL11が所定の閾値TH11以上であるという基準を満たすため、流行判定結果DRSに示すように、コンテンツXが流行すると判定する。例えば、検索部134は、判定用指標値DVL11が所定の閾値TH11未満であると判定した場合、コンテンツXが流行しないと判定する。
【0136】
(提供部135)
提供部135は、各種情報を提供する。例えば、提供部135は、端末装置10や情報提供装置50に各種情報を送信する。例えば、提供部135は、端末装置10や情報提供装置50に各種情報を配信する。例えば、提供部135は、端末装置10や情報提供装置50に各種情報を提供する。提供部135は、検索部134により抽出された類似コンテンツに基づいて、所定のサービスを提供する。また、提供部135は、類似コンテンツに関する情報提供サービスを提供する。提供部135は、端末装置10に類似コンテンツに関する情報を提供する。
【0137】
提供部135は、検索部134により抽出された類似コンテンツに基づいて、所定のサービスを提供する。提供部135は、端末装置10に所定のサービスを提供する。提供部135は、類似コンテンツに関する情報提供サービスを提供する。
【0138】
例えば、提供部135は、クエリに対応するオブジェクトIDを検索結果として提供する。例えば、提供部135は、検索部134により選択されたオブジェクトIDを情報提供装置50へ提供する。提供部135は、検索部134により選択されたオブジェクトIDをクエリに対応するベクトルを示す情報として情報提供装置50に提供する。また、提供部135は、生成部132により生成されたモデルを外部の情報処理装置へ提供してもよい。
【0139】
例えば、提供部135は、判定結果に基づいてサービスを提供する。
図1の例では、提供部135は、コンテンツXが流行する可能性があるコンテンツ(流行コンテンツ)であることを示す情報(流行判定情報)を端末装置10に提供する。例えば、提供部135は、コンテンツXが流行コンテンツであることを示す流行判定情報を端末装置10に送信する。例えば、提供部135は、コンテンツXが流行しない可能性が高いことを示す流行判定情報を端末装置10に送信する。
【0140】
〔4.情報処理のフロー〕
次に、
図8を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。
図8は、実施形態に係る情報処理の一例を示すフローチャートである。
【0141】
図8に示すように、情報処理装置100は、一のコンテンツに関するコンテンツ情報を取得する(ステップS101)。
図1の例では、情報処理装置100は、端末装置10からコンテンツXに関するコンテンツ情報CDT11を取得する。
【0142】
情報処理装置100は、複数のコンテンツに関するグラフ情報を取得する(ステップS102)。例えば、情報処理装置100は、グラフ情報記憶部123からコンテンツに関するグラフ情報GR11を取得する。
【0143】
そして、情報処理装置100は、モデルを用いて一のコンテンツに関するコンテンツ情報からベクトルを生成する(ステップS103)。
図1の例では、情報処理装置100は、モデル情報記憶部124に記憶されたモデルM1を用いて、コンテンツ情報CDT11からベクトルVD11を生成する。
【0144】
そして、情報処理装置100は、生成したベクトルとインデックス情報を用いて起点ベクトルを決定する(ステップS104)。
図1の例では、情報処理装置100は、ベクトルVD11と、インデックス情報記憶部122に記憶されたインデックス情報IND11とを用いて、起点ベクトルをノードN451に決定する。
【0145】
そして、情報処理装置100は、グラフ情報を検索することにより、一のコンテンツと類似する類似コンテンツを抽出する(ステップS105)。例えば、情報処理装置100は、グラフ情報を検索することにより、一のコンテンツと類似するコンテンツを類似コンテンツとして抽出する。
【0146】
そして、情報処理装置100は、類似コンテンツに基づいてサービスを提供する(ステップS106)。
図1の例では、情報処理装置100は、類似コンテンツとして抽出されたコンテンツ#451やコンテンツ#35の情報に基づいて、コンテンツXが流行するかどうかの判定結果を示す情報提供サービスを行う。
【0147】
〔5.生成処理のフロー〕
次に、
図9を用いて、実施形態に係る情報処理システム1による生成処理の手順について説明する。
図9は、実施形態に係る生成処理の一例を示すフローチャートである。
【0148】
図9に示すように、情報処理装置100は、学習データを取得する(ステップS201)。例えば、情報処理装置100は、コンテンツ情報記憶部121から学習データを取得する。例えば、情報処理装置100は、コンテンツ情報記憶部121からコンテンツ情報CDT1、CDT2等を学習データとして取得する。
【0149】
その後、情報処理装置100は、学習データに基づきモデルを生成する(ステップS202)。例えば、情報処理装置100は、コンテンツ情報記憶部121から学習データを用いてモデルM1を生成する。例えば、情報処理装置100は、入力層に入力される情報(コンテンツ情報)と同様の情報(コンテンツ情報)を出力層から出力するようにモデルM1を生成する。例えば、情報処理装置100は、コンテンツのコンテンツ情報を入力とするオートエンコーダとしてのモデルM1を生成する。
【0150】
〔6.検索例〕
ここで、上述したグラフ情報を用いた検索の一例を示す。なお、グラフ情報(グラフデータ)を用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、
図11を一例として説明する。
図11は、グラフデータ(グラフ情報)を用いた検索処理の一例を示すフローチャートである。以下に説明する検索処理は、例えば情報処理装置100の検索部134によって行われる。また、以下でいうオブジェクトは、ベクトルやノードと読み替えてもよい。なお、以下では、情報処理装置100が検索処理を行うものとして説明するが、検索処理は他の装置により行われてもよい。例えば、情報処理装置100は、検索クエリとして、一のコンテンツのコンテンツ情報から生成されたベクトルデータを用いる。例えば、情報処理装置100は、一のコンテンツのコンテンツ情報から生成されたベクトルデータとインデックス情報とに基づいて決定された起点ベクトルを起点としてグラフデータを検索する。
図1の例では、情報処理装置100は、コンテンツXのベクトルVD11とインデックス情報IND11とに基づいて決定された起点ベクトルであるノードN451を起点としてグラフ情報GR11を検索する。
【0151】
ここでは、近傍オブジェクト集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「G」は、所定のグラフデータ(例えば、グラフ情報GR11等)であってもよい。例えば、情報処理装置100は、k近傍検索処理を実行する。
【0152】
例えば、情報処理装置100は、超球の半径rを∞(無限大)に設定し(ステップS300)、既存のオブジェクト集合から部分集合Sを抽出する(ステップS301)。例えば、情報処理装置100は、ルートノード(起点ベクトル)として選択されたオブジェクト(ノード)を部分集合Sとして抽出してもよい。
図1の例では、情報処理装置100は、起点ベクトルであるノードN451等を部分集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS301において抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Rの初期集合にも含められる。
【0153】
次に、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS302)。
図1の例では、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトであるベクトルVD11との距離が最も短いオブジェクトを抽出し、オブジェクトsとする。例えば、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、ベクトルVD11との距離が最も短いノードN451を抽出し、オブジェクトsとする。例えば、情報処理装置100は、ルートノード(起点ベクトル)として選択されたオブジェクト(ノード)のみがオブジェクト集合Sの要素の場合には、結果的にルートノード(起点ベクトル)がオブジェクトsとして抽出される。次に、情報処理装置100は、オブジェクトsをオブジェクト集合Sから除外する(ステップS303)。
【0154】
次に、情報処理装置100は、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)をこえる(超える)か否かを判定する(ステップS304)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合(ステップS304:Yes)、情報処理装置100は、オブジェクト集合Rをオブジェクトyの近傍オブジェクト集合として出力し(ステップS305)、処理を終了する。
【0155】
オブジェクトsと検索クエリオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合(ステップS304:No)、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトの中からオブジェクト集合Cに含まれないオブジェクトを一つ選択し、選択したオブジェクトuを、オブジェクト集合Cに格納する(ステップS306)。オブジェクト集合Cは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定される。
【0156】
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS307)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップS307:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Sに追加する(ステップS308)。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下ではない場合(ステップS307:No)、情報処理装置100は、ステップS309の判定(処理)を行う。
【0157】
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS309)。オブジェクトuとオブジェクトyとの距離d(u,y)がrをこえる場合(ステップS309:No)、情報処理装置100は、ステップS315の判定(処理)を行う。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下ではない場合(ステップS309:No)、情報処理装置100は、ステップS315の判定(処理)を行う。
【0158】
オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS309:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Rに追加する(ステップS310)。そして、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksをこえるか否かを判定する(ステップS311)。所定数ksは、任意に定められる自然数である。例えば、ks=2やks=10等の種々の設定であってもよい。オブジェクト集合Rに含まれるオブジェクト数がksを超えない場合(ステップS311:No)、情報処理装置100は、ステップS313の判定(処理)を行う。
【0159】
オブジェクト集合Rに含まれるオブジェクト数がksをこえる場合(ステップS311:Yes)、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトを、オブジェクト集合Rから除外する(ステップS312)。
【0160】
次に、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS313)。オブジェクト集合Rに含まれるオブジェクト数がksと一致しない場合(ステップS313:No)、情報処理装置100は、ステップS315の判定(処理)を行う。また、オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合(ステップS313:Yes)、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS314)。
【0161】
そして、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(ステップS315)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合(ステップS315:No)、情報処理装置100は、ステップS306に戻って処理を繰り返す。
【0162】
オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合(ステップS315:Yes)、情報処理装置100は、オブジェクト集合Sが空集合であるか否かを判定する(ステップS316)。オブジェクト集合Sが空集合でない場合(ステップS316:No)、情報処理装置100は、ステップS302に戻って処理を繰り返す。また、オブジェクト集合Sが空集合である場合(ステップS316:Yes)、情報処理装置100は、オブジェクト集合Rを出力し、処理を終了する(ステップS317)。例えば、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を行った端末装置10等へ提供してもよい。
図1の例では、情報処理装置100は、オブジェクト集合Rに含まれるノードN451やノードN35を検索クエリ(コンテンツXのベクトルVD11)に対応する検索結果として、検索を行った端末装置10等へ提供してもよい。例えば、情報処理装置100は、ノードN451に対応するコンテンツ#451や、ノードN35に対応するコンテンツ#35をコンテンツXに類似するコンテンツとしてユーザU1が利用する端末装置10に提供する。
【0163】
〔7.効果〕
上述してきたように、実施形態に係る情報処理装置100は、取得部131と、検索部134とを有する。取得部131は、複数のコンテンツの各々に対応する複数のノードが、複数のコンテンツの類似性に応じて連結されたグラフ情報と、一のコンテンツに関するコンテンツ情報を取得する。検索部134は、取得部131により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数のコンテンツのうち、一のコンテンツと類似するコンテンツである類似コンテンツを抽出する。
【0164】
このように、実施形態に係る情報処理装置100は、起点ベクトルを起点としてグラフ情報を検索することにより、複数のコンテンツのうち、一のコンテンツに類似のコンテンツである類似コンテンツを適切に抽出することができる。
【0165】
また、実施形態に係る情報処理装置100は、決定部133を有する。決定部133は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。検索部134は、決定部133により決定された起点ノードを起点として、類似コンテンツを抽出する。
【0166】
このように、実施形態に係る情報処理装置100は、起点ベクトルの決定に用いるインデックス情報に基づいて、起点ベクトルを決定することにより、類似のコンテンツを適切に抽出することができる。
【0167】
また、実施形態に係る情報処理装置100において、決定部133は、木構造型のインデックス情報に基づいて、起点ベクトルを決定する。
【0168】
このように、実施形態に係る情報処理装置100は、木構造型のインデックス情報に基づいて、起点ベクトルを決定することにより、類似のコンテンツを適切に抽出することができる。
【0169】
また、実施形態に係る情報処理装置100において、取得部131は、複数のコンテンツの各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
【0170】
このように、実施形態に係る情報処理装置100は、複数のコンテンツの各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得することにより、類似のコンテンツを適切に抽出することができる。
【0171】
また、実施形態に係る情報処理装置100において、取得部131は、所定のモデルを用いて複数のコンテンツの各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
【0172】
このように、実施形態に係る情報処理装置100は、所定のモデルを用いて複数のコンテンツの各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得することにより、類似のコンテンツを適切に抽出することができる。
【0173】
また、実施形態に係る情報処理装置100において、取得部131は、複数のコンテンツに関する情報を所定のモデルに入力することにより、抽出される複数のコンテンツの各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
【0174】
このように、実施形態に係る情報処理装置100は、複数のコンテンツに関する情報を所定のモデルに入力することにより、抽出される複数のコンテンツの各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得することにより、類似のコンテンツを適切に抽出することができる。
【0175】
また、実施形態に係る情報処理装置100において、取得部131は、類似コンテンツの流行に関する流行情報を取得する。検索部134は、取得部131により取得された流行情報に基づいて、一のコンテンツが流行するかどうかを判定する。
【0176】
このように、実施形態に係る情報処理装置100は、類似コンテンツの流行に関する流行情報に基づいて、一のコンテンツが流行するかどうかを判定することにより、一のコンテンツが流行するかどうかを適切に判定することができる。
【0177】
また、実施形態に係る情報処理装置100において、取得部131は、類似コンテンツの流行に関する指標値を示す流行情報を取得する。検索部134は、類似コンテンツの指標値が所定の基準を満たす場合、一のコンテンツを流行する可能性がある流行コンテンツであると判定する。
【0178】
このように、実施形態に係る情報処理装置100は、類似コンテンツの指標値が所定の基準を満たす場合、一のコンテンツを流行する可能性がある流行コンテンツであると判定することにより、一のコンテンツが流行するかどうかを適切に判定することができる。
【0179】
また、実施形態に係る情報処理装置100において、検索部134は、類似コンテンツの指標値と所定の閾値とを比較し、類似コンテンツの指標値が所定の閾値以上である場合、一のコンテンツを流行コンテンツであると判定する。
【0180】
このように、実施形態に係る情報処理装置100は、類似コンテンツの指標値と所定の閾値とを比較し、類似コンテンツの指標値が所定の閾値以上である場合、一のコンテンツを流行コンテンツであると判定することにより、一のコンテンツが流行するかどうかを適切に判定することができる。
【0181】
また、実施形態に係る情報処理装置100は、提供部135を有する。提供部135は、検索部134により抽出された類似コンテンツに基づいて、所定のサービスを提供する。
【0182】
このように、実施形態に係る情報処理装置100は、抽出した類似コンテンツに基づいて、所定のサービスを提供することにより、類似のコンテンツに関する情報を用いたサービスを適切に提供することができる。
【0183】
また、実施形態に係る情報処理装置100において、取得部131は、ユーザが利用する端末装置から一のコンテンツに関するコンテンツ情報を取得する。提供部135は、端末装置10に所定のサービスを提供する。
【0184】
このように、実施形態に係る情報処理装置100は、ユーザが利用する端末装置10から一のコンテンツに関するコンテンツ情報を取得し、端末装置10に所定のサービスを提供することにより、類似のコンテンツに関する情報を用いたサービスを適切に提供することができる。
【0185】
また、実施形態に係る情報処理装置100において、提供部135は、類似コンテンツに関する情報提供サービスを提供する。
【0186】
このように、実施形態に係る情報処理装置100は、類似コンテンツに関する情報提供サービスを提供することにより、類似のコンテンツに関する情報を用いたサービスを適切に提供することができる。
【0187】
〔8.ハードウェア構成〕
上述してきた実施形態に係る情報処理装置100は、例えば
図13に示すような構成のコンピュータ1000によって実現される。
図13は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
【0188】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0189】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
【0190】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
【0191】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0192】
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムまたはデータ(例えば、モデルM1(モデルデータMDT1))を実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムまたはデータ(例えば、モデルM1(モデルデータMDT1))を記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
【0193】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0194】
〔9.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0195】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0196】
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0197】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【0198】
1 情報処理システム
100 情報処理装置
121 コンテンツ情報記憶部
122 インデックス情報記憶部
123 グラフ情報記憶部
124 モデル情報記憶部
130 制御部
131 取得部
132 生成部
133 決定部
134 検索部
135 提供部
10 端末装置
50 情報提供装置
N ネットワーク