Мы в Почте Mail.ru повсеместно используем machine learning для решения бизнес-задач. Основные направления – сделать Почту умнее (помочь пользователю ориентироваться в нарастающем потоке информации и эффективно решать его задачи) и защитить от спама.
Чтобы достичь этих целей, мы создаем и поддерживаем десятки систем машинного обучения. При таком количестве моделей их регулярная поддержка: набор выборки, дообучение и выкатка в бой — может отнимать почти все время команды. Особенно остро эта проблема стоит в антиспаме, где спамеры адаптируются к системе защиты днем и ночью. Очевидно, что поддержку нужно автоматизировать, однако по ходу процесса возникает много вопросов:
* как быть уверенным, что обученная на выборке модель будет хороша на продакшне и не сломается на выходных;
* как поддерживать ансамбли и каскады моделей;
* как выстроить эффективный feedback loop без участия асессоров.
Как мы решаем эти и другие проблемы, а также какие общие подходы мы выработали, я расскажу в своем докладе.
Video: https://www.youtube.com/watch?v=GMsa9FhuoIw
43. Проблемы с дообучением
Модель может
– Не поддерживать дообучение
– Ухудшится
– Не предсказуемо измениться
• Создать новые ошибки или вернуть старые
57. Дообучение FastText
New text => new words, n-grams
dimension
n_words
n_buckets
Дефолтное дообучение
– Только старые веса
– Веса изменяются непредсказуемо
• => Нет преемственности
58. Дообучение FastText
Рецепт
– Добавляем все новое
𝐿𝑜𝑠𝑠 = 𝐶𝑟𝑜𝑠𝑠 𝐸𝑛𝑡𝑟𝑜𝑝𝑦 + 𝛽 𝜃 𝑜𝑙𝑑
𝑖
− 𝜃 𝑜𝑙𝑑
𝑖−1 2
New words
New buckets
CE– Учим CrossEntropy
– Harmonic regularization
Harmonic
Reg.
Harmonic
Reg.
60. Triplet loss для Антифишинга
Anchor
positive + α < negative
minimize maximize
Negative
Positive
FaceNet: A Unified Embedding for Face Recognition and Clustering
61. Triplet loss: harmonic
– Learn from scratch Model v2
Anchor
minimize maximize
Negative
Positive
New
62. Triplet loss: harmonic
– Learn from scratch Model v2
minimize maximize
Emb v1
Emb v2
Emb v1
Emb v2
Emb v1
– Retrain Embedding layer
– Then the whole net
стоит время, вся команда может заниматься только поддержкой моделей запросто, без бюджета на инновации
все это не какие-то космолеты - а понятные и часто достаточно простые вещи
дизайн таких систем: через эволюцию и след. шаг, почему: …
месяц жизни разраба
битва ML-алгоритмов,
по кнопкам
80% нигерйский FP – реально спам
свое уникальное восприятие удачи
связанный ML – например пост-проверка с более полными данными
модель может тупо не поддерживать дообучение
Если есть возможность избежать асессоров в цикле - избегаем,
модель может тупо не поддерживать дообучение
тут важна уверенность что не сломается, приемственность моделей - мы не хотим чтобы она каждый раз выдывала неизвестно знает что и обрабатывать коннер кейсы (они всегда будут, но желательно те же самые) иначе увеличена поддержка
Если не применять спец. Техники можно сделать только хуже
Трейн датасет != продакшен распределение
Нужны спец. техники
Старая модель работает в проде и мы можем ей верить
Допилили lightgbm
tODO: анимашки
Снова допилили фаст-текст
Есть разные вариации, чего учить чего морозить (n-gramm), но по аналогии с успешным опытом на лин. моделей
Несколько фасттекстов, CNN
Каждая модель изменяется предсказуемо
Каждая модель изменяется предсказуемо
Каждая модель изменяется предсказуемо
Каждая модель изменяется предсказуемо
улучшает здоровье =)
быстро предовтращать и митигировать последствия
эффект: любой факап рушит обрушивает это value и устраивает disruption и отток пользователей (в нашем мире когда время все ценнее, никто не хочет тратить время на ваши баги и просто пойдет в другой продукт)
Пример системы который рубит редкий но опасный спам, сломался признак, которую должным образом не замониторили и не обложили анти-факапными мерами и тестированием признаков
у нас плохая память - чек-лист проекта на сдаче или в процессе, не полагайтесь на людей, система
Причем у нас две системы накатки моделей и логики, цель которых привезти модель как можно скорее модель и безопаснее
И аб-тесты когда уже модель начинает использоваться
каждый след. шаг обходится дороже, баг надо отловить как можно раньше
Пер инстанс, алерты
взять и переписать маленькую часть легче чем космолет (стори про индусов)
Заменить fast-text потом на transformer – т.к.
Даже закаленные люди совершают ошибку: о интересная задача гоу-гоу
Эти вещи помогут быстрее улучшать ваши продукты и вам соблюдать worklife balance (если существует).