вида [ id фильма, список эмбеддингов каждого слова отзыва ]
Вопросы:
1) может ли справиться с задачей классификации какой-либо классификатор, если таких меток (уникальных фильмов) скажем 500? И если да, какой? Или нейронка?
2) Будет ли вообще что-то обучаться, если кидать на вход метку фильма и список эмбеддингов например из word2vec? Нет особо опыта, но по идее добавляем Flatten слой и это обычный набор параметров для полносвязного слоя?
0. эмбеддинги слов лучше заменить на эмбеддинги всего отзыва, смотрите sbert.net. на худой конец усредните, 1. проще NearestNeighbors использовать из sklearn, 2. Предсказывать (сквозные) id идея так себе. Что-то может и получится, если фильмов << отзывов, но пересечения будут ("фильм плохой"). Составляете базу из эмбеддингов отзывов -> id, ищете ближайшие эмбеддинги к запросу, топN например. в annoy или NearestNeighbors из sklearn можно использовать косинусное расстояние, если эмбеддинги не нормализованы. можно руками просто достроить до классификатора. не просто knn (голосование), потому что просто knn найдёт ближайшие отзывы ("фильм плохой" -> тупо часто будет в кучке), вам можно встроить эвристику при выводе: из найденных K > заданного M из topN отзывов к одному фильму относятся, тогда скорее всего про него (K / N = confidence > M / N = threshold). Можно взвешивать по расстоянию еще взвешивать (это все и KNN может, тут не суть). основное что надо воткнуть в отличие от knn, это topN можно показывать списком, и можно дополнительно измерить расстояние названий фильмов в топN до вектора запроса и взять его как обратный вес. тогда все будет работать как "ногу на ногу перекидывают, что-то там про инстинкты" будет близко к основному инстинкту (по отзывам и названию), а не про природу с Дроздовым или утреннюю зарядку.
Обсуждают сегодня