What's Changed
* [`df_to_sparse`](https://github.com/tohtsky/irspack/blob/467d30bc40488a35fb205b51d72d432466e3000e/src/irspack/utils/__init__.py#L72-L79) function improved. If `user_ids` / `item_ids` are provided, DataFrame row with unknown user/item ID will be ignored.
* The function arguments with names `**_colname` is renamed to `**_column`. See 99.
* Deleted `IDMappedRecommender`. Instead, use
* [`ItemIDMapper`](https://github.com/tohtsky/irspack/blob/971d4b3ac35a4d2e521f04027a3eaf7429105f07/src/irspack/utils/id_mapping.py#L51) for item id <-> sparse matrix column index mappings
* [`IDMapper`](https://github.com/tohtsky/irspack/blob/971d4b3ac35a4d2e521f04027a3eaf7429105f07/src/irspack/utils/id_mapping.py#L326) for user/item <-> sparse matrix row/column index mappings
* Added [NeuMF-type evaluation example](https://github.com/tohtsky/irspack/blob/main/examples/1-vs-100-negative.ipynb)
* Removed `*Optimizer` class. Recommender performance can be now tuned by [`**Recommender.tune` class method](https://github.com/tohtsky/irspack/blob/971d4b3ac35a4d2e521f04027a3eaf7429105f07/src/irspack/recommenders/base.py#L172).
* Move to `src/irspack` layout & always use relative import.
**Full Changelog**: https://github.com/tohtsky/irspack/compare/v0.2.4...v0.3.0