group-telegram.com/abacabadabacaba404/68
Last Update:
1е место public LB
Мое решение - стэкинг, где на первом уровне обычная модель, на втором уровне - модель, которая улучшает предсказания первой, эксплуатируя лик
Модель первого уровня - coverhunter (https://arxiv.org/pdf/2306.09025v1 , код модели из https://github.com/alanngnet/CoverHunterMPS с минорными твиками). Вместо лоссов из статьи использовал аркфейс с margin, зависящей от кол-ва примеров класса. Реализовал аугментации из статьи - XYMasking, сдвиг спектрограммы по вертикали, изменение скорости, изменение громкости. Модель первого уровня довел примерно до 0.608 public LB
Суть лика - айдишники в test_ids.npy не зашафлены, треки, которые являются каверами друг друга, идут непосредственно друг за другом. Это легко увидеть, если посчитать эмбеддинги моделью первого уровня для первой тысячи треков из test_ids.npy и построить матрицу попарных расстояний между ними (см. картинку). То есть взаимное расположение айдишников в test_ids.npy - важная фича, если треки следуют непосредственно друг за другом, они скорее всего являются кавером, а если между ними 2000 других айдишников - точно нет. Заэксплуатиривоть это можно разными способами, например CatBoostRanker на двух фичах - расстояние между эмбеддингами и расстояние между айдишниками - давал порядка 0.98 public LB. Я ожидал, что больше людей найдет лик, поэтому оверкиллил эту часть: обучал u-net, которому на вход подается матрица попарных расстояний, а выход трактуем как матрицу скоров (одна строка - один трек, для которого нужно найти каверы, а сами значения в строке - это скоры треков, находящихся слева и справа от данного в списке айдишников). Использовал лосс для задачи ранжирования из pytorchltr; реализовал маскирование, чтобы учитывать для каждого трека ровно по 100 соседей слева и справа из списка айдишников; аугментацию для трейна за счет шаффлинга порядка клик и порядка треков внутри клик.
BY adapt compete evolve or die
Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260
Share with your friend now:
group-telegram.com/abacabadabacaba404/68