Vol.31.No.4(2016/7)ネットワークの表現学習


私のブックマーク

ネットワークの表現学習の紹介

浅谷 公威(東京大学 工学系研究科)

1.はじめに

1・1 表現学習とは

 表現学習とは,画像,音,自然言語,時系列データなどの要素を予測問題を解くことで分散表現(ベクトル)として抽象化する手法です.分散表現はコンピュータにより自動的に計算されるもので,要素に関する人手で定義した特徴量を並べて特徴量空間にベクトル化したものとは異なります.近年着目されているDeep Learningは多層のニューラルネットを用いて表現学習を行う手法であり,その深層部分のおのおののニューロンの状態を並べたものが分散表現となります.
 表現学習によって得られた分散表現は一般に数百次元のベクトルであるため,要素の分類や要素のラベルの推定を分散表現の簡単な演算により精度良く行えることがわかっています.これらの研究成果はGoogle 画像検索や音声認識などをはじめとした各種サービスに実装されています.表現学習を行うもう一つのメリットは,特にDeepLearning を用いた場合に,元の要素⇔分散表現間の相互変換が精度良く行えることです.このような性質を用いることで,画像の生成分散表現を介した自動翻訳などの手法が開発されています.
 ネットワークの表現学習とはネットワーク構造から要素(ノード)の分散表現を獲得する手法です.2014 年に,ネットワークの表現学習手法である(Deepwalk)が提案されて以来,他の手法の提案や応用に関する研究が一流国際会議で数多く発表されています.これらの手法で計算された分散表現を使うことで,既存の複雑ネットワークのクラスタリング手法よりもラベル推定や分類タスクを精度良く実施できることがわかっています.また,ネットワークの表現学習手法は大規模グラフの可視化や画像や文章の内容と関連性からラベルを推定する手法などへ応用されています.ネットワークの表現学習手法は自然言語処理の表現学習手法から大きく影響を受けているため,本稿では両者のつながりを解説したうえで,両者のブックマーク化を行います.
 また,ここ1 ~ 2 年の国際会議の傾向から,要素を表す異種のデータを分散表現を介して結び付けることに多くの研究者の関心が向けられているといえます.例えば,言語⇔画像の間の自動変換(画像を入力すると説明文が自動生成 ,またはその逆)や,英語とフランス語間の自動翻訳などの手法が開発されています.また,ネットワークの表現学習に関しても,ネットワーク構造とラベル情報,画像データやテキスト情報とネットワーク構造,などを同時に表現学習する手法が開発されています.この流れをふまえて本稿では異種データからの表現学習手法も視野に入れます.

1・2 自然言語の表現学習に着想を得たネットワークの表現学習

 「France-Paris+Japan=Tokyo」 ( 1)

 式(1)は,word2vecという言語の表現学習手法により導出された単語間の関係性を表した式になります.この例では単語の分散表現は意味のある情報を含んでいると考えられます.実際に分散表現を用いることで単語のラベル推定や分類などのタスクにて既存手法を上回るパフォーマンスを発揮しています.また,word2vec によって得られた分散表現は自然言語処理のさまざまなタスク(文書分類や機械翻訳など)のインプットとして頻繁に使用されています.

†1 http://www.ai-gakkai.or.jp/my-bookmark_vol31-no4

 word2vec はある単語から周囲の単語を予測するタスクを解くことで,各単語の低次元(数百次元)の分散表現を獲得する手法です.この手法は,分布仮説「単語の意味は周囲の単語との関係性から規定される」に基づいて次元削減で低次のベクトル表現を獲得することある条件下において同等であると証明されています.分布仮説において,例えば,「ラーメン」と「うどん」はそれぞれ,「食べる」や「昼飯」や「麺」などの同じ単語と共起しやすいため,この二つの単語は近いと考えられます.
 自然言語における分布仮説は,ネットワーク分析における「ある人を知りたければその友人を見よ」や「論文の内容はその引用関係から推定できる」という考え方と類似しています.このように,分布仮説に基づいた自然言語処理とネットワーク分析は,周囲の関係性から要素の性質を推定するという意味で近いといえます.2014 年に発表されたDeepWalk は,この考え方をもとにword2vec をネットワーク構造の表現学習に応用した手法です.DeepWalk では,ネットワークのリンク上をランダムウォークすることによって辿れるノードの列を”文脈”とみなし,その文脈をword2vec にインプットしてノードの分散表現を計算します.
 word2vec が単語の分類などのタスクの精度向上や処理の高速化に寄与しているように,DeepWalk はラベル推定などのタスクで既存の手法以上の精度を出し,Spectral Clusteringなどの既存のクラスタリング手法よりも大きなサイズのネットワークを高速に扱えます.ここ1 ~ 2 年の間に,LINEGraRepといったDeepWalkよりも良い精度でラベル推定を行える表現学習手法がKDD やWWWなどの一流国際会議において活発に発表されていますが,ネットワークの表現学習は画像や言語の表現学習の分野と比較すると論文数も少ないといえます.しかし,人間・商品・Web サイト・文章などのあらゆる現実世界の要素はネットワーク構造で結びついています.したがって,ネットワークの表現学習はさまざまな要素の意味の理解に活用されつつあります[52, 53, 54].また,各要素がもつ画像やテキストといった属性から分散表現を獲得する技術が提案されているため,ネットワークの表現学習を介してそれらを結び付ける研究も行われています.

