Главная » Хабрахабр » KDD 2018, день второй, семинары

KDD 2018, день второй, семинары

image

Побывал на двух таких тусовках.
Сегодня на KDD 2018 день семинаров — вместе с большой конференцией, которая начнется завтра, несколько групп собрали слушателей по некоторым специфичным темам.

Анализ временных рядов

С утра хотел пойти на семинар по анализу графов, но его задержали на 45 минут, поэтому перешел на соседний, по анализу временных рядов. Неожиданно открывает семинар профессор-блондинка из Калифорнии с темой «Искусственный интеллект в медицине». Странно, потому что для этого отдельный трек в соседнем зале. Потом выясняется, что у неё есть несколько аспирантов, которые будут рассказывать здесь про временные ряды. Но, собственно, к делу.

Искусственный интеллект в медицине

Врачебные ошибки — причина 10 % смертей в США, это одна из трёх главных причин смертности в стране. Проблема в том, что врачей не хватает; те, что есть, перегружены, а компьютеры, скорее, создают проблемы врачам, чем решают, по крайней мере, врачи это так воспринимают. При этом большая часть данных реально не используется для принятия решений. Со всем этим надо бороться. Например, одна бактерия Clostridium difficile отличается высокой вирулентностью и устойчивостью к лекарствам. За прошлый год она нанесла урона на 4 миллиарда долларов. Давайте попробуем оценить риск заражения на основе временного ряда медицинских записей. В отличие от предыдущих работ, возьмем очень много признаков (10k-вектор на каждый день) и будем строить индивидуальные модели для каждого госпиталя (во многом, судя по всему, вынужденная мера, так как во всех больницах свой набор данных). В итоге получаем точность порядка 0.82 AUC при прогнозе риска CDI через 5 дней.

Такую модель можно построить, активно используя знания из предметной области. Важно, чтобы модель была точной, интерпретируемой и устойчивой, нужно показать, что мы можем сделать для предотвращения заболевания. Но даже простая модель при большом пространстве признаков теряет интерпретируемость, а использование L1-регуляризации часто ведет к тому, что модель выбирает случайно одну из коллинеарных фич. Именно стремление к интерпретируемости часто снижает количество фич и приводит к созданию простых моделей. Авторы предлагают использовать другой тип регуляризации EYE (expert yield estimate). В итоге врачи не верят модели, несмотря на хороший AUC. Дает неплохие результаты, даже если эксперт облажался, более того — сравнив качество со стандартными регуляризациями, можно оценить, насколько эксперт прав. С учетом того, есть ли известные данные по влиянию на результат, получается сфокусировать модель на нужных фичах.

Оказывается, для улучшения качества в них важно искать инварианты (по сути — приводить к некоторой канонической форме). Далее переходим к анализу временных рядов. Первая, Sequence Transformer, приводит ряд к каноническому виду, а вторая, Sequence Decoder, решает задачу классификации. В недавней статье группа профессорши предложила подход на базе двух сверточных сетей.

Проверяли на датасете MIMIC, пытались предсказать смерть в больнице в течении 48 часов. Использование CNN, а не RNN, объясняется тем, что работают с рядами фиксированной длины. 02 AUC по сравнению с простой CNN с дополнительными слоями, но доверительные интервалы пересекаются. В результате получили улучшение на 0.

Здесь команда предложила заменить RNN для прогнозирования на несколько шагов вперед сеткой с несколькими выходами, без рекурсии между ними. Теперь другая задача: будем прогнозировать исключительно на базе собственно ряда, без внешних сигналов (о том, что съели и т.д.). Совмещают эту технику с предыдущей (поиск инвариантов). Объяснение такого решения заключается в том, что не накапливается ошибка при рекурсии. Сразу следом за выступлением профессора постдок детально рассказывал про эту модель, поэтому здесь на этом закончим, отметив только, что при валидации важно смотреть не только на общую ошибку, но и на ошибку классификации опасных случаев слишком высокой или низкой глюкозы.

Собственно, наличие таких сдвигов сильно усложняет ситуацию: не переобучать модель нельзя, так как деградирует качество, подмешать рандом (не лечить кого-то и проверить, умрет ли) не этично, а учить на данных, где всех лечили по рекомендации модели — это гарантированный биас… Набросил вопрос про обратную связь модели: пока это больной открытый вопрос, говорят, что надо пытаться понять, какие изменения в распределении признаков происходят в результате факта вмешательства, а какие — естественные сдвиги, вызванные внешними факторами.

