最新の情報検索手法を知るにはどうしたらいいの...という人に向けたコンテンツまとめ記事2021

こんにちは。情報検索分野の勉強をしている [@KoheiShinden](https://twitter.com/KoheiShinden) です。

最近、「教科書読んだ後の最新の情報検索について知りたいんだけど何かいい記事とか媒体知ってる？」という質問を受けて自分が勉強する時に役立ったコンテンツをまとめて紹介するという機会が数回ありました。
そこで、そんな時にサッと紹介できるようにまとめてみようと思いこの記事を書くに至りました。

## 0. はじめに

ここでは簡単にこの記事がどんな内容かを書きます。

#### この記事で書いてること

2021年11月現在の情報検索に関連する書籍・論文・記事・動画・コミュニティなどのコンテンツのリンクと簡単な説明を行っています。**完全に主観です。**
特に、書籍で得られる基礎的な知識から BERT などの機械学習手法を適用した最新の手法までにはなかなかのギャップがあるのでそこを埋めるための手助けができたらなと思います。

#### この記事で書いていないこと

情報検索におけるそれぞれの研究に関する紹介などは行っていません。あくまで、その知識を得られるコンテンツの紹介にとどまっています。
また、ここで紹介しているコンテンツは結構しっかり目の内容だなと思うものを選択しているので、もっと簡単に俯瞰したいという方向けにはなっていないかなと思います。

#### 注意事項

知識の不足・未熟に関してはあらかじめご了承ください。情報検索を学ぶ上で良いコンテンツがあればコメントからご投稿いただけると嬉しいです！記事の構成をもっとこうした方がいいよとか、こういうところも書くといいよというアドバイスもいただけると非常に嬉しいです！よろしくお願いします🙇‍♂️


## 1. 情報検索の基本的な全体像を知る

まず手始めに、ここでは情報検索の基礎についても触れておきます。情報検索の基礎や全体像を理解するのに良いなと感じた資料や書籍について紹介します。

#### 情報検索の研究について網羅的に紹介している動画

これをみたら情報検索の基礎は知ってると言っても過言じゃないくらいの動画だと思っています。トータル 2 時間で具体的な例を交えつつこれほど網羅的に話している日本語の動画コンテンツは他にないんじゃないでしょうか。

https://www.youtube.com/playlist?list=PL_VdUcCLzEkley0LZG9B5PXFxoIYbjVdM

上記の動画は最強DB講義というイベントにおける講演の動画です。最強DB講義は、データベース関連分野におけるトップレベルの研究者の方々が無料で講義をするというイベントであり、録画したものが後日 YouTube にアップされます。クラウドソーシングや秘密計算、グラフマイニングなどデータベース関連分野のトピックを学ぶ機会として非常に有益だと感じています。

https://dblectures.connpass.com/

#### 基礎基本が書いてある本

こちらで紹介している書籍は情報検索系の研究室には必ずあると言っても過言ではない基礎となる知識を得るための本です。ただし、最新手法までは網羅されていないことに注意です。参考までに紹介します。

翻訳された最新の書籍：

https://www.morikita.co.jp/books/mid/081761

過去に翻訳された書籍：

https://www.kyoritsu-pub.co.jp/bookdetail/9784320123229

翻訳元となっている資料：

https://nlp.stanford.edu/IR-book/information-retrieval-book.html

https://web.stanford.edu/class/cs276/

#### プロダクトよりの話も踏まえた理解ができるスライド

ここまでに紹介したものはどちらかというと研究よりの話でしたが、プロダクトよりの話も踏まえて理解を深めるには株式会社リクルートの新卒研修資料が良いなと思います。

https://speakerdeck.com/recruitengineers/improvement-of-the-quality-of-search-results

## 2. 最新のニューラルモデルを使った手法を知る

ここでは基礎を理解した後に現在主流となっているような検索手法について学ぶ上で有益なコンテンツについて紹介します。

#### 古典手法からニューラルモデルを使った最新手法までを日本語で紹介している記事

Qiita に投稿されている現在の検索の基礎となっている古典手法からニューラル検索手法についての記事を紹介します。それぞれ公開年が 2018 年、2019 年と古く感じるかもしれませんが紹介する記事にあるような知識があるのとないのとでは、最新の論文をサーベイする際の理解度も大きく異なるため紹介しています。

https://qiita.com/rejasupotaro/items/7b48d6c2fdd646e01cfb

https://qiita.com/rilmayer/items/5ac053288cb111c82a7a

#### ニューラル情報検索に入門する教科書的な論文

B. Mitra 氏と N. Craswell 氏によって書かれたニューラルな情報検索手法についての入門論文です。2018 年公開となっていますがニューラルな情報検索手法を理解する上では非常に有益な論文だと思います。

https://www.microsoft.com/en-us/research/publication/introduction-neural-information-retrieval/

この論文の後にどんな研究が展開されているかは Google Scholar などでこの論文を引用している論文を探すことで知ることができます： [An introduction to neural information retrieval を引用している論文](https://scholar.google.co.jp/scholar?cites=12894071857228874268&as_sdt=2005&sciodt=0,5&hl=ja)

#### BERT を使った検索に関する論文

J. Lin 氏らによって書かれた BERT による検索手法についての論文です。情報検索に BERT を適用するにあたって重要なテクニックや effectiveness/efficiency のトレードオフに関する技術について書かれています。

https://arxiv.org/abs/2010.06467

ちなみに日本語の解説記事もありました。特に BERT を使った手法にフォーカスして解説されています。

https://ymym3412.hatenablog.com/entry/2020/12/27/080410


## 3. 最新の検索手法を実装してみる

ここでは学会で行われるチュートリアルについて紹介します。私もそうですが「ただ論文を読んだりスライドを見るだけではよくわからないから実際に手を動かしたい！」と思う方は少なくないはずです。そういった場合に学会で行われる実装系のチュートリアルなどが有効です。

### 学会のチュートリアルで古典手法から最新手法までを体験

まず、情報検索系の学会である [ECIR 2021](https://www.ecir2021.eu/) で行われたチュートリアルを紹介します。内容としては古典手法から最新の検索アーキテクチャまでを実装を踏まえて紹介しています。リランカーモデルや最近傍探索、高密度検索についても触れられています。

https://github.com/terrier-org/ecir2021tutorial

こちらは情報検索系の学会である [SIGIR 2019](https://sigir.org/sigir2019/) で行われたチュートリアルです。ニューラルネットワークを使ったランキング学習について [TensorFlow Ranking](https://github.com/tensorflow/ranking) を使って紹介しています。

http://ltr-tutorial-sigir19.isti.cnr.it/slides/

https://colab.research.google.com/github/tensorflow/ranking/blob/master/tensorflow_ranking/examples/handling_sparse_features.ipynb

### ニューラル検索手法を提供している検索ライブラリ

検索手法を実装する際に有用なライブラリについて一旦 Python 限定で紹介します。
中には Google Colab で実装サンプルコードを提供しているものもあるので手を動かしながら理解できます。

https://github.com/castorini/pyserini

https://github.com/terrier-org/pyterrier

https://github.com/Georgetown-IR-Lab/OpenNIR

おまけで情報検索のデータセットを簡単に扱えるようになる Python ライブラリについても紹介しておきます。

https://github.com/allenai/ir_datasets

## 4. 最新情報を更新し続けるために情報検索コミュニティに参加してみる

この記事で最新の検索手法に入門したとしても次々に新しい手法は出てくるので情報の更新が必要です。そこで、私が知る限りでいくつかの情報検索の代表的なコミュニティについて紹介します。コミュニティに参加することで最新の情報を更新し続けやすくなるはずです。

#### エンジニア・研究者コミュニティ「search-tech-jp」

エンジニアも研究者も情報検索に関わっているもしくは興味のある様々な人たちが参加している Slack のコミュニティです。情報検索に関連して様々な有益な情報がシェアされていたり分からない内容について質問を投稿したりできるので要チェックです。

https://twitter.com/takuya_b/status/1377219737457860610?s=20

#### 研究者コミュニティ「ACM SIGIR 東京支部」

国際的な情報検索系の研究コミュニティである [ACM SIGIR](https://sigir.org/) の東京支部です。情報検索を中心とした分野の研究者の方々が所属しています。
年に２回、春と秋に開催される IR Reading という情報検索の主要学会の論文紹介をするイベントは、最新の研究トレンドを理解するのに非常に有益です。
（余談ですが私も[発表しています](https://speakerdeck.com/koheishinden/ir-reading-2021-fall)。）

https://sigir.jp/

https://sigir.jp/post/2021-10-30-irreading_2021fall/


#### アドベントカレンダー

情報検索のアドベントカレンダーは今のところこの２つくらいかなと認識しています。
論文・技術紹介から実装まで色々なトピックが紹介されるので勉強になります。
（余談ですが今年は私も書きます。）

https://adventar.org/calendars/6430

https://qiita.com/advent-calendar/2019/search


## 5. さいごに

この記事では、情報検索に関連するコンテンツのリンクと簡単な説明を行いました。
冒頭でも述べました通りまだまだ足りないので記事を更新していきたいと思っておりぜひ有益なコンテンツの共有・アドバイス等お寄せいただけると嬉しいです！