TGViewer
ML — это ОК ML — это ОК @mlvok · 2.1K subscribers
Post #27 810
Машинное обучение буквально построено на вычислении производных. С помощью backpropagation — алгоритма дифференцирования сложных функций — мы тренируем нейронные сети. Reparameterization trick (он помогает оценить градиенты в нейросетках с семплингом) открыл возможность обучения VAE. Этот пост про статью с ICLR 2019, в которой предложен метод дифференцирования сортировок 😲. Оператор NeuralSort приближенно переставляет компоненты входного вектора так, чтобы они оказались отсортированы. Алгоритм основан на паре красивых лемм и реализовывается на pytorch в десяток строк кода.

У человека, который занимается рекомендациями (меня), от такого учащается пульс и текут слюни. Можно напрямую учить отборщик кандидатов, работающий через kNN. Можно оптимизировать nDCG. Более того, авторы предложили дополнение, которое не просто сортирует компоненты вектора, а семплирует пропорционально этим компонентам. Это именно то, что используется в Boltzmann exploration! В общем, чего-то такого хотелось уже давно.

На практике все оказалось не так легко. С помощью алгоритма из статьи я реализовал лосс, оптимизирующий nDCG, и проверил его на синтетических данных. Оказалось, что алгоритм чувствителен к гиперпараметру, определяющему гладкость перестановки. Если его значение выбрано неправильно, то модель не выучивает даже простую монотонную функцию. Думаю, в реальном рекомендере c сотнями тысяч айтемов этот гиперпараметр будет сложно подобрать. Тем не менее есть работа, в которой утверждается, что подход с оптимизацией nDCG справляется с задачей ранжирования в поиске не хуже стандартных лоссов. Более того, целая серия статей развивает идею дифференцируемых сортировок. Как говорится, we will watch your career with great interest.

P. S. В своих экспериментах я обнаружил, что минимизация nDCG + инверсия предсказаний работает лучше, чем максимизация nDCG. Если у кого-то есть мысли, почему так может быть, напишите, пожалуйста, в комментариях. Исходный код тут.
  • 🔥 8
  • 👍 3
More from @mlvok
  1. Dec 18, 2025Пришло время для SilverTorch! Сегодня на ридинг-группе — фреймворк, который бросает вызов…
  2. Dec 16, 2025В этот раз в рамках ридинг-группы обсудим SilverTorch — фреймворк, нацеленный на упрощение…
  3. Dec 4, 2025📢 Осталось 10 минут до ридинг-группы! Поговорим о том, как Taobao через RecGPT переосмысл…
  4. Dec 2, 2025На ближайшей ридинг-группе 4 декабря обсудим RecGPT — подход Taobao к пересборке классичес…
  5. Nov 24, 2025🔹Поделились записью ридинг-группы от 20 ноября в AI VK Hub — обсудили, как Spotify адапти…
  6. Nov 20, 2025📢 До начала ридинг-группы осталось 10 минут! Поговорим, как Spotify превращает контекст в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →