Size: a a a

2019 March 17
tldr_arxiv
Simulating Emergent Properties of Human Driving Behavior
Using Multi-Agent Reward Augmented Imitation Learning
https://arxiv.org/pdf/1903.05766.pdf
⌛️ Когда - 14 марта 2019
🍾В чем понт?
Для того, чтобы проводить эксперименты с системой из большого количества автомобилей (например, планировать совместное движение беспилотных машин), нужно уметь создавать правдоподобные симуляции такого движения  - чтобы автомобили не проезжали сквозь друг друга, не катались по обочине, не носились на неадекватных скоростях по странной траектории и соответствовали нашему пониманию приемлимого вождения. Авторы статьи улучшили подход к генерации треков автомобилистов и даже выложили код своих экспериментов на github (!).
🔦 Подробности
🚗 Модель
Авторы поставили задачу следующим образом - нам нужно выучить политику - вероятность оптимального действия, при условии текущего состояния (положения машин в пронстранстве). Авторы исходили из того, что политики разных машин не зависят друг от друга и что все машины находятся в одинаковой среде с одинаковыми параметрами. Награды в этой задаче - то, насколько траектории агентов  вероятностно похожи на траектории реальных автомобилей из исторической выборки. Авторы добавили 2 фишки. Первая -  шерить параметры разных автомобилей, чтобы было легче тренироваться. Вторая -  ввести ограничения на некоторые действия, исходя из априорных представлений о том, как не должна двигаться машина (например, нормальной машине не стоит покидать пределы трассы)
⚖️Эксперименты
В экспериментах авторы мерили три группы метрик. Первая -  локальное поведение автомобилиста (RMSE между настоящими и сгенерированными треками). Вторая - экстремальность поведение на дороге (количество таких нежелательных событий, как сьезды на обочину, столкновения). Третья - средние характеристики движения (сколько раз в среднем водители перестраиваются, среднее время между автомобилями, их средняя скорость). Во всех группах метрик алгоритм авторов RAIL обошел предыдущее решение GAIL.
🔎 Что в итоге
Грамотная реализация симуляции движения автомобиля, которая в наш век аггрегаторов такси и беспилотных автомобилей еще не раз пригодится в проведении симуляционных экспериментов. На гифке нарисован пример генерации треков автомобилей, полученный с помощью выложенного на github кода. Красный цвет обозначает сгенерированные машины, зеленый - реально существовавшие на исторической выборке.
источник
tldr_arxiv
источник
2019 April 08
tldr_arxiv
On the Pitfalls of Measuring Emergent Communication
https://arxiv.org/abs/1903.05168.pdf
🕐 Когда - 12 марта 2019
👓 В чем понт
Когда мы учим нескольких агентов делать что-то вместе, можно разрешить им обмениваться сообщениями, чтобы они начали справляться с задачей еще лучше. Вопрос, который волнует многих исследователей -  как понять, что в процессе обмена сообщениями возникла коммуникация, а не случайный шум или мусор? Авторы из исследований фейсбука и гугла тестируют существующие метрики на модельной задаче, указывают на их особенности и недостатки и предлагают свою.
🔎 Подробности
🔧 Модель

Есть два агента, которые одновременно совершают действия из ограниченного набора, до этого по очереди обмениваясь сообщениями. Этот сценарий агенты повторяют t раз. У агентов есть награды - две квадратных матрицы (у каждого агента своя) с размерностью, равной количеству возможных действий агентов. В этой матрице хранятся награды агенту за его действия, при условии действий другого агента. Если в двух этих матрицах элементы равны по модулю, но противоположны по знаку - такая игра называется игрой с нулевой суммой (если одному стало хорошо, другому стало настолько же плохо). Задача агентов - увеличить свою полезность, выучивая политику- вероятность действия при условии текущего состояния. Задача авторов - посмотреть, какую роль в этом процессе играет обмен сообщениями.
🗒 Какие бывают метрики
Чтобы понять, действительно ли агенты коммуницируют, можно смотреть на следующие величины:
1) Награда агента в задаче. Если увеличилась после добавления сообщения - значит, коммуникация есть. Если не увеличилась - это пока не приговор, возможно коммуникация - это просто альтернативный способ оптимизации, можно смотреть на другие метрики.
2) Энтропия сообщений. Чем ниже, тем лучше.
3) SG (Speaker consistency) - пропорциоальна совстречаемости сообщений агента и его же будущих действий, нормированная на количество таких действий и сообщений.
4) Авторы предложили свою метрику CIC (Causal influence of communication) - итеративно рассчитываемая нормированная метрика, пропорциональная совстречаемости сообщений агента и будущих действий другого(!) агента.
🖋 Результаты
Авторы исследовали несколько сценариев. В первом матрицы наград для обоих агентов были фиксированы на протяжение всех временных шагов. В этом случае агенты демонстрировали простое поведение и коммуникация не помогала - в случае наличия общего интереса агенты повторяли одно и то же действие, в случае игры с нулевой суммой - перебирали возможные действия, не коммуницируя.
Во втором сценарии авторы сэмлировали значение матрицы наград из нормального распределения, чтобы вынудить агентов коммуницировать в условиях неопределенности, и замеряли вышеперечисленные метрики. В качестве контроля авторы решили вместо сгенерированных сообщений, отправлять агентам случайный набор символов. Интересно, что метрика SG показала, что коммуникация есть и в случае случайного набора символов. Авторы обьяснили это тем, что одна и та же сеть (с разными выходами) генерирует сообщения и действия, поэтому корреляция действий и сообщений - просто побочный продукт обучения сети. Интересно также, что метрика авторов CIC  не дала прокраски на контроле, так как она зависит от частоты совстречаемости сообщения одного агента и действий другого(!), для совершения которых используется уже другая сеть.