Sample Path Generation

Пример того, как не надо делать презентации: очень быстро, сложно даже услышать, а уловить идею практически невозможно. Сама работа доступна здесь.

Основных идей в прошлой работе две: вместо РНН использовать сеть с несколькими выходами для разных моментов времени, плюс вместо конкретных чисел пытаемся прогнозировать распределения и оценивать квантили. Ребята развивают свой предыдущий результат по прогнозированию на несколько шагов вперед. Называется это всё MQ-RNN/CNN (Multi-Horizont forecasting Quantile regression).

Рассмотрели два подхода. В этот раз попробовали еще уточнить прогноз с помощью постпроцессинга. Метод достаточно простой и рабочий, но хочется большего. В рамках первого пытаемся «откалибровать» распределения нейросети, используя апостериорные данные и выучив матрицу ковариации выходов и наблюдений, так называемый Covariance Shrinkage. Хорошие, но нестабильные результаты удалось получить с помощью разработанной для генерирования звука WaveNet. Второй подход заключался в использовании генеративных моделей для построения «сэмпла пути»: используют генеративный подход для прогнозирования (GAN, VAE).

Graph Structured Networks

Интересная работа по перенесению «знания о предметной области» в нейросеть. Показывали на примере прогнозирования уровня преступности в пространстве (по регионам города) и времени (по дням и часам). Основная сложность: сильная разреженность данных и наличие редких локальных событий. В результате многие методы работают плохо, в среднем по дню еще угадать получается, но по конкретным районам и часам — нет. Попробуем совместить высокоуровневую структуру и микропатерны в одной нейросети.

Далее на основе полученного графа строим топологию нейронной сети, связывая блоки регионов города преступность в которых показала корреляцию. Строим граф связи по почтовым кодам и определяем влияния одних на другие с помощью Multivariate Hawkes Process.

Для каждого района вводится двухслойный LSTM с двумя полносвязными слоями. Сравнили такой подход с двумя другими: тренировать по сетке на район или по сетке на группу районов со сходным уровнем преступности, показали рост точности.

Здесь уже граф для построения сети берется географически по kNN. Помимо преступлений показали еще примеры работы над предсказанием трафика. Не до конца понятно, насколько можно их результаты сравнивать с другими (достаточно вольно меняли метрики в анализе), но в целом эвристика для построения сети выглядит адекватно.

Nonparametric approach for ensemble forecasting

Ансамбли это очень популярная тема, но то, как из отдельных прогнозов вывести результат, не всегда очевидно. В своей работе авторы предлагают новый подход.

чем новомодные Bayesian model averaging и averaging-NN. Часто простое среднее в ансамблях работает хорошо, даже лучше. На самом деле, причина этого часто заключается в том, что метод агрегации использует некоторые допущения относительно того, как распределена ошибка прогнозов (например, по Гауссу или нормально), но при его применении выполнение этого допущения забывают проверить. Регрессия тоже неплоха, но часто дает странные результаты в плане выбора весов (например, каким-то прогнозам даст отрицательный вес и т.д.). Авторы попытались предложить свободный от допущений подход.

Разность этих двух процессов тоже случайный процесс, которые мы попробуем проанализировать.
Рассматриваем два случайных процесса: Data Generation Process (DGP) моделирует реальность и может зависеть от времени, а Forecast Generation Process (FGP) моделирует построение прогнозов (их много — по одному на участника ансамбля).

  1. Соберем исторические данные и построим плотность распределения ошибки для прогнозаторов, используя Kernel Density Estimation.
  2. Далее строим прогноз и превращаем в случайную величину добавлением построенной ошибки.
  3. После чего решаем задачу максимизации правдоподобия.

Полученный метод почти как EMOS (Ensemble Model Output Statistics) при Гауссовой ошибке и гораздо лучше при не-Гауссовой. Часто в реальности, например, (Wikipedia Page Traffic Dataset) — не-Гауссова ошибка.

Nested LSTM: Modeling Taxonomy and Temporal Dynamics in Location-Based Social Network

Работу представляют авторы из Google. Пытаемся предсказать следующий чекин пользователя. используя его историю недавних чекинов и метаданные мест, в первую очередь их отношения к меткам/категориям. Категории трехуровневые, используем два верхних уровня: родительская категория описывает намерение пользователя (например, желание поесть), а дочерняя — предпочтения пользователя (например, пользователь любит испанскую еду). Дочернюю категорию следующего чекина и надо показать для получения большего дохода от онлайн-рекламы.

