Векторные репрезентации и рекомендательные системы в аниме

Айбек Бекбаев
56
Всем привет! Сегодня я бы хотел проанализировать описание от пользователей и самих тайтлов, а так же рассказать про самопильный сервис для рекомендаций аниме ТЫК

!!!! Дисклеймер. не бейте за грамматику плиз и математики не будет(наверное для этого запилю второй пост) !!!

Начнемс, все мы знаем такой сайт как MAL, а именно раздел "Recomendations".
1066x337
Тут можем увидеть как пары аниме "близки" друг с другом, а так же эти тексты имеют довольно сильную описательную силу самих аниме, например прочитав пару рекомендаций по одной аниме можно иметь какое-то представление о тайтле. На оснований этого критерия "близости" мы и будем проецировать аниме на пространство, в этом помогут нам нейронные сети(куда же без них в 2020!).
Чтобы было понятнее, рассмотрим пару Lucky Star - Azumanga Daioh, согласитесь, они довольно похожие и мы будем на плоскости их ставить вместе, примерно вот так:
715x318,
рассматривая другие пары мы заполним эту плоскость, в нашем случае окружение Lucky Star должно выглядеть примерно вот так:
724x567
в зависимости направления анимешки будут похожими по каким-то критериям, например чем ниже, то аниме спокойнее, а лево-немного вверх будут абсурднее и тд, исходя из этой логики, то аниме как Атака на Титанов, должны лежать очень далеко, как-то так 815x323.
Надеюсь теперь стало понятнее, что я собираюсь делать.
Данные собраны(80к пар, которые покрывают 6к тайтлов), нейросеть обучена, посмотрим что выдало нам шайтан машина. Вот мы получили наши точки, то есть проекций словесных описаний на плоскости:
611x464
Тут ничего внятного не видно, попробуем разбить на кластеры, я разбил на 10 кластеров(вообще можно на любое кол-во).
879x575
Это наша кластеризация, чтобы понять что они означают я просто посчитал сколько раз разные жанры встречаются в разных кластерах.

Описание кластеров
Первый кластер(красные квадраты, верхний левый угол): Состоит из 78 аниме и чаще всего там встречаются такие жанры как(жанр, частота) ('Action', 68), (' Shounen', 48), (' Comedy', 38), (' Supernatural', 36), (' Adventure', 30), (' Fantasy', 28), (' Super Power', 22), (' Drama', 18), (' Demons', 14), (' Historical', 11) и представители: One Piece, Bleach, Naruto: Shippuuden, JoJo no Kimyou na Bouken, Noragami, то есть в той зоне находятся Shounen.
Второй кластер(синие треугольники, лево-верхняя дуга круга, сразу за первым кластером), там уже 426 тайтла и жанровая описание ('Action', 292), (' Sci-Fi', 191),(' Drama', 119), (' Mecha', 110), (' Fantasy', 93), ('Adventure', 82), (' Shounen', 82), (' Supernatural', 72), (' Military', 64), (' Comedy', 62), представители: Evangelion: 1.0 You Are (Not) Alone, Black Bullet, Vampire Hunter D, Sword Art Online: Alicization, The Animatrix и тд.
Третий кластер(зеленые кружки в почти самом низу), 146 тайтла, ('Comedy', 73), (' School', 69),(' Comedy', 63), ('Slice of Life', 41),(' Slice of Life', 33), (' Shounen', 31), (' Seinen', 25), (' Parody', 24), (' Romance', 24), (' Ecchi', 11), то есть почти полная противоположность первому кластеру и подтверждается позицией на плоскости(что круто и повышает доверие к алгоритму), тут у нас K-On!!, Senyuu, New Game!, Lucky☆Star и другие.
Пятый кластер(по центру), 2854 объекта, ('Action', 634), (' Comedy', 449), ('Comedy', 437), (' Sci-Fi', 409), (' Fantasy', 387), ('Hentai', 378), (' Shounen', 354), (' Drama', 302), (' Romance', 280),
('Adventure', 259), как вы поняли у нас тут всякие Гинтама, почти все части гатари и еще хентай там. Так как простирается с самого левого края до правого, решил посмотреть что там справа, а там Lolita Anime, Cream Lemon.
Десятый кластер(слева, индиго треугольники), тут у нас (' Fantasy', 64), (' Romance', 42), (' Comedy', 37),(' School', 30), (' Ecchi', 28), (' Magic', 27), (' Harem', 25), (' Supernatural', 23), (' Adventure', 21) и такие аниме как Overlord, Fate/stay night, No Game No Life, Sword Art Online, то есть экшоны с гаремом/тян.

разобрались с основными направлениями, это по сути гайд по использованию того сервиса, то есть вот мы ищем похожие аниме на Cowboy Bebop. вот такую картину нам выдает модель 652x531 и такие рекомендации 902x264, что неплохо, а зная их взаиморасположения по графику мы можем понять по каким критериям они похожи.

И да, с телефона оно плохо работает и юзайте верхнее поле ввода и жмяк на search.