Что в итоге
Достаточно фундаментальное сравнение метрик для изучения коммуникации между агентами. Важно понимать, что 'говорящий' критерий, когда сообщения агента, коррелируют с его дальнейшими действиями или наблюдениями, совершенно необязательно сочетаются со 'слушающим' критерием, когда сообщение влияет на поведение агента. А для выявления коммуникации нужны оба этих критерия. Поэтому использование привычной метрики SG, без наблюдений остальных - опасно. Предложенная авторами метрика CIC решает проблему отсутствия 'слушающего' критерия. Учитывая то, что область набирает популярность, может быть полезно для большого числа исследований.
источник
2019 May 10
tldr_arxiv
Vid2Game: Controllable Characters Extracted from Real-World Videos
https://arxiv.org/pdf/1904.08379.pdf
за наводку спаcибо @stleznev
🕐 Когда - 17 апреля 2019
🔥 В чем понт
Модель, которая по одному кадру с человеком, информации о том, куда его хочется перемещать, и видео с фоном, генерирует видео с этим человеком, на этом фоне, перемещающимся в заданном нами направлении. Статья исследователей из Facebook AI Research.
🔎 Подробности
👌 Про постановку задачи
Чтобы решить поставленную выше задачу, нам нужно сделать следующие шаги:
1)  Из кадра человек+фон вырезать фон и получить позу человека (закрашенную область).
2) Из текущей позы, зная координаты человека во времени, предсказать следующую позу.
3) Наложить позу на объект (внешний образ человека) и прикрепить к ней заданный фон
👈 Про модели
Модели, которые применяются при решении поставленной выше задачи:
1) Поза из картинки извлекается уже готовой сетью DensePose, дополненной семантической сегментацией обьекта (человека), для каждого кадра.
2) Следующая поза предсказывается по предыдущей ввторской сетью Pose2Pose (P2P). Состоит из сверточного энкодера, декодера и сети, обрабатывающей скрытое представление с помощью residial слоев. Отличается от классической архитектуры тем, что при генерации следующего сообщения - позы человека (декодер) при условии предыдущей позы (энкодер), в residial слои подается заданная нами координата для центра масс человека на следующем шаге.
3) Pose2Frame (P2F) network предсказывает финальное изображение. Сеть берет текущую и следующую позу (предсказнную сетью Pose2Pose), затем вместе с обьектом (изображением конкретного человека), эта информация подается энкодер и декордер, на выходе из которого получается изобрение человека в заданной позе и маска - обозначение места, где есть человек. С помощью маски на изображение объекта накладывают фон.
🛠Про эксперименты
Как проверить, что видео, которое ты сделал, действительно хорошее? Авторы считают разные типы расстояний между тестовым видео и видео, сгенерированным при параметрах (координатах, фоне и человеке), аналогичных тестовому. Модели обучались на видео с танцами, ходьбой, теннисом, фехтованием. Скор расстояния SSIM модели авторов на задаче фехтования в 4 раза меньше, чем бейзлайн, основанный на pix2pix.
🖋Что в итоге
Очень впечатляющий способ генерировать  видео с контролем за перемещением произвольного человека с произвольным сетапом. Кажется, такое может сильно пригодиться в компьютерной графике, чтобы сделать процесс отрисовки персонажей быстрее (да и вообще, любой произвольной сущности).
🍒Что на гифке снизу
Верхняя левая картинка - поза человека. Нижняя левая - маска, показывающая, куда вставлять фон. Нижняя правая - совмещенное видео человека и позы после обработки сетью. Верхняя правая - финальное итоговое видео: поза+обьект+фон
источник
tldr_arxiv
источник
2019 June 30
tldr_arxiv
Сжатие нейронных сетей - очень крутая и актуальная область, особенно в настоящее время, когда придумано огромное количество тяжелых моделей, дающих впечатляющее качество на прикладных задачах, но нет возможности запихнуть эти огромные модели на мобильные устройства или даже на обычные сервера.
Краткий обзор по существующим методам сжатия нейронных сетей:
https://telegra.ph/Szhatie-setok-06-30
источник
2019 September 01
tldr_arxiv
LXMERT: Learning Cross-Modality Encoder Representations
from Transformers
🖋В чем суть
Мы живет в мире, содержащим разные типы информации, и чтобы адекватно работать с одним из них, например, текстовым, хорошо обладать знанием о другом, например, визуальном. Также многие задачи требую визуального и семантического восприятия одновременно -  ответ на вопрос к изображению или видео. В  статье авторы получили предобученную на кросс-информации модель на основе BERT, которая бьет SOTA по задаче генерации ответа на вопрос к изображению.
🥕Подробности
Допустим у нас есть картинка, на которой кошка кушает морковку. Мы задаем вопрос к картинке : "Что кушает кошка?" Предложение  идет в языковой энкодер, картинка идет в визуальный энкодер, затем полученные вектора идут в кросс-энкодер, получается финальное кросс представление пары картинка-предложение. Далее этот вектор можно декодировать обратно в текст (если это ответ на вопрос текстовый, например "морковка"), в 0 или 1, если вопрос допускает ответ "да-нет"
☁️Предобучение
🗒Языковой энкодер
Это архитектура на основе BERT, которая обучается на "маскировочный" лосс. Мы с вероятностью 15% закрываем слово в тексте вопроса и пытаемся его предсказать из остальной текстовой последовательности + информации из вектора изображения. Информация из вектора изображения очень нам помогает, потому что, например, в предложении "Кошка ест морковку", если закрыть слово "морковка", по контексту сложно угадать, что кошка ест именно морковку, а если дать визуальную информацию, задача становится реальной
👓Визуальный энкодер
В визульальном энкодере используется похожая схема - часть изображения закрывается,  и мы предсказываем класс закрытого обьекта и делаем регрессию на признаки закрытого обьекта
😎Кросс-энкодер
В кросс-энкодере, первые аттеншн слои которого обрабатывают вектора изображения и текста, а последующие делают self-аттеншн на полученный вектор. Кросс-энкодер предобучается на две задачи: по паре вопрос-изображение мы пытаемся определить релевантны ли они друг другу или подобраны случайно, и также генерируем текстовые ответ на вопрос к изображению.
🗝Что в итоге
Авторы получили SOTA на двух датасетах VQA и GQA на задаче генерации ответа на вопрос к изображению (отличается от первого более сложными вопросами). Также авторы проверили свою модель на датасете NLVR, на котором не предобучались. В датасета NLVR содержатся обьекты - текст и два изображения. Задача - понять, коректно ли предложение описывает изображения. На этой задаче авторы также побили предыдущую SOTA на 22%, что показывает что полученная модель генерализуема и применима в разных задачах.
источник
2019 October 14
tldr_arxiv
K-BERT: Enabling Language Representation with Knowledge Graph
https://arxiv.org/pdf/1909.07606v1.pdf
Когда - 17 сентября 2019