2 .ブックマーク

2・1 言語の表現学習のブックマーク

 ここでは,ネットワークの分散表現を理解の背景知識となる言語の分散表現のブックマークを提供します.
確率的ニューラルネットワーク言語モデルとそれをもとにして構築されたword2vec はここ数年で主流となる技術であるため,その理解は必要であるといえます.ただし,word2vec の原著論文を読む前に,岩波データサイエンスの解説などを読むことをお勧めします.
 word2vec をきっかけに活発になった自然言語周りの表現学習手法の研究ですが,単語の表現学習だけでなく文章の表現学習手法(paragraph to vec)も開発されています.さらに,分散表現を介して英語とフランス語の文章を結び付けることで両者の変換(=自動翻訳)を行う技術(Sequence to Sequnce)が提案されています.また,分散表現はコンピュータにとって扱いやすいため,単語の意味の変遷の分析などのさまざまな応用に関する発表が最新の国際会議で活発に行われています.
 また,LDA(Latent Dirichlet Allocation)などの古くからある手法も文章のベクトルを得る手法です.これらの手法はコーパスの統計量の分布のベクトル表現を求めるものであり,word2vec のように予測タスクを解くことで分散表現を得るものとは異なります.しかし,それらの違いを理解するためにも,さまざまな文献をチェックしておくとよいと思われます.また,LDAは複雑ネットワークの分野ではSpectral Clustering として応用されています.

必須の論文

word2vec
ワードの分散表現を獲得する手法(word to vec)に関する論文.読みづらく重大な間違いもあり,しっかり研究する場合はソースコードを読んだり,解説記事を読むことです.
doc2vec
文章の分散表現を獲得する手法(paragraph to vec)に関する論文.
Sequence to sequence learning with neural networks
異なる言語を分散表現を通じて結び付け自動翻訳を実現する手法(seq to seq)に関する論文.

解説本・レビュー論文・解説

Deep learning(Nature 2015)
Deep Learning 全体に関するレビュー論文.第一人者であるYosua Bengio らを中心に有名な学者が執筆しています.手法の詳細にではなく,非常に簡潔に各手法の目的や意味が具体例をもとに解説されています.
岩波データサイエンス Vol. 2
岡崎直観先生の解説記事が主に該当する部分.PLSA などの言語モデルからword2vec までの分散表現獲得の取組みとその背景がわかりやすくまとまっています.
言語処理における分散表現学習のフロンティア
岡崎直観先生による人工知能学会誌における言語処理における分散表現の解説.トピックモデルやword2vec に関する話.上記の本より理論や実装に関して詳しい説明があります.

学者・研究室

Geoffrey E. HintonYoshua Bengio
Deep Learning における代表的な研究者.
Tomas Mikolov
word2vec,doc2vec, seq2seq を提案した人物で,言語の表現学習の第一人者.
Google Deep Mind
開発した囲碁のAI で人間の世界王者に勝利したことで有名な組織.また,DQN(Deep Q-Network)の開発元でも有名.
Facebook AI Research(FAIR)
Google と同様に優秀な研究者はデータが豊富にある企業に集まっている傾向が強いです.
Microsoft Research
Facebook やGoogle 同様に優秀な研究者が集まっています.

