recsys-python | Pythonによる推薦システム演習問題集
概要
recsys-pythonはPythonによる推薦システムの演習問題集です。推薦システムの基本である、評価履歴や評価値行列の扱いから、内容ベース推薦システム、近傍ベース協調フィルタリング、推薦システムの評価などに関する問題を取り揃えています。現時点では、13章構成で全163問用意しています。今後、内容を変更したり、問題を追加、削除したりすることもあります。
動機
言語処理100本ノックを参考にさせて頂き、推薦システム版の演習問題集を開発したいと思ったのがきっかけです。個人での学習に加え、大学での授業や研究室等でご活用いただければ幸いです。
到達目標
- Pythonを学習しながら推薦システムの基本を修得できる。
- 評価履歴や評価値行列を扱いながらNumPyによる行列演算やベクトル演算を修得できる。
- 数式をPythonでコーディングする方法を修得できる。
取り組み方
下記の目次から各章の問題に取り組んでください。
- 各問題に書かれている指示文にしたがってコードを記述してください。
- 各問題にはコードと結果が記載されています。大問にまとめて記載されている場合もあります。
- コード中には
【 問01 】
のように空欄があります。結果に記載のとおりの内容が出力されるように、この空欄に入る適切なコードを記述してください。
要件について
- 各問題には要件が記載されています。この要件をすべて満たすようにコードを記述してください。
- 要件の難易度が★の数で示されています。
- この要件はヒントにもなります。考えたり調べたりする際の手がかりにしてください。
- 問題によっては複数の要件パターンが記載されているものもあります。この場合はいずれかの要件パターンを満たすので十分です。
- Pythonは自由度が高い言語で、コードの書き方は幾通りもあります。そのため、要件を設定することで、ある程度の縛りを課しています。ただし、Pythonに慣れている方は、要件に縛られず独自の書き方で記述されるのも良いでしょう。作成者が想定しているよりももっと良い書き方があるかもしれません。
目次
評価履歴と評価値行列
内容ベース推薦システム(近傍ベース方式)
近傍ベース協調フィルタリング
次元削減
内容ベース推薦システム(モデルベース方式)
推薦システムの評価
参考
PythonおよびNumPyについては、下記の公式チュートリアルが参考になります。
演習問題に含まれる数式等については、下記定の書籍にて解説しています。
- 奥健太,『基礎から学ぶ推薦システム ~情報技術で嗜好を予測する~』,コロナ社,2022.
- ※Pythonコードは本書には含まれておりません。
作成者
龍谷大学 推薦システム研究室 奥 健太