Используем два вложенных LSTM: верхний, как обычно, по последовательности чекинов, а вложенный — по переходам в дереве категорий от родительской к дочерней.

Кроме того, мы показали, что ЛСТМ-эмбединги переходов в дереве категорий выглядят более красивыми по сравнении с простыми и лучше кластеризуются. Получается на 5-7 % лучше по сравнению с простым ЛСТМ с сырыми эмбедингами категорий.

Identifying Shifts in Evolutionary Semantic Space

Достаточно бодрое выступление китайского профессора. Суть в том, чтобы попытаться понять, как слова меняют свой смысл.

Сейчас все успешно тренируют эмбединги слов, они хорошо работают, но будучи обучены в разное время для сравнения не подходят — надо сделать аллайнинг.

  • Можно взять старые за инициализацию, но это не дает гарантий.
  • Можно выучить функцию-трансформацию для аллайнинга, но получается не всегда, так как размерности не всегда разделяются одинаково.
  • А можно использовать топологическое, а не векторное пространство!

В итоге суть решения: строим кНН-граф по соседям слова в разные периоды для оценки изменения смысла, и пытаемся понять, есть ли тут значимое изменение. Для этого используем модель Байесовского Сюрприза. По сути, смотрим на KL-дивергенцию распределения гипотезы (приор) и гипотезы при условии наблюдений (постериор) — это и есть сюрприз. Со словами и кНН-графами в качестве априорного распределения используем Дирихле на базе частот соседей в прошлом и сравниваем с реальным multinomial по недавней истории. Итого:

  • Режем историю.
  • Строим эмбединги (LINE с сохранением инициализации).
  • Считаем кНН на эмбедингах.
  • Оцениваем сюрприз.

Валидируем, взяв два случайных слова с одинаковой частотой, и меняем друг на друга — прирост в качестве от сюрприза равен 80 %. Потом возьмем 21 слово с известными дрейфами смысла и посмотрим, сможем ли найти их автоматически. В открытых источниках пока детального изложения этого подхода нет, но есть на SIGIR 2018.

AdKDD & TargetAd

После обеда переместился на семинар по онлайн-рекламе. Здесь гораздо больше докладчиков от индустрии и все думают о том, как заработать больше денег.

Ad Tech at AirBnB

Будучи крупной компанией с большой ДС-командой, AirBnB достаточно много вкладывается в то, чтобы грамотно рекламировать себя и свои внутренние предложения на внешних площадках. Один из разработчиков рассказал немного о возникающих задачах.