最新の研究文献

 表現学習に関する研究の流れは速いため,最新の研究動向を知るためには国際会議の予稿集を見るのがよいと考えられます.表現学習全般を対象としたICIR という会議がありますので,論文をチェックするとよいでしょう.また,以下の一流国際会議の各年の予稿集が出るたびに,representation やDeep Learning,DNN などのキーワードでタイトルを検索することをお勧めします.

表現学習全般

ICIR(International Conference on Learning Representations)
表現学習自体を対象とする会議で,対象は自然言語から画像までさまざまです.

自然言語処理

EMNLP( Conference on Empirical Methods in Natural Language Processing)
ACL(Annual Meeting of the Association for Computational Linguistics)
COLING(International Conference on Computational Linguistics)
ACL-IJCNLP( International Joint Conference on Natural Language Processing)

データマイニング・人工知能

ACM sigKDD( ACM SIGKDD Conference on Knowledge Discovery and Data Mining)
理論系のデータマイニングのトップページ.
ICML(International Conference on Machine Learning)
機械学習系のトップ会議.
AAAI Conference(AAAI Conference)
人工知能全般を広く対象としたトップ会議.
IJCAI( International Joint Conferences on Artificial Intelligence)
AAAI と同様に人工知能全般を広く対象としたトップ会議.
WWW( ACM World Wide Web Conference)
Web 技術全般に関する最も権威のある国際会議.
CIKM(International Conference on Machine Learning)
ICML に次ぐ機会学習系のトップ会議.
NIPS(Annual Conference on Neural Information Processing System)
ニューラルネットワーク系のトップ会議.Deep Learning の発展とともに冬の時代を抜け,近年では最も注目度が高い.

ライブラリ

各種ライブラリが提供されているためデータが整形されていればPython 数行で実行できます.以下のライブラリが有名です.
Gensim
Python から使える言語処理全般のライブラリ. word2vec,doc2vec などの基本的な表現学習手法も含まれます.
Tenser Flow
Deep Learning 全般を含む機械学習のライブラリ.リリースしてまだ1 年も経っていないが,開発元がGoogle であるため多くの人が使いつつあります.
Chainer
Deep Learning に関するライブラリ.PFI が開発しており,自然言語処理関連のライブラリも充実しています.

2・2 ネットワークの表現学習のブックマーク

 著者が表現学習という考えに触れたのは,WWW 2015 に掲載されているLINEという論文を東京大学鳥海研究室の輪読会で読んだときです.リンクを辿っていくとword2vec にたどり着きました.これは,「1・2自然言語の表現学習とネットワークの表現学習」で解説した順番と逆の時系列です.それはさておき,ここではネットワークのみから表現学習を獲得する手法に関して,必須文献を紹介いたします.ネットワークの表現学習を手法に関する研究はここ2 年ほどの歴史しかないため,良いレビュー論文や解説記事などはなく,論文を個別に紹介する形をとります.
 ネットワークの表現学習を行うことの効果は,表現学習のメリットの一つである「要素の分類や要素間の関係性の容易な推定」を生かしたものとなります.これまでは複雑ネットワークの分類はさまざまな手法が提案されてきましたが,パラメータ依存性や精度や計算時間の問題がありました.また,ネットワーク上のノード間の距離も定量化するのは難しかったといえます.DeepWalk やLINE をはじめとした手法では,要素の間の距離を定量化することで要素のラベル推定や分類の精度を高めることが可能となりました.
 近年ではPTEをはじめとした論文で,要素に関するデータ(ラベル・言語・画像など)と要素のネットワーク構造から要素の分散表現を獲得する手法が開発されています.このような取組みは最新の国際会議で発表されているためその予稿集に目を通すとよいと思われます.また,Google Scholar などで以下に述べる必須論文を引用している論文を定期的にチェックするのがよいでしょう.
 また,複雑ネットワーク科学の文脈とは違う部分で,単語コーパスからのKnowledge Graph などのネットワークを元にした単語のベクトル表現の獲得も行われています.単語間の意味はさまざまな関係性があるため,KnowledgeGraph はエッジの種類が多い複雑ネットワークとなります.単語のKnowledge Graph 化により意味の抽出や理解が可能となっており,それらの手法はエッジが単純なネットワークにも応用できるかもしれません.

必須論文

 ネットワーク表現学習に関する論文を以下にまとめました.「基本手法」はネットワーク構造から表現学習を行うことを目的に書かれた論文で,「応用」は異種データとの組合せや基本手法を可視化に応用する研究です.

