Обложка канала

tldr_tany. Страница 4

3881 @tldr_tany

Всем привет! Я Таня @tany_savelieva, делаю стартап SupportAI, благотворительный фонд MIPTHEALTH, инвестирую и увлекаюсь web3. Пишу про технологии, работу и то, что меня вдохновляет

  • tldr_tany

    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_tany

    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_tany

    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_tany

    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_tany

    LXMERT: Learning Cross-Modality Encoder Representations
    from Transformers
    🖋В чем суть
    Мы живет в мире, содержащим разные типы информации, и чтобы адекватно работать с одним из них, например, текстовым, хорошо обладать знанием о другом, например, визуальном. Также многие задачи требую визуального и семантического восприятия одновременно - ответ на вопрос к изображению или видео. В статье авторы получили предобученную на кросс-информации модель на основе BERT, которая бьет SOTA по задаче генерации ответа на вопрос к изображению.
    🥕Подробности
    Допустим у нас есть картинка, на которой кошка кушает морковку. Мы задаем вопрос к картинке : "Что кушает кошка?" Предложение идет в языковой энкодер, картинка идет в визуальный энкодер, затем полученные вектора идут в кросс-энкодер, получается финальное кросс представление пары картинка-предложение. Далее этот вектор можно декодировать обратно в текст (если это ответ на вопрос текстовый, например "морковка"), в 0 или 1, если вопрос допускает ответ "да-нет"
    ☁️Предобучение
    🗒Языковой энкодер
    Это архитектура на основе BERT, которая обучается на "маскировочный" лосс. Мы с вероятностью 15% закрываем слово в тексте вопроса и пытаемся его предсказать из остальной текстовой последовательности + информации из вектора изображения. Информация из вектора изображения очень нам помогает, потому что, например, в предложении "Кошка ест морковку", если закрыть слово "морковка", по контексту сложно угадать, что кошка ест именно морковку, а если дать визуальную информацию, задача становится реальной
    👓Визуальный энкодер
    В визульальном энкодере используется похожая схема - часть изображения закрывается, и мы предсказываем класс закрытого обьекта и делаем регрессию на признаки закрытого обьекта
    😎Кросс-энкодер
    В кросс-энкодере, первые аттеншн слои которого обрабатывают вектора изображения и текста, а последующие делают self-аттеншн на полученный вектор. Кросс-энкодер предобучается на две задачи: по паре вопрос-изображение мы пытаемся определить релевантны ли они друг другу или подобраны случайно, и также генерируем текстовые ответ на вопрос к изображению.
    🗝Что в итоге
    Авторы получили SOTA на двух датасетах VQA и GQA на задаче генерации ответа на вопрос к изображению (отличается от первого более сложными вопросами). Также авторы проверили свою модель на датасете NLVR, на котором не предобучались. В датасета NLVR содержатся обьекты - текст и два изображения. Задача - понять, коректно ли предложение описывает изображения. На этой задаче авторы также побили предыдущую SOTA на 22%, что показывает что полученная модель генерализуема и применима в разных задачах.
  • tldr_tany

    Сжатие нейронных сетей - очень крутая и актуальная область, особенно в настоящее время, когда придумано огромное количество тяжелых моделей, дающих впечатляющее качество на прикладных задачах, но нет возможности запихнуть эти огромные модели на мобильные устройства или даже на обычные сервера.
    Краткий обзор по существующим методам сжатия нейронных сетей:
    https://telegra.ph/Szhatie-setok-06-30
  • tldr_tany

    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 решает проблему отсутствия 'слушающего' критерия. Учитывая то, что область набирает популярность, может быть полезно для большого числа исследований.
  • tldr_tany

    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_tany

    On Voting Strategies and Emergent Communication
    https://arxiv.org/pdf/1902.06897.pdf
    🕐 Когда - 19 февраля 2019 года
    👓 В чем понт
    Как ведут себя кандидаты, когда хотят, чтобы за них проголосовали избиратели (классическая демократия), и как - когда цель каждого кандидата - сделать так, чтобы избиратели проголосовали за одного, заранее выбранного из них кандидата (выборы в России)? Какие есть особенности у языка, которым общаются избиратели и кандидаты? Как передающие свойства среды влияют на это общение? На эти вопросы отвечают авторы в своей статье.
    🔎 Подробности
    🛠 Задача
    Авторы изучали следующую игру: 2 кандидата (но можно распространить и на большее число) передают сообщения своим избирателям и друг другу, в свою очередь избиратели тоже общаются между собой и кандидатами. После стадии общения идет стадия голосования - избиратели выбирают одного из кандидатов и отдают свой голос за него (выбирают того кандидата, чье сообщение было по норме ближе к сообщению избирателя, таким образом агенты говорят на одном языке). В статье использовался трюк Gumbel softmax - поскольку операция выбора конкретного сообщения является недиффиренциируемой, можно стянуть вероятностное распределение к одной из категорий, образуя полностью дифференциируемый алгоритм. Авторы давали
    разные награды кандидатам - в одном случае каждому кандидату эгоистичную (поощряют кандидата, если он выиграл), в другом случае - ‘альтруистичную’ - оба агента на самом деле хотят, чтобы выиграл один из кандидатов. Награда голосующих - то, насколько в среднем они уверенно голосуют за кандидатов (норма разности сообщений)
    🗒 Результаты
    Когда кандидаты способствуют тому, чтобы избиратели выбрали только одного из них, часто один из кандидатов начинает молчать. Плюс выбирать нужного кандидата избирателям становится трудней, когда плотность сети, по которой передаются сигналы об общении кандидатов и избирателей, избирателей друг с другом и кандидатов друг с другом начинает возрастать - сообщения избирателей начинают больше влиять на других избирателей, а сообщениям кандидатов становится тяжелее дойти.
    Также авторы изучали язык, который используют кандидаты. Кандидаты использовали одинаковые частотные выражения и разные - редкие (аналогия c служебными словами ‘и’, ‘тут’, ‘вот’ в нашем языке). Язык сообщений, которые используют избиратели, авторы кластеризовали и выделили два устойчивых кластера, в которых язык существенно отличался. Это напоминает информационный пузырь, который образуется вокруг приверенженцов какой-либо партии.
    🖋 Что в итоге
    Сделана пробирка для изучения поведения очень интересной системы, с которой мы сталкиваемся регулярно - выборами. В задаче можно добавить еще много всего - увеличивать число кандидатов, вводить разные награды, накладывать ограничения на язык и добавить эгоистичную награду избирателям.
  • tldr_tany

    A Unified Framework for Marketing Budget Allocation
    https://arxiv.org/pdf/1902.01128.pdf
    🕐 Когда - 4 февраля 2019
    👓 В чем понт?
    Вечный вопрос маркетинга - как, куда и сколько нужно потратить денег на рекламу, чтобы получить максимальную отдачу в выручке. Авторы статьи, работающие в исследованиях Alibaba, построили модель, оптимизирующую распределение бюджета на рекламу, и доказали ее эффективность в онлайн эксперименте при планировании бюджета компании.
    🖋 Подробности
    🔗 Модель
    При оптимизации маркетинговых кампаний рынок бьется на сегменты, а для каждого сегмента мы предположительно знаем максимальный обьем дохода, который можно с этого сегмента получить. Пример сегмента - билеты на развлекательный фильм на выходные. Авторы бьют задачу на две части. Первая часть - для каждого сегмента по исторической выборке мы строим модель того, как количество денег, выделенных на рекламу, влияет на прибыль (точнее на коэффициент того, сколько прибыли мы получим от максимального количества прибыли, которое можно выбить на этом сегменте - размер рынка). Мы предполагаем, что этот коэффициент это логистическая функция от рекламного бюджета, с помощью модели ML нам остается подогнать коэффициенты этой функции для каждого сегмента. Вторая часть - с помощью найденной модели мы распределяем рекламный бюджет максимально эффективно с точки зрения прибыли, имея какое-то ограничение на этот бюджет.
    🗒 Данные
    В качестве обучающей выборки авторы взяли датасет компании Taopiaopiao4 - крупнейшей платформы для продажи билетов в кино в Китае.В данных содержалось 60 тысяч сегментов рынка за более чем 152 дня. Для каждого сегмента рынка объем продаж накапливался ежедневно, а размер рынка был предоставлен государственным органом. Датасет содержал дополнительную информацию- кино, день недели, город и т. д.
    🛠 Эксперименты
    В аб тесте авторы сравнивали прибыль и расходы на маркетинг для рекламной кампании сделанной по модели и со стандартным равномерным распределением бюджета. Модель дала профит на 6% больше прибыли при на 40% меньших затратах на маркетинг.
    🗝 Что в итоге?
    Сделали крутую модель, увеличили эффективность рекламной кампании в АлиБабе в аб тесте. В модели авторы круто совместили экономические идеи с нейросетками. Кажется, такой гибридный подход с использованием машинного обучения будет становится все популярней, так как данных про эффективность рекламных кампаний становится все больше, с ростом рынка и переходом продаж в онлайн.
  • tldr_tany

    Emergent Communication through Negotiation
    https://openreview.net/pdf?id=Hk6WhagRW
    👓 В чем понт?
    Как нужно организовывать переговоры, чтобы достичь цели? Чем переговоры с несколькими людьми отличаются от переговоров с конкретным человеком? Кто предоставляет больше информации - тот, кто начинает говорить первым или последним? Когда переговаривающиеся могут пойти на компромисс? На эти и многие другие вопросы можно ответить используя RL-среду с агентами как пробирку.
    🔎 Подробности
    👯‍♂️ Агенты и задача
    Зададим 2 агентов и 3 продукта - перец, клубнику и вишню. Зададим каждому агенту фиксированный коэффициент "любви" к каждому продукту - от 0 до 5. В результате игры агентам нужно договориться, какое количество (от 0 до 10) каждого продукта они выбирают. Сделаем 2 вида агентов. Для эгоистичных агентов наградой будет "любовь" умноженная на количество каждого продукта только для себя, а у каждого из коллективных агентов - сумма таких наград для обоих агентов. Будем также штрафовать агентов за длину переговоров. Дадим агентам 2 канала коммуникации - предложение, где они спрашивают другого агента, устраивает ли их выбранное количество продуктов, и лингвистический - набор символов в свободной форме, который агенты учат сами ( они могутдаже врать друг другу). Будим учить 3 политики - для получения предложения, лингвистического сообщения и для того, чтобы закончить коммуникацию.
    🗒 Анализ
    Авторы анализируют поведение агентов и отвечают на будоражащие вопросы. Например...
    🍽 Могут ли эгоистичные агенты честно делить награду?
    Да, могут. После того, как агенты выучиваются обнаруживается, что их награды примерно одинаковые. Причем учатся они лучше по каналу предложения, лингвистический канал слишком шумный.
    🔗 Могут ли агенты пойти на компромисс?
    Зададим агентам немного другую награду - суммарную награду агентов, нормированную на максимальную награду, которую можно получить с исходными коэффициентами "любви" агентов к конкретным продуктам. В таком сетапе выясняется, что роль лингвистического сообщения в свободной форме возрастает и агенты начинают кооперироваться, сдвигать свой реворд в сторону агента с большими коэффициентами "любви".
    🖋 О чем пишут агенты, и кто именно пишет?
    Посмотрим на набор лингвистических сообщений и обнаружим, что их большое разнообразие и информативность присутствует только у агента, который начал говорить вторым - агенты автоматически разделяются на слушающего и говорящего. По сообщениям, которые передают агенты будем предсказывать, к какому решению они пришли в итоге - это получается хорошо, значит в сообщениях есть семантический контекст.
    👨‍👩‍👧‍👦 Имитация социума.
    Теперь зафиксируем слушающего и говорящего агента, и на каждую итерацию тренировки будем давать ему не одного уникального агента, а нового агента из набора из 10 агентов. Попробуем передавать информацию об ID агента. Занимательно, что ID больше поможет эгоистичному агенту, чем кооперативному. Интересно также, что в процессе тренировки агенты формируют единый язык, который позволяет поднять качество.
    🍢Что в итоге
    Выводы полученные в статье, коррелируют с наработками из теории игр. Кажется, что подобные среды могут стать способом изучать психологию "in silico" (в вычислительной симуляции).
  • tldr_tany

    Cети на графах становятся все популярнее как в науке, так и в индустрии. Краткий обзор по методам и конкретным примерам применения графовых нейронок для тех, кто давно хотел разобраться, но стеснялся загуглить. Графовые нейросети используются не только при обработке соцсетей, молекул и в физических задачах, но и в более неочевидных ситуациях - например, при zero-shot learning на картинках.
    https://telegra.ph/Nejronnye-seti-na-grafah-01-01
  • tldr_tany

    Answerer in Questioner’s Mind: Information Theoretic Approach to Goal-Oriented Visual Dialog
    http://papers.nips.cc/paper/7524-answerer-in-questioners-mind-information-theoretic-approach-to-goal-oriented-visual-dialog.pdf
    👓В чем понт?
    Свежая статья с NIPS 2018 (извините, NeurIPS😇), в которой авторы учат спрашивающего агента за минимальное число вопросов узнать у отвечающего агента класс обьекта на картинке, и бьют текущую SOTA. Главная фишка - спрашивающий выбирает такой вопрос, который минимизирует энтропию нужного класса, заранее подготавливая возможные вопросы.
    🔎Подробности
    Предыдущие SOTA состояли из отвечающего агента - простая сеть, генерящая ответ при условии вопроса и правильного класса, и спрашивающего агента - две реккурентный сетки, одна из которых генерит вопрос, вторая на основании ответа угадывает класс. Отвечающий в модели авторов не изменился, зато спрашивающий агент стал умнее. Теперь спрашивающий агент до начала игры генерит набор возможных вопросов. Потом из этих вопросов, зная набор классов и ответ, спрашивающий выбирает вопрос, который минимизирует энтропию по всему набору классов. Правильный класс при условии ответа выражается, как максимум вероятности из всех классов при условии ответа, состояния системы и вопроса (апостериорной вероятности). Чтобы все это посчитать, спрашивающему нужно знать модель отвечающего - вероятность ответа при условии вопрос и класса, так как параметры мы не шарим. Поэтому спрашивающий сеткой аппроксимирует эту вероятность.
    🖋 Что в итоге?
    Сделали модель, которая угадывает правильный класс в 63% случаях при 3 попытках и 79% случаев при 10 попытках, а ближайщие конкуренты дают качество 52% при 4 попытках. Так как голосовые помощники должны не только правдоподобно изображать человека, но и помогать отвечать на конкретные вопросы, улучшение очень важно. От вопросов и ответов о том, что изображено на картинке, можно перейти, например к генерации диалогов в ресторане - “Would you like to order?”- “Two coffees, please”.
  • tldr_tany

    Linguistically-Informed Self-Attention for Semantic Role Labeling
    https://arxiv.org/abs/1804.08199
    🕐 Когда - 28 августа 2018
    За наводку спасибо @annapotapenko
    👓 В чем понт
    Выделение семантических ролей - одна из самых сложных, высокоуровневых и известных задач nlp. Нам интересно узнать, какие части предложения отвечает на вопросы ‘Кто?’, ‘Зачем?’, ‘Где?’, ‘За сколько?' и так далее. Авторы статьи, используя мультитаск на 4 задачи и свое ноу-хау - синтаксически информированный атеншн, бьют SOTA.
    🔎 Подробности
    Обычный атеншн
    Атеншн нужен, чтобы получить для слов в предложении эмбеддинги, учитывая контекст. Или усреднить все слова в предложении с весами, которые пропорциональны близости к исходному слову в этом же предложении. Например в предложении ‘Я читаю про NLP, мне это нравится’, для слова ’это’ эмбеддинг будет средним от суммы эмбеддингов всех остальных слов, причем у слова ’NLP’ будет максимальный вес - слово ‘это' по сути и есть отсылка к ’NLP’ .
    Синтаксически информированный атеншн
    Обычный атеншн запускают несколько раз, чтобы веса разных атеншнов были ответственны за разные признаки - разные смыслы, синтаксис и тд. Сами не выбираем, за что будет отвечать каждый конкретный атеншн - сеть учит это сама. В синтаксическом атеншне авторы заставляют один из атеншнов обозначать синтаксис. Они берут разметку предложения по тому, какие слова являются предикатами(главными словами, обычно это глаголы) и учат атеншн так, чтобы вес между 2 словами был вероятностью, что одно слово предикат другого.
    🛠 Мультитаск
    Плюс к синтаксическому атеншну мы учим сеть параллельно еще на 3 задачи - парсинг зависимостей, выделение частей речи и определение предикатов. Hard-шарим веса модели на нижних слоях.
    🖋 Что в итоге
    Побили SOTA на задаче SRL и придумали новый крутой вид атеншна. Его можно масштабировать на все задачи, в которых есть дополнительная бинарная разметка по другим признакам. (Как в определении семантических ролей - разметка по определению предиката). Качество на задачах растет!
  • tldr_tany

    Quantum Statistics-Inspired Neural Attention
    https://arxiv.org/abs/1809.06205
    🕐 Когда - 17 сентября 2018
    👓 В чем понт
    Attention механизм недавно сделал шума в мире deep learning, например показал sota на задаче перевода. Но у существующего метода есть ограничение - вычисление весов основывается на предположении, что каждое слово, в фразе, которую мы переводим, независимо от остальных. Это предположение не учитывает зависимости более высокого порядка, которые могут встречаться в реальных данных. Новый метод, вдохновенный квантовой физикой, позволяет обойти это предположение и показать лучшее качество.

    🔎 Подробности
    🌱 Classic attention
    Seq2seq архитектура состоит из энкодера и декодера. Например, в задаче машинного перевода, энкодер получает на вход набор эмбеддингов для слов, и на каждом временном шаге(слове) генерирует скрытое представление на основе всех предыдущих слов, которое передает дальше. Декодер на каждом этапе декодирования получает на вход предыдущее декодированное слово и вектор контекста, который отражает важную информацию из энкодера. Контекст - это среднее скрытых состояний энкодера с выученными весами, причем для каждого слова в декодере эти веса разные. Веса - это функция от скрытых состояний энкодера и декодера с параметрами, которые учатся attention моделью.
    💫 Причем тут квантовая физика?
    Когда мы бросаем кубик, часто мы подразумеваем, что он может лежать только на 1 своей грани (как обычный attention считаем веса для каждого отдельного слова в энкодере). В квантовой физике мы добавляем также вероятности того, что кубик может лежать на двух гранях одновременно (аналогия с квантовым attention).
    🌈 Quantum attention
    В квантовом attention, как сказано выше, мы рассматриваем не только веса отдельных скрытых состояний в энкодере, но и веса для их сумм. Для каждого слова в декодере мы усредняем attention функции этого слова от всех пар с этим словом. Это важно, когда в одном языке комбинация слов вместе создает другой эффект, чем порознь. Например, устойчивое выражение 'козел отпущения' на английский переводится как scapegoat. Слово 'отпущение' вне контекста значит совсем другое и только в комбинации со словом 'козел' может приобрести свой финальный смысл
    🔧 Эксперименты
    Провели эксперименты, показали, что модель лучше переводит редкие слова, чем обычный attenton и показывает более высокий BLEU на задачах машинного перевода.

    🖋 Что в итоге
    Сделали логичное усложнение attention, улучшили метрики в задаче машинного перевода, и все это при небольших вычислительных затратах.
  • Реклама

  • tldr_tany

    Merging Datasets Through Deep learning
    https://arxiv.org/pdf/1809.01604.pdf
    🕐 Когда - 5 сентября 2018

    🍒 В чем понт
    Очень большую и не самую приятную часть работы аналитика составляет работа по обьединению таблиц. Например, нужно проанализировать прибыль, которую приносят клиенты в зависимости от разных характеристик. Прибыль находится в одной таблице, описание клиента в 20 других, все колонки в таблицах называются по-разному, а данные представлены в разном формате. Знакомая ситуация? Авторы статьи придумали архитектуру, в которой нейронка по распределению признаков понимает, какие данные в колонках относятся к одной и той же сущности, даже если они записаны немного по-разному.

    🔎 Подробности
    Для того, чтобы понять, какие данные в колонках таблицы относятся к одним и тем же понятиям, представим их в виде векторов с помощью нейронной сети, на вход ей будем давать три вектора - понятие, это же перефразированное понятие и понятие, которое не является синонимом. Сетка будет одновременно учиться считать расстояние между синонимыми как можно ближе, а между разными словами - как можно дальше. Учиться и проверяться будем на Wikidata - датасет содержащий имена 213 тыс людей и 71 тыс компаний, а синонимами будем считать имена, которые в базе отделяются от оригинальных имен через ''also known as''. Также статье авторы исследовали разные виды лоссов, например, смотрели на improved loss, который рассматривает расстояние не только от положительного примера до оригинального, но и от негативного до положительного, пытаясь выравнять эти расстояния. Удалось достичь точности и полноты одновременно на уровне 80 процентов.

    🖋 Что в итоге
    Достаточно простые алгоритмически, но важные шаги в сторону автоматизации большой части аналитики.
  • tldr_tany

    Exploring Shared Structures and Hierarchies for Multiple NLP Tasks
    https://arxiv.org/pdf/1808.07658.pdf
    🕐 Когда - 23 августа 2018

    🍓 В чем понт
    Часто разные задачи обработки текстов (и не только текстов) могут потенциально очень помочь друг другу. Например, в индустрии почти одни и те же тексты часто ранжируют, классифицируют на разные классы разными способами одновременно, при этом информация из одной задачи может восполнять пробелы в другой. Вопрос - как обьединить модели с наилучшим качеством и без усилий человека? На него отвечает статья, в который авторы делают это с помощью RL.

    🔎 Подробности
    🛠 Модель
    Подбираем архитектуру модели с помощью RL. У нас есть заранее заготовленные модули (какие-то слои сети), которые мы хотим правильно соединить. Действия - это то, с каким моделей соединять каждый следующий модуль для конкретной задачи. Оптимизируем политику - то, с какой вероятностью из текущего модуля нужно перейти в следующий. Нашим ревордом - оценкой того, насколько мы молодцы, будет качество решения задач, которые мы клеим.
    Учились клеить вместе 4 классические задачи NLP (POS, Chunk, NER, SRL) - получили прирост по качеству по сравнению со всеми предыдущими моделями. Пример архитектуры, построенной RL в картинке под постом.
    🗒 Анализ архитектур.
    Посмотрели на архитектуры и проанализировали, что получается, когда RL занимается дизайном модели. Увидели, что похожие задачи кластеризуются в пространстве переходов между модулями, а более высокоуровневые задачи выстраиваются в логичную иерархию с низкоуровневыми.

    🥂 Что в итоге
    Сделали способ делать способ клеить модели с максимальным качеством. Перспектива - если склеить все модели в мире вместе очень хорошо, может получиться не слабый такой ИИ:)
  • tldr_tany

    A Dual Approach to Scalable Verification of Deep Networks
    Когда - 3 августа 2018
    🕶В чем понт
    Когда мы учим сетку, хочется не просто хорошего среднего качества на данных, но и безопасности предсказаний-чтобы входы и выходы сети удовлетворяли определенным условиям. Например, были устойчивы к adversarial примерам- объектам выборки, которые при очень маленьких изменениях в значении признаков меняют класс(например, меняем всего один пиксель на картинке и сеть говорит, что теперь это кошка, а не собака). Авторы сделали метод, который в отличие от других, позволяет 1) верифицировать сеть с любой архитектурой 2) работать с дискретными входами 3) остановить тренировку в любое время, когда условия перестают выполняться 4) побить sota по устойчивости к adversarial атакам на mnist и cifar-10 5) взять приз за лучшую статью на конференции UAI.
    🔍Подробности
    🔦Оптимизация
    Задачу верификации можно сформулировать так - мы хотим, чтобы на каком-то наборе объектов (например adversarial) получались определенные выходы. Потребуем, чтобы набор линейных комбинаций от выходов сети был больше нуля - любое выпуклое ограничение представимо в таком виде. Например, мы хотим чтобы картинка с кошкой и ее adversarial всегда классифицировались как что-то близкое к кошке - подмножество входов картинок с кошкой и adversarial должны давать выходы, близкие (область в виде линейных ограничений) к выходам кошки.
    Авторы показали, что если в пространстве входов можно найти максимум линейной комбинации, то их алгоритм применим.
    🔨Эксперименты
    Авторы сравнивали свой алгоритм с другими sota в 3 задачах 1) классификации mnist и cifar при условии устойчивости к adversarial. 2) стабильности классификатора на данных из github по мере добавления данных из разных комитов 3) суммы цифр mnist-на вход даётся 2 картинки с цифрами, нужно понять насколько сильно их сумма может отличаться от суммы этих картинок, деформированных adversarial. На всех задачах качество авторов оказалось выше.

    🖋Что в итоге
    Важный шаг в сторону безопасности ИИ- в будущем сети, особенно от которых зависят жизни людей(беспилотные автомобили к примеру) должны тренироваться не только с оптимизацией качества, но и с постоянной проверкой на заданные условия(например, устойчивость к adversarial примерам).