Так как мы являемся разработчиками системы для рекрутинга и HR, хотим поделиться своим видением и опытом использования машинного обучения в подборе кандидатов. Тема непростая, но все идет к тому, что через пару-тройку лет подобные штуки будут использоваться практически во всех компаниях. Кто-то их будет ставить у себя внутри, кто-то воспользуется облачными вариантами. Главная причина — они в разы ускоряют обработку входных данных. Поэтому бизнес от них не откажется.  Среди уже автоматизированных процессов — оценка «большой пятерки» (софт-скиллы), мэтчинг резюме и вакансий, диалоги с кандидатами и exit-интервью. Под катом кратко про то, как все это устроено и чем грозит соискателям в ближайшем будущем. Хотя, не особо грозит. По факту можно научить систему прекрасно работать даже с резюме, состоящими из 10 строк, в то время как живых рекрутеров разом всех не обучишь. Но это все философия. С точки зрения рекрутера найм специалистов вручную — это последовательная рутина, где в условиях большой конкуренции за квалифицированные кадры ему приходится тратить много времени на монотонную работу. Несмотря на ограниченные ресурсы, надо охватить как можно большую аудиторию и найти в ней подходящие кадры. На просмотр одинаковых резюме уходят дни и месяцы, на звонки тем, кто хоть как-то подходит, - недели. И хотя конверсия поиска невелика, все это время надо пытаться сохранить объективность - адекватно сравнивать тех, с кем говорил сегодня, с теми, кто приходил на собеседование несколько недель назад. Цель внедрения элементов искусственного интеллекта — убрать рутину, сократить время поиска и помочь сохранить объективность от начала и до конца. Фактически, наш Sever.ai и аналогичные решения помогают сформировать воронку найма и быстро направить туда как можно больше релевантных специалистов, оставляя все, что касается принятия решений, человеку. Разберем, как работают элементы этой системы.  Психологический портрет и софт-скиллы кандидата определяют, как он взаимодействует с коллегами и работает в команде. Как будет реагировать на критику и стрессовые ситуации. Так или иначе эти навыки всегда оцениваются при приеме на работу.   Компании, где найм поставлен на поток и рекрутеров много, не полагаются на личное мнение своих сотрудников, а используют различные методики объективной оценки. Одна из них — big five ( big5 ). Это созданная в 60-80 годы прошлого века модель оценки восприятия человека по пяти направлениям: открытости опыту эмоциональной стабильности добросовестности доброжелательности экстраверсии  Каждое из направлений имеет два «полюса» — с максимальной и с минимальной оценками. Так, например, максимальная оценка по шкале «открытости опыту» означает высокую восприимчивость к новым знаниям, изобретательность, фокус на саморазвитии. Минимальная оценка - это приверженность традициям и прошлому опыту. Оценка помогает с определенной вероятностью предсказать поведение человека - справится ли он с рутинной работой, предпочтет ли работу в команде и т.п.   Традиционно «большая пятерка» . оценивается при помощи опросников по лексике. Для распространенных языков, в том числе русского, существует несколько методик разной степени популярности. Опросники big5 давно доступны в виде онлайн-тестов. Можно сказать, что применение ИИ — это следующий этап развития такого тестирования. Обученная модель помогает точнее оценить личностные качества по анкете и короткой видеозаписи с ответами на 3-4 дополнительных вопроса. Для прохождения такого теста достаточно смартфона и 5-10 минут времени. Развитие инструмента шло от доступных на рынке датасетов. Изначально использовался открытый датасет на 10 тыс. видеоинтервью с разметкой по параметрам big five. Но точность обученной модели показалась нам недостаточной. В роли метрики качества обучения выступал коэффициент детерминации (R2 score) и на начальном этапе он был всего 0,22. В ходе экспериментов по усовершенствованию модели одна нейросеть превратилась в полноценный ансамбль, анализирующий ответы кандидата — его мимику и эмоции на видео, скорость и тон голоса на аудиозаписи. В основе: resnet + lstm с разными гиперпараметрами на вырезанном лице, плюс кастомные сетки с чередованием полносвязных слоев в пространстве признаков и сверток по временной оси, работающие по распознанной мимике. Данные для дообучения «ансамбля» мы сначала собирали внутри компании, а потом и на Яндекс.Толока, попутно заменив методику определения big five из-за слабой корреляции тестов и результатов. Сейчас удалось достичь коэффициента детерминации в 0,4 (при ROC-AUC 0,75), но цели более амбициозные — 0,44. Big five не используется при массовых наборах низкоквалифицированного персонала, методика приносит пользу, начиная с уровня менеджерского звена и руководителей. Кроме того, она помогает искать участников для стажировок и лидерских программ, когда на одно место может претендовать несколько сотен человек. Кандидатов, наиболее подходящих по типу личности, можно выявить в автоматическом режиме и уже после этого провести очные собеседования.  Кстати, те же подходы можно использовать и для оценки других личностных параметров. Например, быстро определять склонности кандидата к риску на сложном производстве. Однако к более сложным выводам подобные системы пока не готовы. Любой работодатель мечтал бы по видеоинтервью оценивать навыки и предсказывать производительность сотрудника на той или иной должности. Но сейчас удается детектить лишь физиологические признаки — частоту сердечных сокращений, температуру тела, эмоции и т.п., никак не связанные с компетенциями в широком смысле. Для дальнейшего развития необходимо разрабатывать новые опросники, проверять корреляцию того, как человек ответил, и прошел ли он собеседование. Иными словами, начать нужно с методологии.  Инструмент помогает ранжировать отклики кандидатов по степени их соответствия требованиям работодателя. Модель развивается одновременно по двум направлениям.    Первое — универсальная оценка резюме безотносительно компании. В качестве изначального дата-сета для обучения этой модели использовались данные маркетплейса вакансий Junglejobs - партнера Sever.ai. С 2016 года портал собирал размеченные данные (резюме и вакансии) по самым востребованным отраслям. Это большой объем данных, на котором удалось обучить первую довольно точную версию оценки. Позже ее обогатили дополнительными корпусами с доступных сайтов с вакансиями с открытым API - мода на популярные формулировки и навыки со временем меняется, так что периодическое уточнение необходимо. Анализируя тексты резюме и вакансии, модель на выходе дает предсказание вероятности соответствия. На данный момент точность (ROC-AUC) оценивается в 0,92. Под «капотом» модель учитывает ключевые слова и фразы, а также «свежесть» и релевантность опыта, упомянутого в резюме.  Одновременно с универсальной у нас создаются кастомизированные модели с учителем под конкретные компании и специфику их рекрутеров, которые могут смотреть на что-то, кроме навыков, в тексте резюме. В таких проектах меньше данных для обучения — только то, что разметили сами рекрутеры. И оценка тем точнее, чем больше данных они обработают вручную. Чтобы модель заработала, не менее четырех специалистов должны разметить под конкретный профиль не менее 1000 резюме. На выходе как кастомизированная, так и универсальная модель сортирует резюме кандидатов по соответствию тексту вакансии, помогая рекрутеру сосредоточиться на тех, кто больше подходит. В условиях ограниченного времени это делает работу более эффективной.   Львиная доля времени рекрутера уходит на переписку и звонки потенциальным кандидатам. Часть этого общения легко скриптуется и передается боту. В модуле с ботом у нас нет нейросетей, но есть заранее настраиваемое дерево диалога, генерация голоса на общедоступных спич-китах Яндекс и Google и возможность распознавать правильные и неправильные ответы. Отдельно есть функционал общения с чат-ботами в мессенджерах, где не нужны спич-киты, так как работа уже идет с готовым текстом сообщений кандидата   Чат-бот может обрабатывать входящие отклики или обращаться к кандидатам в ходе холодного поиска. Его задача — отсеять заведомо неподходящих или не интересующихся. Чат-бот может спрашивать, хочет ли кандидат сменить работу, есть ли у него обязательный пакет документов - например, военный билет, медицинская книжка, или готов ли он к релокации. Если есть заранее согласованные временные слоты для собеседований, чат-бот может и на интервью пригласить.  Как правило, в скрипт добавляется небольшое количество вопросов, чтобы снизить негатив от общения с роботом, например, есть ли опыт работы в соответствующей специализации, наличие гражданства, наличие военного билета. После  — диалог подхватывает человек. Фактически, чат-бот проводит фильтрацию кандидатов, так что рекрутер может сосредоточиться только на тех, у кого есть перспективы в компании.  Еще одна задача HR — пытаться сохранить кадры и анализировать промахи. Одним из инструментов анализа являются мини-опросы, выявляющие, почему специалист решил уйти из компании. Фактически используется две модели. Первая модель, обученная на специальных дата-сетах, помогает выявить в голосовом сообщении 26 возможных причин ухода. Превращая аудио в текст, система соотносит его с конкретным топиком, а дальше люди уже разбираются с конкретной причиной текучки кадров.    Вторая модель определяет тональность текста — положительный или отрицательный отзыв оставил бывший сотрудник. Это помогает сэкономить время на изучение отзывов, сосредоточив внимание только на отрицательных.  Есть у нас хороший пример, когда нейросеть хорошо выступила не только в поиске массовых специалистов, где входящий поток резюме действительно велик, но и специфических кандидатов. Весной с помощью Sever.AI удалось найти главврача для Центральной районной больницы Вологодской области.   Идея искать медика с навыками управления на HeadHunter изначально казалась сомнительной, поскольку на этой должности требуется совмещение компетенций из разных областей — медицины и управления. Но люди откликались и процесс даже показал не самые низкие конверсии. Отдельно был запущен поиск, где применялся матчинг резюме и вакансии (пороговая отметка — 75%), а также коммуникационный блок с аудио-ботом. Бот перечислял условия, на которых рассматривались кандидаты, и ряд людей действительно заинтересовался. На первом этапе поиска было обработано чуть меньше 300 резюме. В «домашнем» регионе подходящего кандидата не нашлось, поэтому географию расширили, опять же, подключив к обработке входящего трафика нейросети. На втором этапе в общей сложности было проведено 19 собеседований только с теми кандидатами, которые прошли предварительный фильтр соответствия резюме и вакансии и разговор с чат-ботом. В итоге нужный специалист был найден и утвержден Правительством Вологодской области. Он уже приступил к работе. Хотя инструменты никоим образом не были заточены под медицину, они помогли провести поиск, сократив его рутинную часть.  Мне прекрасно знакома реакция умных и образованных людей из ИТ на все что касается автоматизации HR-процессов. Добрая половина считает ниже своего достоинства, чтобы какие-либо их скилы оценивала машина. Вдобавок известна куча примеров, когда у классного в своей области специалиста резюме может состоять вообще из 10 строк. Это мы все понимаем. Но давайте будем честны — любая компания всегда будет стремиться к оптимизации внутренних процессов. И если на поверку окажется, что время на найм одного специалиста сократится в 25 раз (вот тут есть кейс от «Свеза»), бизнес не задумываясь это внедрит. И с учетом текущего тренда есть предположение, что уже через пять лет не останется компаний, где подобные системы не задействовались бы на первичных этапах.   Общение с ботами, кстати, это тоже наша новая реальность. Когда-нибудь мы привыкнем. В конце концов, проще наговорить голосом боту какую-то информацию, чем отвечать на те же вопросы письменно по электронной почте или в мессенджерах. Вдобавок бот может перезвонить в любое удобное время, а не только в рабочий полдень. И, кстати, многие сейчас даже не замечают, что говорили с ботами. Моя сестра на днях пообщалась с представителем одной коммуникационной компании, который предлагал какой-то выгодный тариф. Общение длилось пару минут. Ее удивило, что собеседник на редкость быстро понял отсутствие заинтересованности и уточнив пару деталей вежливо распрощался. Бота в нем выявило лишь то, что в момент раскланивания сестра что-то решила добавить к сказанному, но собеседник в итоге положил трубку, поскольку в скрипте после прощания никаких опций уже прописано не было.  Разумеется, мы с вами понимаем, что AI-системы не заменяет рекрутера. Они лишь помогают автоматизировать рутинные процессы — рассылку приглашений на электронную почту, обсуждение базовых вопросов (подходит ли специалист по навыкам, есть ли у него необходимые документы и т.п.). Как именно рекрутер поступает с результатами всей этой работы - зависит от бизнес-процессов в компании. Машина не ловит кандидата на лжи и не принимает решений. Грубо говоря, все эти инструменты обеспечивают воронку найма — приоритезируют список кандидатов на вакансию по соответствию их резюме, проверяют наличие необходимых документов и формальных параметров, при необходимости - дают какую-то оценку личности. Так рекрутер может сфокусироваться на более релевантных результатах. Если что-то в резюме или в диалогах кандидата с чат-ботом приукрашено, это выявят последующие этапы найма — так или иначе, человеческую оценку никто не исключает. Но откровенно говоря, «подшаманить» резюме под прохождение всех этапов воронки найма практически невозможно. Все эти инструменты не предполагают никаких универсальных «правильных» и «неправильных» ответов - под каждую профессию, каждую конкретную команду набор желаемых личностных качеств он свой.  Возвращаясь к вопросу резюме из 10 строк, да, из-за этого на этапе проверки соответствия они могут не попасть в выборку к рекрутеру. Но точно также они могут в неё не попасть, если у рекрутера физически не хватает времени ознакомиться со всеми резюме. Фактор ошибки может быть как у человека, так и у машины. Но, в отличие от человеческого фактора, ошибку нейросетей можно исследовать, продолжая регулировать модель для повышения точности. Иначе говоря, в какой-то момент систему докрутят, и она будет учитывать и такие варианты. CPO Sever.AI