group-telegram.com/abacabadabacaba404/91
Last Update:
Закончилось соревнование Jane Street Real-Time Market Data Forecasting где надо было предсказывать не пойми что на не пойми каких фичах 🤷 Однако, какой-то гений из MIT отреверсинжинирил, что это не совсем не пойми чо, а простое скользящее среднее 20 подряд не пойми чего. Техника, которой он это сделал, интересная, мне понравилось. Никак мне не помогло, хотя я пару дней очень пытался из этого что-то выжать.
В соревновании был специфический для временных рядов способ принимать ответы - признаки, соответствующие последовательным моментам времени давались друг за другом и тебе не давали следующую порцию, пока не дал ответ к предыдущей. Временное ограничение - 1 минута. Но суммарный лимит 9ч, что приводит к тому, что надо давать ответы в среднем за 0.2сек. Раз в 968 шагов, что соответствует одному торговому дню, давали ответы за весь предыдущий день. Что давало интересные возможности, о которых ниже.
В последний день злодеи выкинули меня из золота паблика, хотя я тоже сделал свой лучший сабмит, исправив ошибки, как водится. Ну ничего, прайват будет настигать нас инкрементальными обновлениями аж до июля.
Я не придумал ни одной работающей идеи, но вот что мне помогло финишировать в топ-20:
1) Online learning. Нейронки отлично учатся на новых данных, самый лучший сетап - просто скормить им день как батч с низким lr. Деревья неожиданно тоже учатся и в итоговый ансамбль вошел lightgbm, для которого использовал метод refit для обновления. В среднем онлайн обучение давало маленький, но довольно надежный бонус к скору. Учится быстро (около 3 секунд суммарно на все мои модели раз за день)
2) Online ансамбль. Ну а почему бы и нет, раз уж мы модели можем дообучать, то и однослойный mlp с весами моделей в ансамбле тоже можем. Не смотря на метрику соревнования (weighted R2 ~ MSE) лучшим лоссом для ансамбля у меня был MAE.
3) TabM! Открытие ушедшего года, супер-модель, которая без всяких хитрых эмбеддингов, хотя она умеет и это, бьет на всех моих около-табличных бенчмарках все остальное, а кое-где и бусты. Без всяких наворотов, соло-модель на дефолтных фичах с онлайн обучением (и даже без) обгоняло лучший публичный ансамбль. Удивительно! Единственное что я сделал - странный лосс и отказ от использования категориальных фичей (с низкой кардинальностью). Использовал их как числа, отнормализовав в [0,1].
4) SWA спасение от стохастики в выборе гиперпараметра - сколько эпох учить. Вытягивает максимум за заданное число эпох
5) Валидация. Последние 120 дней, размером как паблик. Ну такое. Чем ближе к паблику, тем лучше бьются числа, но корреляция слабая. Однако! Лучшие гиперпараметры на валидации как-будто воспроизводят и лучший паблик. Использовал количество эпох для обучения как гиперпараметр и учил на полном датасете (включая бывшую валидацию)
6) Трансформер. Послабее чем TabM, но забустил скор в ансамбле. Нам дан не один ряд, а много рядов, соответствующих каким-то торговым тикерам. Крипта, фьючерсы или стоки - не так важно. Используем кросс-аттеншн чтобы спроецировать фичи с учетом других тикеров и на получившихся фичах гоняем RNN по времени. Трансформер по времени очень жруч по ресурсам, я даже не смог его довести до сабмита, а RNN позволяет сохранять стейт и применяться только к текущей порции данных. Возможно, тут я и проиграл и трансформер по времени был ключем для победы.
7) Хитрый лосс. MSE почему-то не коррелировал особо с R2. а вот MSE / var(y) коррелировал. Почти все модели обучены с ним.
8 ) Чего-то по мелочи, одна из моделей предсказывает вместо таргета целый ряд, на который сообразно реверс-инжинирингу накладываем лоссы из известных SMA. Не зашло, но чуть-чуть забустило ансамбль.
Смотрю на возможный шейкап позитивно, модель 6 обладает некоей сезонностью и паблик для нее плохое время, а потом (приват) должно быть хорошим 😂 Надеюсь, онлайн ансамбль вытянет. Паблик был намного стабильнее моей валидации, так что большого шейкапа не жду, буду удивлен, если он случится.
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/91