実験ノート

これは実験ノートです。どんな実験かの説明と、これからどうするのかということをこれから徒然と書いていきます。

 

まず、これはネットワーク科学というものの研究の実験ノートです。ネットワーク科学とは、あらゆる物事をネットワークで抽象的に表現して説明します。例えば、友人関係などをネットワークで表したりして、情報の伝達の仕方、グループ(コミュニティ)がどこにあるか、などを調べて解析する学問分野です。ネットワークの数理的な解析方法を研究する基礎的な学問ですので、その応用範囲は広いです。例えば、友人関係ネットワークや、交通(物流)のネットワークや、動物の交配のネットワーク、通信機器(携帯)のネットワークや、もっと抽象的には商品と商品の関連性(同時に売れるなど)をネットワークで表すことができます。物事の因果性や相関をネットワークで表現するとありとあらゆる概念をネットワークで表現することができます。ミクロな正解では、微生物、あるいは原子や電子の振る舞いもネットワークで捉えることができます。そのようなとても一般的な概念であるネットワークを数理的に解析しようとしているのが、ネットワーク科学です。より解析的な手法による研究は幾何学の分野ではグラフ理論とも呼ばれます。ネットワーク科学はグラフ理論では扱わないような巨大なネットワークに関する性質を焦点に行います。

 

ネットワーク科学とは

巨大で複雑なネットワークを解析するための手法を研究する学問分野

 

ネットワークとは何かを議論する前に、まずそれがどんなものかを見てみます。百聞は一見にしかずということです。ネットワークを作ることは下のようなサイトを使えば簡単にできます。

graphonline.ru

このサイトで作ったネットワークが↓です。

f:id:muskat:20180502101249p:plain

これがネットワークです。一般的にネットワークと呼ばれるものとほとんど同じです。 

このネットワークを使って、ネットワークをというものを説明します。まず、構成要素としては○で書かれたノードと、ーで書かれたリンクがあります。今はわかりやすくノードには番号が書かれています。0,1,2,3,4,5...19という感じです。リンクに関しては番号は振ってありません。一般的にリンクには番号を振らないことが多いです。理由としては、そもそもリンクよりノードに着目する場合が多いこと、また、リンクは両サイドに必ずノードを伴う性質があるため、ノード3,4の間のリンクといったように呼ばれます。リンクの両サイドに必ずノードを伴う性質は、そもそもネットワークのリンクの定義によって明記されています。つまりリンクとはノード間のつながりを表すものであるということがリンクの定義になります。「ノード間」という意味はリンクの両サイドにノードがあるということと同義になります(少なくともネットワーク科学においてはそのように解釈しています)。このように、ネットワークおいては単純にノードとリンクが構成要素として扱われます。

 

ネットワークのノードは様々な特徴の観点から解析されます。ここでは詳しくは説明しませんが、例えば、ノードに何本のリンクがつながっているのかをすべてのノードに対してリンクの分布をみることによって、解析したりします。また、あるノード間にリンクが何本あるかでノード間の距離を定義することで、ある特徴をもったノードは距離が近いか遠いかを分析することもできます。例えば、世界中の人と知り合いのネットワークを作った時に、世界中の誰とでも6人くらいの知り合いを通せばつながることができるという研究があります(つまり世界中の誰とでも距離6でつながっています)。自分の知り合いの知り合いの・・・ということを6回繰り返すと、だいたいアメリカの大統領にもつながりますし、近くのスーパーで働いている人にもつながります。このようにネットワークのノード(あるいはリンク)に対しては様々な研究がされています。

  

ネットワーク科学の中で特に盛んに研究されている分野がコミュニティ解析になります。コミュニティ解析とはネットワークの中からコミュニティを見つけることになります。またコミュニティとはグループのことです。例えば↓の線で囲んだ部分がコミュニティになります。

f:id:muskat:20180502110025p:plain

 

コミュニティないではリンクが密で、コミュニティ間はリンクが疎になっているのがコミュニティの特徴です。このコミュニティを見つける方法を考えて見出すことがコミュニティ解析で行われることです。これは明確に決定できる問題ではないです。つまり方程式で解くといった解析的な解法はいまのところありません。どれくらい密であれば、コミュニティと呼べるのでしょうか。ネットワークにもよりますが、すべてのネットワークに対応した解法はいまのところありません。

 

コミュニティはネットワーク科学意外の分野ではクラスターとも呼ばれます。データ解析ではデータの特徴のあるまとまりのことはクラスターと呼ぶことが一般的です。そのような分野ではクラスターを見つける問題はクラスタリングと呼ばれます。データがネットワークで表現できるときのクラスタリングの手法の一つとしてコミュンティ解析があると考えてることができます。つまり、このようになります。

f:id:muskat:20180502111814p:plain

 クラスタリングの応用は機械学習の分野で知られています。一番利用シーンが多いのが機械学習の教師データ作成のときです。機械学習によってデータをあるグループに分類したいが、学習のためのグループ分けされた正解データがないときに、クラスタリングでグループ分けします。そうすることで、機械学習する前の教師データの加工に使用することができます。データの一点がノードとして、そのデータ間の相関をリンクとすることでネットワークを作成しコミュニティを検出することでクラスタリングしたことになります。クラスタリングではデータを類似性に基づいてグループわけしますが、その分け方にはデータ間の相関の強さなどが直接は反映されていないことが多いです。この点に関してコミュニティ解析はデータ間の相関に一番重きをおいてデータを分類することができます。データ自体の静的な性質によりグループ分けするクラスタリングと相関などの動的な性質によってグループ分けするコミュニティ解析はデータ分析や機械学習の分野で近年ますます重要視されているツールです。中でもコミュニティ解析は複雑さゆえに発展が遅れてきましたが、近年になって研究が活発化してきました。