【文献】
白賀 昌宏、外4名,大学サイトモチーフの類似度ネットワークによる分析法,第3回データ工学と情報マネジメントに関するフォーラム 論文集,日本,電子情報通信学会データ工学専門委員会,2011年 8月 4日
(58)【調査した分野】(Int.Cl.,DB名)
ノードシーケンス生成部は、前記第1ネットワーク情報と前記第2ネットワーク情報とのそれぞれに含まれるノードを並べて構成されるノードシーケンスであって、前記重みスコア算出部が算出した重みスコアに応じて設定されたノード間の類似度に基づく遷移確率にしたがって2以上のノードが並べられたノードシーケンスを生成する、
請求項1又は2に記載の情報処理装置。
前記ノードシーケンス生成部は、前記第1ネットワーク情報に含まれるノードを構成要素とする完全グラフである第1完全グラフと、前記第2ネットワーク情報に含まれるノードを構成要素とする完全グラフである第2完全グラフと、前記第1完全グラフに含まれるノードと前記第2完全グラフに含まれるノードとを接続するパスとを生成し、前記第1完全グラフ内のノード間の遷移確率、前記第2完全グラフ内のノード間の遷移確率、及び前記第1完全グラフのノードと前記第2完全グラフのノードとの間の遷移確率にしたがってノードシーケンスを生成する、
請求項1から3のいずれか一項に記載の情報処理装置。
前記ノードシーケンス生成部が生成した複数のノードシーケンスそれぞれを構成する各ノードを、当該ノードの重みスコアに置き換えたシーケンスの集合であるノードスコアシーケンス群を生成してノードスコアシーケンスを比較し、類似するノードシーケンス同士の組み合わせを構成するノードシーケンス比較部をさらに有し、
前記学習用コーパス登録部は、前記第1ネットワーク情報と前記第2ネットワーク情報とのそれぞれから得られた2つの異なるノードシーケンス群と、前記ノードシーケンス比較部において紐づけられたノードシーケンス群とから構成される学習用コーパスを登録する、
請求項1に記載の情報処理装置。
前記ノードシーケンス比較部は、前記第1ネットワーク情報に由来するノードスコアシーケンスと、前記第2ネットワーク情報に由来するノードスコアシーケンスとを比較する、
請求項7に記載の情報処理装置。
前記ベクトル生成部は、前記組み合わせシーケンス生成部が生成したノードシーケンスを連結してできる新たなノードシーケンスを構成する各ノードを単語とみなし、Skip−gramモデルを用いて各ノードの特徴ベクトルを生成する、
請求項7又は8に記載の情報処理装置。
【発明を実施するための形態】
【0021】
<第1の実施の形態の概要>
第1の実施の形態の概要を述べる。第1の実施の形態に係る情報処理装置は、互いに異なるネットワークを構成する各ノードに、同じ基準で特徴ベクトルを割り当てる。ここで、「ノードの特性を示す特徴ベクトル」とは、ネットワークにおける「他のノードとの接続関係」を示すベクトルである。
【0022】
例えば、情報処理装置は、ネットワークの中心に位置し、多くの他のノードと接続するノード同士の特徴ベクトルは類似し、多くの他のノードと接続するノードの特徴ベクトルと、他のノードとの接続が少ないノードの特徴ベクトルとは非類似の関係を示すように、特徴ベクトルを算出する。同様に、情報処理装置は、ネットワークに端部に位置し、接続する他のノードの数が少ないノード同士の特徴ベクトルは類似し、ネットワークの中心に位置するノードの特徴ベクトルとは非類似となるように、特徴ベクトルを算出する。
【0023】
したがって、あるノード間のホップ数が小さい場合であっても、情報処理装置が算出するそれらのノードの特徴ベクトルが必ずしも類似するわけではない。反対に、遠く離れたノード同士又は異なるネットワークに属するノード同士であっても、他のノードとの接続関係が類似していれば、情報処理装置は類似する特徴ベクトルを算出する。
【0024】
図1は、異なるネットワーク及び各ノードの特徴量を説明するための図ある。具体的には、
図1は、それぞれaからfまでの6つの文字が付された6つのノードから構成される第1ネットワークと、1から4までの文字が付された4つのノードから構成される第2ネットワークとを示している。なお、以下本明細書において、各文字が付されたノードをその文字で表記することがある。例えば、文字「a」が付されたノードを「ノードa」と表記し、文字「3」が付されたノードを「ノード3」等と表記することがある。
【0025】
まず、情報処理装置は、第1ネットワークの接続関係及び第2ネットワークの接続関係に基づいて、各ネットワークを構成するノードを要素とする多数のノードシーケンスを生成する。詳細は後述するが、情報処理装置は、各ノードシーケンスにおいて隣り合うノード同士は、接続関係が類似するノードとなる確率が高くなるように、各ノードシーケンスを生成する。
【0026】
次に、情報処理装置は、生成した各ノードシーケンスをそれぞれ「文」とみなし、「Word2Vec」という名前で知られる既知の自然言語処理技術を用いて、特徴ベクトルを生成する。
【0027】
既知の技術であるため詳細な説明は省略するが、Word2Vecは、文を構成する単語、すなわち、ノードシーケンスを構成する各ノードをベクトル化して表現する手法である。Word2Vecは2層のニューラルネットワークから構成されており、隠れ層は単層である。Word2Vecは、「同じ文脈の中にある単語はお互いに近い意味を持っている」という仮定に基づいて設計されている。言い換えると、Word2Vecは、文の中で似た意味の単語はお互いに近くに出現する可能性が高いことを前提としている。
【0028】
この前提に立ち、Word2Vecは、学習を進めることにより、文(すなわち、ノードシーケンス)においてお互いに近くに存在する単語(ノード)に近しい方向の特徴ベクトルを割り当てるように設計されている。
【0029】
したがって、情報処理装置は、1又は複数のネットワークを構成するノードの接続関係が似たノードが近くに現れるようにノードシーケンスを生成することができれば、Word2Vecの枠組みを利用することにより、類似の接続関係を持つノードに近しい方向の特徴ベクトルを割り当てることができる。
【0030】
第1の実施の形態に係る情報処理装置は、ネットワークを構成する各ノードが接続する他のノードの数に基づいて算出された各ノードの類似度に基づいてノードを選択し、ノードシーケンスを構成する。情報処理装置は、複数の異なるネットワークを構成する各ノードを要素に含むノードシーケンス群を学習コーパスとして設定し、Word2Vecの手法を用いて各ノードの特徴ベクトルを算出する。学習コーパスに含まれるノードシーケンスは、類似の接続関係を持つノード近くに現れるノードシーケンスであるため、結果として、情報処理装置は、複数の異なるネットワークそれぞれを構成する各ノードに、統一した特徴ベクトルを割り当てることができる。
【0031】
<第1の実施の形態に係る情報処理装置1の機能構成>
図2は、第1の実施の形態に係る情報処理装置1の機能構成を模式的に示す図である。情報処理装置1は、記憶部2と制御部3とを備える。
【0032】
記憶部2は、情報処理装置1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)や情報処理装置1の作業領域となるRAM(Random Access Memory)、OS(Operating System)やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置である。
【0033】
制御部3は、情報処理装置1のCPU(Central Processing Unit)やGPU(Graphics Processing Unit)等のプロセッサであり、記憶部2に記憶されたプログラムを実行することによってネットワーク情報取得部30、重みスコア算出部31、ノードシーケンス生成部32、学習用コーパス登録部33、及びベクトル生成部34として機能する。
【0034】
なお、
図2は、情報処理装置1が単一の装置で構成されている場合の例を示している。しかしながら、情報処理装置1は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、記憶部2を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
【0035】
ネットワーク情報取得部30は、複数のノード及び各ノード間の接続関係から構成されるネットワーク情報を取得する。ネットワーク情報取得部30が取得するネットワーク情報は情報処理装置1が解析の対象とするネットワークに関する情報であり、記憶部2が保持している。
【0036】
重みスコア算出部31は、ネットワーク情報取得部30が取得した第1ネットワーク情報と、第1ネットワーク情報とは異なる第2ネットワーク情報と、のそれぞれについて、各ノードが接続する他のノードの数に基づいて各ノードの重みスコアを算出する。
【0037】
図3(a)−(f)は、第1の実施の形態に係る重みスコア算出部31が算出する重みスコアを説明するための図である。具体的には、
図3(a)は
図1における第1ネットワークを示す図であり、
図3(b)は第1ネットワークを構成する各ノードについて、他のノードとの接続数を表形式で示す図である。例えば、
図3(a)において、ノードdはノードa、ノードb、及びノードeの3つのノードと接続しているため、接続数は3となる。
【0038】
図3(c)は、第1ネットワークを構成する各ノードの接続数に基づいて、重みスコア算出部31が算出した重みスコアWを表形式で示す図である。重みスコア算出部31は、他のノードとの接続数が多いノードは、他のノードとの接続数が少ないノードよりも大きな重みスコアを割り当る。具体的には、重みスコア算出部31は、ネットワークを構成する全てのノードの接続数の総和に対する各ノードの接続数の割合を、ノードの重みスコアWとする。接続数は、1ホップで接続(いわゆる隣接)しているノード数でもよいし、k(≧1)ホップで接続しているノード数でも構わない。以下の例は、1ホップで接続(いわゆる隣接)しているノード数とした場合を示す。
【0039】
例えば、第1ネットワークを構成するノードの接続数の総和は、
図3(b)より、10(1+2+1+3+2+1)である。したがって、重みスコア算出部31は、例えばノードaの重みスコアW(a)を、1/10=0.1と算出する。また、重みスコア算出部31は、ノードeの重みスコアW(e)を、2/10=0.2と算出する。以下同様である。
【0040】
図3(d)は
図1における第2ネットワークを示す図であり、
図3(e)は第2ネットワークを構成する各ノードについて、他のノードとの接続数を表形式で示す図である。また、
図3(f)は、第2ネットワークを構成する各ノードの接続数に基づいて、重みスコア算出部31が算出した重みスコアWを表形式で示す図である。
【0041】
図2の説明に戻る。ノードシーケンス生成部32は、重みスコア算出部31が算出した重みスコアに応じて、ノード間の類似度を設定する。続いて、ノードシーケンス生成部32は、第1ネットワーク情報に含まれるノードと第2ネットワーク情報に含まれるノードとの中から1つの初期ノードを取り出す。ノードシーケンス生成部32は、設定した類似度にしたがって、初期ノードに類似する類似ノードを取り出す。さらに、ノードシーケンス生成部32は、初期ノードと類似ノードとが並べられたノードの配列であるノードシーケンスを生成する。
【0042】
ノードシーケンス生成部32は、類似ノードを新たな初期ノードとみなし、さらに類似ノードを取り出す。これを繰り返すことにより、ノードシーケンス生成部32は、第1ネットワーク情報に含まれるノードと第2ネットワーク情報に含まれるノードとを並べて構成されるノードシーケンスを生成する。
【0043】
図4は、第1の実施の形態に係るノードシーケンス生成部32によるノードシーケンスの生成を説明するための図である。ノードシーケンス生成部32は、ノード間に設定された類似度にしたがってノードを遷移し、遷移したノードを並べることによってノードシーケンスを生成する。このとき、ノードシーケンス生成部32は、異なるネットワークにおけるノードにも遷移するように、異なるネットワークにおけるノード同士にも類似度を設定している。
【0044】
図4は、
図1に示す第1ネットワークと第2ネットワークとの間の遷移を示す図である。ノードシーケンス生成部32は、
図4に示すように、「ステージ1」と「ステージ2」との2つの状態を行き来しながら、第1ネットワークのノードと第2ネットワークのノートとの間を遷移する。
【0045】
ステージ1は、
図1に示す第1ネットワーク及び第2ネットワークの接続関係を保っているグラフである。これに対し、ステージ2は、各ネットワークを構成する全てのノードが接続された完全グラフである。具体的には、ノードシーケンス生成部32は、第1ネットワーク情報に含まれるノードを構成要素とする完全グラフである第1完全グラフと、第2ネットワーク情報に含まれるノードを構成要素とする完全グラフである第2完全グラフとを生成する。さらに、ノードシーケンス生成部32は、第1完全グラフに含まれるノードと第2完全グラフに含まれるノードとを接続するパスも生成する。
【0046】
ノードシーケンス生成部32は、ノードがステージ1の状態のときは、接続関係を有するノードにのみ遷移できるが、ノードがステージ2の状態のときは、ノード間の類似度に応じて設定される遷移確率にしたがって、あらゆるノードに遷移することができる。
【0047】
図4において、ステージ1の全ての各ノードはステージ2の対応するノードに遷移することができ、逆も同様である。また、ステージ2の全ての各ノードは、ネットワークの異同を問わず、他のノードに遷移することができる。例えば
図4において、ステージ1における第1ネットワークの要素であるノードbは、同じ第1ネットワークにおけるノードc又はノードdに遷移することができる。また、ステージ1におけるノードbは、ステージ2におけるノードbに遷移することもできる。
【0048】
図4において、同1つネットワーク内の遷移は実線で示し、ステージ間の遷移は破線で示し、異なるネットワーク間の遷移は一点鎖線で示している。なお、煩雑となりかえって不明瞭となることを避けるため、
図4において、ステージ間の遷移及びネットワーク間の遷移はノードbについてのみ示しているが、他のノードについても同様に遷移することができる。
【0049】
例えば、ノードシーケンス生成部32が、初期ノードとしてステージ1のノードcを選択したとする。ノードシーケンス生成部32は、まずステージ1のノードcに設定されたステージ遷移確率にしたがい、ステージを遷移するか否かを決定する。この結果、ノードcはステージを維持することになった場合、ノードcはノードbにしか遷移できない(すなわち、遷移確率は100%)であるため、遷移先のノードである上述した類似ノードは、ステージ1のノードbとなる。
【0050】
続いて、ノードシーケンス生成部32は、ノードbを新たな初期ノードとし、ノードbに設定されたステージ遷移確率にしたがい、ステージを遷移するか否かを決定する。この結果、ステージ2に遷移することになった場合、ノードシーケンス生成部32は、ステージ2のノードbに設定された各ノードとの類似度にしたがって、遷移先のノードを決定する。ステージ2においては、ノードシーケンス生成部32は、実際のネットワークの構造に関係なく全てのノードと遷移することができるので、結果として類似度の高いノードに遷移することが多くなる。
【0051】
このように、ステージ1においては、ノードシーケンス生成部32によるノードの遷移は元のネットワークの構造に規制される。これにより、ノードシーケンス生成部32は、生成するノードシーケンスに元のネットワークの構造を反映させることができる。一方、ステージ2においては、ノードシーケンス生成部32は、ネットワークの異同及びネットワークにおけるノードの遠近関係に関わらず、類似度にしたがってノードを遷移させることができる。
【0052】
言い換えると、ノードシーケンス生成部32は、ステージ2において、第1完全グラフ内のノード間の遷移確率、第2完全グラフ内のノード間の遷移確率、及び第1完全グラフのノードと第2完全グラフのノードとの間の遷移確率にしたがってノードシーケンスを生成する。これにより、ノードシーケンス生成部32は、異なるネットワークであっても、ノードの局所的な性質である接続関係に基づいてノードを遷移させることができる。結果として、ノードシーケンス生成部32は、異なるネットワークを構成するノードを、統一の基準に基づいて選択して並べたノードシーケンスを生成することができる。
【0053】
以下、ステージ遷移確率と類似度、及びノード遷移確率についてより詳細に説明する。
【0054】
図5(a)−(b)は、第1の実施の形態に係るノードシーケンス生成部32によるノード選択のパラメータを説明するための図である。具体的には、
図5(a)は、
図1における第1ネットワークを構成するノードと第2ネットワークを構成するノードとのステージ遷移確率を表形式で示す図である。
【0055】
ステージ遷移確率は、ステージ上昇確率とステージ降下確率とを含んでいる。
図5(a)に示すように、ノードシーケンス生成部32は、重みスコアWが大きいほど、すなわちネットワークにおいて接続数が多いノードほどステージ上昇確率が大きくなるように設定している。
【0056】
具体的には、ノードシーケンス生成部32は、重みスコアがWであるノード1のステージ上昇確率Puを以下の式(1)で算出する。
Pu=log(W
k(1)*|V|+e)/{d+log(W
k(1)*|V|+e)} (1)
【0057】
ただし、式(1)において、kはステージの段数を表す。ステージがホップ数に応じて多段になっている場合は、ホップ数を表す。また、dは任意の定数(例えば1)、|V|はネットワークを構成するノードの数を表す。log(x)はxの自然対数関数、eは自然対数の底を表す。eはlog()内のその他の項が0であったとしてもlog()の出力が1となるように底上げするために足されている。
【0058】
また、ステージ降下確率Pdは、以下の式(2)となる。
Pd=1−Pu (2)
【0059】
なお、ノードシーケンス生成部32は、各ノードの遷移に先立ってステージ間の遷移を判定するが、あるノードがステージ2にあるときにステージ上昇が判定された場合、そのノードはステージ2にとどまることを意味する。また、あるノードがステージ1にあるときにノードシーケンス生成部32によってステージ下降が判定された場合、そのノードはステージ1にとどまることを意味する。
【0060】
このことは、ステージ上昇確率が0.5(50%)を超えるノード(すなわち、重みスコアWが他のノードと比べて相対的に大きいノード)は、ステージ1よりもステージ2に存在する頻度が高くなる。結果として、重みスコアWが他のノードと比べて相対的に大きいノードは、小さいノードと比較して、異なるネットワークに遷移する可能性が高まる。
【0061】
図5(b)は、
図1における第1ネットワークを構成するノードと第2ネットワークを構成するノードとの間の類似度を表形式で示す図である。ノードシーケンス生成部32は、ノード間の重みスコアWの値が近いほど、類似度が大きくなるように類似度を算出する。具体的には、ノードシーケンス生成部32は、重みスコアがW(i)であるノードと、重みスコアがW(j)であるノードとの間の類似度S
ijを、以下の式(3)で算出する。
【0062】
S
ij=exp(−c|W(i)−W(j)|) (3)
ここでexp(x)はxの指数関数を表し、|x|はxの絶対値を表す。また、cはスケーリングファクターであり、0より大きい実数である。
図5(b)はc=1.0の場合を示している。なお、式(3)の絶対値に変えて、二乗値にしても構わない。
【0063】
例えば、第1ネットワークのノードfの重みスコアW(f)は0.1であり、第2ネットワークのノード1の重みスコアW(1)は0.17である。したがって、ノードfとノード1との類似度S
f1は、S
f1=exp(−|0.1−0.17|)=0.93となる。
【0064】
図6(a)−(b)は、第1の実施の形態に係るノードシーケンス生成部32が算出するノード間の遷移確率を示す図である。具体的には、
図6(a)はステージ1におけるノード間の遷移確率を示し、
図6(b)はステージ2におけるノード間の遷移確率を示す。ノードシーケンス生成部32は、各ノードから遷移可能な他のノードとの類似度に基づいて、各ノードから他のノードへの遷移確率を設定する。具体的には、ノードシーケンス生成部32は、各ノードから遷移可能な他のノードへの遷移確率を、ノード間の類似度に応じて配分する。
【0065】
なお、同一ネットワーク内でのノード間の遷移の場合は、式(3)を以下の式(3)’に置き換えてもよい。
S
ij=exp(−cf
k(i,j)) (3)’
【0066】
式(3)’において、f
k(i,j)はネットワークごとに定義され、同一ネットワーク内でノードiに対応する近傍ノード次数集合iとノードjに対応する近傍ノード次数集合jの間の距離を表す。式(3)’のf
k(i,j)に変えて、二乗値であるf
k(i,j)
2にしても構わない。
【0067】
図4において、ステージ1におけるノード3は、ノード1、ノード2、及びノード4に遷移可能である。ここでノード3とノード1との類似度S
31は、
図6(b)より、0.72である。同様にS
32=0.72、S
34=0.72である。S
31=S
32=S
34であるため、S32は、ステージ1におけるノード3からノード1、ノード2、及びノード4への遷移確率は全て等しい、33[%]を算出する。
【0068】
図4において、ステージ2におけるノードbは、第1ネットワークを構成する各ノードと第2ネットワークを構成する各ノードとのいずれのノードにも遷移可能である。ここで、ノードbと他の全てのノードとの類似度の総和は8.25である。したがって、例えばステージ2において第1ネットワークを構成するノードbから第2ネットワークを構成するノード3への遷移確率P
b3は、S
b3=0.67であるから、P
b3=0.67/9.22×100=8.97[%]となる。なお、一般に、P
ij≠P
jiとなる。
【0069】
このように、ノードシーケンス生成部32は、初期ノードとの類似度が大きいノードほど、初期ノードからの遷移確率が高くなるように遷移確率を設定する。ノードシーケンス生成部32は、重みスコア算出部31が算出した重みスコアに応じて設定されたノード間の類似度に基づく遷移確率にしたがって2以上のノードが並べられたノードシーケンスを生成する。この結果、ノードシーケンス生成部32が生成するノードシーケンスは、類似度が大きいノード同士が隣接する頻度が高くなる。
【0070】
ノードシーケンス生成部32は、異なるネットワーク間での遷移においても、初期ノードとの類似度が大きいノードほど、初期ノードからの遷移確率が高くなるように遷移確率を設定する。結果として、ノードシーケンス生成部32は、第1完全グラフのノードに割り当てられた重みスコアWが大きいほど第2完全グラフのノードに遷移する確率を高く設定し、かつ第2完全グラフのノードに割り当てられた重みスコアが大きいほど第1完全グラフのノードに遷移する確率を高く設定することになる。
【0071】
つまり、ノードシーケンス生成部32は、ネットワークの異同によらず、各ノードシーケンスにおいて隣り合うノード同士は、接続関係が類似するノードとなる確率が高くなるように、各ノードシーケンスを生成することができる。結果として、第1の実施の形態に係るノードシーケンス生成部32が生成するノードシーケンスは、異なるネットワークを構成するノードが入り交ざったものとなり得る。
【0072】
再び
図2の説明に戻る。学習用コーパス登録部33は、ノードシーケンス生成部32が生成した複数のノードシーケンスを学習用コーパスとして登録する。ベクトル生成部34は、学習用コーパス登録部33が登録した学習用コーパスを用いて、各ノードそれぞれについて他のノードとの関係性を示す特徴ベクトルを生成する。
【0073】
ベクトル生成部34は、学習用コーパスを構成する各ノードを単語とみなし、上述した既知のWord2Vecの手法を用いて各ノードの特徴ベクトルを算出する。Word2VecにはCBWO(Continuous Bag-of-Words)モデル及びSkip−Gramモデル等のモデルが知られているが、ベクトル生成部34は、いずれのモデルを用いても特徴ベクトルを算出することができる。学習コーパスとして登録されたノードシーケンスのデータ量が所定以上ある場合には、ベクトル生成部34は、Skip−gramモデルを用いて各ノードの特徴ベクトルを生成してもよい。Skip−gramモデルは、CBWOモデルと比較して、学習データ量が多い場合の安定性が高いことが知られているからである。
【0074】
学習用コーパスに登録されるノードシーケンスは、ネットワークの異同によらず、接続関係が類似するノードが隣接する確率が高い。ベクトル生成部34は、学習用コーパスにWord2Vecの手法を適用することにより、接続関係が類似するノードに類似した特徴ベクトルを割り当てることができる。
【0075】
<第1の実施の形態に係る情報処理装置1が実行する情報処理の処理フロー>
図7は、第1の実施の形態に係る情報処理装置1が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置1が起動したときに開始する。
【0076】
ネットワーク情報取得部30は、複数のノード及び各ノード間の接続関係から構成されるネットワーク情報を取得する(S2)。重みスコア算出部31は、ネットワーク情報取得部30が取得した第1ネットワーク情報と、第1ネットワーク情報とは異なる第2ネットワーク情報とのそれぞれについて、各ノードが接続する他のノードの数に基づいて各ノードの重みスコアWを算出する(S4)。具体的には、重みスコア算出部31は、ネットワークを構成する全てのノードの接続数の総和に対する各ノードの接続数の割合を、ノードの重みスコアWとする。
【0077】
ノードシーケンス生成部32は、接続関係が類似するノードが隣接するように並べられた複数のノードシーケンスを生成する(S6)。学習用コーパス登録部33は、ノードシーケンス生成部32が生成した複数のノードシーケンスを学習用コーパスとして登録する(S8)。ベクトル生成部34は、学習用コーパスにWord2Vecの手法を適用することにより、各ノードそれぞれについて他のノードとの関係性を示す特徴ベクトルを生成する(S10)。ベクトル生成部34が特徴ベクトルを生成すると、本フローチャートにおける処理は終了する。
【0078】
<第1の実施の形態に係る情報処理装置1が奏する効果>
以上説明したように、第1の実施の形態に係る情報処理装置1によれば、複数の異なるネットワークそれぞれを構成する各ノードに、統一した特徴ベクトルを割り当てることができる。
【0079】
<第2の実施の形態の形態>
第2の実施の形態の概要を述べる。第2の実施の形態に係る情報処理装置1も、第1の実施の形態に係る情報処理装置1と同様に、互いに異なるネットワークを構成する各ノードに、同じ基準で特徴ベクトルを割り当てる。しかしながら、第2の実施の形態に係る情報処理装置1の学習用コーパス登録部33が登録するノードシーケンスは、第1の実施の形態に係る学習用コーパス登録部33が登録するノードシーケンスと異なる。
【0080】
具体的には、第2の実施の形態に係る情報処理装置1の学習用コーパス登録部33は、2つの異なるノードシーケンスを組み合わせた「対コーパス」を単位として、学習コーパスに登録する。このため、第2の実施の形態に係る情報処理装置1は、異なるノードシーケンス同士を比較し、類似するノードシーケンスを抽出するためのノードシーケンス比較部を備える点で、第1の実施の形態に係る情報処理装置1と異なる。学習用コーパス登録部33は、類似するノードシーケンスを組み合わせた対コーパスを学習コーパスとして登録することにより、ベクトル生成部34は、続関係が類似するノードに類似した特徴ベクトルを割り当てることができる。
【0081】
以下、第2の実施の形態に係る情報処理装置1の機能構成を説明するが、第1の実施の形態に係る情報処理装置1と共通する箇所については、適宜省略又は簡略化して説明する。
【0082】
<第2の実施の形態に係る情報処理装置1の機能構成>
図8は、第2の実施の形態に係る情報処理装置1の機能構成を模式的に示す図である。第2の実施の形態に係る情報処理装置1は記憶部2と制御部3とを備える。また、記憶部2は、ネットワーク情報取得部30、重みスコア算出部31、ノードシーケンス生成部32、学習用コーパス登録部33、ベクトル生成部34、及びノードシーケンス比較部35を備える。
【0083】
ノードシーケンス比較部35は、ノードシーケンス生成部32が生成した複数のノードシーケンスそれぞれを構成する各ノードを重みスコアに置き換えたシーケンスの集合であるノードスコアシーケンス群を生成する。
【0084】
図9(a)−(b)は、第2の実施の形態に係るノードシーケンス比較部35が生成するノードスコアシーケンス群を説明するための図である。具体的には、
図9(a)はノードシーケンス比較部35が生成したノードシーケンスを例示する図であり、
図9(b)は
図9(a)に例示したノードシーケンスに対応するノードスコアシーケンスを示す図である。
図9(b)に示すように、ノードスコアシーケンスは、ノードシーケンスを構成する各ノードを重みスコアWで置換したデータである。
【0085】
ノードシーケンス比較部35は、ノードスコアシーケンス同士を比較し、類似するノードシーケンス同士の組み合わせを対コーパスとして構成する。ノードシーケンス比較部35は、ノードスコアシーケンスをベクトルとみなし、例えばベクトル同士のユークリッド距離やコサイン類似度やDTW(Dynamic Time Warping)を用いたシーケンス間の類似度を用いることで、対コーパスを構成することができる。
【0086】
学習用コーパス登録部33は、第1ネットワーク情報と第2ネットワーク情報とのそれぞれから得られた2つの異なるノードシーケンス群と、ノードシーケンス比較部35において紐づけられたノードシーケンス群とから構成される学習用コーパスを登録する。
【0087】
対コーパスを含む学習用コーパスから特徴量ベクトルを生成する場合、ベクトル生成部34は、BilBOWA(Bilingual Bag-of-Words without Alignments)として知られる既知のアルゴリズムを用いる。
【0088】
図10は、第2の実施の形態に係るベクトル生成部34の機能構成を模式的に示す図である。BilBOWAは既知の手法であるため詳細な説明は省略するが、第2の実施の形態に係るベクトル生成部34は、BilBOWAの手法を実現するために第1生成部340、第2生成部341、及びノルム算出部342を備える。
【0089】
第1生成部340は、第1ネットワーク情報に由来するノードシーケンスを学習データとして各ノードそれぞれについて他のノードとの関係性を示す第1特徴ベクトルを生成する。第2生成部341は、第2ネットワーク情報に由来するノードシーケンスを学習データとして各ノードそれぞれについて他のノードとの関係性を示す第2特徴ベクトルを生成する。
【0090】
ノルム算出部342は、学習用コーパスにおけるノードシーケンス群の各組み合わせについて、組み合わせを構成する一方のノードシーケンスに含まれる各ノードの特徴ベクトルの平均値と、他方のノードシーケンスに含まれる各ノードの特徴ベクトルの平均値との差分ベクトルの2ノルムを算出する。第1生成部340と第2生成部341とは、ノルム算出部342が算出した2ノルムが小さくなるように、それぞれ第1特徴ベクトルと第2特徴ベクトルとを生成する。
【0091】
ノルム算出部342が算出した2ノルムを小さくすることは、すなわち対コーパスを構成する2つのノードシーケンスに含まれる各ノードの特徴ベクトルの差が傾向として小さくなることを意味する。ノードシーケンス比較部35は、類似するノードシーケンス同士を対コーパスとして構成するので、ベクトル生成部34は、他のノードとの接続関係が類似していれば、類似する特徴ベクトルを算出することができる。また、対コーパスには異なるネットワークを構成するノードが含まれ得るため、ベクトル生成部34は、異なるネットワークそれぞれを構成する各ノードに、統一した特徴ベクトルを割り当てることができる。
【0092】
<第2の実施の形態に係る情報処理装置1が実行する情報処理の処理フロー>
図11は、第2の実施の形態に係る情報処理装置1が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置1が起動したときに開始する。
【0093】
ネットワーク情報取得部30は、複数のノード及び各ノード間の接続関係から構成されるネットワーク情報を取得する(S12)。重みスコア算出部31は、ネットワーク情報取得部30が取得した第1ネットワーク情報と、第1ネットワーク情報とは異なる第2ネットワーク情報とのそれぞれについて、各ノードが接続する他のノードの数に基づいて各ノードの重みスコアを算出する(S14)。具体的には、重みスコア算出部31は、ネットワークを構成する全てのノードの接続数の総和に対する各ノードの接続数の割合を、ノードの重みスコアWとする。
【0094】
ノードシーケンス生成部32は、接続関係が類似するノードが隣接するように並べられた複数のノードシーケンスを生成する(S16)。ノードシーケンス比較部35は、ノードシーケンス生成部32が生成した複数のノードシーケンスそれぞれを構成する各ノードを、当該ノードの重みスコアに置き換えたシーケンスの集合であるノードスコアシーケンス群を生成する(S18)。ノードシーケンス比較部35は、ノードスコアシーケンスを比較し、類似するノードシーケンス同士を組み合わせた対コーパスを生成する(S20)。
【0095】
学習用コーパス登録部33は、ノードシーケンス生成部32が生成した複数のノードシーケンス及び対コーパスを学習用コーパスとして登録する(S22)。ベクトル生成部34は、学習用コーパスにBilBOWAの手法を適用することにより、各ノードそれぞれについて他のノードとの関係性を示す特徴ベクトルを生成する(S24)。ベクトル生成部34が特徴ベクトルを生成すると、本フローチャートにおける処理は終了する。
【0096】
<第2の実施の形態に係る情報処理装置1が奏する効果>
以上説明したように、第2の実施の形態に係る情報処理装置1によれば、複数の異なるネットワークそれぞれを構成する各ノードに、統一した特徴ベクトルを割り当てることができる。
【0097】
<第2の実施の形態の変形例>
ノードシーケンス比較部35は第1ネットワーク情報に由来するノードスコアシーケンスと、第2ネットワーク情報に由来するノードスコアシーケンスとを比較することにより、対コーパスを生成してもよい。これにより、ノードシーケンス比較部35は、ステージ2において、第1完全グラフと第2完全グラフとを接続するパスを生成せずに、ノードスコアシーケンスを生成することができる。組み合わせが多大となる完全グラフ同士の接続を省略できるので、ノードシーケンス比較部35はノードスコアの生成に要する計算量及びメモリを節約することができる。
【0098】
上記では、ベクトル生成部34は、BilBOWAの手法を用いて特徴ベクトルを生成する場合について説明した。これに替えて、ベクトル生成部34は、組み合わせシーケンス生成部が生成したノードシーケンスを連結してできる新たなノードシーケンスを構成する各ノードを単語とみなし、Skip−gramモデルを用いて各ノードの特徴ベクトルを生成してもよい。対コーパスは類似するノードシーケンス同士の組み合わせであり、異なるネットワークを構成するノードが含まれ得るため、ベクトル生成部34は、異なるネットワークそれぞれを構成する各ノードに、統一した特徴ベクトルを割り当てることができる。
【0099】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【0100】
<第1の実施の形態及び第2の実施の形態に共通する変形例>
上記では、重みスコア算出部31は、ネットワークを構成する全てのノードの接続数の総和に対する各ノードの接続数の割合を、ノードの重みスコアWとする場合について主に説明した。しかしながら、この重みスコアWの算出方法は一例であり、他のノードとの接続数が多いノードは、他のノードとの接続数が少ないノードよりも大きな重みスコアWとなることを条件として、重みスコア算出部31は他の算出方法で重みスコアWを算出してもよい。
【0101】
例えば、重みスコア算出部31は、2ノード間の接続関係に基づく距離を算出し、それに基づいて重みスコアWを決定しても構わない。以下、第2ネットワークを例にして、2ノード間の接続関係に基づく距離を利用した重みスコアWの算出方法について説明する。
【0102】
まず、重みスコア算出部31は、
・ノード1からkホップで到達できる近傍ノード集合1をR
k(1)
・ノード2からkホップで到達できる近傍ノード集合2をR
k(2)
・近傍ノード集合1に対応する各ノードの次数の集合を昇順にソートした近傍ノード次数集合1をs(R
k(1))
・近傍ノード集合2に対応する各ノードの次数の集合を昇順にソートした近傍ノード次数集合2をs(R
k(2))
とし、近傍ノード次数集合1と近傍ノード次数集合2をシーケンスとして比較し、DTWによりシーケンス間の距離に基づいて、2ノード間の接続関係に基づく距離f
k(1,2)を評価する。
【0103】
次に、重みスコア算出部31は、2ノード間の接続関係に基づく距離f
k(1,2)を類似度に変換するため、f
k(1,2)をexp(−f
k(1,2))とし、この大きさに応じてノードごとの重みの合計が1となるよう再配分する。第2ネットワークにはノード1以外にノード2、3、4があるので、重みスコア算出部31は、
W
k(1,2)=exp(−f
k(1,2))/{exp(−f
k(1,2))+exp(−f
k(1,3))+exp(−f
k(1,4))}
としてノード毎の重みの合計が1となるよう再配分する。
【0104】
最後に、あるネットワークを構成する各ノードのその他のノードの間の重みスコアW
k(・,・)の平均値をa、であるノード1のステージW
k(1)をaを超えるW
k(1,・)の個数の割合として算出する。W
k(・,・)やW
k(1,・)のように示した場合の「・」は任意を意味する。kを無視して扱う場合は、W
k(1)を単にW(1)と表す。
【0105】
上記では、ノードシーケンス生成部32は、式(1)に示す数式にしたがってステージの上昇確率を算出する場合について説明した。しかしながら、この上昇確率の算出方法は一例であり、重みスコアWが大きいほど、すなわちネットワークにおいて接続数が多いノードほどステージ上昇確率が大きくなることを条件として、ノードシーケンス生成部32は、他の算出方法で上昇確率を算出してもよい。
【0106】
上記では、ノードシーケンス生成部32は、式(3)に示す数式にしたがってノード間の類似度を算出する場合について主に説明した。しかしながら、この類似度の算出方法は一例であり、ノード間の重みスコアWの値が近いほど、類似度が大きくなることを条件として、ノードシーケンス生成部32は、他の算出方法で類似度を算出してもよい。
【0107】
上記では、ネットワークの接続関係を保つステージ1と、各ネットワークを構成する全てのノードが接続された完全グラフとなるステージ2との、2つのステージ間を遷移する場合について説明した。これに替えて、ノードシーケンス生成部32は、3以上のステージを用意し、3以上のステージを遷移しながらノードシーケンスを生成するようにしてもよい。
【0108】
例えば、ステージ2以上はkホップで到達できる接続関係を表現し、ホップ数kに応じて多段になっていても構わない。この場合、各段間で上昇、下降できるようにする。このことにより、ホップ数の大きい大局的な接続関係に基づくノード間の類似度、ホップ数の小さい局所的な接続関係に基づくノード間の類似度を同時に表現することができる。さらに、大局的に見て中心性を持つノードはより上の段(kが大きいほう)に遷移しやすく、局所的にしか中心性を持たないノードはより下の段(kが小さいほう)に留まるといった性質を持たせることができる。
【0109】
ステージ2以上を多段にした場合の、段間の上昇、下降の確率は、ステージ間の遷移と同じく式(1)及び式(2)を用いて計算できる。式(1)及び式(2)にはホップ数を示すkに関する式となっているため、計算方法は変わらない。
【0110】
また、ステージ2以上の段だけでノードシーケンスを生成しても構わない。さらに、ステージ2以上を多段にした場合、第1ネットワークと第2ネットワークの直径(最大のホップ数)に応じて、第1ネットワークと第2ネットワークのステージ2の段数が異なることがある。第1ネットワークのノードから第2ネットワークのノードへの遷移、第2ネットワークのノードから第1ネットワークのノードへの遷移の確率を定める際、第1ネットワークの段と第2ネットワークの段を対応付ける必要がある。この対応付けの方法は、下の段(kの小さいほう)から順番に対応付けする方法、上の段(kの大きいほう)から順番に対応付けする方法があり、どちらでも構わない。
【0111】
なお、ステージ2以上のステージは、各ネットワークを構成する全てのノードが接続された完全グラフとなるようにする。これにより、ステージ上昇確率が50%を超えるノードは、ステージ1以外のステージに存在する可能性が高くなる。結果として、重みスコアWが他のノードと比べて相対的に大きいノードは、小さいノードと比較して、異なるネットワークに遷移する可能性を高めることができる。