Архитектура - cscenter/automatic-playlist-generation GitHub Wiki

Задача состоит в том, чтобы составить плейлист пользователю из его коллекции треков согласно пожеланиям к основным направлениям: это может быть настроение, определённый жанр и прочее. Для треков определены и собраны признаки:

Признаки для каждого трека обрабатываются функцией 𝜑, зависящей от основных направлений, заданных пользователем. Можно варьировать значимость каждого из направлений -- насколько важно сооответствие жанру, однородность настроения в разных треках и прочее. На выходе получается некоторое значение из интервала [0, 1], которое далее используется для составления плейлиста:

Пользователь оценивает полученный плейлист. Кроме того, есть оценка качества по метрикам плейлиста. Метрики отображают уникальность плейлиста (все ли исполнители различны), однородность жанра и другие свойства.