🕶 В чем крутость
Важно и нужно хорошо решать задачи на текстах.  Часто это делают, используя языковые модели (например BERT), которые учат векторные представления слов и предложений, исходя из совстречаемости слов в текстах. Но иногда языковой модели сложно хорошо обучиться, особенно в случае текстов с большим количеством терминов. Например, если мы хотим определить истинность утверждения "Парацетомол  лечит простуду", то языковая модель скорее всего не поможет достаточно хорошо - небольшое количество текстов содержат одновременные упоминания слов "парацетамол" и "простуда". В статье авторы предлагают включать в обучение сети онтологии - набор слов и взаимотношений между ними (например - "Парацетомол - лекарство от простуды"). Такие онтологии составлены специалистами для многих областей знаний.  В итоге авторы получили улучшение метрик на ряде задач (например, на 3% в NER на медицинских текстах) и выложили свой код, причем модель, включающая предобученный энкодер BERT и произвольную онтологию любой области знаний, дообучается вычислительно просто.

🔦 Подробности
🌲 Дерево слов
На вход модели даются предложения - последовательность слов, и онтологии - тройки слово-связь-слово. Например, предложение - "Тим Кук поедет в Пекин", онтология  - "Пекин - столица Китая" и "Кук - CEO Apple". Затем из предложения мы делаем дерево - если в онтологии содержится слово из предложения - мы достраиваем ветвление от слова из предложения (например, "Кук") к связанному слову из онтологии (например, "Apple") через связь (например, "CEO")
🔝 Вектора в BERT
Модель BERT использут разные виды векторных представлений - среди них вектор для каждого слова, и номер для позиции каждого слова. Дерево вытягивается в последовательность следующим образом - сначала вставляются слова из веток текущего слова, а потом уже слова, идущие за текущим словом в предложении (Тим Кук CEO Apple поедет в Пекин столицу Китая) (смотри картинку под постом) . Позиционные эмбеддинги учитывают структуру предложения - словам из веток и словам, идущим за словом в предложении, мы даем одинаковый номер (Тим -1, Кук -2, CEO -3, Apple - 4, поедет - 3 и тд)
🤡 Маскированный аттеншн
Однако, чтобы не учитывать при обучении векторных представлений слова в предложении связи и слова из онтологий других слов в предложении, нужно немного трансформировать слой внимания (Слово "Кук" не должно ничего знать про "столицу Китая"). Предлагается сделать квадратную матрицу, в которой указать, занулять ли вес внимания двух слов в дереве или нет (это гладким образом пробрасывается через добавление минус бесконечности к скалярному произведению запроса и ключа в коэффициенте внимания)

