言語処理ことはじめ

# はじめに
ついに2022年のAdvent Calendarが始まりましたね！
思えば初日を担当することになったのは11月30日でした．なんだか意味が分からないですね！

この記事では，B3からM1にかけて言語処理を勉強してきた中で読んでよかった本や，勉強の流れを紹介出来たらと思います．
対象としてはB3の方など，言語処理を全く知らない方になります．もし詳しい方がいらっしゃいましたら，コメントにてご意見お待ちしております．

# 勉強の仕方
## 始め方
まず，深層学習ってなんぞや，機械学習ってなんなんだよ！人が普通だと思います．
そんな人にはわかりやすいパターン認識（[Amazon Link](https://www.amazon.co.jp/%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E8%AA%8D%E8%AD%98-%E7%9F%B3%E4%BA%95-%E5%81%A5%E4%B8%80%E9%83%8E/dp/4274131491/ref=pd_rhf_d_se_s_pd_sbs_rvi_sccl_1_16/355-2092445-7129612?pd_rd_w=TjNsS&content-id=amzn1.sym.b363659c-eda3-40b5-acc5-87d7776d0029&pf_rd_p=b363659c-eda3-40b5-acc5-87d7776d0029&pf_rd_r=5QQHTA73XRWAZRPCDMXX&pd_rd_wg=Wyj7o&pd_rd_r=e86c64d3-c10a-46b4-b9a2-942bb6d22d31&pd_rd_i=4274131491&psc=1)）をお勧めします．
その本を読んで，ざっと機械学習を理解したら，言語処理や画像などの具体的な分野を勉強するとよいと思います．
具体的な分野の本を読むと同時に，主流となっている手法の論文を読んで勉強することが良いかなと思います．最近は日本語の本もたくさん出ているため，そちらでもよいと思いますが，原著は読んでおくことをお勧めします．
まとめますと，
1. 機械学習について勉強する（わかりやすいパターン認識など）
1. 具体的な分野に関する本を読む（おすすめは後ほど）
1. 主流な手法の論文を読む（Transformer, BERT, など）

こんな感じです．それでもわからない所が出てくると思いますが，僕はその都度調べたりしています．おそらくそんなもんかと思います．
## おすすめ参考書
正直なところ，僕が読んできた本はおすすめされていたものだったため，すべておすすめ参考書となります...
では2冊ほど紹介いたします．
- 自然言語処理[改訂版]
    - 著者: 黒橋禎夫
    - [Amazon Link]( https://www.amazon.co.jp/%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86-%E6%94%BE%E9%80%81%E5%A4%A7%E5%AD%A6%E6%95%99%E6%9D%90-%E9%BB%92%E6%A9%8B-%E7%A6%8E%E5%A4%AB/dp/4595319584/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=39WJHSR735265&keywords=%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86&qid=1669886390&qu=eyJxc2MiOiI1LjY4IiwicXNhIjoiNS4wNSIsInFzcCI6IjQuOTUifQ%3D%3D&sprefix=%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86%2Caps%2C146&sr=8-7)
- 深層学習による自然言語処理
    - 著者: 坪井祐太, 海野裕也, 鈴木潤
    - [Amazon Link](https://www.amazon.co.jp/%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92%E3%81%AB%E3%82%88%E3%82%8B%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86-%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%97%E3%83%AD%E3%83%95%E3%82%A7%E3%83%83%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E5%9D%AA%E4%BA%95-%E7%A5%90%E5%A4%AA/dp/4061529242/ref=sr_1_10?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=39WJHSR735265&keywords=%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86&qid=1669886390&qu=eyJxc2MiOiI1LjY4IiwicXNhIjoiNS4wNSIsInFzcCI6IjQuOTUifQ%3D%3D&sprefix=%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86%2Caps%2C146&sr=8-10)

この二冊がおすすめな理由は以下になります．
- 自然言語処理[改訂版]
    - 深層学習が主流になっている現在においても統計的言語処理を理解することは大事（深層学習を理解するための手掛かりになったりするため）
    - この本は，難しい数式を羅列するのではなく広く浅く語るような形で統計的言語処理を知ることができる
    - 初学者でもわかりやすく手に取りやすい
- 深層学習による自然言語処理
    - 深層学習は説明性が低く，それが逆になんとなくの理解を促進させてしまう（Web上のジャンクな記事など）
    - この本は数式もセットで説明しているため，わからない所がはっきりして勉強しやすい
    - TransformerやBERTではなく，RNNやLSTMなどの古典的な手法を解説しており，基礎知識が充実する

この本でないと駄目というわけではありませんが，上記のような点を持つ本が良いかなと思います．
重要かなと思うのは，深層学習が主流だからといって統計的な手法や過去の手法をないがしろにせずしっかり理解すること，少なくとも存在を認知することが大事だということです．それらを理解する中で言語処理（深層学習）の理解が結果的に深まるのではないかと思います．

# 論文の見つけ方・読み方

次に，僕流の論文の見つけ方・読み方を紹介します．
といっても独自性のあるものではなく，NISTの品川先生の資料（参考文献に貼ります）などがベースになっています．そちらの方がわかりやすく説得力もあるのでそちらをきちんと読むことをお勧めします．
では，紹介に入ります．
## 論文の見つけ方
基本的にはキーワード検索を行います．どんなサイトで行うかというと，Google Scholar や各学会を対象としています．言語処理で言えば，ACL, EMNLP, NAACL を筆頭に行い，僕は対話関連を研究しているため，SIGDIAL やSIGIR も対象としています．それぞれの学会のAccepted Paper からキーワードにヒットする論文タイトルを見つけます．その後はその論文の参考文献やその論文を引用している論文を探します．
そのような形で，荒く調べてから自分にマッチしたものに絞っていくイメージで僕は行っています．
まとめると，
1. 学会の投稿論文やGoogle Scholar にてキーワード検索を行いヒットした論文をリストアップ
2. ざっくりと論文を読み，Introduction やRelated Work から関連していそうな論文をリストアップ
3. 読んだ論文を引用している論文をリストアップ

こんな形で論文を見つけます．見つけた論文はGoogle SpreadSheet などにまとめます．著者の所属を調べてそこ経由で論文を探すのも良いと思います．

## 論文の読み方
こんな記事を書いていますが，皆さんに教えられるほど論文を読んでいないため，現状の読み方を共有する形となります．
大事なことは読むことだと思います．特に英語が苦手だったりする人も何をしても良いから読むことが大事だと思います．僕はDeepLを使ってしまっています．早く脱却したいとは思っていますが...
読み方ですが，
1. 時間を決める
1. 概要, 序論, 結論, 図表を読む
1. 気になる論文であれば関連研究も読む
1. めっちゃ気になる論文であれば手法, 実験もしっかり読む

といった感じになります．大事なポイントかなと思うのは，
- 時間を決めて読むこと
- 概要の概要を書くこと（先行研究の課題，提案手法，達成したこと）

です．
時間を決めることは，だらだら読むことを避けるために行います．
概要の概要を書くことは，論文の構造を理解しながら読むことがやりやすくなるかなと思っています．また，見返した際にどんな論文だったかがすぐにわかることも理由になります．

## その他
論文を読む際にメモを残すことも大事と聞きます．印刷することが一番なのかもしれませんが，僕はPaperpileをお勧めしています．有料ではありますが，iPadを用いて書き込みもできGoogle Driveにpdfを保存しているため容量などを気にする必要もありません．また，PCとiPadなどの媒体間で共有できます．
無料トライアルがあるので，気になった方はぜひ試してみてください（[Link](https://paperpile.com/)）．

# おわりに
この記事では，言語処理を勉強するにあたってどんなことをすればよいか，などをまとめました．おすすめ勉強法3選！みたいな感じではなく，僕のやり方を共有しているだけになるのでご了承ください．
はじめににも書きましたが，こんな本が良かったよ，こんな勉強の仕方がよかったよ，といった意見があればぜひ教えていただけると泣いて喜びます．

# 参考文献
[自然言語処理を独習したい人のために](https://cl.sd.tmu.ac.jp/prospective/prerequisite)
[AHC-Lab M1勉強会 論文の読み方・書き方](https://www.slideshare.net/ShinagawaSeitaro/ahclab-m1?from_m_app=android)
[高速で論文がバリバリ読める落合先生のフォーマットがいい感じだったのでメモ](https://lafrenze.hatenablog.com/entry/2015/08/04/120205)
[先端技術とメディア表現1 #FTMA15](https://www.slideshare.net/Ochyai/1-ftma15/)
[自然言語処理系の国際会議を雑に説明してみる(修正あり)](https://qiita.com/mhangyo/items/4eb5add038d6d4e76c79)