数学?強いよね
定義、定理、証明、隙がないと思うよ
だけど、僕は雰囲気で数学したい
べ、ベクトル達が躍動する僕のプログラムを皆さんに見せたいね
この記事の概要・目的
人工知能技術への注目・関心が高まる昨今ですが、数学界隈の皆様はいかがお過ごしでしょうか。数学とコンピュータ Advent Calendar 2017の12日目の記事として、arXivで遊んでみた話とその経緯について書きたいと思います。
想定する読者は、プログラミングよりも数学寄りの人です。人工知能技術を利用して旧来の数学や科学をスタイルを壊して書き換える、そのような闇の数学者が誕生することを期待しています。
お品書き
- 今年したこと
- doc2vecを使ってarXivで遊んだ話
- 背景・問題意識(本編・ポエム)
- doc2vecについて
- 応用
今年したこと
春に所属だけしていた大学を辞め、その少し前からしていた深層学習で画像認識する仕事をしながら、機械学習名古屋勉強会で次のようなネタで発表したりという一年でした。
- 画風変換系の話(第9回・第10回)
- doc2vecの話(第13回)
https://qiita.com/n_kats_/items/e0f4a7c71f32357ef730
今回の記事は、機械学習名古屋勉強会第13回で話した内容を数学者向けに書きなおしたものになります。
doc2vecを使ってarXivで遊んだ話
doc2vecは、文章をベクトル化する機械学習アルゴリズムです。arXivにある論文のアブストラクトを大量に採集し、doc2vecの訓練データにして、論文(のアブストラクト)のベクトル化に取り組みました。
ベクトル化すると近いかどうかを計算で表現でき、なんらかの意味で近い論文を探すというようなことができます。このような訓練や論文探索ができるコマンドラインツールを作成するなどしました。
背景・問題意識
現代のIT技術の進歩には目を見張るものがあります。その進歩により人類は大きな恩恵を受けているでしょう。IT技術を発展させ人類は様々な分野を開拓していくでしょう。そんな中で数学はどのような発展をとげるのでしょうか。
10年ほど前を思い出すと、youtubeやニコニコ動画のような動画サービスが登場し、少し経ってライブ放送が個人で可能になりました。更に少し経つと、大学がいくつかの講義をyoutubeなどに公開するようになりました。昨年と今年は、MathPowerのようなイベントが催されるようになりました。数学界にもIT技術は貢献しているようです。
このように技術で数学が盛り上がる・研究が捗るというような状況になるのは喜ばしく、IT技術を使って何か貢献できればと思います。では、何をしてみましょうか。
数学、厳密で強いですよね。とはいえ、厳密性だけが数学というわけでもないでしょう。数学に限らず、研究には、どのようなことに取り組むべきかという問題意識や、他の人がどのような研究をしているのかの情報が欠かせないでしょう。そんなことを言っているうちに、気がついたら、パソコンには読みもしない大量のPDFファイルが・・・ということを経験したことのある方は多いでしょう。
色んな論文について知りたいと思う一方で、それらを把握し切るのは人の手には困難です。これをテーマにしてみましょう。
まず考えたアプローチは、SNS的な方法です。多くの数学者が協力して論文を分担して読み、それを共有するというものです。しかし、これは以下の点で諦めました。
- 多くの研究者の参加が必要で、ユーザーを定着させるのは困難
- そもそも、ツイッターで良い。Qiitaでも良い
- 自分自身がそうやってコミュニケーションを密に取って数学をするのが想像できない
- 疲れそう
そんなことを思っていたら、なんとなく、時代は人工知能だなーと思うようになり、人工知能的な手法に切り替えようと思いました。つまり次のような人工知能がほしいと考えました。
- 研究を補助する
- 人工知能が論文を読み、おすすめの論文などを教えてくれる
- 専門外の分野から、専門分野と似たことをしているものを探し出す
ということで、機械学習に手を出し、勉強会に関わったり仕事に就いたりしました。そろそろ作る時期と思い、勉強会のネタついでにお手軽にできる範囲でやってみようと、doc2vecでarXivにある論文を分析することにしました。
doc2vecで論文をベクトル化して、そのベクトルを論文の雰囲気だと解釈しましょう。これをもって雰囲気で数学ができると言えるような気がします。
doc2vecについて
doc2vecは、名前から推測できるように、文章をベクトル化する機械学習アルゴリズムです。単語をベクトル化するword2vecを発展させたものです。
雑な説明をすると、word2vecは、単語に対して、その単語の近くに出現する単語の出現確率を反映されたベクトルを対応させるアルゴリズムです。doc2vecでは、文章の意味などで単語の出現確率が変化することを考えます。単語の出現確率を求める式に、文章のベクトルの項を追加し、補うようなベクトルを対応させます。
詳細は、論文やQiitaの記事などを参照してください。
応用(論文の分類)
勉強会では、論文を近傍探索して、「この論文に近いのはこんな論文」みたいな使い方を紹介しました。今回は、別の使い方として論文を分類しました。
何を分類するか
arXivのデータを使って以前から色々していて、以前word2vecを使ってmath.GTの論文のアブストラクトで訓練したところ、"category"に近い単語を探すと"Fukaya"が出て来るという結果が出ていました。微分トポロジーの中では、圏といえば深谷圏だということです。
では、今度は、深谷先生の名前がアブストラクトに登場する論文を扱ってみようと思います。具体的には、
- math.GT・math.SG・math.DGの3ジャンルの論文のアブストラクトを集める
- doc2vecの訓練を行う
- アブストラクトに"Fukaya"が含まれるものを抽出
- ベクトル化してクラスタリング
を行いました。9クラスに分類した結果は、https://github.com/n-kats/arxiv2vec/blob/sandbox/fukaya/_fukaya/sample/classified.txtにあります。大雑把には次のような感じです。
結果
0. 深谷圏
1. ミラー対称性
2. (少ない)
3. ミラー対称性
4. 倉西空間
5. 物理学寄りのミラー対称性?
6. 他への応用(低次元トポロジーなど)
7. Lagrangian cobordisms/correspondences
8. (1つしかない・・・)
やる前からわかっていたことですが、深谷圏の専門家ではないので、論文を見ても分からない・・・。ひょっとすると代数幾何系の論文からも検索すべきだったかもしれません。時間が・・・
とはいえ、全体像がふんわりと分かったかもしれません。このままでは問題がありますが、なんらかの新しい技術によって研究方法が大きく変化するようなことがあるといいですね。