💡 Что в итоге
1) В последнее время выходит много статей на тему улучшений и различных применений энкодера модели BERT. BERT - это круто
2) Теперь можно просто взять код авторов https://github.com/autoliuweijie/K-BERT, онтологию по специфичной теме, предобученную модель BERT и улучшить качество на своей задаче бесплатно и без смс
источник
tldr_arxiv
источник
2019 December 09
tldr_arxiv
On the Measure of Intelligence
https://arxiv.org/pdf/1911.01547v2.pdf
⏱ Когда - 5 ноября 2019
🔝 Кто и что сделал?
Автор знакомой многим библиотеки keras Francois Chollet из знакомого многим Google решил заняться сильным искусственным интеллектом, и сделал датасет и метрику, по которым можно сравнивать различные алгоритмы потенциально сильного ИИ между собой и с человеком. Основной посыл автора заключается в наблюдении, что прогресс в любой области машинного обучения начинается с задания максимально конкретной, единой для всех исследователей задачи: датасета и метрики на этом датасете, которую нужно оптимизировать. Например, как это случилось с ImageNet и accuracy в компьютерном зрении.

💡 Подробности
💿⚖️ Требования к датасету и метрике
Поставленная задача должна:
1) Решаться и человеком, и алгоритмом ИИ
2) Учитывать, что, чтобы человек и ИИ соревновались на равных, в ИИ должны быть заложены приорные знания, которых нет у алгоритма (форма круга, квадрата, натуральные числа и тд)
3) Проверять не специфичные навыки, а способность генерализовать (решать новые задачи, которых не было в тренировочной выборке)
4) Получать воспроизводимые и устойчивые результаты с минимальной рандомизацией

💿 Датасет
Датасет состоит из 1000 заданий (400 - тренировка, 400 открытая валидация, 200 - закрытая валидация) - трех пар изображений, одно из пары получается преобразованием другого из этой пары, + четвертого изображения, пару для которого нужно найти с помощью общего для всех пар преобразования. Пример показан на картинке под постом. Датасет напоминает тест IQ, все задания может пройти человек. Меру интеллекта можно рассчитать зная преобразование - программу, предсказанную алгоритмом на тесте. Как?

⚖️ Метрика
Можно посчитать энтропию каждой программы, записанной на машине Тьюринга. Посчитаем генерализущую степень каждой задачи из набора задач - это алгоритмическая сложность (далее энтропия) программы на тестовых заданиях после тренировки, нормированная на энтропию оптимальной программы. Чем больше эта величина, тем трудней генерализовать задачу.  Посчитаем значения приоров - то, насколько близко от оптимального значения находится изначально система - это нормированная на энтропию оптимального решения разность энтропии оптимального решения и решения, полученного алгоритмом на момент нахождения системы в исходном состоянии.
Посчитаем опыт - меру полезной информации, полученной системой при тренировке на определенном наборе данных - сумму по всем наборам данных разностей энтропии оптимального решения и оптимального решения при условии увиденных данных, нормированную на энтропию оптимального решения. Наконец посчитаем интеллектуальность программы - взвешенную сумму по всем тренировочным наборам и заданиям генерализующей степени задания, нормированную на сумму опыта на наборе данных и приоров системы. Именно с помощью «интеллектуальности программы» можно сравнивать разные алгоритмы, генерирующие программы для вычисления преобразования на заданном датасете.

🧚‍♀️ Что дальше и что в итоге?
Автор отмечает, что нужно обогащать датасет, разрабатывать достаточные и не избыточные приоры и пробовать свои алгоритмы на этом датасете. Очень важный шаг в очень нужном направлении.
источник
tldr_arxiv
источник
2020 January 04
tldr_arxiv
Deep Learning for Symbolic Mathematics
https://arxiv.org/abs/1912.01412
Когда
2 декабря 2019
🧚‍♀️ Кто
Guillaume Lample, François Charton, Facebook AI Research

