論文の読み方を学ぶために落合先生の講義資料とAndrew教授の動画を見た

仕事で推薦システム周りを担当することになったり、社内の勉強会で対話システムをやることになったり、論文を読む機会が増えてきそうなのでTwitterで話題になってて気になっていた落合フォーマットなるものが収録されている講義資料とAndrew教授の講義動画を見ました。

落合先生の講義資料

www.slideshare.net

Andrew教授の講義動画

youtu.be

落合先生の資料の方はまともにサーベイなどやったことのない自分からすると、サーベイって論文どのくらい読むのかとか、こういう観点を持ってやるんだなっていう雰囲気を知れる良いものでした。

Andrew先生の方は、論文の読み方に加えて、実際にAndrew教授が持ち歩いてる論文フォルダが出てきておおっとなったり機械学習周りでのキャリアの話なんかもあったりして、ああ、T型人材って昔から聞いてたけど横棒の部分はこのくらいの理解度が必要なのか〜とか初めてまともに知ることができるものでした。

全然違うお二方ですが、論文の読み方の部分は意外と共通している部分があったりして面白かったです。 論文の読み方以外のことについても言及されていましたが、この記事では双方の論文の読み方に当たる部分だけまとめていきます。

ある分野に関しての論文を読むときの手順

  1. その分野で読みたい論文リストをまとめる
  2. リストにまとめた論文をそれぞれ10%くらいかいつまんで読んでみる
  3. 最も洗練されている論文を100%近くまで読んで理解する
  4. その後他の論文も読み進め、理解度を上げていく

一つ一つの論文を読む手順

  1. タイトル/アブスト/図を見る(特にDeep Learningだとここに論文の重要なところがかなり詰まっている)
  2. イントロ/結論/きになる部分を読む
  3. 数式を飛ばして読む
  4. 全体を読む(ただし意味がないと思われる部分は飛ばして読む)

3に数式は飛ばして読むとありましたが、これは数学が得意な人に向けたものだと思いました。自分のようにあまり数学が得意でない人間は慣れるまでは粘って数式が何を示しているのか理解するのに務めたほうが後々良い気がしています。

4のただし意味がないと思われる部分は飛ばして読むというのは、著者は論文を書いた時点では意味があると思って書いているが、それが後々意味がないものになるかどうかはわからないから、ということでした。

落合先生の資料にも、似たような順番で読むと早いと書いてありましたが、注意書きで順番通りに読むのに慣れた人向けと書いてあったのでまずは順番通りに読んだ方が良さそうな気がしました。

意識しながら読むこと

  • 著者が何を成し遂げようとしてこの論文を書いたか?
  • 何がアプローチのキモなのか?
  • 自分はその論文の何を自分の課題に使えるのか?
  • リファレンスで読みたい論文は何か?

ちなみに落合先生の部分でも論文のまとめ方が言及してあって、そのポイントは以下の通りです。

  • どんなもの?
  • 先行研究と比べてどこがすごい?
  • 技術、手法のキモはどこ?
  • どうやって有効だと検証した?
  • 議論はある?
  • 次に読むべき論文はなに?

という感じで、ところどころ被っている部分もあります。自分もこれを参考にブログなり手元のメモなりにまとめていこうと思いました。

どのくらいの論文を読むべきか?

Andrew教授の動画によると、

  • 5 ~ 20:その分野の基礎は大体理解できている。
  • 50 ~ 100:その分野でほぼ十分な知識がある。

とのこと。落合先生の鬼コースでも50本以上論文を読むことになっていたので、ここも共通していた。

最後に感想ですが、両方ともすごくよくて、ためになりました。 特にT型の横棒、縦棒部分の目指すべき理解度レベルは、自分の知識が薄めの横棒のようなイメージだということを認知し、自身を見つめ直す良いきっかけになりました。 また、落合先生の鬼コースの内容はハードさが個人的に好きで、学生時代こんだけ頑張ってる人もいっぱいいるんだな〜という危機感を持てました。 冗談じゃなく人間性捧げるくらいの意気込みでやって行かないと、学生時代サボりにサボった自分はとても追いつけないなと痛感しています。 やっていきですね!

【論文メモ】Factorization Machine

モチベーション

仕事でレコメンドの機能開発をすることになったので読みました。

読んだ論文

Factorization Machines

著者/所属

Steffen Rendle
Department of Reasoning for Intelligence, The Institute of Scientific and Industrial Research, Osaka University, Japan

f:id:yaginuuun:20190823202844p:plain

f:id:yaginuuun:20190823202931p:plain

どんなもの?

Matrix Factorizationの手法を交互作用項のパラメータ推定に応用したもの

先行研究と比べてどこがすごい?

  • SVMでは学習できないスパースなデータに対しても十分な精度を保ち学習することができる
  • 協調フィルタリング、Matrix Factorizationなどのレコメンド手法のように特別な形のデータを用意しなくてもレコメンドへ応用できる

技術や手法のキモはどこ?

交互作用項の重みを独立と仮定せずに、行列値分解を応用することでスパースなデータに対しても重みを学習できるようにした点

どうやって有効だと検証した?

  • 計算時間が線型増加であることの数式展開による検証
  • SVM, MFとの数式比較による拡張性の検証
  • SVMとのスパースなデータにおけるデータへの誤差の比較

f:id:yaginuuun:20190823203004p:plain

議論はある?

  • 協調フィルタリングやMFとは異なり、通常の形のデータでレコメンドへ応用できるのは魅力(属性情報等も含められる)
  • 計算量はデータ量、特徴数に線型増加ではあるものの、user, itemの1インタラクションが1行となるのでデータは大きくなりがちな気がする

次に読むべき論文は?

ちょっとまだわからない