Мы уже рассказывали вам о проекте Робот Вера (об идее и об обучении робота). Сегодня мы поговорим с Владимиром Свешниковым, сооснователем и генеральным директором компании. Владимир – человек, который создал технологическую часть Робота Веры. Узнаем побольше как раз про технологии робота. Присоединяйтесь к просмотру. Ну а если больше любите читать — под катом текстовая версия интервью.
Цикл статей «Digital Transformation»
Технологические статьи:
1. Начало.
2. Блокчейн в банке.
3. Учим машину разбираться в генах человека.
4. Машинное обучение и шоколадные конфеты.
5. Loading…Серия интервью с Дмитрием Завалишиным на канале DZ Online:
1. Александр Ложечкин из Microsoft: Нужны ли разработчики в будущем?
2. Алексей Костарев из «Робот Вера»: Как заменить HR-a роботом?
3. Федор Овчинников из Додо Пицца: Как заменить директора ресторана роботом?
4. Андрей Голуб из ELSE Corp Srl: Как перестать тратить кучу времени на походы по магазинам?
5. Владимир Свешников из «Робот Вера»: Как заменить HR-a роботом? Техническая часть.
С кем интервью?
Дмитрий Завалишин — российский программист, автор концепции ОС Фантом, организатор и член программного комитета конференции OS Day, основатель группы компаний DZ Systems. В 1990—2000 годах принимал активное участие в создании Российских сегментов сети Интернет (Релком) и Фидонет, в частности, обеспечил прозрачное взаимодействие этих сетей. В 2000—2004 годах отвечал за проектирование, разработку и развитие портала компании Яндекс, создал службу Яндекс.Гуру (в дальнейшем — Яндекс.Маркет). Подробнее можно почитать на Wiki.
Владимир Свешников — Приехал в Санкт-Петербург в 2006 г. с Дальнего Востока. Получил диплом юриста в Финансово-экономическом университете. В 2009 г. они организовал компанию «Ферст стрит», которая занималась оформлением неквалифицированного персонала из СНГ. Позже занялся аутсорсингом персонала, и к 2012 г. у них с другом было два крупных клиента – сеть магазинов «Здоровый малыш» и «Дикси». Годовой оборот «Ферст стрит» составил 30 млн руб., а в 2013 г. – 50 млн. Но вскоре Владимир понял, что не видит себя в аутсорсинге и хочет сделать технологический стартап.
Интервью
Здравствуйте! В эфире DZ Online технологии, и наш первый гость Владимир Свешников сооснователь и генеральный директор компании Робот Вера, которая занимается подбором персонала с помощью искусственного интеллекта. Это один из первых, наверное, стартапов, которые реально допускают искусственный интеллект до людей. Мы уже с вами встречались, обсуждая бизнес-задачи этого направления, и узнали о том для чего он нужен и почему он хорош. А сегодня Владимир расскажет нам немножко про то, как все это устроено, какие проблемы возникали на пути к тому идеальному…во всяком случае, действующему решению, которое есть сейчас. Владимир, здравствуйте!
Да, здравствуйте! Да, я с удовольствием расскажу о том, как мы начинали. Дело в том, что нас было всего трое в команде, это было всего год назад. Сейчас у нас в компании уже больше 50-и человек в совокупности работает. Но когда мы были втроем, я полностью отвечал за всю техническую часть. Изначально мы начинали делать такие простые вещи. То есть, мы просто взяли и начали повторять процесс рекрутера. Мы за него искали резюме, за него звонили кандидатам, за него отправляли e-mail с описанием вакансии. И так как у меня есть определенный технический background.
Я хоть по образованию юрист, но потом перепрофилировался в программисты. И я понял, что вот эти процессы они очень рутинные, очень монотонные, их можно автоматизировать. И первое, что мы сделали… это, я помню, был день, когда мы искали резюме. Это занимало где-то полдня: полдня поиск резюме, полдня, соответственное, звонки. Потом я полез… мы это делали на сайтах SuperJob, Работа, Зарплата.ру. Потом полез на их ip посмотрел, понял, что можно вот то, что мы делали полдня, сделать за одну минуту. И мы с партнером делали это вдвоем. Он, в общем, искал резюме как-то в один день, а я пошел за одну минуту это все сделал, пошел пить чай. Приходит, говорит: «А ты чего чай пьешь?», я говорю: «Я уже выполнил свой норматив».
Норму свою сделал.
И, собственно говоря, это послужило таким первым толчком. То есть, мы поняли, что технологии можно использовать и автоматизировать какие-то процессы, которые в HR сейчас вообще не автоматизированы. Ну, и дальше мы, соответственно, уже начали активно заниматься звонками. То есть, мы наняли операторов call центра, и автоматизировали звонки, автоматизировали… там кнопку сделали, прям они из браузера начали звонить. В общем, сделали все максимально просто, чтобы оператор мог сесть, надеть наушники и, в общем, единственное, что он делал – это синтезировал речь и распознавал речь. Потом мы поняли, что эти технологии тоже сейчас на рынке уже есть, они достаточно хороший уровень качества показывают, и можно их использовать.
То есть, вот человек синтезировал речь и распознавал речь? Вот в этом смысле вы же в этот момент осознали его, как деталь вот этой самой машины по коммуникации с… До этого момента все было просто. Забрать через ip список вакансий, выбрать их по какому-то ключевому слову. Хотя, есть тонкости по большому счету. Но Бог с ним. Наверное, к ним позже вернемся. В некоторый момент вы начали заниматься именно голосом: синтезировать речь и распознавать речь. Синтезировать – тоже все понятно: были скрипты, они более менее фиксированы, наверное, для определенного подбора. А распознавание – это… Ведь вы начали с очень простых сначала вопросов и ответов?
Да.
Это упиралось именно в то, что распознавание плохо работало?
Да, безусловно. Там несколько моментов. Там, если смотреть на то… В первую очередь мы очень долго искали подход, как людям сделать так, чтобы они понимали то, что они разговаривают с роботом, как они строили диалог. То есть, сперва у людей шок, они не понимают, что говорить, что отвечать (особенно, когда мы звоним в регионы). Москва, Петербург еще как-то нормально, но в регионах люди прям удивляются: что такое робот? (Там всякую различную лексику можно услышать в этот момент).
И тогда мы стали… мы сделали так, что она стала представляться и потом она задает определенный стандартный формат общения. То есть, она говорит: «Я умею распознавать ответы «да» или «нет». Отвечайте на мои вопросы «да» или «нет»». Тогда люди начинают понимать, что вот, если они скажут «да», то… ну, то есть, как им общаться они понимают. Потому что до этого у них возникает диссонанс. То есть, вроде робот, роботов, вроде, еще нет. Что такое? Звонок из будущего? Ну, в общем, вот это вот все. Соответственно, да, скорее всего, тут именно распознавание речи. Оно сейчас работает настолько, что оно может разные слова абсолютно распознавать. То есть, у нас сейчас есть скрипты, где они выбирают вакансии, где они задают вопросы. То есть, мы это все хорошо распознаем. А вот именно «да» или «нет» — это было для того, чтобы люди поняли, как общаться с роботом. То есть, вот это был момент основной.
То есть, вы могли больше делать и сразу?
Да.
Или все-таки нет? Потому что дальше ведь начинается семантика.
Да, ну, семантику мы уже добавили потом. То есть, это мы добавили вот несколько месяцев назад именно ответы на вопросы. Вот именно распознать то, что он сказал – мы могли давно. У нас даже был там в этом скрипте такой пункт: если он говорит нет, вакансия ему неинтересна, то мы спрашиваем «Почему неинтересна?». И вот там он отвечает почему неинтересна.
Но это запись? Вы просто записываете ответ не пытаясь проанализировать?
Мы распознаем его.
Распознаете?
Да и показываем в личном кабинете именно как ответ.
В виде текста?
Да.
Были в этот момент проблемы? Вот то, что вы описываете кажется достаточно банальным. Вообще кажется, что, примерно любой на планете может сейчас взять, поднять пачку библиотек и все это собрать на коленях за два дня.
Тут есть проблемы конечно, безусловно. Основная проблема была, наверное, вот если говорить про технологический аспект, в том, что у нас был достаточно такой сложный продукт. Если мы говорим только про звонки, только про распознавание, только про синтез речи – это отдельная история. Она очень большая, сложная. Там тоже, например, мы делали так, что есть там… мы используем внешний speech cognition. Мы используем гугловый, яндексовский. Во-первых, какого-то такого бенчмарка особо нет. То есть, нужно смотреть под свои задачи, как именно твой текст, как твои аудиозаписи они распознают. То есть, первое, что мы сделали – это мы сделали вот такой анализ. Посмотрели соответственно, какая лучше работает. Потом мы поняли, что несмотря на то, что одна из кампаний работает лучше и показывает лучшие результаты, все-равно скорость ответа у нее в какие-то моменты может быть длиннее. То есть, она может больше отвечать. И тогда мы стали отправлять запись в несколько систем распознавания речи. В том числе и в Microsoft, Google у нас был Amazon, Яндекс. То есть, сразу в четыре мы отправляли и получали какой-то максимально быстрый ответ.
Сейчас мы используем две-три системы максимум. То есть, в часы пик. А так основная сложность была в том, что у нас была помимо…нам нужно было запускать сперва поиск резюме, потом… она же робот, она все сама делает. Она и сами ищет, потом после того, как нашла, она сама звонит, потом после этого она, соответственно, рассылает email тем, кто не ответил «да» еще.
Не приглядываете за роботом?
Ну, приглядываем. Система мониторинга. То есть, вот это все мы проходили. И сперва там, так как я все это делал один. Я это делал не совсем правильно, делал это быстро, на скорую руку. И в общем у меня там был один Docker контейнер, в нем была и база… То есть, я все это на микро сервисы не разбивал, как сейчас принято и как сейчас мы сделали. Это все был один контейнер, один образ, в котором все работало на одной виртуалке. И собственно говоря, там мы под нового клиента каждого делали новую виртуалку, новый образ. И бывало часто, что там при нагрузках, так как не было никакой системы мониторинга, у нас там падало все. Одна из историй была, когда к нам один крупный клиент пришел. Мы с ним проводили пилоты два или три дня и потом на какой-то момент он решил по своим стоп-листам позвонить, там несколько тысяч кандидатов он загрузил. Конечно у меня случилась утечка памяти и все это накрылось, так как это был один контейнер, никакого образа сохраненного не было. Я там через телефонию, через все это восстанавливал почти всю ночь эту историю, чтобы они не потеряли свои звонки. В общем, да, проблемы такие были, но тут, наверное, если говорить о…
Ну это такие типичные проблемы, на самом деле. Достаточно банальные. Они тоже не очень связанны именно с хай-теком и распознаванием. Это, в общем-то, наверное, случилось бы в любом стартапе, в котором… да в любом, потому что все стартапы, наверное, поначалу делают силами первого человека, который идеолог технологический. А именно с самим качеством распознавания?
Вот с качеством распознавания, безусловно, тут проблемы есть. Они решаются по-разному. То есть, например, если мы адрес распознаем, подавать в систему распознавания, что это адрес. Тогда она качество лучше дает. Если мы распознаем какой-то вопрос, то мы помечаем, что это именно вопрос. Но, в целом, сейчас достаточно хорошее качество, если у нас нормальные аудиозаписи, если у нас нет каких-то посторонних шумов, если у нас нет каких-то…ну, человек говорит нормальной речью, нет никаких дефектов.
Это, кстати, интересный момент. Вы знаете, я вот общался с город Мос.ру, городские службы Московские. Они тоже занимаются активно похожими технологиями, и тоже там понятные задачи достаточно массовые. Там совершенно смешная задача – сбор информации о счетчиках воды. Можно позвонить по телефону и голосом назвать, робот распознает. И они наоборот говорят, что именно неидеальная речь или речь с акцентами, с сильными акцентами, как раз наоборот достаточно хорошо покрывается именно алгоритмом и покрывается даже лучше, чем живыми людьми. У вас обратная ситуация, если я правильно вас слышу?
Ну, у нас вот прям такой проблемы, что там было много людей с акцентами, если честно, нет. То есть, у нас, в основном, все как-то стандартно говорят. Это, наверное, еще зависит от того, что… как задать. То есть, если мы просим выбрать вариант ответа, например, вакансию, она ее проговаривает: выберете «менеджер по продажам», «грузчик» или «кладовщик».
Стараетесь так немножко их свести к узкому спектру?
Да, безусловно. У нас там был кейс, где мы собирали анкеты, резюме, где просили человека рассказать о себе, рассказать о своем опыте. И там, конечно, бывали всякие разные интересные, очень смешные истории. Ну, то есть, как они о себе рассказывали и как это все распознавалось. Безусловно там ошибка достаточно большая сейчас. И такого, чтобы она там полностью хорошо распознавала речь, этого конечно нет.
Как вы измеряете ошибку? Ведь, на самом деле, если человек просто рассказал про себя, то какой-то очевидной метрики, которая могла сравнить распознанное с правильным текстом, построить невозможно.
Это только вручную сейчас. У нас есть конкретные аккаунт-менеджеры, которые прослушивают часть записей, и они смотрят потом ответы.
Вручную верифицируют точечно? То есть, это такая более менее обычная, выборочная верификация качества?
Да. То есть, когда мы просто выбирали какую систему распознавания взять за основную, мы брали порядка, чуть меньше 1000 аудиозаписей, которые у нас были и каждую вот эту аудиозапись… мы там распознавали текст, проверяли распознанный текст с аудиозаписью. Вот нас несколько человек сидело и это делало.
Но это выбор именно системы? То есть, есть n система, у вас есть корпус уже известных текстов, про который известен правильный ответ. Вы их прогоняете, сравниваете. Тут очевидный механизм. А, кстати, кто в итоге то лучше из всех этих четырех распознавал?
Ну, там есть у них у каждого свои… ну, безусловно, сейчас считается на рынке, что Google лучший. Ну, у нас там, например, Microsoft нам быстрее отдавал запись. Тут, наверное, по-разному можно смотреть. Нельзя выделить одну систему, которую мы за основу берем. Но мы используем всегда 2-3 сейчас.
Яндекс получается в аутсайдерах? Он и распознает хуже и медленнее отвечает?
Яндекс очень хорошо распознает адреса. Наверное, это лучшее. Вот, если у нас есть адрес, то мы даже не думая, мы сразу Яндекс берем. Потому что это лучший вариант.
Но это, наверное, просто потому, что у них подложена хорошая база адресов?
Да, да, Яндекс.Навигатор. Безусловно, там Яндекс.Такси. То есть, у них очень много сэмплов голоса, когда там водитель в такси называет адрес. То есть, у них это очень хорошо проработано. Там даже не пытаемся какие-то другие… ну, пробовали конечно в рамках общего анализа, но Яндекс намного лучше.
Какая-нибудь такая банальная вещь типа того, что выход распознавалки прогнать через грамматический анализатор, который согласование там проверял? И это используется, как некая метрика в качестве распознавания?
Да. Если начать сейчас говорить про то, что мы сейчас делаем… ну, вот, если автоматически как-то их мерить, есть безусловно бенчмарки, мы смотрим международные. Там недавно Mozilla сделала open source свой, распознавание речи, который показал критерий качества, то есть, accuracy по качеству примерно, как Google.
Включая русский язык?
Нет, они только на английском пока. До русского они могут обучить. Но мы сейчас еще на международный рынок смотрим, поэтому, для нас как-бы… У нас сейчас первый партнер в Дубае появился и для нас вот, как раз.
А в Дубае это английский язык все-таки?
Да, там полностью английский язык. Все их работные сайты на английском. Ну, есть там перевод на арабский, но на английской странице посещаемость гораздо больше.
Возвращаясь к проблемам. Если я правильно понимаю, я тут глянул ваши статьи на Хабр, что у вас там происходит, то дальше у вас появилась семантика.
Да, сейчас расскажу подробнее. Вторая задача, которую мы стали решать… мы в разработке решаем задачи, которые нам бизнес приносят. Бизнес нам периодически говорит, нам нужно делать наш продукт лучше, нам нужно дальше идти по пути замены рекрутера. Нам нужно, соответственно, сделать так, чтобы робот Вера могла позвать на собеседование, полноценно договориться, адрес и место согласовать. И мы начали вот эту штуку делать. Там, в принципе, все достаточно просто, но окей, добавили там скрипт приглашение на собеседование, получили какие-то ответы, если неинтересно, то другую дату предложили. Там синхронизация с календарем. В целом, достаточно простая задача, но мы даже еще не успели к ней приступить, мы поняли, что другая задача, которая очень важная – это то, что кандидаты не получают обратную связь.
От робота?
Да. Они идут по скрипту работодателя. Работодатель решил задать три вопроса, кандидат эти три вопроса услышал, на них ответил, а вот кандидат свои вопросы задать не может. Это получается такая однобокая система. То есть, она такая мы B2B-бизнес, но при этом у нас есть большая B2C часть. То есть, у нас очень много именно кандидатов, которым мы сделали уже более полутора миллиона интервью и, соответственно, это полтора миллиона человек, которые пообщались с роботом, которые потенциально хотели бы задать свои вопросы, услышать какие-то ответы. Вот и мы стали решать эту задачу. И мы поняли, что, например, вопрос простой про зарплату может звучать по-разному. То есть, его запрограммировать на уровне простого хардкорного списка слов не получится. Ну, например, там вопрос по зарплате может звучать «че по деньгам?», а может звучать «какова финансовая составляющая?» То есть, у нас и тот и тот кейс есть.
И, соответственно, мы не на тот вопрос не ответили, не на тот не ответили, потому что мы закладывали: доход, зарплата. Тогда мы стали искать какие-то варианты, наткнулись на машину… машинное обучение я давно изучаю, у нас есть в команде люди, которые занимаются этим активно. И мы вспомнили, что есть такая история, как есть библиотека Word2vec, она основана на нейронных сетях. Google выдает по ней страницы. То есть, например, если мы в запросе пишем… там же ведь запросы в Google они примерно такие же, как у нас вопросы по вакансии. И, соответственно, Google решает именно с помощью этой библиотеки эту проблему. То есть, какой лучше показать. То есть, он берет там текста и соответственно показывает, какой лучше документ, выше. Ранжирование документов. По сути, как это работает? В общем, все слова превращаются в виде вектора, в векторном пространстве выражаются.
Сколько N-мерно?
Сейчас точно не скажу. Но эти параметры выстраиваются. То есть, их можно менять. И от них зависит качество модели. Мы брали стандартную модель Word2vec -ую, обучали ее на корпусе из… ну, там порядка 150 Кб корпус. Это миллионы книг. Туда входит корпус Википедии, все статьи русской Википедии, они все переводятся в текст и на этом тексте она обучается. Как она обучается? То есть, она бежит по этому тексту и смотрит. Например есть предложение «я позвонил по телефону» и, например, есть предложение «я позвонил по мобильному». Так как, «я позвонил» и в том и в том случае – это одинаковый контекст, она «телефон» и «мобильный» …
Предполагает, что они близки.
Да. Там она просто сближает, она их рандомно сперва расставляет, потом сближает это расстояние в точках. И таким образом мы получаем такое определенное какое-то отображение наших слов в векторном пространстве.
Метрика семантической близости слов.
Да. И потом мы считаем косинусное расстояние или мы считаем эвклидовою дистанцию. Там мы тоже немножко ковырялись, потому что мы сперва считали косинусное расстояние, но получилось, что эвклидово нам дало 10% плюс к качеству. Потому что косинусное оно больше, когда много текста, то есть, большой текст, если нам документ нужно сравнить. А так как у нас вопросы они примерно все одинаковые, короткие все, то тут проще эвклидовую метрику использовать. Ну и, собственно, мы решили все это внедрять. Качество у нас тут конечно порядка 70% получилось. То есть, достаточно низкое.
70% что?
Правильные ответы.
Отвечающие ожиданиям спрашивающего?
Да. То есть, мы тут, на самом деле, сделали такой Data Set, в котором был вопрос-ответ, вопрос-ответ. То есть, это вопрос и категория, к которой мы относим. У нас есть несколько категорий: зарплата, адрес, компания. Есть категория «не поняла вопрос». Туда падет все, что не попало в другие категории. Есть категория еще «о вакансии», «должностные обязанности». То есть, ряд таких категорий. Соответственно, в каждой категории мы пишем какие-то вопросы. 5-10 вопросов обычно. И происходит как? Мы получаем вопрос кандидата, бежим циклом по всем этим категориям, считаем дистанцию до всех вопросов (вопросов одинаковое количество в каждой категории), потом ближайшую категорию мы ему отдаем. Если там степень близости меньше определенной, то тогда мы говорим, что не поняли, перефразируйте, пожалуйста, вопрос.
И, собственно, здесь мы, как раз, эту задачу пытаемся максимально хорошо решить. То есть, мы там брали сперва вот этот Word2vec, потом есть такая компания OpenAI в штатах. Они занимаются изучением искусственного интеллекта не в коммерческих целях. Там у них Илон Маск, Эсен Альтман инвесторы. И они достаточно такие, наверное, одни…в авангарде этих технологий стоят. Недавно они выпустили свой research по поводу сентементного анализа. Они там обучили модель на 80 миллионах отзывов Amazon о товарах. И основная задача была – это обучить модель генерить эти отзывы. Она отзывы генерит. Но помимо этого она научилась хорошо делать сентементный анализ. То есть, она научилась хорошо отличать хороший отзыв от плохого. Это мы тоже используем сейчас.
Кстати, да, очень интересный вопрос. Вы ведь с ним общаетесь и можете попытаться из его ответов как-то вынимать какую-то предрасположенность, склонность, позитив, негатив к этой вакансии. Делаете?
Это уже делаем. Вот эта модель, которую мы сейчас используем, она, в принципе, и позволяет это делать достаточно легко. На самом деле, она решает ту же самую проблему, то есть, она отображает слова в векторном пространстве, а потом они просто… Самое главное…
Потом вы смотрите на какие-то ключевые точки позитивные и негативные и смотрите насколько близки ответы уже к точкам, которые оценивают это в плане позитива, негатива? Правильно понимаю?
Да.
А можете пример какого-то неправильного ответа на вопрос дать? Вот ответила она неправильно. Не поняла вопрос. И в какую сторону получается ошибка?
Много было. Вот я говорю, процентов 30. После первого такого теста у нас было 30%. Мы себе подбирали протект-менеджеров.
То есть вы тестировали на себе?
На живой продакшн мы пошли. Ну, мы знали, что будет 70%, но отправили. Кстати, нас даже на тестах было 70, а в живом было 56. То есть, было даже ниже. Мы поняли, что надо там еще дорабатывать.
50 это очень конечно…
Фактически это похоже на статистическую ошибку. Просто там 50 на 50. А в итоге мы уже к 80 приблизились. Это были самые первые такие тесты.
Что происходило? Вот как вы двигались?
Вот, например, мы Word2vec заменили сейчас сентиментный нейрон, который показывает качество на 5% лучше. Сразу же добавил 5%, там на наших тестах мы его еще подкрутили, и там еще качество выросло. Потом мы заменили косинусную дистанцию на эвклидову. Это еще дало порядка 10% в качестве. Ну а дальше мы просто увеличили количество вопросов. У нас было в каждой категории по 5 вопросов примерно, и мы сделали по 15. В три раза увеличили и, в целом, благодаря вот этим трем операциям у нас получилось так, что сейчас около 80.
Увеличив их, вы же не добавили других вопросов, а другие формулировки того же вопроса? То есть, в этом смысле то, что вы сейчас говорите, означает, что именно сематическая модель плохо работает? Вы добавили вариативности в варианты, которые система рассматривает, и она стала более четко попадать в вариант. Видимо, вы взяли ошибки эти, проанализировали, и на базе их породили варианты вопросов, которые являются референсными и тоже на себе замыкают определенное сематическое облако вокруг.
То есть, сейчас как будет? Как мы эту штуку позиционируем? Что это такой искусственный интеллект, который такой чат-бот, который просто помогает рекрутеру на все эти вопросы отвечать. Тут все вопросы, когда она не попала, они показываются рекрутеру. Рекрутер может в любой момент создать в любой момент новую категорию. Единственное, если он теперь создает категорию… Почему изначально 5 вопросов? Потому что в каждой категории должны быть вопросы примерно одинаковой длины и их должно быть одинаковое количество. Иначе вот это эвклидово расстояние будет считаться плохо. Поэтому, мы сперва хотели сами сделать. Потом мы поняли, что вопросы у всех разные. Например, у какой-нибудь компании, которая телефоны сотовые продает в магазинах, у них может быть вопрос «а сколько вы вычитаете за брак, если я разобью телефон IPhone X?» То есть, вот этого вопроса его нет, например, у программистов или у кладовщиков.
Хотя некоторым хотелось бы.
И, соответственно, все эти вопросы падают рекрутеру. И рекрутер может собирать из них категорию, может добавлять вопросы, убирать вопросы.
Собирается такой корпус вопросов типичных, который может использоваться?
Стандартно мы собираем там около 12-и категорий сейчас. Но он может добавлять, создавать, может добавлять вопросы в каждую категорию. То есть, он может, по идее, их сделать больше.
А ответ на вопрос фиксированный?
Ответ на вопрос тоже рекрутер задает.
По сути дела, он в этом месте вообще может двигаться от ответов? Сначала отобрать, интересующие его ответы.
А так и работает. У нас, смотрите, есть вакансия на входе, к вакансии есть описание. То есть, мы ответы формируем автоматом. Вот это вообще очень плохо работает. Половину мы, наверное, вопросов… даже половину вопросов заполнять медленно, долго. То есть, половину мы подтягиваем автоматически, и это позволяет рекрутёру уже понять… Мы берем Job description, разбиваем его на предложения. И каждое предложение считаем расстояние до категории. И к каждой категории мы берем самое нормальное предложение. Ну, если там должностные обязанности и требования, то это там обычно выделено, мы это умеем из текста вытаскивать сразу же. Там какие-то вопросы, например, про обеденный перерыв, про то, нужно ли мне образование, высшее образование или что-то такое. Мы вытягиваем это просто из общего текста.
Мы сейчас с вами все это так рассказываем так довольно детально, на самом деле. Вы не боитесь, что вот сейчас за камерой сидят люди, которые аккуратно записывают и уже через месяц выйдут на рынок конкурентами?
Ну, у меня тут подход такой. Я считаю, что вот эта история с текстом и с распознаванием естественного языка, она сейчас только начинает развиваться, и областей применения огромное количество. И то, что люди делают там… Если у кого-то что-то получится, кто-то сделает что-то подобное, я буду только рад, мы используем их опыт. То есть, у меня тут такая больше open source история. Это ближе к ресёрчу.
Но сегодня же вы уникальны? А в мире есть у вас конкуренты?
Нет.
Вот просто реально уникальная компания на всем пространстве земного шара?
Ну на самом деле.
Никто вот так вот не делает?
Есть похожие продукты. Тут технологии очень сильно развиваются. Безусловно где-то кто-то в чем-то лучше. Например, в штатах есть чат-бот Миа, может она в тексте общается лучше, чем мы сейчас? Мы тут не исключаем.
Вы закрываете очень четкую задачу.
Если говорить про голос такого нет. Мы штатах смотрели аналоги. Там есть одна компания, которая… если у нас можно скрипт в кабинете сделать, то там нужно звонить и записывать broadcast. Вот номер телефона, позвоните, запишите, что вы хотите сказать абонентам. Ты это записываешь и они эту аудиозапись потом прокручивают твоего же голоса. То есть, как-то немножко не так.
Казалось бы вы по-технологичнее будете.
Казалось бы эта штука вся простая. Но я тут считаю, что… касательного того, чтобы заменить, как-то скопировать и так далее, тут в первую очередь, вот мы, например, этот сантиментный нейрон обучали больше двух месяцев. Чисто обучение шло. То есть, Amazon, OpenAI.
Но это же вопрос процессорной мощности, правда же?
Да.
Это можно сделать за 3 дня, если просто купить больше виртуальных машин?
Нет. Это мы уже купили.
Вы уже все купили, все уже кончилось.
Да. Ну, у нас так как, мы с Microsoft в партнерстве, у нас неограниченные практически ресурсы по этим мощностям. Поэтому, мы берем большие машины, используем самое лучшее, наверное, что сейчас есть на рынке. Ну, не знаю, по качеству там от IWS ничем не отличается. И, собственно, мы на них и обучаем. И даже OpenAI имея свои ресурсы, обучала эту модель месяц. То есть, поэтому, тут задачи такие достаточно сложные. Во-первых, это еще часть обучить просто месяц, а вторая задача, которая еще сложнее – это данные найти. То есть, вопрос же в том, что нужно еще получить…нам же нужны не просто текста.
Вы же брали корпус текста в какой-то более менее банальной? Википедия — это ж вообще общее место, ее ж всем хватает.
Его одного недостаточно. Ну, если мы хотим добавить еще какого-то… Мы сделали как, мы брали не просто этот корпус, мы еще… у нас, в общем, около, наверное, несколько сотен тысяч вакансий уже на сервисе опубликовано. То есть, мы брали вот эти текста, 2 миллиона резюме.
Тут у вас конкуренты есть, у которых вакансии то есть.
Да, безусловно. Брали резюме. То есть, это около 2 миллионов резюме у нас. Мы брали, в общем, еще такие вакансии, то есть, мы просто через ip работных сайтов собирали вакансии. То есть, мы где-то, наверное, 10-15 Гб именно текстов, связанных с HR-тематикой – это резюме, вакансии. Вот это все мы взяли. То есть, наверное, без этого там небольшое бы было изменение. Мы примерно сравнивали модель, которая только на русском корпусе и на русском корпусе с нашими текстами. Там разница в 2-3% примерно. То есть, небольшая, но она есть все равно. И, как бы, почему бы это не сделать?
А влияют 3%? Вот смотрите, на самом деле, когда мы разговаривали с вашим коллегой, в этот момент еще робот, по-моему, только «да» и «нет» принимал. Уровень был такой. И уже на этом уровне было очень четко понятно, что… Я вот сейчас вспоминал, была хорошая история про то, как ТЭС взломали алгоритм шифровки. Она была великолепна в том, что сделали хардверный фарм, который умеет отличать точно плохой ключ от неизвестного. Не плохой от хорошего, а плохой от неизвестного.
Но на этом получилось снять два порядка объема, очистить это дело, а остальные ключики прогнать просто обычным подбором. И вы же сделали то же самое? То есть, вы, на самом деле, сделали некоторый инструмент, который позволяет отличить точно плохого кандидата от неизвестного. И тем самым, тоже вы сняли какое-то существенное количество работы, такой бессмысленной, тупой работы с рекрутера и подняли эффективность порядка на 2, наверное? Где-то такого уровня? И это является существенным драйвером. Все остальное, что вы делаете – ценно, интересно, очень любопытно, но мне кажется, с точки зрения бизнеса, такого скачка не приносит. Или я ошибаюсь?
Ну, тут мы… безусловно 2-3% вот в этой задаче, они конечно…
Погоды не делают?
Особо погоды не делают, но мы тут, как бы, боремся за такое… мы идем к этой цифре 80 качества. Поэтому, мы считаем таким, наверное, для нас base line после которого можно прям в продакшн на всех клиентов раскатывать и говорить, что мы это сделали.
А сейчас вы это экспериментально с клиентом договариваетесь?
Да, несколько клиентов, которые тестируют.
Готовы рисковать…
Да, используют эту технологию. Ну, и мы ее, как бы, пока так в закрытом виде немножко держим. То есть, мы не рассказываем по мере.
Только что рассказали.
Да. И, соответственно, тут каждое вот это какое-то небольшое дополнение. То есть, мы здесь поменяли метрику с косинусной на эвклидовую, здесь мы модель поменяли. Потом мы эту модель немножко тоже подкрутили, метод классификации другой поставили, и она уже чуть получше стала. Тоже 2-3%. И так вот из всего мы к этим 80-и и идем. То есть, тут такой процесс. Каждая составляющая как-то влияет на это все.
С другой стороны, сейчас ваши конкуренты от вас отстают на два порядка, да? И закрыть эти 2 порядка им несложно. Ну, то есть, это в общем некоторая довольно банальная система с довольно банальным распознавателем слов «да» или «нет». И как, собственно, и вы, если я правильно помню, за три месяца вы все это сделали? Ну, может…
Чуть больше. Это такие были месяцы. То есть, там без сна…
Ну, вы еще не знали, что это возможно. Они то уже знают. То есть, в принципе, сейчас сидящим за камерой людям, где-то там за экраном от нас, наверное, вопрос там одного месяца, чтобы опираясь на ваш опыт и успех, сделать аналог, который эти вот два порядка тоже реализует. То есть, в принципе, ваши конкуренты могут довольно быстро достичь вас.
Да, безусловно. Более того, уже есть компании, которые предлагают похожие сервисы. То есть, это уже, в принципе, происходит. Но вот мы сейчас, как бы, у нас там был вариант улучшать наш вот этот сервис, говорить, что мы самые стабильные и говорить, что мы самые лучшие, мы самые первые и так далее. Но мы, как бы, решили пойти на следующий этап. То есть, мы решили пойти туда, где еще нет конкурентов. То есть, competition is for losers, как там один говорил инвестор из долины Питер Тиль. И, собственно, мы стараемся делать какие-то вещи, которых еще нет. Ну вот, например, живого диалога его нет. То есть, наша задача, вот это все, что я рассказываю, вот эти маленькие детали, они все идут к большой задаче – создание такого живого диалога.
То есть, мы сейчас вот в самом тесте сделали такую историю, что после того, как она распознает вот эти категории вопросов, она же, в принципе, ответ «да» и ответ «нет» это тоже категория по факту. И тогда, мы сейчас как? То есть, если раньше нужно было создать скрипт звонка, и это достаточно такой был муторный процесс, на самом деле. Ну, потому что там мы даем какой-то дефолтный скрипт, стандартный, но все-равно каждая компания по-разному. Там, например, компания одна на «ты» обращается, другая на «вы». То есть, у кого-то официальное представление, у кого-то другое. Кто-то «привет», кто-то там «добрый день». И, соответственно, здесь мы пытаемся…кандидат может задать нужное, определенное место поставить, где он может задать вопросы, и она должна спросить: «А какие у вас вопросы?» А мы хотим, чтобы кандидат мог в любой момент задать вопрос. То есть, она его спрашивает: «Тебе интересна работа?», он говорит: «А ты кто?» И она ему отвечает.
И она отвечает.
Да.
То есть, поддерживает там такой живой диалог.
Да. И после того, как она ответила, он говорит: «Да, интересна». И она понимает, что ответ на предыдущий ее вопрос. И вот мы сейчас над этим работаем. И это конечно такой достаточно большой скачок, вот вообще в этом общении ее, в нашем продукте будет. Потому что тогда кандидат будет получать информацию. Не только получать информацию по вакансии, а просто общаться, как он привык. И это увеличит конверсию конечно намного.
Ну вы же не первые. В России есть команды, которые занимались чем-то подобным. Как-то коммуницируете, обсуждаете?
Да есть, и в мире. Безусловно, да. Сейчас, если говорить там о вообще вот таких системах, где распознается естественный язык, где пытаются строить живой диалог, то вот… если конечно большая задача big deal такой, это создать там систему, которая будет общаться там… Jarvis Марк Цукерберг недавно показывал. Но при этом, вот это, как бы, такая большая история. Там работают гиганты: Facebook, Amazon, Google, Microsoft и так далее. Все они над этим работают. Ну и есть при этом компании стартапы поменьше, которые занимаются какой-то узкоспециализированной задачей. Например, техподдержка. Очень часто ее автоматизируют, очень часто ее с использованием этих технологий заменяют. Там людей на ботов. Там достаточно большой прогресс есть.
Мы конечно общаемся с компаниями, с ребятами, которые этим занимаются. Мы, например, специализированы на HR, у нас своя область, своя тематика, нам нужны свои тексты для обучения модели, нам нужны какие-то свои определенные паттерны, свои категории. То есть, вот это вот мы делаем у нас. Есть компании, которые этим же занимаются. В штатах есть Миа, еще ряд компаний. Над этим тоже работают, но вот в узкоспециализированном формате это еще как-то получается. Ну, какое-то там достичь, 80% и может даже больше.
Именно сегментировано вы берете какое-то подмножество видов коммуникации и запираетесь в нем. За счет этого, немножко, сематическая модель, имея ограничения по классу семантик, наверное, действует более четко. Вот смотрите, на самом деле, опять же, вот то о чем вы говорите – конечно приятно и очень интересно, этим вкусно гордиться: «У нас есть робот, который умеет разговаривать». А бизнес ценность то у этого есть?
Да, мы как раз-таки, наверное, наша история, что нам периодически там хочется в сентементный анализ уйти или еще куда-то уйти. Но мы идем от бизнеса, от его запросов. То есть, с чего я как-раз начал. То, что бизнес пришел и говорит: «Нам нужно, чтобы робот начал отвечать на вопросы кандидата, чтобы это была не односторонняя, не игра в одну сторону».
А метрика? Вот вы сделали это в каком-то объеме. Как вы измеряете эффект с точки зрения бизнеса?
Тут достаточно просто. У нас есть в метрика. Мы все сейчас про звонки, в звонках мерим. То есть, есть определенный timeline разговора рекрутера с кандидатом. Там обычно, если это позиция какой-нибудь management selection, менеджер по продажам, то это, наверное, 10-15 минут. И первая часть это, конечно же, вот эти три вопроса, которые мы задаем: «А нужна работа? А интересна? А у нас такие условия. Приедешь, не приедешь?». Какая-то там последняя часть – это, наверно, тоже там пару минут максимум. То есть, это согласование интервью. Ну, там даже минута наверное. Это там: завтра в три, а я там завтра не могу, окей, давай послезавтра. Она смотрит в календарь, записывает. То есть, это тоже простая история. А вот тут в середине у них идет вот это вот общение.
И, собственно, наша метрика, она как раз-таки заключается в том, что вот мы, когда искали себе сотрудников и делали вот этот тест, мы замеряли сколько наши аккаунты общаются с кандидатами. Вот до вот этой фичи с вопросами на ответы и после. И получилось, что нам в два раза удалось снизить время их общения. То есть, они задавали только те вопросы, которые им были неинтересны. И это, если еще учесть, что они еще задавали вопросы: «Что это за робот?» и т.д. То есть, на это тоже тратили время. И поэтому, тут безусловно. То есть, наша история – это про сокращение временных затрат рекрутера. Но все функции, которые мы сейчас можем ему помочь, мы стараемся это делать. Поэтому, тут безусловно такое бизнес value есть.
То есть, метрика – не конверсия, а именно сокращение затрат живого человека?
Да, пока мы бьемся над этой метрикой. Конверсия – это такой следующий этап. Мы безусловно ее тоже считаем. Ну, на самом деле, тут в целом она, наверное, не меняется. То есть, примерно, там какой-то большой разницы мы не видели. Кандидаты, которые получают ответы на вопросы, она даже, наверное, меньше чуть-чуть становится в итоге. Их становится меньше, потому что некоторые получают ответы, которые их не устраивают.
Которые их не устраивают, и она отваливается. Кстати, тоже отдельный вопрос, который тоже можно было обсудить, но, наверное, уже не в этот раз. Наша сегодняшняя встреча подходит к концу, и вы знаете, я вот сейчас с вами разговариваю и я вспомнил эпизод из детства. Я помню в мое время выпускались грампластинки, которые печатались в журнале на пластмасске такой. В журнал вставлялась страничка пластмассовая, ее нужно было вырезать, и там была пластиночка. И в них вставляли какие-то совершенно феерические такие интересные вещи иногда. И там, например, был рассказ про то, как ученые сделали искусственную глотку механическую. Она там крутилась как-то, сжималась. И там был звук записанный, произнесенный вот этим механическим роботом. И тогда это была не просто фантастика, а какая-то такая, в общем, запредельная. И даже казалось, что никогда это не случится, а сегодня мы с вами обсуждаем ситуацию, при которой сам синтез речи — это даже уже не предмет разговора. Он просто есть, он просто существует и уже работает, и даже распознавание как таковое, вообще говоря, работает.
А обсуждаем мы с вами не распознавание слов, а распознавание смысла произнесенного и практически коммуникацию на уровне, ну, в общем, наверное, уже какого-то живого разума такого действующего. Наверное, ребенку там двух-трех летнему. Где-то вот туда попадает. То есть, вопрос попадания в разговор реального человека, наверное, где-то при нашей жизни уже случится?
Да я думаю, да. Я все-равно остаюсь таким оптимистом в плане технологий. Безусловно мы сталкиваемся с большим количеством трудностей, безусловно все-равно вот эти там 20% это достаточно большое количество остается, что мы не распознаем эти ответы. Мы когда идем вот эти 20% смотреть, мы пока не понимаем, как эти проценты нам прибавить. То есть, у нас пока там даже идей нет в целом. Но при этом, и мы понимаем, что это еще с учетом того, что это очень узкая такая область. То есть, это только HR, это только про вакансию, это только вот про это. И мы еще не берем вопросов, в которых еще может 10-15%, которые вообще в целом. Ну, иногда ей задают вопросы: «А какая погода в Москве?» Их тоже конечно можно обрабатывать.
Она должна сказать: «Подожди, Алисе перезвоню».
Конечно вот то, что, когда мы вот смотрим вот эти ошибки, мы понимаем, что технологии, они не настолько сильно развиты, чтобы прям заменить человека. И вот этот вот часто очень просто я наблюдаю там статьи, пишут, что вот типа полностью заменили человека. Это конечно поднимает такой сверххайп в этой области, на самом деле, нет.
Далеко еще.
Да-да, еще далеко. Я думаю, что при нашей жизни, думаю, да конечно. Где-то мы приблизимся к этому. Наверное, на 100% все равно не приблизимся, но будем очень близки. Но в целом, это история про то, чтобы мы больше вот к этой технологии относимся, как к той, которая помогает какие-то простые задачи, простые проблемы для людей уже сейчас решать. Но безусловно, она пока не заменяет людей полностью.
Ведущий. Ну и что… Наверное, будем ждать того дня, когда ваша система пройдет тест Тьюринга и тогда позовем вас снова?
Да-да, безусловно.
Спасибо большое! С нами был Владимир Свешников – человек, который создал технологическую часть Робота Веры. Спасибо.
Спасибо.
Автор: Александр Гуреев