🕶 В чем понт
Авторы учат сетку решать диффуры с помощью seq2seq модели и получают сопоставимое, а на ряде задач даже более высокое качество, чем классические фреймворки для решения уравнений - Mathematica, Matlab и Maple.  

🔦 Подробнее
Сначала авторам нужно было сгенерировать выборку - уравнения и их решения, чтобы обучать модель seq2seq. Уравнения и решения представлялись как деревья (см рисунок под постом). В первом способе генерации выборки сначала генерировалось уравнение, потом с помощью фреймворков находилось его решение, в этом случае решение было длинным. Во втором способе сначало генерировалось решение, потом оно дифференциировалось и получалось уравнение. В этом случае уравнение получалось длинным, но выборка обогащалась примерами, которые фрейворки возможно не смогли бы решить. Далее обучалась модель seq2seq, на тесте выбиралось топ10 сгенерированных решений, и проверялась их истинность, если одно решение подходило - уравнение считалось правильно решенным. Результаты модели в основном превосходили фреймворки, например на решении дифференциальных уравнений первого порядка модель даёт 97% точности, а Mathematica - 77%

☀️ Что в итоге?
Нейросети умеют решать невероятно сложные задачи -  генерировать изображения, переводить тексты, распознавать речь, однако их полезность в решении математических задач оставалась сомнительной. Авторы показали, что нейросети могут помочь в решении уравнений, и что в будущем нужно интегрировать нейросетевые методы в классические математические фреймворки.

🥑 Претензии
Частая претензия к статье - если на фреймворке Mathematica время нахождения решения превышало 30 секунд - авторы считали решение ошибочным, чтобы померить качество на тесте за адекватное время. Однако в статье говорится, что таких ошибок - 20% от всех ошибок, так что если засчитать таймауты как правильные ответы, сравнение модели и фреймворка на тесте не сильно изменится.
источник
tldr_arxiv
источник
2020 January 30
tldr_arxiv
Towards a Human-like Open-Domain Chatbot
https://arxiv.org/pdf/2001.09977.pdf
🕛Когда - 27 января 2020
💜В чем понт
Авторы из Deepmind разработали самую тяжелую по количеству параметров и самую лучшую по оценке людей диалоговую систему Meena. Кроме того, придумали новую метрику SSA, основанную на оценке людей, которая коррелирует с алгоритмической метрикой перплексией, а также очень детально проанализировали диалоговые SOTA и показали, что Meena превосходит ближайшего конкурента на 23% SSA, отставая от человека на 7% SSA.

🍬Про новый чат бот
Чат бот построен на основе Evolved Transformers — архитектуры, полученной из стандартного трансфомера с помощью автоматического оптимизатора архитектуры нейронных сетей — NAS (neural architecture search). В боте 2.6 биллион параметров, что в 1.7 раз больше, чем в самом очень тяжелом энкодере GPT-2. Бот обучался 30 дней на TPU-v3 core на 341Гб текстов из социальных сетей, что в 8 раз больше объема данных, который использовался для обучения GPT-2.

🖋 Немного теории про метрики
Метрики диалоговых систем делятся на две категории. Есть метрики оценки людей, например метрика из теста Тьюринга, когда асессору дают вопрос и два ответа, чтобы тот определил, где человек, а где алгоритм. Вторая категория метрик — алгоритмические метрики, которые можно численно посчитать по выходам алгоритма, например BLEU.
Одна из главных проблем области — метрики оценки людей не коррелируют с алгоритмическими метриками, поэтому до того, как сажать людей размечать данные трудно понять, что люди адекватно воспримут хороший по методикам ML алгоритм.

🥑 Про авторские метрики
Авторы придумали метрику SSA - Sensible Specific Average, среднее между Sensible - оценкой ассесоров, осмысленно предложение или нет, и Specifity - насколько предложение специфично в контексте. Эта метрика хорошо коррелирует с алгоритмической метрикой перплексией - насколько предсказанные вероятности на тесте предсказывают таргет. Авторы показали, что кореляция SSA с перплексией - 94%, а корреляция SSA с субьективной оценкой людей того, насколько им нравится ответ на вопрос - 96%.  Также сравнили между собой SOTA диалоговые системы в статичном случае, когда предложения, на которые нужно дать ответ сэмплированы из готовой выборки, и динамическом случае - когда люди могут переписываться с ботом. Лучшее качество 79% SSA среди алгоритмов у Meena, фреймворка авторов, что на 23% выше, чем у ближайшего конкурента, и на 7% ниже, чем у человека. Более подробный результат сравнения на статическом случае в картинке под постом.

