Вопрос или проблема
У меня есть две рекомендательные системы для музыкальных предпочтений, которые составляют список рекомендаций для конкретного пользователя на основе песен, которые он сохранил в своей библиотеке. Затем пользователь оценивает, насколько хороша каждая рекомендация по шкале от 1 до 6. Я буду оценивать эффективность рекомендательных систем на основе средней оценки, данной песням, рекомендованным системой A и системой B.
Обозначим A как песню, рекомендованную системой A, а B как песню, рекомендованную системой B. Для конкретного пользователя стоит ли рекомендовать (AAAAAA или BBBBBB) или же (ABABABAB)? Я реализовал первым вариантом (AAAAAA или BBBBBB). Таким образом, в текущей системе каждому респонденту будет случайным образом назначена A или B, и он будет получать рекомендации только от этой системы. Является ли это правильным подходом или же рекомендация только одной системы каждому респонденту предвзято относится к тому, что могла бы предложить другая система?
Предположим, что B гораздо лучше A. Если мы будем рекомендовать одну и ту же систему каждому пользователю, и пользователь прослушает песни, которые все относятся к системе A, он никогда не услышит систему B, и оценки A, вероятно, были бы другими (ниже), если бы он также послушал лучшую систему. Является ли подход ABABAB наилучшим? Каков лучший метод для оценки производительности каждой системы с минимизацией предвзятости?
Спасибо.
Если пользователь оценивает, насколько хороша каждая рекомендация, то подход ABABAB является наилучшим. Может возникнуть ситуация, когда система A со временем становится лучше чем B, тогда наличие двух систем теряет смысл.
Это кажется хорошим примером для применения байесовского бандита с использованием метода Томпсона.
Это позволит вам начать с 50-50 рекомендаций – что-то вроде:
ABABABAB
но в конечном итоге прийти к AAAAABAAAAAB (в основном A) или BBBBBABBBBB (в основном B) в зависимости от того, какая из систем больше нравится пользователю.
Вы также можете получить ABABAABABABAB (смешанный вариант), если пользователи любят обе системы.
Данный подход предполагает, что у вас есть доступ к обратной связи или оценкам от пользователей в реальном времени и возможность действовать на основе этой информации.
Почитайте об этом – это довольно просто для реализации.
В A/B тесте вы хотите представить варианты, которые соответствуют тому, что вы хотите внедрить в продукцию. Если вы можете развернуть либо A, либо B, то вам следует предложить пользователям либо AAAAAA, либо BBBBBB, так как они представляют собой такие альтернативы.
Представление ABABAB не является представительным для развертывания только A или только B.
Чтобы избежать предвзятости, вызванной тем, что некоторые пользователи в целом ставят более высокие оценки, чем другие, вы используете случайное распределение.
Ответ или решение
Лучший подход для A/B тестирования двух различных рекомендательных систем можно определить, опираясь на несколько факторов, таких как цель тестирования, способ оценивания рекомендаций пользователями и необходимость минимизации bias (предвзятости).
1. Определение цели
Если вашей целью является сравнение эффективности двух рекомендательных систем (А и Б) и вы хотите выяснить, какая из них обеспечивает лучшие результаты, то использование подхода, в котором пользователи получают рекомендации одной системы (AAAAAA или BBBBBB), является нормально приемлемым. Однако это не позволяет пользователям оценить разные системы в равных условиях, и, как вы упомянули, пользователи могут проявлять предвзятость в своих оценках на основе своего опыта только с одной системой.
2. Оценка рекомендаций пользователями
Если вы хотите, чтобы пользователи могли сопоставить оба варианта, лучше использовать подход ABABABAB, где пользователи последовательно получают рекомендации из обеих систем. Это позволит избежать предвзятости и дать пользователям возможность явно видеть разницу между системой А и системой Б, что, в свою очередь, повлияет на их оценки. Кроме того, собранные данные будут более полными и точными, поскольку пользователи смогут сравнить результаты.
3. Снижение предвзятости
Чтобы наилучшим образом снизить предвзятость:
-
Случайное распределение: Вы можете использовать случайное распределение пользователей между двумя подходами (например, 50% пользователей получает систему А, 50% — систему Б) в рамках общего теста. Используйте случайные выборы и создавайте условия, чтобы минимизировать влияние индивидуальных различий между пользователями.
-
Проектирование эксперимента: Помимо простого A/B тестирования, можно использовать метод многорукого бандита (Multi-Armed Bandit), который основан на методах жадного выбора. Метод может адаптироваться на основе обратной связи от пользователей в реальном времени, обеспечивая пользователям рекомендации из системы, которая на текущий момент имеет лучшие оценки.
4. Итоговое решение
На основании вышеизложенного, если вашей целью является не только сравнение систем, но и получение более точной информации о предпочтениях пользователей, ABABAB (также с возможностью использования методов многорукого бандита) будет предпочтительным подходом. Это обеспечит более стандартизированное и альтернативное представление каждой системы, что позволит получить четкие выводы о их сравнительной эффективности.
Резюмируя, рекомендую использовать метод ABABABAB или адаптивный подход с многоруким бандитом для получения более надежных и менее предвзятых данных о пользователях, что позволит вам лучше понять, как воспринимаются ваши рекомендательные системы.