Ответ
В рекомендательных системах пользовательский фидбэк классифицируют по степени явности и формату:
-
Явный (Explicit Feedback): Прямые оценки, которые пользователь сознательно предоставляет.
- Примеры: Звёздные рейтинги (1-5), лайки/дизлайки, прямые сравнения (предпочтение A над B).
- Плюсы: Чётко выражает предпочтение.
- Минусы: Собирается редко, подвержен bias (оценивают чаще крайне довольные или недовольные).
-
Неявный (Implicit Feedback): Данные, выводимые из поведения пользователя.
- Примеры: Просмотры, клики, время сессии, скроллинг, добавление в корзину, покупки.
- Плюсы: Обильный, собирается пассивно.
- Минусы: Шумный, требует интерпретации (клик — это «нравится» или просто любопытство?).
-
Гибридный подход: Комбинирование явного и неявного фидбэка для повышения качества рекомендаций.
- Техника: Модель factorization machines или нейросетевая архитектура, принимающая на вход оба типа сигналов.
- Пример: Использовать матрицу просмотров (неявный) для заполнения пропусков в матрице рейтингов (явный).
Практический пример обработки в Python (pandas):
import pandas as pd
# Имитация данных
feedback_data = pd.DataFrame({
'user_id': [101, 101, 102, 103],
'item_id': [55, 78, 55, 90],
'rating': [5, None, 3, None], # Явный фидбэк (есть пропуски)
'view_time_sec': [120, 45, 10, 300], # Неявный фидбэк
'purchased': [1, 0, 0, 1] # Неявный фидбэк
})
# Создание гибридного сигнала: если рейтинга нет, используем нормализованное время просмотра как его прокси
feedback_data['hybrid_score'] = feedback_data['rating'].combine_first(feedback_data['view_time_sec'] / 100)
print(feedback_data[['user_id', 'item_id', 'hybrid_score']])
Выбор типа фидбэка зависит от домена: для Netflix критичны явные рейтинги, для YouTube — неявные данные о просмотрах.
Ответ 18+ 🔞
А, слушай, про эти ваши рекомендательные системы. Ну, ебать мои старые костыли, тут всё просто, как три копейки. Люди же постоянно сигналят, чего они хотят, просто не всегда словами. Вот смотри, как это делится.
Первое — это когда человек прямо, по-честному, говорит, что думает. Это явный фидбэк. Ну, типа звёздочки поставил фильму, лайкнул видос или выбрал, что пицца с ананасами — это пиздец, а не еда. Плюс в чём? Да понятно же всё, как божий день. Минус? Да похуй кто оценивает! Обычно или те, кого всё бесит, или те, кто без ума от всего. Остальные — молчок, им просто доверия ебать ноль.
Второе — это неявный фидбэк. Вот тут уже интереснее. Пользователь нихуя не говорит, но за ним можно следить, как за мартышкой в зоопарке. Что он смотрит, сколько времени, что в корзину кинул, а потом удалил. Данных — овердохуища, они сами собой копятся. Но интерпретировать их — это тот ещё цирк. Кликнул на статью про похудение — он реально хочет похудеть или просто поржать над фотками «до и после»? Подозрение ебать чувствую к таким данным.
Ну и третий вариант — гибридный подход. Умные дядьки смекают, что надо брать и то, и другое, и скрещивать, как ежа с ужом. Берёшь прямые оценки, где они есть, а где их нет — подставляешь намеки из поведения. Получается какая-нибудь хитрая модель, которая из этого винегрета пытается выудить смысл. Чёрта в душу, в сердцу мать! — но иногда работает.
Вот, смотри, накидал тебе кусок кода, как это может выглядеть на практике. Не пугайся, тут ничего сложного.
import pandas as pd
# Имитация данных
feedback_data = pd.DataFrame({
'user_id': [101, 101, 102, 103],
'item_id': [55, 78, 55, 90],
'rating': [5, None, 3, None], # Явный фидбэк (есть пропуски)
'view_time_sec': [120, 45, 10, 300], # Неявный фидбэк
'purchased': [1, 0, 0, 1] # Неявный фидбэк
})
# Создание гибридного сигнала: если рейтинга нет, используем нормализованное время просмотра как его прокси
feedback_data['hybrid_score'] = feedback_data['rating'].combine_first(feedback_data['view_time_sec'] / 100)
print(feedback_data[['user_id', 'item_id', 'hybrid_score']])
Видишь? У одного чувака есть прямая оценка — 5. У другого — хуй с горы, рейтинга нет. Ну и мы берём время просмотра, делим на сто (чтобы не зашкаливало) и выдаём это за примерный рейтинг. Ёпта, гениально и просто.
А в жизни-то всё зависит от того, где это крутится. Для Netflix рейтинг — святое. А для YouTube? Да там терпения ноль ебать ставить оценки, все просто смотрят, что попало. Так что там вся надежда на неявщину. В общем, э сабака сука, наука, но прикольная.