🍽Что в итоге
Масштабное исследование диалоговых систем, новые скорелированные метрики для оценки алгоритмов и SOTA диалоговая система.

🧚‍♀️Субъективное мнение
Статьи по ML становятся похожи на биологические — есть сложная система с неинтерпретируемым механизмом работы, нужно оценить свойства и сравнить с другими системами. В статье посчитаны статзначимости, что нехарактерно и круто :)
источник
tldr_arxiv
источник
2020 February 22
tldr_arxiv
What Changed Your Mind: The Roles of Dynamic Topics and Discourse in Argumentation Process
https://arxiv.org/pdf/2002.03536v1.pdf
Когда - 10 февраля 2020
🍭 В чем понт
Авторы обучили сеть определять победителя спора, и сделали аналитику полученных результатов. Набор данных был взят с subreddit с дискуссиями пользователей, и очень интересен по своей сути: с одной стороны, он бесплатный и постоянно пополняется, с другой - достаточно структурированный и строгий, посколько в subreddit есть правила оформления дискуссий и модерация.

💎 На чем учились
Авторы учили свою модель на данных subreddit "ChangeMyView". В нем действуют следующие правила: человек решает завести дискуссию, и публикует свою точку зрения по какой-нибудь проблеме вместе с аргументами. Другие пользователи reddit приводят аргументы, оспаривающие эту точку зрения. Цель заводящего дискуссию - выслушать аргументы, ответить на них, и либо изменить свою точку зрения, либо остаться при своем, но уже более осознанно. Авторы брали набор пар дискуссий, где автор изменил и не изменил свое мнение, и затем учили модели на pairwise loss: модель предсказывает вероятность, что автор поменяет мнение, для первой и второй дискуссии. Успехом считается случай, когда эта вероятность для спора, закончившегося сменой мнения, больше, чем вероятность для спора, в котором автор не изменяет свою позицию.

🏋️‍♀️ Как строили модель
Сначала авторы разделили входные слова в предложение на компоненты дискурса и темы. Дискурс - это не меняющаяся составляющая аргументации, определяющая стиль предложения. Тема - это динамические паттерны, вокруг которых строится дискуссия. После разделения входных слов в аргументе, тема, дискурс и входное слово подаются в сеть с памятью(GRU) и предсказывается вероятность "убедительности" аргументов. Итоговый лосс считался, как разница вероятности "убедительности" для дискуссии, в которой автора переубедили и где автора не переубедили, за вычетом скора того, насколько хорошо слова в аргументации разделились на тему и дискурс.

📄 Аналитика
После того, как была построена модель, которая предсказывает с качеством 70%, кто победит в споре, авторы выделили кластеры тем и дискурсов для разных слов и проанализировали, от чего зависит успех дискуссии в большей степени. Оказалось, что аргументы, использующие меньший набор тем, больше статистики и персональных местоимений более успешны. Также для аргументов были выделены кластеры тем и дискурсов и их средние веса в сети с динамической памятью. Например, для спора на тему "Нужно ли учить второй язык", сильнее всего на "успешность" аргументации влияет кластер дискурсов, который включает в себя цифры и ссылки, а для тем - кластер "познание".

🔦 Что в итоге
Новая идея, по модели и аналитике местами спорная, но очень интересная  по способу выбора набора данных (а данные как известно решают). Не первая статья, где авторы в качестве обучающей выборки используют данные с специфических subreddit, кажется хорошо присмотреться к reddit как серьезному источнику новых данных.
источник
2020 March 21
tldr_arxiv
Building a COVID-19 Vulnerability Index
https://arxiv.org/pdf/2003.07347v1.pdf
Когда - 17 марта 2020
🦠 В чем понт
Рисечеры из data science - healthcare компании построили индекс, который показывает степень опасности короновируса для человека, и выделили признаки, которые коррелируют с тем, пройдет ли короновирус мимо вас незаметно, или же наоборот вызовет осложнения.

🔎 Подробности
Поскольку для короновируса еще нет большого доступного набора данных, модель учили предсказывать риск респираторных инфекций (пневмонии, гриппа) — осложнений короновируса, которые и представляют самую большую угрозу для зараженных. Предсказания строились по данным Medicare (страховая программа в США) за 2015-2016, предсказывалось придет ли в больницу пациент с этими заболеваниями. Были построены 3 модели. Первая модель — логистическая регрессия, чтобы получить интерпретируемый вклад признаков, плюс, чтобы люди без знания ML могли легко применить и адаптировать модель. Вторая модель — модель с бустингом, обученная на части доступных Medicare признаков: медицинская история + пол + возраст — такие признаки доступны для большого количества людей. Третья модель, лучшая по предсказательной силе, обучена на всех доступных признаках, включая географическую и социологическию информацию из баз Medicare.
Модели обучалась на данных 1,5 млн пациентов. ROC-AUC сильной модели получился не слишком большим - 0.81, впрочем что для медицины вполне неплохой результат.

