肉球でキーボード

MLエンジニアの技術ブログです

「推薦システム実践入門」を読みました

「推薦システム実践入門」を読んだので、感想・各章の内容についてまとめてみます

www.oreilly.co.jp

全体を通しての感想

著者の方々が現役のデータサイエンティスト・MLエンジニアというだけあり、サブタイトルの「仕事で使える導入ガイド」に相応しい「実務上のビジネス課題に対して推薦システムを利用するためのノウハウ」が丁寧に解説された内容でした。

自分が本書を手に取ったモチベーションは、「体型的に推薦アルゴリズムがまとまっていて、実装例がある本を読みたい」という点でした。

サンプルコードがまとまっていて、実務・研究で初めて推薦システムを扱う方の「理論よりまず手を動かして、有名な推薦アルゴリズムを体型的に学びたい」というニーズをうまく満たしてると思います。

本書がカバーしている内容は、推薦アルゴリズムの解説だけではなく、「ビジネス課題に対して推薦システムを用いる方法」の部分であるため、実務で推薦システムを検討することになった方にとって良い一冊だと思います。

推薦システムを使用する上で必要な、ビジネス上の推薦問題設計・推薦アルゴリズムの実装・システム設計・評価・落とし穴が書かれていて、実務で推薦システムを使用するためのノウハウをまとめてくれています。

各章の内容

1章 推薦システム

AmazonNetflixの身近な例を上げ、推薦システムってそもそも何だっけ?という点に触れています。

本書では推薦システムを「複数の候補から価値のあるものを選び出し、意思決定を支援する仕組み」として扱い、この内容を達成するための方法が各章で取り上げられています。

2章 推薦システムのプロジェクト

実務で推薦システムをプロジェクトとして取り組む際の注意点を、7つのプロセスに分けて解説しています。

推薦システムに限らずデータサイエンティストがビジネス課題を解くために、ビジネス・データサイエンス・データエンジニアリング力が必要であると触れています。

本書ではデータサイエンス部分だけでなく、ビジネス・データエンジニアリングに関わる部分も触れている内容な点が、実践的入門書らしいなと思います。

3章 推薦システムのUI/UX

推薦をする上でのUI/UXの重要性・注意点を取り上げています。この章だけピンポイントな課題に触れているなと違和感を感じましたが、推薦アルゴリズムも大事だが、どう見せるかも非常に大事という著者の経験から扱ったテーマなのかと思いました。

4章 推薦アルゴリズムの概要

個々のアルゴリズムの詳細に触れる前に、推薦アルゴリズムを大きく分類し、それぞれの長所・短所をまとめています。

5章 推薦アルゴリズムの詳細

サンプルコード: https://github.com/oreilly-japan/RecommenderSystems

を動かして、各アルゴリズムをMovieLensデータセットに対して応用した例がまとまっています。

実行時に詰まった点のメモ

ランダム推薦のファイル名がrandom.pyとなっていて、pythonの組み込みライブラリ randomと名前衝突して実行時にエラーが出ていました。

PYTHONPATHの設定などあれこれ試してみましたが、自分は random.pyのファイル名を一時的に別の名前にすることで回避しました。

6章 実システムへの組み込み

推薦システムをプロダクトで実装するためのエンジアリング部分について触れています。

7章 推薦システムの評価

推薦アルゴリズムのオフライン評価指標や、ABテスト設計についてまとめられています。

各評価指標の実装例があるのが嬉しいですね。

8章 発展的なトピック

RecSysなどの推薦をキャッチアップしていく上でベンチマークにある国際会議を紹介しています。

また、推薦システムで大きな問題となるバイアスについて取り上げています。

まとめ

実務で推薦システムを検討している・体型的に推薦アルゴリズムをキャッチアップしたい初学者におすすめな一冊だと思います。