serenade 0.3.1

Serenade: Session-based recommender system
Documentation
Preparation
===

### Data format

Serenade needs training data for generating recommendations and test data to evaluate the quality of your recommendations.
It supports binary AVRO files and CSV text files as input. 
If your data has less than 100 million records it is advised to use CSV files to get started with Serenade. A machine with 16GB of RAM memory is advised.

A CSV file must be TAB (\t) separated and look something like this:
```
SessionId       ItemId  Time
10036   14957   1592337718.0
10036   14713   1592337765.0
10036   2625    1592338184.0
10037   7267    1591979344.0
10037   13892   1591979380.0
10037   7267    1591979504.0
```

* **SessionId** A unique session identifier (unsigned 32 bit integers supported)
* **ItemId** an identifier for a product or item that a visitor interacted with. (unsigned 64 bit integers supported)
* **Time** epoch in seconds. (32 bit float and unsigned 32 bit integers supported)


Configure Application
---

All application configuration parameters can be set with a single config file in TOML format. Some parameters (currently only `training_data_path` and `num_workers`) can alternatively be set via environment variables.

### Minimum Configuration

The only parameter value that is required and has no default value to fall back on is `training_data_path`. The user must have a training data file, with appropriate data formatting (see above). Since this parameter can be set with an environment variable, the config file can be left out entirely. In this case, the default values specified in [CONFIG](CONFIG.md) are used for all remaining parameters.

See [CONFIG](CONFIG.md) for further configuration details.