👨‍⚕️ Инсайты
При построении модели логистической регрессии, были выделены признаки, которые вносят наибольший вклад в предсказания. Это возраст, сердечные заболевания, диабет, болезни легких. У мужчин риск тоже оказался выше — возможно дело в кросс-корреляциях с таргетом через болезни сердца и диабет.

💉 Что в итоге
Кроме инсайтов по признакам, рисечеры выложили свои модели по ссылке https://github.com/closedloop-ai/cv19index. Это может быть полезно на практике.
Например, если выделить второй моделью топ-5% людей с самым высоким индексом, то среди них окажется 33% людей, у которых в выборке были респираторные инфекции, то есть модель в 6 раз лучше рандома.  Кажется, таким людям с большим индексом из зоны риска в первую очередь стоит давать тесты и не выпускать на работу. In data we trust.
источник
2020 March 24
tldr_arxiv
Как мы учили искусственный интеллект отвечать на вопросы в поддержку. Опыт Яндекс.Такси
https://habr.com/ru/company/yandex/blog/493666/
Когда: 24 марта, 2020
✌️ Кто: автор канала и ко
🍒 В чем понт:  Как сделать так, чтобы на 60% автоматизировать ответы в поддержке огромного сервиса и не просадить, а даже улучшить метрики в онлайне
🔎 Подробности: Одни best practices по DL в реалиях улучшения жизни пользователей и экономии денег для компании ничего не стоят (хотя без хороших NLP алгоритмов задачу тоже не решить). Авторы не только применили sota, но и сделали мини-толоку для сотрудников поддержки, чтобы они обновляли часто меняющиеся логики на более чем 1500 шаблонных ответов, подружили это с ML и бэкендом в онлайне, сделали так, чтобы эти сервисы самостоятельно обновлялись, валидировались по качеству и переносились на любую поддержку(Яндекс.Еда, Яндекс.Лавка и тд) без написания кода вообще.
🚕 Что в итоге: сэкономили время пользователей и денег. Счастье в дружбе ML, экcпертов и бэкенда, а также в правильном склеивании этого всего прозрачный и обновляемый процесс
источник
2020 May 03
tldr_arxiv
Uplift моделирование или как раздать скидки на шашлык

🍭 Зачем это нужно
Одна из самых популярных задач для ML в индустрии  — определить, кому лучше всего раздать деньги-разослать коммуникацию-позвонить, чтобы максимально увеличить выручку-лояльность-активность. Допустим у нас есть задача — понять, кому в интернет-магазине показать скидку на шашлык. Можно взять тех, кому уже показывали скидку, и предсказывать факт покупки. Однако при этом подходе мы не делаем разницы
между людьми, которые купили бы шашлык независимо от нашей скидки, и людьми, для которых сбавление цены решило. Uplift моделирование — это способ выделить именно тех покупателей, которым нужно дать скидку, чтобы они совершили покупку.
Примерно с тем же постоянством, с которым uplift используется в индустрии и в продакшене, он игнорируется в курсах по ML.

🏋️️Как построить модель
Сначала проведем эксперимент: случайной части людей дадим скидку 10%, а другим покажем прежнюю цену. Далее, как обычно, обучим модель на признаках пользователя предсказывать, купит ли он наш шашлык, но к фичам добавляем еще и наличие скидки. Далее для каждого пользователя предсказываем вероятность купить товар, добавляя фичу, соотвествующую наличию скидки. Также считаем вероятность купить товар, добавив фичу, показывающую, что скиду этот пользователь не получил. Из первой вероятности (купить товар при наличии скидки) вычитаем вторую вероятность (купить товар без скидки). Это и есть наше значение uplift, чем оно больше, тем выгодней давать клиенту скидку.

Наверное многих заинтересовал вопрос, почему скидка на шашлык именно 10%?  Чтобы для каждого пользователя опредлить оптимальный размер скидки, мы можем раздавать в эксперименте разные значения скидок, обучать модель с фичой, соотвествующей не наличию, а размеру скидки, а далее считать вероятность купить товар для каждого размера скидки.