Спасибо за внимание, понимаю, что написало очень отрывисто и непонятно, задавайте вопросы если есть, постараюсь ответить. Гитхаб: github.com
Комментарии
Скрыть 36 комментариев
Показать 36 комментариев
Загрузить ещё 20 из 36 комментариев
Teosofff
Teosofff#
Полезный Мусор
Полезный Мусор#
@Teosofff, Такой себе центр!
592x543
asdfasdf
asdfasdf#
@Packword, на мале же только пользовательские рекомендации, не? А тут берутся все тексты возможные на мале о тайтле рекомендации, отзывы, описание суммируются, предпроцессорятся и в doc2vec в пространство по количеству жанров я так понимаю (гитхаб не смотрел). Ну кстати число жанров можно брать не то что формально есть на мале, а другое. На том же нетфликсе факторов гораздо больше берётся.
Полезный Мусор
Полезный Мусор#
@Teosofff, Пингвиний барабан, а шо?
Teosofff
Teosofff#
@Полезный Мусор, Да тайтлы в точку свелись, думал сходство очень близкое, но нет.
Полезный Мусор
Полезный Мусор#
@Teosofff, Один создатель у них прост! Стилистика действительно схожая, а вот то что там Лилий нету рядом наводит на мысли!
Пётр Первый
Пётр Первый#
Не маловато ли данных для хорошего годного обучения? Там, кстати, последнее время говорят про нейронные сети со способностью обобщать, возможно лет через 5-10 и допилят.
И ещё вопрос: откуда вы сделали вывод, что близость по оси отвечает за какую-то характеристику? Насколько я понимаю, в текущих реалиях ### проссышь что за что отвечает. Это также является большой и интересной темой современных исследований - интерпретация внутренних состояний сети. Или, возможно, то 32-мерное пространство задаётся вами вручную? Explain, pls


: предупреждение. п.3 правил сайта, мат.
Айбек Бекбаев
Айбек Бекбаев#
@Пётр Первый, да интерпретировать сложно почти невозможно, но можно делать как с word2vec, смотреть на хитмапы или дергать в каком-то направлений(как интерполяцию(тип пробегать от одного вектора к другому и смотреть) в картинках делают), или надо supervised подход(чтобы учились именно те критерий, которые я хочу), как баду или те же самые moe Generator например, тут жопа кароч, но есть надежда на опен ай и их мета лернинг. А так что я сейчас делал и дела это гадание причём на 2Д, а не в 32Д лол, но в каком-то смысле совпадает же с действительностью, мб из-за того что эмбеддинги не такие большие.
Айбек Бекбаев
Айбек Бекбаев#
@asdfasdf, можно парсить реддит для жанрово стилистического описания, но энивей получается не сильно лучше этого, у нетфликса сложно, а я тупой, ещё их инфраструктуру учить не только пейперы читать.............
Packword
Packword#
@Пётр Первый, нейронные сети со способностью обобщать... чел что ты несешь?? способность обобщать и видеть закономерность одна из базовых, любой перцептрон может делить данные на кластеры по признакам(это и есть обобщение)
Айбек Бекбаев
Айбек Бекбаев#
@Packword, он наверное имел обобщать Domain Knowledge и логику.
SergejVolkov
SergejVolkov#
Ничего себе, отличная статья! Тайтлы группируются очень даже неплохо, несмотря на обилие шума. Хотя в нейронке без него никуда. Даже сама по себе идея очень интересная, а тут еще и сразу такая хорошая реализация... Где плюсик поставить?

P.S. И у тебя поисковые предложения работают намного лучше, чем на шики, которое выдает неведомую ****, пока не наберешь название полностью.
Amadeus4
Amadeus4#
Прикольно, потом займусь более плотным изучением этой штуки.
We all become one()
We all become one()#
Офигенная штука, по любимому тайтлу показал многое, уже просмотренное мною и высоко оценённое, + парочку новых, о которых я врят ли бы прознал из-за небольших оценок и малой популярности, что соответственно поставлено в очередь следующих к просмотру. Автору большой палец вверх :thumbup:
Chiru
Chiru#
Оно работает практически идеально! :shocked3: Большое спасибо и ещё больших успехов автору!
tomo_yo
tomo_yo#
@Айбек Бекбаев че залетишь к нам в тиму на ХакНу?
Alpu
Alpu#
Выглядит интересно, но полезность результатов сильно подрывает, то что никак не оценивается "успешность" аниме. Т.е. две анимы похоже по формальным признакам, но одна популярная с рейтингом 8.5, а вторая шлак 15 летней давности с рейтингом 6.2 могут иметь максимальное совпадение. Вот интересно а можно ли составить модели на основе списка просмотренного юзеров шики? Вместо кластеров произвести сортировку зрителей по вкусам, т.е. чтобы интересы описать вкусы аналогично
диаграмме. А потом задать координату каждому юзеру(центр получившейся фигуры). Т.е. условно вместо расположения аниме в пространстве будут расположены юзеры. А рейтинг аним в таком случае можно брать, как средний рейтинг людей расположенных в определенной зоне(радиусе) от юзера. Итого получаются рекомендации от людей с похожим вкусом. Ой что-то меня понесло :-o
Айбек Бекбаев
Айбек Бекбаев#
@tomo_yo, его же отменили
Teosofff
Teosofff#
@Айбек Бекбаев, Почини сервис, не робит.
назад
Твой комментарий
Вернуться к редактированию
Предпросмотр
Скрыть