Refactor the histogram functions
The histogram functions can be split in six groups, according to the following dimensions:
- differential privacy, no differential privacy (Flink native), no differential privacy (small-data version)
- stream items bring the whole user-item matrix vs stream items bring the deltas
This part of code should be restructured to make the project more understandable.