基本手法

DeepWalk
2 章で解説したword2vec を用いたネットワーク構造化からノードの表現学習を獲得する手法.
LINE
DeepWalk のような分布仮説に基づいた表現学習手法を二次の近接性と定義し,直接つながっているノードが近いという一次の近接性も定義.その両者を使うことで,DeepWalk より精度を向上.また,直感的にわかりやすいです.
GraRep
ネットワークの構造を抽象化して変換することで,上の二つの手法より精度を向上.

応用

PTE
要素,ラベルのそれぞれのネットワークを同時に表現学習を行い,一部の要素のラベルから他の要素のラベルを推定.LINE の著者が執筆.
Heterogeneous Network Embedding
画像とテキストと画像同士の関係性をもとに要素を分散表現化することにより,画像のラベル付けやクラスタリングを行う手法.
text-associated DeepWalk
ノードのテキストの情報とネットワーク情報を組み合わせて表現学習を行う手法.
Visualizing Large-scale and High-dimensional Data
Network Embedding の手法を応用し数百万単位のノードを可視化(WWW 2016 のベストペーパにノミネート).LINE の著者が執筆.

解説記事

 ネットワークの表現学習に関してまとめられた記事はありません.参考までに,Knowledge Graph の構築に関するサーベー論文を紹介します.
Knowledge Graph サーベー論文
word net などのコーパスから知識をグラフとして構築する手法に関するサーベー論文.テンソルの次元削減からNeural Network までのさまざまな手法や,Web 上の情報からのKnowledge Graph 構築に関してまとめられています.

学者・研究室

Jian Tang
LINE,PTE などの著者でMicrosoft Research Asia に在籍.彼の発表文献はすべてチェックしておいたほうがよいでしょう.
Bryan Perozzi
DeepWalk を開発した研究者.まだPh. D. Candiate.
Barabási
複雑ネットワークの分野の第一人者で,BA モデルを提案した研究者.確認した限りまだ分散表現には言及していませんが,彼の論文は定期的にチェックしておくべきでしょう.

ライブラリ

 言語の表現学習とは異なり,ライブラリはしっかり提供されていません.以下の三つの手法に関しては提供されているので紹介いたします.
Deepwalk
Python で提供されているので,普段Python に慣れている方ならすぐに使えます.
LINE
C++のソースコードで提供されているのでコンパイルが必要.動作に必要な各種ライブラリのインストールが簡単なLINUX 上で動作させるのが簡単です.
Visualizing Large-scale and High-dimensional Data
上記論文の第三者による実装.論文が出て数か月で公開されています.

国際会議

 Network Embedding は扱う対象が広いため,会議のリストはデータ分析系の一流会議の一覧となります.上で紹介した論文も該当するどれかの会議で発表されたものです.各会議の論文一覧を以下の検索キーワードで探してみてください.

会議の一覧

 該当する会議は,2・1 節で紹介した言語の表現学習から自然言語系を省いたものとなります.

キーワード

・ “network” and“ embedding”
・ “network” and“ representation”

プロジェクト

 プロジェクトとしてネットワークの表現学習をメインで行っているものはないと思われますが,下記のプロジェクトではネットワーク構造からの表現学習を用いた意味抽出を行っています.
産総研AIプロジェクト
言語とネットワーク構造を結び付けて知識発見を行うプロジェクトが進行中です.
CREST 論文解析プロジェクト
自然言語処理を中心にネットワークも用いて論文を解析.表現学習を使う予定です.

3.おわりに

 本稿で紹介した表現学習は近年活発に研究されている技術で多様な応用先があります.しかし,表現学習によって得られた分散表現の各要素の意味の直感的な解釈は難しく,知識がブラックボックス化されている状態です.画像の分散表現のある要素がネコに対応しているという報告もありますが,それはパラメータ調整に依存しています.ここ数年でさまざまなネットワークの表現学習手法が開発され,要素のネットワーク構造上での位置や役割を分散表現として得られるようになりました.要素(テキストや画像)の分散表現と,要素間のネットワークから得られる要素の分散表現を組み合わせることで,分散表現から意味(情報)を有機的に抽出する手法の開発につながると著者は期待しています.

Acknowledgement

 本稿の執筆にあたり,東京大学の森純一郎先生,大知正直さん,山下雄大さんにアドバイスをいただきました.ありがとうございました.