💃 Как раздать скидки по предсказанию модели
Допустим, пачка масок стоит 2000 рублей, мы провели эксперимент, в котором раздавали клиентам скидки 10%, 20% и 50%. Наша финальная задача: для каждого клиента сказать, какую скидку ему давать, и давать ли вообще. Также нужно сказать компании, сколько дополнительных денег наша скидочная кампания принесет в бюджет.
С помощью нашей модели посчитаем вероятности, купить товар для пользователя со скидкой и без.
Вероятности купить товар со скидкой 0%, 10%, 20% и 50% — p0, p10, p20 и p50 соответсвенно.
Цена товара без скидки, со скидкой 0%, 10%, 20% и 50% — 2000р, 1800р, 1600р и 1000р соответсвенно.
Нужно выбрать ту скидку, для которой итоговая цена минус себестоимость товара S, умноженная на вероятность купить товар максимальна: max_value = max((2000-S)*p0, (1800-S)*p10, (1600-S)*p20, (1000-S)*p50). Наш выигрыш с пользователя — это max_value - (2000-S)*p0.
Могут складываться ситуации, когда давать скидку не выгодно никогда, а также ситуации, когда всегда стоит давать максимальную скидку.

📚 Что почитать
Более подробное описание разных вариантов моделей
Пример кода для построения uplift модели
источник
2020 June 06
tldr_arxiv
Multi-agent Communication meets Natural Language: Synergies between Functional and Structural Language Learning
https://arxiv.org/abs/2005.07064
Когда - 14 мая 2020
🍭️️️ В чем понт
В нашем мире есть много умных систем. Логично, что им нужно взаимодействовать друг с другом, чтобы передавать информацию, и в будущем эта потребность будет только расти.  Представьте себе два беспилотника, которые могут передавать друг другу сообщения о ситуации на дороге, чтобы сделать вождение более безопасным. Важно, чтобы эти сигналы были интерпретируемыми, а еще лучше — на естественном языке, чтобы в случае неприятностей, мы могли понимать, что произошло.
Авторы предлагают модельную задачу, на которой агенты передают друг другу информацию с дополнительной целью формулировать ее максимально понятным человеку способом, а также структурируют и предоставляют анализ случаев, когда язык модели начинает отличаться от человеческого.

🏋️️ Поставновка задачи: угадай картинку по подписи
Есть два агента: говорящий и слушающий. Говорящему агенту дают набор картинок и показывают на одну из них — картинку-таргет. Задача говорящего — сгенерировать предложение, хорошо отделяющее картинку-таргет от других приведенных. Задача слушающего — получив на вход предложение, понять какая из картинок была загадана говорящим. Задача слушающего и говорящего -  сделать так, что описания картинок были даны на максимально человечном языке — понять не только ЧТО сказать, но и КАК это сделать
Модель учиться на датасете Abstract Scenes с картинками и возможными описаниями к ним. Пример картинки и подходящей к ней подписи — на картинке под постом

💃 Модель
Говорящий агент берет картинку-таргет и генерит к ней текстовое описание: с помощью предобученного ResNet делает из картинки вектор, дальше подает вектор на вход LSTM, которая генерит текст, описывающий картинку.
Слушающий агент берет на вход все картинки, генерит к каждой тексовое описание аналогично говорящему (только веса его модели не зависят от весов говорящего). Далее слушающий пытается угадать, какая их всех картинок была таргетом - сравнивает описание картинки-таргета от говорящего со всеми описаниями своих картинок и выбирает ближайшую с помощью скалярного произведения.
К лоссу на функциональность коммуникаци добавлен лосс модели image captioning на датасете Abstract Scenes, - регуляризация на “человечность”.
Обучать агентов можно совсестно, либо фиксировать слушающего и учить только говорящего (замораживать слушающего).

🔦 Человечен ли язык агентов и как это измерить?
Авторы разделили причины “нечеловечности” языка на три категории: структурную, семантическую и прагматическую.
Структурная “нечеловечность” — агенты продуктивно общаются и достигают своих целей, но язык грамматически неверен. Такая ситуация возникает, когда недостаточно сильно регуляризуем на image captioning. Мерить ее можно как вероятность для языковой модели сгенерировать текст.
Семантическая “нечеловечность” — предложение построено грамматически верно, но значения слов могут быть перепутаны. Например в тексте “мальчик стоит на дерево” слово “дерево” перепутано со словом “земля”. Мерить ее можно как вероятность сгенерировать текст при условии картинки.
И наконец, самая нетривиальная и интересная разновидность ”нечеловечности” языка — прагматическая. Она возникает, когда модель дает корректные предложения, но имеет под ними ввиду что-то другое, не то, что человек. Пример: есть 2 картинки с нарисованным солнцем, сетка-слушатель выдает предложение "Светит солнце”, а сетка слушатель угадывает,  про какую картинку шла речь, хотя для человека это невозможно — такое описание подходит под обе картинки. Способ измерить такое расхождение — сравнить результаты человека-слушателя и сети-слушателя.
Такое расхождения по результатам эксперимента получается особенно сильным у сети, где слушатель обучается вместе с говорящим, то есть где параметры слушателя не заморожены.

💎 Что в итоге
Машины будут становится только умнее и уметь понимать их - вопрос безопасности. Ждем дальнейших крутых исследований на различных прикладных задачах)
источник