18-19 августа компания Теле2 устраивала Хакатон по Data Science. Этот хакатон ориентирован на анализ диалогов техподдержки в социальных сетях, ускорение и упрощение взаимодействия с клиентами.

Задание не имело конкретной метрики, которую надо оптимизировать, задачу можно было придумать себе самому. Главное — улучшить сервис. В качестве жюри соревнования выступали директора различных направлений Теле2, а также знаменитый в Data Science сообществе Kaggle grandmaster Павел Плесков.

Под катом рассказ команды, занявшей 1 место.

Когда коллега предложил мне поучаствовать в этом хакатоне я согласился довольно быстро.
Мне была интересна тема NLP, а также имелись некоторые нейросетевые наработки, которые хотелось проверить на практике.

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

Стало понятно, что осуществить задуманную идею в отведенные 24 часа будет непросто, поэтому я взял на работе 1 день отпуска и потратил его на подготовку нейросети, которую хотел опробовать. Это позволило не тратить время хакатона на поиск багов, а сосредоточиться на применении и безнес-кейсах.

Офис теле2 находится на территории Новой Москвы в бизнес-парке Румянцево. Как по мне, добираться туда довольно долго, но впечатление бизнес-парк производит хорошее (за исключением ЛЭП).


ЛЭП на фоне бизнес-центра

Прямо у станции метро нас встретили организаторы, показали как пройти к офису. Само здание бизнес-центра занимает множество компаний, офис Теле2 располагается на 5 этаже. Участникам хакатона была отведена специальная зона внутри офиса, имелась кухня, зона для отдыха с PlayStation и пуфиками. Особенно порадовала скорость wi-fi, никаких проблем, свойственных массовым мероприятиям, не наблюдалось.


Завтрак

Реальные датасет, который предоставил Теле2 состоял из 3 больших CSV файлов с диалогами техподдержки: диалогов в социальных сетях, telegram и email. Всего суммарно более 4 миллионов обращений — то что нужно для обучения нейросети.

Что же собой представляла нейросеть?



Архитектура сети

В датасете не было никакой дополнительной разметки, которую интересно было бы попредсказывать, а решать хотелось supervised задачу. Поэтому решили попробовать предсказывать ответы на вопросы, уж как минимум простого чат-бота из такой модели сделать можно будет. Для этого выбрали архитектуру CDSSM (Convolution Deep Semantic Similarity Model). Эта одна из простых нейросетевых моделей для сравнивания текстов по смыслу, изначально была предложена в Microsoft для ранжирования поисковой выдачи Bing.

Суть ее в следующем: сначала каждый текст преобразуется в вектор с помощью последовательности convolution и pooling слоев.

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

В нашем случае вариант с различными весами дал лучший результат, так как тексты вопроса и ответа значительно отличались.


Попытка обучить сиамскую сеть

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

Для того, чтобы такую модель обучить, ее нужно тренировать не только на положительных, но и на отрицательных примерах. Для этого мы добавляли в обучающую выборку случайные пары вопросов-ответов соотношении 1 к 10.

Чтобы оценить качество на такой не сбалансированной выборке использовали метрику ROC-AUC. После 3 часов обучения на GPU нам удалось достичь значения 0.92 по этой метрике.

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

Некоторые такие ответы нам удалось найти прямо на хакатоне и включить их в финальную презентацию. Как мне кажется, это произвело на жюри наибольшее впечатление.

Интересное применение можно найти также и векторному представлению текстов, которые сеть генерирует в процессе своей работы.

С помощью него можно можно искать аномалии в вопросах и ответах различными unsupervised методами.

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


На фото (слева направо): Александр Абрамов, Констанин Иванов, Андрей Васнецов (автор) и Швецов Егор

Что еще почитать:


Комментарии (14)


  1. Costic
    22.08.2018 15:00

    Пользуюсь на даче интернетом от Теле2. В общем доволен был. 10+ Мбит/с. Но…
    Сегодня увидел СМС на модеме, что вчера мне подключили услугу Playb*y Ля-ля что-там. Выдали логин, пароль и 30р. в день. В общем тут недавно про Мегавон такой пост был.
    Итак, пришлось мне общаться с ТП. Почти ваша нейросеть с ИИ, только тупые или прикидываются. Услугу сразу же они сами отключили и заверили, что возможно 30р. даже вернут, а также в будущем такого не повторится. А мне рекомендовали не подписываться в приложениях платных и на сайтах инфу не вводить.
    Сим-карта стоит в модеме, номер телефона знает только Теле2. Соответствие IP-адреса и номера телефона только у Теле2. В общем гниёт контора, как и тройка…


    1. Donskoy
      22.08.2018 17:29
      +1

      Это комментарий для теста нейросети?


    1. Sly_tom_cat
      22.08.2018 18:09

      Контентный счёт подключите — это единственная действенная мера против того чтобы модемы на клубы знакомств и музыку не подписывались.


  1. Peterko
    22.08.2018 18:01

    Для уточнения на фото у вас показан не «БП Румянцево», а офисный парк А класса «ComCity». Хотя они и находятся на метро «Румянцево».


  1. dizzy321
    22.08.2018 18:01

    А сиамская сеть почему не зашла?


    1. generall Автор
      22.08.2018 18:03

      Думаю из-за того, что вопросы и ответы очень разные по стилю.


      1. Sly_tom_cat
        22.08.2018 18:22

        Т.е. в вопросе: какого «члена» вы мне опять какую-то мурню подключили и бабло скомуниздили с моего счета.
        А в ответе: подключение подписок чаще всего происходит в интернете на сайтах, которые запрашивают ваш номер телефона… И далее лелей-ным голоском мессадж который можно сформулировать двумя словами: «сам мудак».
        :)
        Это да — классический диалог с саппортом мобильного оператора сейчас.


  1. Sly_tom_cat
    22.08.2018 18:13

    Я правильно понимаю что теперь они вообще всю поддержку на «роботов» переведут.

    Раньше было можно в ЛК мегафона с поддержкой поругаться и они хоть чего-то, но делали. Теперь там робота поставили — полный алес капут — только в офис к ним переться для разборок. Отвечает только на такие вопросы, которые любой незабаненный в гугле и сам ответы найти сможет. До живого «мяса» в чате в ЛК мегафона терпеть доступа нет.

    Если и теле2 робота посадят на поддержку — то это будет полный алескапут.


    1. Costic
      22.08.2018 19:31

      Вспомнил «Кин-дза-дза» эпизод на заправке — вместо женщины автомат поставили. :-)


      1. Sly_tom_cat
        22.08.2018 20:55

        У самого возникло ощущение, что я на Плюке когда первый раз с этим столкнулся, попытавшись выяснить: кто такой умный подключил моей маме MMS сообщения на кнопочную звонилку даже без камеры?


    1. Andriljo
      23.08.2018 13:56

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


  1. schokoro
    23.08.2018 08:18

    Ребят, вы легально крутые! Меня на хакатон не отобрали, но если бы отобрали, я бы тоже стал делать анализ тональности и тематическое моделирование :)


    1. schokoro
      23.08.2018 08:29

      *реально, конечно же. Кто-нибудь, запилите уже нормальный Т9.


  1. Artgor
    23.08.2018 14:36

    Был техническим экспертом на этом хакатоне. Ваше выступление было реально интересным, да и код был качественным. Заслуженная победа :)