4.2 Средства и инструменты
Для построения модели использовался язык Python (исходный код эксперимента размещен в открытом репозитории GitHub) [62]. В дополнение к этому, для обработки данных использовались пакеты NumPy, pandas и sklearn. Для построения рекомендательных моделей использовался пакет tensorrec. При тестировании гипотезы с помощью статистических тестов использовалась библиотека stats пакета SciPy. В качестве данных о музыкальных композициях используется часть данных из открытого датасета музыкального рекомендательного сервиса Spotify. Данные о пользователях были получены с помощью опросника.
4.3 Подготовка данных для эксперимента: применение предложенного подхода к разработке признаков
Прежде, чем перейти к построению моделей, необходимо подготовить данные и разработать признаки, которые будут использоваться затем моделью машинного обучения. Для этого применяется разработанный в главе 3 подход.
Шаг 1. Разработка схемы признаков рекомендуемого объекта.
Исследуемая в рамках эксперимента рекомендательная система является музыкальной рекомендательной системой, т.е. объектом рекомендаций в системе является музыкальная композиция. В системе можно зарегистрироваться, искать песню, слушать ранее сохраненные песни или плейлист рекомендаций, которые по одной предлагает система. Исходя из этого и с учетом имеющихся данных о музыкальных композициях (табл. 4), с помощью дерева признаков получаем схему признаков (рис. 5).
Шаг 2. Определение точек и сценариев взаимодействия пользователя с объектом рекомендаций в системе (неявный подход).
Таблица 4. Описание признаков музыкальных композиций, используемых в модели (датасет Spotify)
|
АТРИБУТ |
ТИП ДАННЫХ |
ОПИСАНИЕ |
|
|
Song ID |
int |
Идентификатор песни в наборе данных (добавлен самостоятельно) |
|
|
Artist |
string |
Имя исполнителя |
|
|
Song name |
string |
Название музыкальной композиции |
|
|
Danceability |
float |
Показатель танцевальности песни (вычислено с помощью алгоритмов машинного слуха) |
|
|
Energy |
float |
Степень энергичности песни |
|
|
Loudness |
float |
Громкость: вычислено как среднее значение в дБ - с помощью алгоритмов машинного слуха |
|
|
Mode |
int |
Бинарный показатель мажорности/минорности песни, основан на вычислениях алгоритмов машинного слуха |
|
|
Speechness |
float |
Показатель, характеризующий наличие в музыкальной композиции слов (определяется с помощью алгоритмов машинного слуха) |
|
|
Acousticness |
float |
Показатель, определяющий долю, насколько музыкальная композиция состоит из акустических инструментов |
|
|
Instrumentalness |
float |
Показатель, определяющий долю, насколько музыкальная композиция состоит из различных инструментов |
|
|
Liveness |
float |
Показатель, определяющий, насколько музыкальная композиция является живым исполнением или исполнением в записи |
|
|
Tempo |
float |
Усредненный темп песни в BPM (вычислено с помощью алгоритмов машинного слуха) |
|
|
Duration |
int |
Продолжительность песни в миллисекундах |
|
|
Genre |
string |
Жанр, к которому отнесена музыкальная композиция |
Рисунок 5. Схема признаков для музыкальной рекомендательной системы
Теперь необходимо для каждого признака музыкальной рекомендации, выявленного на шаге 1, определить точки взаимодействия пользователя с ними в системе, которые являются неявными для пользователя. Для этого воспользуемся предложенным форматом для выявления таких сценариев (табл. 5). При заполнении таблицы необходимо учитывать доступные в системе сценарии, в данном случае это:
регистрация в системе;
поиск и прослушивание отдельных композиций в системе;
прослушивание ранее сохраненные композиции;
прослушивание плейлиста композиций, рекомендуемых системой.
Например, для признака музыкальной композиции «Название» в системе может быть такой сценарий: при прослушивании песни пользователь может переключить песню - сказать наверняка, сделал ли он это из-за того, что увидел название, нельзя, поэтому такую точку взаимодействия можно выделить как неявную. В то же время, для признака «Сохранить» нельзя указать неявную точку взаимодействия, так как для того, чтобы сохранить песню к себе в плейлист, пользователь должен в явном виде это сделать. Для признаков, с которыми нет неявных точек взаимодействия в рамках пользовательских сценариев, в таблице ставится прочерк.
Для выявления точек взаимодействия пользователя с признаками рекомендуется использовать технику мозгового штурма.
Таблица 5. Точки и сценарии взаимодействия пользователя с музыкальными композициями в системе (неявные)
|
Признак |
Пользовательский сценарий в системе |
Точка взаимодействия пользователя с признаком |
|
|
Название |
Прослушивание ранее сохраненной или рекомендуемой композиции |
Выбор песни, проигрывание композиции в плейлисте до конца/не до конца |
|
|
Исполнитель |
|||
|
Жанр |
|||
|
Danceability |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Выбор песни, проигрывание композиции в плейлисте до конца/не до конца, добавление в сохраненные, положительная оценка композиции |
|
|
Energy |
|||
|
Loudness |
|||
|
Mode |
|||
|
Speechness |
|||
|
Acousticness |
|||
|
Instrumentalness |
|||
|
Liveness |
|||
|
Tempo |
|||
|
Duration |
|||
|
Проигрывается |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Проигрывание композиции в плейлисте до конца, без перелистывания |
|
|
Не проигрывается |
- |
- |
|
|
На паузе |
- |
- |
|
|
Слушать |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Проигрывание композиции в плейлисте до конца, без перелистывания |
|
|
Сохранить |
- |
- |
|
|
Искать |
- |
- |
|
|
Оценить |
- |
- |
|
|
Нравится |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Проигрывание композиции в плейлисте до конца, без перелистывания, частое проигрывание песни |
|
|
Не нравится |
Прослушивание найденной или рекомендуемой композиции |
Перелистывание композиции в плейлисте или прослушивание найденной песни не до конца (без оценки, сохранения) |
Шаг 3. Определение точек и сценариев взаимодействия пользователя с объектом рекомендаций в системе (явный подход).
После этого нужно проделать ту же процедуру для выявления точек взаимодействия пользователя с признаками в системе, которые являются явными. При заполнении таблицы (табл. 6) необходимо также учитывать доступные в системе сценарии.
Например, на этом этапе для признака «Название» можно выделить такую точку взаимодействия, как поиск по названию, и наоборот, для признака «Danceability» нет явного сценария в системе, так как даже когда пользователь сохраняет композицию к себе в плейлист или оценивает ее как понравившуюся, нельзя однозначно сказать, что песня понравилась из-за показателя «Danceability».
Таблица 6. Точки и сценарии взаимодействия пользователя с музыкальными композициями в системе (явные)
|
Признак |
Пользовательский сценарий в системе |
Точка взаимодействия пользователя с признаком |
|
|
Название |
Поиск композиций |
Поиск композиции по названию |
|
|
Исполнитель |
Поиск композиций |
Поиск композиций по исполнителю |
|
|
Жанр |
Поиск композиций |
Поиск композиций по жанру |
|
|
Danceability |
- |
- |
|
|
Energy |
- |
- |
|
|
Loudness |
- |
- |
|
|
Mode |
- |
- |
|
|
Speechness |
- |
- |
|
|
Acousticness |
- |
- |
|
|
Instrumentalness |
- |
- |
|
|
Liveness |
- |
- |
|
|
Tempo |
- |
- |
|
|
Duration |
- |
- |
|
|
Проигрывается |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Выбор композиции для проигрывания, проигрывание композиции не до конца (перелистывание) |
|
|
Не проигрывается |
Найденная, ранее сохраненная или рекомендуемая композиция не выбрана для прослушивания |
Композиция не выбрана для проигрывания в текущий момент |
|
|
На паузе |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Композиция поставлена на паузу |
|
|
Слушать |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Выбор композиции для прослушивания, перелистывание композиции в ходе прослушивания |
|
|
Сохранить |
Прослушивание найденной или рекомендуемой композиции |
Сохранение композиции в свой плейлист в ходе прослушивания |
|
|
Искать |
Поиск композиции |
По названию, исполнителю или жанру |
|
|
Оценить |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Оценка композиции пользователем с помощью шкалы оценок |
|
|
Нравится |
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Сохранение композиции в свой плейлист в ходе прослушивания или положительная оценка |
|
|
Не нравится |
Прослушивание найденной или рекомендуемой композиции |
Отрицательная оценка композиции |
Шаг 4. Консолидация и соотнесение выявленных пользовательских сценариев с атрибутами поведения человека.
Теперь нужно объединить выявленные сценарии и соотнести с признаками поведения человека с помощью таблицы 3 (гл. 3). Для удобства, каждый сценарий дополнительно помечается как Я - явный или Н - неявный. В качестве технических ограничений аппаратного обеспечения принимается, что рекомендательная система рассчитана на использование с помощью персонального компьютера, ноутбука с тачпадом. В системе не предусмотрен модуль распознавания речи.
Таблица 7. Подбор признаков поведения человека для точек взаимодействия пользователя с признаком музыкальной композиции в системе
|
Пользовательский сценарий в системе |
Точка взаимодействия пользователя с признаком (Я/Н) |
Признаки поведения человека |
|
|
Поиск композиций |
Поиск композиции по названию - Я |
Ввод названия, время, затраченное на просмотр композиции, скорость взаимодействия с интерфейсом |
|
|
Поиск композиций по исполнителю - Я |
Ввод исполнителя, время, затраченное на просмотр, с какой частотой ищется, скорость взаимодействия с интерфейсом |
||
|
Поиск композиций по жанру - Я |
Ввод/выбор жанра, время, затраченное на просмотр композиции, оценка жанров, которые выбираются чаще, с какой частотой ищется, скорость взаимодействия с интерфейсом |
||
|
Найденная, ранее сохраненная или рекомендуемая композиция не выбрана для прослушивания |
Композиция не выбрана для проигрывания в текущий момент - Я |
Учет исторических данных: какие композиции и с какой частотой прослушиваются, от чего зависит выбор |
|
|
Прослушивание найденной, ранее сохраненной или рекомендуемой композиции |
Выбор песни для прослушивания - Я |
Учет исторических данных: какие композиции и с какой частотой выбираются, от каких признаков композиции зависит выбор, логирование выбора, оценка текущих эмоций с помощью многомерной модели МО, скорость выбора композиции, оценка характеристик и категорий композиции, какие категории выбираются чаще, соотношение частоты выбора предлагаемых и выбранных самостоятельно объектов, активность/ пассивность действий + способ принятия решения (T vs F), темперамент - характеризуется и измеряется свойствами нервной деятельности (см. Приложение) |
|
|
Сохранение композиции в свой плейлист в ходе прослушивания - Я |
Оценка реакции человека в сравнении с другими: статистические характеристики по сохранению, учет исторических данных о выборе: композиции с какими признаками сохраняются чаще всего, оценка текущих эмоций с помощью многомерных моделей МО, скорость взаимодействия, логирование сохранения в системе с отметкой, когда было сохранено, на каком моменте прослушивания |
||
|
Оценка композиции пользователем с помощью шкалы оценок - Я |
Соотношение позитивных и негативных оценок - что преобладает |
||
|
Оценка реакции человека в сравнении с похожими пользователями: степень отклонения оценок от средних значений, частота и др. статистические характеристики, учет исторических данных о выборе: композиции с какими признаками оцениваются чаще всего, оценка текущих эмоций с помощью многомерных моделей МО, скорость взаимодействия - как быстро произошла оценка с момента начала прослушивания, логирование оценки в системе с отметкой, когда была проставлена оценка, на каком моменте прослушивания |
|||
|
Положительная оценка композиции - Я |
|||
|
Отрицательная оценка композиции - Я |
|||
|
Проигрывание композиции не до конца (перелистывание) - Я |
Контакт с композицией - услышана, просмотрены характеристики, время, затраченное на взаимодействие с композицией, учет исторических данных о выборе: какие композиции и когда чаще всего пролистываются, скорость взаимодействия, оценка текущих эмоций с помощью многомерных моделей МО, характеристики темперамента, активность действий + способ восприятия информации (S vs Т) + принятия решения (T vs F) |
||
|
Проигрывание композиции в плейлисте до конца, без перелистывания - Н |
Контакт с композицией - услышана, возможно просмотрены характеристики, время, затраченное на взаимодействие с композицией, учет исторических данных о выборе: композиции с какими характеристиками прослушиваются, скорость и частота взаимодействия, изменение громкости, оценка текущих эмоций с помощью многомерных моделей МО, проигрывание в фоновой активности, характеристики темперамента, активность/пассивность действий + способ восприятия информации (S vs Т) + принятия решения (T vs F) |
||
|
Композиция поставлена на паузу - Я |
Скорость и частота взаимодействия, наличие фоновой активности |
||
|
Частое проигрывание песни - Н |
Как выглядит объект «мечты»: статистические показатели фильтрации (какие характеристики используются, какой разброс в значениях и т.д.), наличие фоновой активности, оценка характеристик, категорий композиций, которые выбираются чаще, частота взаимодействия с композицией |
Шаг 5. Формирование первичного списка признаков для учета паттернов поведения пользователя.
Поскольку для проведения данного эксперимента данные о пользователях были получены искусственным путем (с помощью опросника) в виду технических ограничений, а количество данных само по себе мало, то, чтобы избежать проблему переобучения в дальнейшем, для модели будет использоваться ограниченное количество признаков пользователя и композиции. По этой причине в рамках данного этапа ниже (табл. 8) описаны не все возможные признаки пользователя и обратной связи, которые можно получить из таблицы шага 4, а лишь малое количество - для демонстрации применения подхода и непосредственного применения. Кроме того, все также действует техническое ограничение: рекомендательная система рассчитана на использование с помощью персонального компьютера, ноутбука с тачпадом, в системе не предусмотрен модуль распознавания речи, изображений.
Таблица 8. Признаки пользователя и обратной связи
|
Признак поведения человека |
Признак пользователя |
Признак обратной связи |
|
|
Наличие фоновой активности |
Текущая активность (IsActive) |
- |
|
|
Оценка текущих эмоций |
Настроение (Mood) |
- |
|
|
Время (Timestamp) |
|||
|
Скорость взаимодействия с интерфейсом |
Время отклика (Reaction) |
- |
|
|
Время, затраченное на композицию |
- |
Время на композицию (неявная обратная связь) |
|
|
Присущий темперамент |
Tемперамент (Temperament) |
- |
|
|
Соотношение позитивных и негативных оценок |
- |
Оценка композиции (явная обратная связь) |
|
|
… |
… |
… |
Шаг 6. Приведение первичного списка признаков к математическому формату. Для определенных на шаге 5 признаков пользователя и обратной связи определим способ извлечения и необходимый тип данных (табл. 9). Здесь также стоит отметить, что поскольку данные о пользователях для эксперимента были собраны с помощью опросника, применение специфических методов не понадобится.
Таблица 9. Типизация признаков по типам данных
|
Признак |
Как извлечь |
Тип данных |
|
|
Текущая активность |
Анализ логов системы |
Логический |
|
|
Настроение |
Анализ текущей активности с помощью многомерных моделей МО; для данного эксперимента - выбор пользователя |
Строка |
|
|
Время |
Преобразование текущей даты и времени в миллисекунды относительно заданной даты |
Целый |
|
|
Время отклика |
Анализ логов системы и преобразование в миллисекунды |
Целый |
|
|
Время на композицию |
Анализ логов системы и преобразование в миллисекунды |
Целый |
|
|
Оценка композиции |
Функционал проставления оценки в системе (для модели в эксперименте используются бинарные оценки) |
Целый |
|
|
Темперамент |
Анализ свойств темперамента: экстраверсии/интроверсии + нейротизма - с помощью многомерных моделей МО и формирование скалярного произведения векторов; для данного эксперимента - выбор пользователя |
Строка |