Comments 10
Сервис спрашивает в основном про шедевры, которые выбрал, как "обожаю". Интересно как он из этого будет делать выводы. Но выводы сделал - опять выдал в предложке шедевры, которые уже видел. Один, который не видел, но его смотреть не хочется - что-то проходное и неинтересное. В общем, смысл зачем мне это надо не уловил. Выглядит, как рандом. Если захочется пересмотреть что-то из шедевров можно для начала открыть ТОП250 Кинопоиска или IMDB. Там же по оценке можно фильтровать по жанрам / режиссерам / темам.
ПС На карточках не хватает ссылок на тот же Кинопоиск, чтобы не нужно было гуглить (а мне пришлось).
Спасибо, что так подробно расписали впечатления — это очень помогает понять, где сервис сейчас не дотягивает. Про “одни шедевры” и ощущение рандома. На старте моя задача — за минимум оценок получить максимум сигналов, поэтому в онбординге я сознательно опираюсь на самые известные фильмы: вероятность, что вы их видели и сможете честно отметить “обожаю / нормально / не моё”, сильно выше, чем у нишевых картин. Для людей с большой насмотренностью это действительно может ощущаться как “ещё один ТОП‑250”, и ваш комментарий хорошо подсвечивает, что дальше алгоритм должен агрессивнее скрывать уже просмотренное и сильнее смещаться к новому, а не просто пересобирать классику. Про ссылки на Кинопоиск и другие площадки. Идея правда лежит на поверхности — открыть карточку, сразу перейти смотреть, а не гуглить. Но у КиноПоиска, Иви и крупных онлайн‑кинотеатров нет простого официального API с полным каталогом, который можно просто подключить и получить гарантированно корректные ссылки, поэтому это не одна кнопка в интерфейсе, а полноценная интеграционная задача: навести мостики между каталогами, аккуратно матчить фильмы и следить, чтобы ничего не ломалось при изменениях на их стороне. Эта история уже в бэклоге, до неё нужно просто добраться после базовых вещей с рекомендациями.
Многие могут не помнить названий и гуглить каждую карточку не будут. Как минимум постеры нужны. И нужно не по одному предлагать, а выдать 100 фильмов - постеров сразу на странице, чтобы пользователь отметил какие ему нравятся и какие категорически не нравятся (10 фильмов хотя бы пускай отметит). А в предложке выдать относительные новинки (выпуск до 3-5 лет) ну и парочку из старых шедевров для красоты, с кнопкой "ещё", которая выдаст ещё фильмов если пользователю не подойдут предыдущие. Так гораздо больше шансов предложить, что пользователь ещё не видел. Нужно, чтобы это быстро было и полезно, тогда есть хоть какой-то смысл.
Постеры уже есть, но видимо не всегда подгружаются, планирую загрузить их на сервер. Для быстрой оценки тоже уже есть дополнительна ветка "Оценить", где процесс оценки проходит быстрее. Рассмотрю, чтобы сделать онбординг аналогично. Про быстро, что только в этом смысл, не соглашусь. Оценку нужно пройти только один раз, занимает это максимум 10 митнут, дальше для повторных рекомендаций уже проходить не надо. Но нужно зарегистрироваться, чтобы не потерять настройки профиля
Зашел на сайт, потыкал, посмотрел. Все просто супер! Есть мелкие проблемы в UI, но сейчас не про это. Хотелось бы вставить свои 3 копейки про алгоритм рекомендаций.
1. Ручные фичи на втором этапе. Для базовой проверки подойдет, но мне кажется лучше реализовать это через линейные слои с расширением (а может и через depthwise-свертку). Можно подавать на вход фильмы, а на выходе получать готовый вектор пользователя.
2. На третьем этапе какая-то несогласованность. Вроде как идея началась с того, что система вообще не будет подсматривать в у других людей, а будет работать индивидуально. А тут ты берешь и вместе в предпочтениями пользователя наваливаешь чужих данных.
3. Дообучение online штука классная, но дорогая. Это надо оптимизировать: либо хранить модель на компе пользователя и там-же дообучать, или использовать свои мощности (что долго и дорого).
Кстати, было бы еще классно исходники на гите увидеть )
Спасибо, что дошли до сайта и потыкали живой прототип — это очень помогает.
Да, второй этап сейчас ближе к ручному feature engineering: я явно задаю оси вкуса (темп, глубина и т.п.) и агрегирую оценки по ним. Это осознанный первый рабочий вариант, чтобы проверить саму идею. Дальше вижу логичным как раз то, что вы пишете: обучаемый слой поверх эмбеддингов фильмов, который сам собирает вектор пользователя, без жёстко заданного набора признаков.
Согласен, в статье формулировка местами звучит так, будто я вообще не хочу смотреть на других пользователей. Скорее идея такая: на самом старте не опираться только на чужие паттерны, потому что данных по человеку мало (из 50 фильмов в онбординге хорошо, если он реально видел 20, а заставить на входе оценить хотя бы сто фильмов - это утопия). Поэтому локальный профиль задаёт направление вкуса, а MovieLens‑слой использую как priors: он расширяет пространство кандидатов, но не подменяет собой профиль конкретного пользователя.
Согласен, полноценный online‑training в проде был бы тяжёлым. У меня сейчас речь скорее про лёгкие обновления (пересчёт весов/структур по новым оценкам), а не про backprop на каждом клике. Формулировку в статье, видимо, стоит сделать точнее, чтобы не выглядело как “мы постоянно доучиваем большую модель в онлайне”.
Исходники — тоже в планах; как только приведу код в приемлемый вид, хочу выложить хотя бы MVP‑версию пайплайна на гит и уже от неё отталкиваться.
Сервис крайне интересный. К текущей версии есть несколько мыслей:
Мне очень не хватало поиска и оценки вручную. Я люблю довольно нишевое кино и мои самые любимые фильмы едва ли даже в топ 10 000 войдут, дотыкаться до них в случайной выдачи крайне долго, если вообще возможно. Функцию поиска по фильмам, чтобы вручную натыкать самые любимые, с виду довольно легко добавить и в моем кейсе она скорее всего моментально улучшит рекомендации на порядок. И для любителей нишевого кино этот сервис выглядит особенно интересным, т.к. в стандартные подборки с топом фильмов не подходят совсем
Было сложно с первого раза найти сервис по названию. Гугл предлагал фильм next, next film с кучей других доменов (uk, pl, ru, что-то ещё). Найти правильную ссылку по первому запросу не удалось на нескольких страницах гугла и надо было гуглить с уточнениями про рекомендательный сервис. Возможно есть смысл в ребрендинге или везде уточнять домен в рекламе
спасибо за развернутый комментарий! Оценка по названию уже есть, только сейчас она доступна после онбординга, по кнопке Оценить можно оценить как подобранные фильмы, так и найти по названию. Что касается поиска, то тут я бессилен (( прямые ссылки запрещено здесь публиковать, а сам сайт только создан, в индексы поисковиков еще не попал
А могли бы дать прямую ссылку на ваш проект, а то меня гугл выводит на какие-то разные сайты. Поскольку мне эта тема в определённой мере интересна, то хотелось бы посмотреть как оно работает.
И ещё. Насколько понимаю из описания в статье, самок узкое место - это собрать предварительно информацию об интересах пользователя. На мой взгляд, ИМХО, можно это стимулировать следующим образом: взять те же уже готовые профили из датасета и предожить пользователю выбрать, какие ему нравятся, какие нет. Для него это не сложно и даже интересно.
Не уверен что пользователю будет удобно/интересно/понятно выбирать какой-то набор фильмов, тем более таких наборов будет очень много. Но я еще подумаю, спасибо
Пока у меня реализовано так, что на втором этапе онбординга, список фильмов формируется уже как с учетом вкусов с первого этапа, так и обогащается фильмами из датасета.
Ссылку, к сожалению, дать не могу. Меня за гиперссылку тут чуть не забанили (( но можно найти по названию nextfilm pro
Как я строю рекомендательную модель фильмов: cold start, вектор вкуса и GPT