Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Ранжирование откликов
соискателей с помощью
машинного обучения
Сайгушкин Сергей,
ведущий разработчик
команды поиска Superj...
Суперджоб — это:
1 млн
приглашений
в месяц
1 млн
пользователей
в сутки
более
20 млн
резюме
superjob.ru
> 50разработчиков
● многие из них вообще
не соответствуют вакансии
● рекрутеру приходится самостоятельно
фильтровать нерелевантные отклики
●...
Вакансия — ведущий PHP-разработчик
Вакансия — ведущий PHP-разработчик
Вакансия — ведущий PHP-разработчик
С этим надо что-то делать
● определяем нерелевантные отклики
и пессимизируем их в списке;
● получаем задачу классификации ...
Этот доклад про:
● подготовку данных и обучение модели
● внедрение модели в production
и мониторинг метрик качества
● тест...
Подготавливаем данные для обучения
● обучаемся на событиях отклонения резюме
и приглашения на собеседование
● для каждой в...
Распределение приглашений
Распределение отклонений резюме
Формируем черный список рекрутеров
● встречаются рекрутеры, которые приглашают
на собеседование всех подряд
● в основном э...
Вакансия — полицейский
Вакансия — полицейский
Генерация признаков
свойства резюме, вакансии и их сочетания;
итого 170 признаков;
к категориальным признакам применяем би...
Работа с текстовыми признаками
● текст очищаем от стоп-слов, пунктуации, лемматизируем;
● из текстовых признаков формируем...
Примеры признаков
● средняя продолжительность работы на одном месте, в месяцах
● кол-во месяцев работы на последнем месте
...
When in doubt, use xgboost
Оптимизация гиперпараметров модели
https://www.analyticsvidhya.com/blog/2016/03/complete-guide-...
Значимые признаки
● опыт работы соискателя;
● «зарплатные» фичи (разница между зарплатой в резюме
и верхней и нижней грани...
Метрики качества модели
Accuracy: 0.76
ROC-AUC: 0.79
Precision: 0.73
Recall: 0.84
Проводим новые эксперименты
● наполнение списка синонимов профессий, doc2vec;
● тематическое моделирование, BigARTM
Снижаем количество ошибок
второго рода
● необходимо, чтобы как можно меньше подходящих
резюме оказалось в нерелевантных
● ...
Production, реализация
Production, цифры
1 сервер
24 ядра
1000req/s
в пике (подписки
на резюме)
0.04c
на скоринг пары
«резюме-вакансия»
18часов
н...
Production, мониторинг
● непрерывно оцениваем метрики
качества модели
● задание в Jenkins, которое собирает
метрики и отсы...
Production, мониторинг, ROC-AUC
Production, мониторинг, precision
AB тестирование
● Конверсия присланных резюме в приглашенные — Impact 8.3%
● Число приглашенных резюме — Impact 6.7%
● Кон...
В качестве заключения
Самое главное — обучающая выборка!
Фиксируем random_state
Мониторим метрики качества модели
Спасибо за помощь!
Компании Datastars
http://datastars.co/
6 июня 17:00
Никита Спирин
Применение машинного обучения
для ге...
Спасибо за внимание!
Приходите к нам работать
https://www.superjob.ru/team
Доступ к Superjob в подарок
Укажите код RIT2017...
Ранжирование откликов соискателей с помощью машинного обучения / Сергей Сайгушкин (Superjob)
Ранжирование откликов соискателей с помощью машинного обучения / Сергей Сайгушкин (Superjob)
Upcoming SlideShare
Loading in …5
×

Ранжирование откликов соискателей с помощью машинного обучения / Сергей Сайгушкин (Superjob)

161 views

Published on

РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 5 июня, 17:00

Тезисы:
http://ritfest.ru/2017/abstracts/2766.html

Мы расскажем о том, как помогаем нашим клиентам тратить меньше сил на отсеивание нерелевантных резюме, которые часто поступают на их вакансии.

В докладе прозвучат ответы на следующие вопросы:
— Какие бизнес-требования перед нами стояли, и какие решения мы выбрали.
— Какие особенности внедрения в production сопровождали эту задачу (как быстро отранжировать 1М резюме).
— Как мы выбирали алгоритм классификации (LogisticRegression, GradientBoosting, RankSVM, XGBoost).
— Какие результаты мы получили и как их измеряли.
— Какие типы поведения рекрутеров мы обнаружили.

Published in: Engineering
  • Get the best essay, research papers or dissertations. from ⇒ www.WritePaper.info ⇐ A team of professional authors with huge experience will give u a result that will overcome your expectations.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Ранжирование откликов соискателей с помощью машинного обучения / Сергей Сайгушкин (Superjob)

  1. 1. Ранжирование откликов соискателей с помощью машинного обучения Сайгушкин Сергей, ведущий разработчик команды поиска Superjob.ru
  2. 2. Суперджоб — это: 1 млн приглашений в месяц 1 млн пользователей в сутки более 20 млн резюме
  3. 3. superjob.ru > 50разработчиков
  4. 4. ● многие из них вообще не соответствуют вакансии ● рекрутеру приходится самостоятельно фильтровать нерелевантные отклики ● это осложняет и замедляет подбор кандидатов На 15% вакансий приходится более 100 откликов за сутки
  5. 5. Вакансия — ведущий PHP-разработчик
  6. 6. Вакансия — ведущий PHP-разработчик
  7. 7. Вакансия — ведущий PHP-разработчик
  8. 8. С этим надо что-то делать ● определяем нерелевантные отклики и пессимизируем их в списке; ● получаем задачу классификации на два класса: + подходящий отклик − неподходящий отклик ● даём возможность рекрутеру фильтровать отклики по данному признаку
  9. 9. Этот доклад про: ● подготовку данных и обучение модели ● внедрение модели в production и мониторинг метрик качества ● тестирование на пользователях
  10. 10. Подготавливаем данные для обучения ● обучаемся на событиях отклонения резюме и приглашения на собеседование ● для каждой вакансии проверяем распределение приглашений и отклонений ● очищаем данные от выбросов
  11. 11. Распределение приглашений
  12. 12. Распределение отклонений резюме
  13. 13. Формируем черный список рекрутеров ● встречаются рекрутеры, которые приглашают на собеседование всех подряд ● в основном это клиенты с безлимитным тарифом ● берут количеством, не качеством Не обучаемся на событиях данных рекрутеров
  14. 14. Вакансия — полицейский
  15. 15. Вакансия — полицейский
  16. 16. Генерация признаков свойства резюме, вакансии и их сочетания; итого 170 признаков; к категориальным признакам применяем бинарное кодирование (One-Hot Encoding)
  17. 17. Работа с текстовыми признаками ● текст очищаем от стоп-слов, пунктуации, лемматизируем; ● из текстовых признаков формируем тематические группы: - признаки профессии - требований вакансии и ключевых навыков - обязанностей вакансии и обязанностей с предыдущих мест работы ● для каждой группы обучаем TF-IDF Vectorizer ● для фразы получаем TF-IDF вектор и вычисляем cosine similarity с TF-IDF вектором другой фразы Получаем меру сходства двух фраз
  18. 18. Примеры признаков ● средняя продолжительность работы на одном месте, в месяцах ● кол-во месяцев работы на последнем месте ● разница между требуемым опытом вакансии и опытом из резюме ● попадание желаемой зарплаты резюме в зарплатную вилку вакансии ● мера сходства между желаемой должностью и предыдущими местами работы ● мера сходства между специальностью образования и требованиями вакансии ● рейтинг (заполненность) резюме
  19. 19. When in doubt, use xgboost Оптимизация гиперпараметров модели https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tunin g-xgboost-with-codes-python/ https://www.kaggle.com/yassinealouini/hyperopt-the-xgboost-model Остановились на: n_estimators = 5000 max_depth = 5 min_child_weight = 6
  20. 20. Значимые признаки ● опыт работы соискателя; ● «зарплатные» фичи (разница между зарплатой в резюме и верхней и нижней границами зарплаты в вакансии); ● cosine similarity между TF-IDF-векторами профессии и в вакансии и профессий из опыта работы резюме; ● возраст соискателя; ● убираем возраст — в топ выходит фича «количество лет с момента получения образования», возвращаем возраст и компенсируем очки скоринга соискателям в возрасте
  21. 21. Метрики качества модели Accuracy: 0.76 ROC-AUC: 0.79 Precision: 0.73 Recall: 0.84
  22. 22. Проводим новые эксперименты ● наполнение списка синонимов профессий, doc2vec; ● тематическое моделирование, BigARTM
  23. 23. Снижаем количество ошибок второго рода ● необходимо, чтобы как можно меньше подходящих резюме оказалось в нерелевантных ● снижаем threshold вероятности принадлежности к релевантному классу ● уменьшается кол-во FN ошибок, но увеличивается FP
  24. 24. Production, реализация
  25. 25. Production, цифры 1 сервер 24 ядра 1000req/s в пике (подписки на резюме) 0.04c на скоринг пары «резюме-вакансия» 18часов на скоринг всех активных откликов
  26. 26. Production, мониторинг ● непрерывно оцениваем метрики качества модели ● задание в Jenkins, которое собирает метрики и отсылает в Graphite ● параллельно сравниваем метрики нескольких разрабатываемых моделей на одних данных
  27. 27. Production, мониторинг, ROC-AUC
  28. 28. Production, мониторинг, precision
  29. 29. AB тестирование ● Конверсия присланных резюме в приглашенные — Impact 8.3% ● Число приглашенных резюме — Impact 6.7% ● Конверсия открытых вакансий в закрытые — Impact 6% ● Число закрытых вакансий — Impact 5.4% ● Количество дней до закрытия вакансии — Impact 7.7% ● Уровень значимости — 5%
  30. 30. В качестве заключения Самое главное — обучающая выборка! Фиксируем random_state Мониторим метрики качества модели
  31. 31. Спасибо за помощь! Компании Datastars http://datastars.co/ 6 июня 17:00 Никита Спирин Применение машинного обучения для генерации структурированных сниппетов в поисковых системах по трудоустройству
  32. 32. Спасибо за внимание! Приходите к нам работать https://www.superjob.ru/team Доступ к Superjob в подарок Укажите код RIT2017 в разделе «Обратная связь» на superjob.ru Промокод действует до 1 сентября 2017 года Сайгушкин Сергей, ведущий разработчик команды поиска Superjob.ru, s.saygushkin@superjob.ru

×