- PVSM.RU - https://www.pvsm.ru -
Сегодня, наконец, началась основная программа конференции. Acceptance rate в этом году составила всего 8 %, т.е. выступать должны лучшие из лучших из лучших. Явно разделены прикладные и исследовательские потоки, плюс идет несколько отдельных сопутствующих мероприятий. Прикладные потоки выглядят более интересно, там доклады, в основном, от мэйджоров (Google, Amazon, Alibaba и т.д.). Расскажу о тех выступлениях, на которых удалось побывать.
Начался день с достаточно пространного выступления о том, что данные должны приносить пользу и использоваться во благо. Выступает професор [1] Калифорнийского университета (стоит отметить, что на KDD очень много женщин, как среди слушателей, так и среди докладчиков). Всё это выражается в аббревиатуре FATES:
Этот манифест, к сожалению, скорее выражает желание и слабо соотносится с реальностью. Политкорректной модель будет, только если убрать из неё все признаки; ответственность перенести на кого-то конкретного всегда очень сложно; чем дальше развивается ДС, тем сложнее интерпретировать, что-же там внутри модели происходит; по этике и приватности несколько хороших примеров было в первый день, но в остальном, к данным часто относятся достаточно вольно.
Ну и нельзя не признать, что современные модели часто не безопасны (автопилот может и угробить машину с водителем) и не защищены (можно подобрать примеры, ломающие работу нейросетки, даже не зная, как сеть устроена). Интересная недавняя работа DeepExplore [2]: система для поиска уязвимостей в нейросетях генерирует, в том числе, картинки, заставляющие автопилот рулить не туда.
Далее дается yet another определение Data Science как «DS is the study of extracting value form data». В принципе, достаточно неплохо. В начале выступления докладчица специально оговорилась о том, что ДС часто смотрят на данные только с момента анализа, тогда как полный жизненный цикл гораздо шире, и это, в том числе, нашло отражение в определении.
Ну и не обошлось без нескольких примеров работ лаборатории.
Снова разберём задачу оценки влияния многих причин на результат, но уже не с позиции рекламы, а в целом. Есть ещё не опубликованная статья [3]. Рассмотрим, например, вопрос о том, каких актеров выбрать для фильма, чтобы собрать хорошую кассу. Анализируем актерские списки самых кассовых фильмов и пытаемся предсказать вклад каждого из актеров. Но! Есть так называемые confounders [4], которые влияют на то, насколько эффективен будет актер (например, Сталлоне неплохо зайдет в трешовом боевике, но не в романтической комедии). Чтобы выбрать правильно, нужно найти всех confounders и оценить их, но мы никогда не будем уверены, что нашли всех. Собственно, в статье предлагается новый подход — deconfounder. Вместо выделения confounders явно вводим латентные переменные и оцениваем их в unsupervised-режиме, а затем учим модель с их учетом. Звучит всё это достаточно странно, потому как похоже на простой вариант эмбедингов, в чем новизна, не понятно.
Было показано еще несколько красивых картинок-примеров, как в их университете двигают вперед AI и т.д.
Пошел на прикладную секцию по коммерции. В начале было несколько весьма интересных докладов, в конце некоторое количество каши, но обо всем по порядку.
Интересная работа [5]Snapchat о предсказании оттока. Ребята используют идею, которую мы тоже с успехом обкатывали еще 4 года назад: прежде чем предсказывать отток, надо пользователей поделить на кластеры по типу поведения. При этом векторное пространство по типам действий у них получилось достаточно бедным, всего из нескольких типов взаимодействий (нам, в свое время, пришлось делать отбор признаков, чтобы от трех сотен перейти к полутора), но они обогащают пространство дополнительными статистиками и рассматривают как временной ряд, в итоге кластеры получаются не столько про то, что делают пользователи, сколько про то, как часто они это делают.
Важное наблюдение: в сети есть «ядро» наиболее плотно связанных и активных пользователей размером в 1,7 млн человек. При этом поведение и удержание пользователя сильно зависит от того, сможет ли он связаться с кем-то из «ядра».
Дальше начинаем строить модель. Возьмем новичков за полмесяца (511 тыс.), простые фичи и эго-нетворки (размер и плотность), и посмотрим, связываются ли они с «ядром» и т.д. Поведение пользователей скормим LSTM и получим точность прогноза оттока немного выше, чем у logreg (на 7-8 %). А вот дальше начинается интересное. Чтобы учесть специфику отдельных кластеров, будем тренировать несколько LSTM параллельно, а сверху навесим attention-слой. В результате такая схема начинает работать и на кластеризацию (какой из LSTM-ов получил attention), и на прогноз оттока. Дает еще +5-7 % прироста по качеству, и logreg уже выглядит бледно. Но! На самом деле, по-честному надо было бы сравнить с сегментированным logreg-ом, натренированным отдельно для кластеров (которые можно получить и более простыми способами).
Я спросил про интерпретируемость: ведь отток часто предсказывают не для того, чтобы получить прогноз, а чтобы понять, какие факторы на него влияют. Докладчик явно был готов к этому вопросу: для этого используют выделенные кластера и анализируют, чем те из них, где прогнозы оттока выше, отличают от других.
Ребята из Alibaba рассказывают [6] о том, как строить эмбединги пользователей. Оказывается, иметь много представлений пользователей плохо: многие не доработаны, силы тратятся зря. У них получилось сделать универсальное представление и показать: что оно работает лучше. Естественно на нейросетках. Архитектура достаточно стандартная, уже в том или ином виде не раз описывалась на конференции. На вход подаются факты из поведения пользователя, по ним строим эмбединг, отдаём это всё в LSTM, сверху вешаем attention-слой, а рядом с ним дополнительно сетку по статичным фичам, венчаем multitask-ом (по сути, несколькими маленькими сетками под конкретную задачу). Обучаем всё это вместе, выход с attention и будет эмбедингом пользователя.
Есть и несколько более сложных добавлений: помимо простого attention добавляют «углубленный» attention net, а также используют модифицированный вариант LSTM — property gated LSTM
Задачи, на которых всё это обкатывают: CTR prediction, Price preference prediction, learning to rank, fashion following prediction, shop preference prediction. Датасет за 10 дней включает в себя 6*109 примеров для обучения.
Дальше был нежданчик: тренируют всё это на TensorFlow, на CPU-кластере из 2000 машин по 15 ядер, уходит 4 дня на то, чтобы окучить данные за 10 дней. Поэтому далее дообучают день за днем (10 часов на этом кластере). Про ГПУ/ПЛИС не успел спросить :(. Добавление новой задачи делают либо через переобучение целиком, либо через дообучение неглубокой сетки (netwrok fine tuning). В runtime для инференса хранят представления (выход с attention для конкретных пользователей) и вычисляют только головы сеток под конкретные задачи. А/Б-тест показал прирост 2-3 % по разным показателям.
Предсказывают возврат товара пользователем после покупки, работу [7]презентует IBM. К сожалению, пока в открытом доступе текста нет. Возврат товаров — это серьезная проблема стоимостью 200 миллиардов долларов в год. Для построения прогноза возврата использует модель гиперграфа, связывающего продукты и корзины, по данной корзине пытаются найти ближайших по гиперграфу, после чего оценивают вероятность возврата. Чтобы предотвратить возврат у интернет-магазина есть много возможностей, например, предлагать скидку за удаление определенных товаров из корзины.
Сразу отметили, что есть существенное различие между корзинами с дубликатами (например, две одинаковые футболки разного размера) и без, поэтому сразу надо строить разные модели для этих двух случаев.
Общий алгоритм называется HyperGo:
Сравнивают качество прогноза возврата с кНН по корзинам, взвешенный по Жаккарду кНН, нормирование по количеству дубликатов, получаем прирост по результату. На слайдах мелькала ссылка на GitHub, но найти их исходники не удалось, и в статье ссылки нет.
Достаточно интересная работа [8] от Amazon. Задача: намайнить для Alexa разных фактов, чтобы она лучше отвечала на вопросы. Рассказывают, как всё сложно, старые системы не умеют работать с новыми словами, часто требуют большого количества рукописных правил и эвристик, результаты при этом так себе. Порешать все проблемы помогут, конечно же, нейросетки с уже примелькавшейся архитектурой embednig-LSTM-attention, но LSTM сделаем двойным, а сверху еще накинем Conditional Random Field [9].
Будем решать задачу тегирования последовательности слов. Тэги будут показывать, где у нас начинаются и заканчиваются последовательности определенных атрибутов (например, вкуса и состава собачьего корма), их и будет пытаться предсказывать LSTM. В качестве плюшки и реверанса в сторону Mechanical Turk используют активное обучение модели. Для выбора примеров, которые нужно послать на доразметку, используют эвристику «брать те примеры, где чаще всего между эпохами свопались теги».
В своей работе [10]коллеги из Alibaba снова возвращаются к вопросу построения эмбедингов, в этот раз смотрят не просто на пользователей, а на ИД в принципе: для продуктов, брендов, категорий, пользователей и т.д. В качестве источника данных используют сессии взаимодействия, учитывают и дополнительные атрибуты. В качестве основного алгоритма используют скипграммы.
У докладчика очень тяжелое произношение с сильным китайским акцентом, понять, что происходит, почти не реально. Одна из «фишек» работы заключается в механиках переноса представлений при недостатке информации, например, с item-ов на пользователя через усреднение (быстро, не надо учить модель целиком). Со старых item-ов можно инициализировать новые (видимо, по контентной похожести), а также перенести представление пользователя из одного домена (электроника) в другой (одежда).
В целом не совсем понятно, где тут новизна, видимо, надо копнуть подробности; кроме того, не ясно, как это соотносится с предыдущим рассказом про унифицированные представления пользователей.
Очень интересная работа [11]от товарищей из LinkedIn. Суть работы в том, чтобы в онлайне выбирать оптимальные параметры работы алгоритма с учетом нескольких конкурирующих целей. В качестве области применения рассматривают ленту и пытаются увеличить количество сессий некоторых типов:
Функция ранжирование в алгоритме — взвешенное среднее по прогнозам конверсии в эти три цели. Собственно, веса и есть те параметры, которые будем пробовать оптимизировать в онлайне. Изначально формулируют бизнес-задачу как «максимизировать количество вирусных сессий при сохранении двух других типов не ниже некоторого уровня», но затем немного трансформируют для простоты оптимизации.
Моделируем данные набором биномиальных распределений (сконвертится пользователь в нужную цель или нет, увидев ленту с определенными параметрами), где вероятность успеха при заданных параметрах Гауссовский процесс [12] (свой для каждого типа конверсии). Далее используем сэмлпер Томпсона [13] с «бесконечнорукими» бандитами для подбора оптимальных параметров (не в онлайне, а в офлайне на исторических данных, поэтому долго). Дают несколько советов: использовать bold points для построения начальной сетки и обязательно добавить epsilon-greedy [14]-сэмплирование (с вероятностью эпсилон пробовать случайную точку в пространстве), иначе можно проглядеть глобальный максимум.
Симулируют взятие образцов в офлайне раз в час (надо много сэмплов), итогом становится некое распределение оптимальных параметров. Далее при заходе пользователя из этого распределения берут конкретные параметры для построения ленты (важно это делать консистентно с seed-ом из ID пользователя для инициализации, чтобы лента пользователя не менялась радикально).
По результатам А/Б-эксперимента получили прирост отправки резюме на 12 % и лайков на 3 %. Делятся некоторыми наблюдениями:
Еще одна работа [15]от LinkedIn, на этот раз про управление уведомлениями. У нас есть люди, события, каналы доставки и долговременные цели по увеличении вовлеченности пользователей без значимого негатива в виде жалоб и отписок от пушей. Задача важная и сложная, и нужно всё делать правильно: правильным людям в правильное время отправить правильный контент по правильному каналу и в правильном объеме.
Архитектура системы на картинке выше, суть происходящего примерно следующая:
На А/Б-тесте получили несколько процентов роста количества сессий.
А это был best application paper [16] от AirBnB. Задача: оптимизировать выдачу похожих размещений и поисковую выдачу. Решаем через построение эмбедингов размещений и пользователей в одном пространстве, чтобы дальше оценивать похожесть. Важно помнить, что есть долговременная история (предпочтения пользователя) и кратковременная (текущий интент пользователя/сессии).
Не мудрствуя лукаво, используем для построения эмбедингов мест word2vec на последовательностях кликов в поисковых сессиях (одна сессия — один документ). Но некоторые модификации всё-таки делаем (КДД, как никак):
Результативность такой модели проверяем тремя стандартными способами:
Результаты поисковой выдачи стараемся ранжировать не только загодя, но и переранжировать (поэтому real-time) при поступлении отклика — клика на одно предложение и игнора другого. Подход заключается в том, чтобы собрать прокликаные и заигноренные места в две группы, найти в каждой центроид по эмбедингам (есть спецформула), а дальше в ранжировании поднимаем похожее на клики, опускаем похожее на скипы.
На А/Б-тесте получили прирост бронирований, подход выдержал проверку временем: придуман полтора года назад и до сих пор крутится в production.
А если надо искать в другом городе? По кликам заранее отранжировать не получится, нет информации об отношении пользователям к местам в этом населённом пункте. Для обхода этой проблемы введем «контентые эмбединги». Сначала заведем простое дискретное пространство признаков (дешевый/дорогой, в центре/на отшибе и т.д.) размером порядка 500 тыс. типов (и для мест, и для людей). Дальше строим эмбединги по типам. При обучении не забываем добавить явный негатив по отказам (когда хозяин места не подтвердил бронь).
Работа [17]от Pinterest по рекомендации пинов. Рассматриваем двудольный граф пины-пользователи и добавляем в рекомендации сетевые фичи. Граф очень большой — 3 миллиарда пинов, 16 миллиардов взаимодействий, классические графовые эмбединги завести не удалось. В итоге, отталкиваясь от системы GraphSAGE [18], строящей эмбединги по локальной структуре (смотрим на эмбединги соседей и обновляем свой, обновление передаем соседям по модели message passing), строят PinSAGE [19]. После того, как эмбединги построены, рекомендуют через поиск ближайших соседей в пространстве эмбедингов.
Дальше начинаются «кровавые подробности»:
В итоге наглядно показали, что схема работает лучше визуальной похожести, по аннотациям и текущей коллаборивке. Внедрили, проявила себя хорошо на А/Б-тесте.
«А что будет, если дать возможность рекомендателю спросить пользователя, чего же тот хочет?» — таким вопросом задались ребята из YouTube в своей работе [20]. Вопросы рассматривали только одного формата: «на какую тему хотели бы посмотреть видео?». и использовали результат для оптимизации «онбординга» (есть, оказывается, в YouTube место, где можно задать свои интересы).
Сейчас в YouTube рекомендации строятся с помощью Video-RNN, которая предсказывает ID видео. Ребята решили взять ту же архитектуру, но предсказывать ID некой темы, а также добавить информацию о теме поверх старой сетки (post fusion). Ниже показан результат (наконец-то где-то применили GRU [21], а то всё LSTM и LSTM).
Тренируем это счастье на 7 днях данных, тестируем на 8-м, берем пользователей с достаточным количеством просмотров. Интересно, что на прогнозирование темы работает на 8 % лучше, чем многоклассовая классификация по последовательности в форме баг-оф-вордс. В А/Б-тесте interleaving-ом [22] +0,7 % к времени просмотра на главной странице, +1,23 % к открытию уведомлений.
После чего перешли к онбордингу: при использовании персонифицированной подборки тем пользователь заполняет онбординг на 18 % чаще, что в итоге выливается в +4 % прироста времени просмотра.
После обеда решил послушать исследовательские выступления, благо тема, что называется, близка к сердцу.
Достаточно интересная работа [23]по классификации графов, ориентированная на графы «большого размера». В качестве примеров в основном смотрел на разные молекулы, например, лекарства. Раньше в этой области использовались графлеты [24], но на больших графах с ними сложно, поэтому будем тренировать сетку.
По сути, делаем LSTM по последовательности блужданий по графу, но добавляем своеобразный attention-слой, который по типу текущей вершины выдает вероятности того, в какие типы вершин надо двигаться дальше. Этот слой фокусирует наше блуждание в нужном направлении. В качестве типов рассматривал химический элемент, в кулуарах подкинул автору идею перейти от типов вершин к некоторым простым эмбедингам, сказала, что попробует.
Тренируется сеть по модели РЛ: даем ей побродить по графу ограниченное количество шагов, если после этого классификация не удалась, даем пенальти. Помимо attention, ведущего прогулку, поверх LSTM добавляют self-attention, который смотрит на всю историю прогулки (уже примелькавшаяся схема). При пересечении заводим несколько «агентов», которые будут делать прогулки, и аггрегируем их ответы.
Тестировали на данных по структуре лекарств, сравнивали только с простыми baseline с мотивацией — мы же не видим весь граф. Прогулки не всегда работают, хотят попробовать TreeLSTM [25].
Авторы пытаются [26]находить аномалии в графах взаимодействий, например, спам-прозвон, сканирование портов, выпадение коммутатора. Определяют аномалию как «неожиданное появление или исчезновение крупного плотного подграфа». Задача усложняется тем, что определять аномалии надо поточно, имея ограниченные память и время.
Основная идея заключается в использовании «хешировния» графов в некоторое метрическое пространство и сравнении последовательности снепшотов хешей. Если в какой-то момент снепшот прыгнет куда-то далеко, то у нас аномалия.
Алгоритм хеширования подкупает своей простотой: возьмем два случайных региона графа и посчитаем, сколько между ними связей. Результат будет одной размерностью хеша. Повторим процедуру для остальных размерностей. Для подсчета хеша не обязательно видеть весь граф, хеш можно считать на потоке событий о добавлении/удалении связей.
Несмотря на кажущуюся наивность, авторы приводят некоторые теоретические гарантии по разделимости ситуаций с аномалиями и без. Проверяли на labeled DARPA dataset [27]. Вроде работают хорошо, при этом по сравнению с baseline-ами пропускают разные типы атак (т.е. есть потенциал для ансамбля).
А теперь лучшая исследовательская работа [28]. Adversary очень популярны в интернете, особенно в рекомендациях, поиске и т.д.: злоумышленники пытаются поднять свой сайт/контент повыше. Сейчас всё чаще в индустрии внедряются сети, работающие с графами — являются ли они устойчивыми к атакам (спойлер — нет)? В качестве примера рассмотрим задачу восстановления класса узлов графа при неполной разметке.
В принципе, у атакующего есть много возможностей:
Предлагают два подхода ко взлому. При открытой информации о сети, которую надо взломать, делают контрсеть, при закрытой — используют генетический алгоритм. В итоге все популярные графовые сетки оказались взломаны и классифицировали нужный узел неправильно. Я не удивлен.
В отличие от картинок, с графами всё сложно с точки зрения unnoticeability: как убедиться, что внесенные изменения не будут замечены?
В работе решают [29]задачу нахождения небольшого подмножества узлов в соцсети для обеспечения максимального распространения контента. Ранее проблема была изучена в случае одного раунда воздействия, теперь посмотрим случай, когда раундов несколько.
При моделировании распространения воздействий используют схему с независимыми каскадами, но есть и другая схема с линейным порогом (разобрана в статье, но не на слайдах).
Используют Монте-Карло-симуляцию и предлагают несколько схем:
Для ускорения процесса расчетов предлагают подход Reverse-Reachable sets: если ходить не от inffluencer-а, а к нему, то получается быстрее.
В академии не хватает больших графов. Раньше генерировали синтетические, теперь будем расширять существующие [30], сохраняя распределение основных свойств.
Предложенный метод прост, но работает только с графами, где степень вершин распределена по power law. Идея в том, что мы берем оригинальный граф, «клонируем» его вершины, а затем сэмплируем дуги и для каждой кидаем монетку: прорисовать «клон» этой дуги в и из оригинала в клон оригинала вершины на той стороне.
Далее приводят сравнение с некоторыми другими механизмами и показывают, что новый сильно лучше, распределения свойств сохраняются. Есть код на гитхабе [31].
Пожилой британский профессор рассказывает о data science в финансах. На самом деле. не только в финансах, а за жизнь. Приведу пару интересных цитат.
All models are wrong, but some are useful [32] — модели в data science, по сути, не отражают природу, но могут до определенного предела давать хорошие прогнозы. «Предел» же может наступить неожиданно и об этом надо помнить (дрейф признаков, резкие изменения в среде, adversarial и т.д.)
www.embo.org/news/articles/2015/the-numbers-speak-for-themselves [33] — помнить о многих типичных ошибках (overfitting, selection bias, обратная связь, подглядывание в будущее и т.д.)
Первые специалисты по анализу данных появились в 1762 году с открытием The Equitable Life Assurance Society [34], выдававшей страховки на базе анализа атрибутов пользователя.
Сейчас же страховым компаниям приходится трудно: в 2011-м окончательно запретили дискриминацию по половому признаку, теперь нельзя учитывать пол при страховании (что чертовски сложно — даже если явно спрятать фичу «пол», модель с большой вероятностью апроксимирует её по другим признакам). Это привело к интересному эффекту в UK:
В итоге получили «спираль смерти».
Эта тема перекликается с открывавшим день выступлением. F — Fairness, это некий недостижимый облачный замок. Модели ML учатся разделять примеры (в том числе людей) в пространстве признаков, поэтому не могут быть «справедливыми» по определению.
Автор: dmitrybugaychenko
Источник [35]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/data-mining/290047
Ссылки в тексте:
[1] професор : http://www.kdd.org/kdd2018/keynotes/view/jeannette-m.-wing
[2] DeepExplore: https://arxiv.org/pdf/1705.06640.pdf
[3] статья: https://arxiv.org/pdf/1805.06826.pdf
[4] confounders: https://en.wikipedia.org/wiki/Confounding
[5] работа : http://hanj.cs.illinois.edu/pdf/kdd18_cyang.pdf
[6] рассказывают: https://arxiv.org/pdf/1805.10727.pdf
[7] работу : https://dl.acm.org/citation.cfm?id=3219829
[8] работа : https://arxiv.org/pdf/1806.01264
[9] Conditional Random Field: https://en.wikipedia.org/wiki/Conditional_random_field
[10] работе : https://arxiv.org/pdf/1712.08289.pdf
[11] работа : http://delivery.acm.org/10.1145/3220000/3219847/p23-agarwal.pdf
[12] Гауссовский процесс: https://en.wikipedia.org/wiki/Gaussian_process
[13] сэмлпер Томпсона: https://en.wikipedia.org/wiki/Thompson_sampling
[14] epsilon-greedy: https://en.wikipedia.org/wiki/Multi-armed_bandit#Semi-uniform_strategies
[15] работа : http://delivery.acm.org/10.1145/3220000/3219880/p283-gao.pdf
[16] best application paper: http://delivery.acm.org/10.1145/3220000/3219885/p311-grbovic.pdf
[17] Работа : https://arxiv.org/pdf/1806.01973.pdf
[18] GraphSAGE: https://github.com/williamleif/GraphSAGE
[19] PinSAGE: https://medium.com/@Pinterest_Engineering/pinsage-a-new-graph-convolutional-neural-network-for-web-scale-recommender-systems-88795a107f48
[20] работе: http://alexbeutel.com/papers/q-and-r-kdd2018.pdf
[21] GRU: https://en.wikipedia.org/wiki/Gated_recurrent_unit
[22] interleaving-ом: http://radlinski.org/papers/RadlinskiEtAl08ClickEval.pdf
[23] работа : http://ryanrossi.com/pubs/KDD18-graph-attention-model.pdf
[24] графлеты: https://en.wikipedia.org/wiki/Graphlets
[25] TreeLSTM: https://github.com/stanfordnlp/treelstm
[26] пытаются : http://delivery.acm.org/10.1145/3230000/3220040/p1378-eswaran.pdf
[27] labeled DARPA dataset: https://www.ll.mit.edu/r-d/datasets
[28] работа: https://arxiv.org/pdf/1806.02371.pdf
[29] решают : https://arxiv.org/pdf/1802.04189.pdf
[30] расширять существующие: http://delivery.acm.org/10.1145/3230000/3220123/p2051-park.pdf
[31] гитхабе: https://github.com/chan150/EvoGraph
[32] All models are wrong, but some are useful: https://en.wikipedia.org/wiki/All_models_are_wrong
[33] www.embo.org/news/articles/2015/the-numbers-speak-for-themselves: http://www.embo.org/news/articles/2015/the-numbers-speak-for-themselves
[34] The Equitable Life Assurance Society: https://en.wikipedia.org/wiki/The_Equitable_Life_Assurance_Society
[35] Источник: https://habr.com/post/420885/?utm_campaign=420885
Нажмите здесь для печати.