Но пользователь часто даже не понимает этого, потому что реклама очень релевантная. Начнем с рекламы в поисковике: при поиска отелей в Google первые две страницы — реклама :(. Стандартная схема: матчим запросы к рекламе по ключевикам и извлекаем смысл по патерну/патернам (город, дешевый или люксовый и т.д.)

При участии в аукционе стоит задача максимизации эффекта при фиксированном бюджете, используется модель с комбинацией вероятности клика и дохода: Bid = P(click | search query) * booking value. После того, как кандидаты отобраны, устраиваем между ними аукцион (сейчас везде используется Generalized Second Price). Важный момент: не потратить все деньги слишком быстро, поэтому добавляем Spend pacer.

Там обещали добавить для рекламодателей больше инструментов, крупные игроки очень ждут. В AirBnB мощная система для А/Б-тестов, но здесь её не применить, так как рулит большей частью процесса Google.

Путешествуем в среднем пару раз в год, цикл подготовки поездки и бронирования очень долгий (недели и даже месяцы), есть несколько каналов, где мы можем дотянутся до пользователя, и надо делить бюджет по каналам. Отдельная проблема: контакт пользователя с рекламой в нескольких местах. В AirBnB попробовали два новых подхода: на базе Марковских моделей и модели Шепли. Тема эта очень больная, есть простые методы (линейно, взвешенно, по последнему клику или по результатам uplift test).

По данным подбираем веса для переходов, больше бюджета даем тем узлам, где вероятность перехода больше. С Марковской моделью всё более-менее понятно: строим дискретную цепь, узлы в которой соответствуют точкам контакта с рекламой, есть также узел для конверсии. Накинул им вопрос: почему используют простую цепь Маркова, тогда как логичнее применять MDP; сказали, что на эту тему ведут работы.

Сложность в том, что между воздействиями может быть синергия (реже антагонизм), и результат от суммы не равен сумме результатов. Интереснее с Шепли: по сути, это давно известная схема оценки аддитивного эффекта, при которой рассматриваются разные комбинации воздействий, оценивается эффект от каждой из них, а затем определяется некий агрегат для каждого отдельного воздействия. В общем, достаточно интересная и красивая теория, советую почитать.

В случае с AirBnB применение модели Шепли выглядит примерно так:

  • Имеем в наблюдаемых данных примеры с разными комбинациями воздействий и фактическим результатом.
  • Заполняем пробелы в данных (не все комбинации представлены) с помощью ML.
  • Вычисляем кредит для каждого из типов воздействия по Шепли.

Майкрософт: Pushing Boundaries

Дальше немного о том. как рекламой занимаются в Microsoft, теперь со стороны площадки, в первую очередь Bing-а. Немного боянов:

  • Рынок рекламы растет очень быстро (по экспоненте).
  • Реклама на одной странице каннибализирует друг друга, надо анализировать всю страницу.
  • Конверсия на некоторых страницах выше, несмотря на то, что СТР хуже.

В движке рекламы Bing порядка 70 моделей, 2000 экспериментов в офлайне, 400 в онлайне. Одно существенное изменение в платформе каждую неделю. В общем, работают не покладая рук. Какие происходят изменения в платформе:

  • Миф об одной метрике: не получается так, метрики растут и конкурируют.
  • Переделали систему матчинга рекламы запросам с НЛП на ДЛ, который обсчитывают на FPGA.
  • Используют федеративные модели и контекстных бандитов: внутренние модели продуцируют вероятность и неопределенность, бандит сверху принимает решение. Про бандитов говорила много, используют их для старта моделей и выведения на крейсерскую скорость, обходят с их помощью факт, что часто улучшение модели приводит к снижению доходов 🙁
  • Очень важно оценивать неопределенность (ну да, без нее бандита не построишь).
  • Для маленьких рекламодателей не работает заведение рекламы через бандитов, мало статистики, надо делать отдельные модели для холодного старта.
  • Важно следить за производительностью на разных когортах пользователей, у них есть автоматическая система для слайсинга по результатам эксперимента.

Немного поговорили про анализ оттока. Не всегда гипотезы продажников о причинах оттока верны, надо копать глубже. Для этого приходится строить интерпретируемые модели (или специальную модель для объяснения прогнозов) и много думать. А потом проводить эксперименты. Но с оттоком эксперименты всегда делать сложно, рекомендуют использовать метрики второго порядка и статью от Google.

Строят граф полностью в автоматическом режиме, unsupervised. Еще используют такую штуку, как Commercial Knowledge Graph, представляющий описание предметной области: бренды, продукты и т.д. К сожалению, открытых работ по их методу не нашел. Бренды помечают категориями, это важно, так как в целом не всегда удается unsupervised выделить бренд в целом, но в рамках какой-то категории-темы сигнал сильнее.

Google Ads

Рассказывает тот же чувак, что вчера рассказывал про графы, всё так же грустно и высокомерно. Прошлись по нескольким темам.

У нас есть бюджетированные ноды (объявления) и онлайн-ноды (пользователи), а также есть некоторые веса между ними. Часть первая: Robust Stochastic Ad Allocation. Можно делать это жадно (всегда по максимальному весу), но тогда рискуем преждевременно выработать бюджет и получить неэффективное решение (теоретический предел — 1/2 от оптимума). Теперь надо выбирать, какие рекламные объявления показать новой ноде. Можно по-разному с этим бороться, по сути, здесь мы имеем традиционный конфликт revenu и wellfair.

с элементами некоторого противящегося воздействия). При выборе метода аллокаций можно предполагать случайный порядок появления онлайн-нод в соответствии с некоторым распределением, но на практике может оказаться и adversarial-порядок (т.е. Методы в этих случаях применяются разные, дают ссылки на свои свежие статьи: 1 и 2.

Теперь пытаемся решить вопрос выбора цены резервации для увеличения дохода рекламных площадок. Часть вторая: Inceptive-aware learning/Robust Pricing. В подробности не вдаются, отправляют к своей статье. Также рассматриваем использование других аукционов типа Myerson auction, BINTAC, откат к аукциону первой цены при попадании на резервацию.

Снова решаем проблему с увеличением дохода, но теперь заходим с другой стороны. Часть третья: Online Bundling. Но провернуть это в онлайн-аукционе не получается, надо строить сложные модели с памятью, а в жестких условиях RTB это не впихнуть. Если бы можно было покупать рекламу оптом (offline bundling), то во многих ситуациях можно предложить более оптимальное решение.

За ответами, в своем лучшем стиле, отправляет к статье. Тут появляется магическая модель, где вся память сводится к одной цифре (bank account), но время поджимает, и докладчик начинает неистово листать слайды.

Deep Policy optimization by Alibaba

Работаем со «sponsored search». Решили использовать RL, как следует из названия — глубокий. Детальную информацию можно найти в статье.

Как про один из важных моментов рассказывали о разделении offline-части обучения, где тренируется собственно глубокая сеть, и online-части, где происходит адаптация признаков.

В качестве награды используют смесь CTR и дохода, применяют модель DDPG.

В конце докладчик адресовал три открытых вопроса-проблемы к аудитории, «на подумать»:

  • Нет реальной среды для РЛ.
  • Много шума в реальности, который сильно усложняет анализ.
  • Как работать с меняющейся средой?

Criteo Large Scale Benchmark for Uplift Modeling

Снова возвращаемся к задаче выявления аплифта (эффекта от конкретного воздействия среди многих). В Criteo для анализа подходов к решению задачи сделали новый датасет Criteo-UPLIFT1 (450 Мб) и прогнали бенчмарк.

Есть начальное желание купить что-нибудь, возможно, пользователь купил бы и без лечения (выздоровел сам). Идея достаточно простая. Смотрим на разность двух условные вероятностей с и без лечения — это и есть аплифт (помним, что смотрим на конкретного пользователя).

Посмотрим на ситуацию как на задачу ранжирования. Как оценивать такую модель? Также смотрим на Qini-коэфициент (генерализация Gini для аплифта), можно сравнить с идеальным по Qini, а не рандомным. Зачем-то перейдя к ранжированию, вводят странную модель оценки — берем кумулятивный по рангу аплифт с нашим ранжированием и случайным порядком, сравниваем площадь между кривыми (AUUC).

В первом случае тренируем две модели: одну на группе с лечением, другую на группе без лечения для предсказания вероятности. Тестировали в рамках бенчмарка два подхода. Ранжируем по дельте прогнозов.

Переразметили датасет так, что единицами стали те, кто получил лечение и конвертировался, а также те, кто не получил и не конвертировался; остальные нули. Другой подход назвали revert label. Ранжируем, ставя вверх тех, кто похож на единицы.

С конверсиями улучшение достигается по мере увеличения объема данных. По результатам бенчмарка, с точки зрения визитов модель с ревертом работает лучше.

Deep Net with Attention for Multi-Touch Attribution

Про то, как работать с многими каналами, на этот раз от Adobe. Простые модели мы сразу отбрасываем и начинаем учить, конечно, сетку! Причем не просто сетку, а с attention-слоем поверх LSTM, как раз для моделирования вклада отдельных источников. Для моделирования статичных фич добавим рядом с LSTM-ом полносвязную сетку из нескольких слоев и получим лучший результат.

В целом модель не выглядит такой уж безумной, а attention-слой действительно дает шанс на интерпретируемость модели.

Заключение

Дальше была пафосная сессия открытия с IMAX-роликом в лучших традициях трейлеров к блокбастерам, много спасибо всем, кто помогал это всё организовать — рекордный KDD по всем параметрам (в том числе $1,2 млн спонсорской помощи), напутствие от лорда Байтса (министра инновационного развития UK) и постер-сессия, на которую уже не осталось сил. Надо готовиться к завтрашнему дню.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Перевод] Китайская панель биомаркеров старения

Молекулярные и фенотипические биомаркеры старения. Введение. Для чего нужны биомаркеры старения? И этот процесс напрямую связан с молекулярными изменениями. Старение представляет из себя зависящий от времени физиологический функциональный спад, который поражает большинство живых организмов. С одной стороны, выявление биомаркеров старения ...

Как работает stack trace на ARM

Добрый день! Несколько дней назад столкнулся с небольшой проблемой в нашем проекте — в обработчике прерывания gdb неправильно выводил stack trace для Cortex-M. Поэтому в очередной раз полез выяснять, а какими способами можно получать stack trace для ARM? Какие флаги ...