Вопрос или проблема
Чтобы определить схожесть между изображениями (продуктами), я хочу использовать подход нейронной сети, подобный TiefVision. Эта предобученная нейронная сеть по сути переводит изображения в векторы признаков, а затем создает меру схожести между изображениями, используя меру расстояния между векторами. Чтобы сделать это более наглядным, посмотрите на 2D визуальное представление ниже.
Я хочу сделать шаг дальше: когда один пользователь “нравится” несколько изображений, я хочу усреднить их векторы признаков. Это приведет к новому вектору, который я хочу использовать для расчета рекомендаций. Мое предположение заключается в том, что изображения, близкие к объединенному вектору признаков, будут обладать схожими характеристиками относительно всех “понравившихся” изображений вместе.
Теперь мне интересно: не ошибаюсь ли я в своих размышлениях – возможно, усреднение векторов просто приведет к совершенно другим изображениям, или же оно действительно создаст изображения с похожими признаками?
(источник: indico.io)
Это распространенный подход при использовании встраиваний, особенно встраиваний слов.
Одним из вариантов является выбор между средним и медианой. Среднее рассчитывает вектор центральной тенденции, который может не соответствовать наблюдаемому изображению. Медиана добавляет ограничение, что вектор центральной тенденции должен быть наблюдаемым изображением.
Ответ или решение
Ваш подход к использованию векторных представлений изображений для улучшения рекомендаций имеет свои достоинства, и в целом он обоснован. Ваша идея о том, чтобы усреднить векторные представления изображений, которые пользователи "нравятся", может оказаться полезной, однако важно учитывать несколько аспектов.
1. Среднее значение против медианы
Как вы правильно заметили, существует различие между усреднением (mean) и медианой (medoid) в контексте векторных представлений. Усреднение векторов приведет к созданию нового вектора, который может не соответствовать ни одному из исходных изображений. Это может быть полезно, если вы хотите выявить обобщенные черты между всеми "нравящимися" изображениями, но при этом вы рискуете получить вектор, который не может быть сопоставлен с реальным изображением, на основе которого будет осуществляться рекомендация.
С другой стороны, медиана (medoid) обеспечивает, что итоговый вектор будет соответствовать одному из фактических изображений. Это может быть предпочтительным вариантом, если ваша цель — рекомендовать изображения, которые являются более релевантными для пользователя на основе изображений, которые ему нравятся.
2. Ризики усреднения
Усреднение векторов может приводить к потере информации, особенно если в ваших данных есть значительное разнообразие. Если векторы очень различаются по своим компонентам (например, изображения разных стилей, цветов и т.д.), среднее значение может оказаться более скомбинированным и менее точным, чем отдельные векторы.
Важно протестировать результат усреднения на валидационном наборе данных, чтобы понять, насколько полезен получаемый вектор для рекомендаций. Вам следует экспериментировать с разными метриками расстояния (например, евклидово расстояние, косинусное расстояние) и оценивать, какие из них действительно эффективно выделяют похожие изображения.
3. Альтернативные методы
Есть и другие методы, которые можно использовать для создания одного вектора из нескольких:
- Кластеризация: можно сначала кластеризовать ваши вектора, а затем использовать центры кластеров или наиболее близкие к ним изображения для рекомендации.
- Взвешенное усреднение: если некоторые изображения вам нравятся больше других, вы также можете весить векторы в зависимости от уровня "нравится".
Заключение
Ваше предположение не является ошибочным, но важно учитывать держать в уме устойчивость подхода. Как вы правильно заметили, усреднение может привести к созданию совершенно других изображений, если не принять во внимание разнообразие "нравящихся" изображений. Рекомендуется исследовать возможность использования медианы или других методов, чтобы находить более релевантные изображения.
Проведите эксперименты и оцените, насколько хорошо работает ваша модель на новом наборе данных, и корректируйте стратегию по мере необходимости. Таким образом, вы сможете разработать более точные и эффективные рекомендации изображений для пользователей.