Применение машинного обучения
для генерации структурированных
сниппетов в поисковых системах по
трудоустройству
Никита Спирин, Datastars
www.datastars.co
О докладчике
• ФУПМ МФТИ, кафедра “Интеллектуальногоанализаданных”,ВЦ РАН
• PhD in Computer Scienceпо теме машинноеобучение, анализтекста,
поисковые/рекомендательные системыв University of Illinois(UIUC)
• Алгоритмы персонализациии анализлогов FacebookGraph Search
• Автор/рецензент/главапрограммного комитета международных
конференций по анализуданных (CIKM, SIGIR, WWW, IUI, IPM, др.)
• Со-основатель Datastars и Church&Duncan Machine Learning Consulting
Group (консалтинги корпоративное обучение по анализуданных).
Проекты с SuperJob,Odnoklassniki,MTS (AFK Systema),Intel, Adobe, др.
2
Что такое поисковый сниппет?
3
Избыточность информации в
заголовке и сниппетах
4
Бесполезная информация в сниппетах
5
Бесполезная информация в сниппетах
6
Неинформативные заголовки.
Нет сниппетов вовсе.
7
Неинформативные заголовки,
которые практически
невозможно различить.
Нет сниппетов.
8
Неинформативные заголовки.
Нет сниппетов вовсе.
9
Проблемы со сниппетами
• Заголовки на странице выдачи неинформативны (именно для
вертикали по поиску работы)
• Заголовки на странице выдачи не позволяют различить один
результат от другого
• Заголовки и сниппеты, построенные на основе запроса,
повторяют информацию
• Сниппеты содержат бесполезную информацию (ID из базы
данных вакансий, имена, и тд.)
• Только по заголовку сложно определить является ли вакансия
релавантной (Прим. Software Engineer в роли data scientist)
10
Что показывать в сниппетах на
странице результатов?
11
UX-исследование (сбор требований)
``Вербализация” мыслей под
запись при поиске работы
Разметкавакансий
соискателями
2 опроса о важности атрибутов
(выдача и страница вакансии)
12
UX-исследование результаты (вербализация)
``Вербализация” мыслей под
запись при поиске работы
1. Компания (36)
2. Навыки (34)
3. Профессия (29)
4. Обязанности (25)
5. Опыт работы в годах (22)
6. Образование (15)
7. Город (14)
13
UX-исследование результаты (вербализация)
“I stopped once I saw SQL and other coding technologies
[skills]. I am a different kind of analyst. [P2]
14
UX-исследование результаты (вербализация)
“I stopped once I saw SQL and other coding technologies
[skills]. I am a different kind of analyst. [P2]
“I try to count the number of required skills I cover. If a lot of the
skills don't match my background, I go for another job." [P14]
15
UX-исследование результаты (вербализация)
“I stopped once I saw SQL and other coding technologies
[skills]. I am a different kind of analyst. [P2]
“I try to count the number of required skills I cover. If a lot of the
skills don't match my background, I go for another job." [P14]
“When I search I try to follow the following strategy: if I am
sure that I fit, I will open the job posting [form the SERP], if it
is 50/50, I will still open it since I am exploring more options,
if am sure that I don't qualify, I will skip. Basically, I look for
must have criteria and if they aren't satisfied, I skip. For me
these are title, skill, major, and degree." [P22]
16
UX-исследование результаты (разметка)
1. Требования (83)
1. Навыки (72)
2. Образование (59)
3. Опыт работы в годах (53)
2. Обязанности (71)
3. Город (24)
4. Вид деятельности (24)
5. Профессия (16)
6. Разрешение на работу (13)
Разметкавакансий
соискателями
17
2 опроса о важности атрибутов
(выдача и страница вакансии)
UX-исследование результаты (опросы)
1. Тип деятельности (9.39/10)
2. Компания (8.99/10)
3. Профессия (8.84/10)
4. Навыки (8.65/10)
5. Обязанности (8.41/10)
6. Город (8.41/10)
7. Образование (8.29/10)
8. Опыт работы в годах (8.26/10)
18
Вдохновение (анализ литературы)
S. Yarosh, T. Matthews, M. Zhou, Asking the right person: supporting expertise selection in the enterprise, CHI ‘12
19
Идея: показывать на странице результатов
обязанности и требования
20
•Как извлечь необходимую информацию
(обязанности, требования) из произвольной
вакансии?
•Как пользователи реагируют на
структурированные сниппеты, содержащие
информацию о требованиях и обязанностях?
21
•Как извлечь необходимую информацию
(обязанности, требования) из произвольной
вакансии?
•Как пользователи реагируют на
структурированные сниппеты, содержащие
информацию о требованиях и обязанностях?
22
Постановка задачи извлечения информации
об обязанностях и требованиях из вакансии
Дано: предложение из вакансии (HTML-tag с текстом)
Предсказать: секцию (обязанность, требование, другое)
23
Постановка задачи извлечения информации
об обязанностях и требованиях из вакансии
When you’re the best, we’re the best. We instillan environmentwhere employees feel engaged, satisfied
and able to contribute their unique skillsand talents. We provide extensive opportunities for personal and
professional development,buildingboth employee competence and organizationalcapabilityto fuel
exceptionalperformance now and in the future.
Job Description:
Provides analysisfor Vizient leadershipteam to identify critical issues/questionsaround member
performance. Conductsexploratorydata analysisfrom complex, disparatedatasources to recognize
patterns, and identifymember performance improvement opportunities.Generateshypotheses and
analyzes datato test and interpret results. Serves as the resident data expert and share best
practices/approachesfor statistics, machine learning techniques, data modeling, simulationand advanced
mathematics. Collaborateswith Director, DataScience & Methodologyto build analytical acumenacross
all analyticroles in the organization. Advanced degree (Masters or higher) preferred in appliedmath,
statistics, computer science, or relatedfield. 5-7 years of experience managing large disparatedata sets
and using quantitativeand qualitativeanalysisto draw meaningful and validinsightsincluding3 years of
programming experience using SAS/Python/R. Strong communication skills(both oral and written). Must
be able to present results to senior leadership,internaland external members. Must be a team player and
24
Постановка задачи извлечения информации
об обязанностях и требованиях из вакансии
When you’re the best, we’re the best. We instillan environmentwhere employees feel engaged, satisfied
and able to contribute their unique skillsand talents. We provide extensive opportunities for personal and
professional development,buildingboth employee competence and organizationalcapabilityto fuel
exceptionalperformance now and in the future.
Job Description:
Provides analysisfor Vizient leadershipteam to identify critical issues/questionsaround member
performance. Conductsexploratorydata analysisfrom complex, disparatedatasources to recognize
patterns, and identifymember performance improvement opportunities.Generateshypotheses and
analyzes datato test and interpret results. Serves as the resident data expert and share best
practices/approachesfor statistics, machine learning techniques, data modeling, simulationand advanced
mathematics. Collaborateswith Director, DataScience & Methodologyto build analytical acumenacross
all analyticroles in the organization. Advanced degree (Masters or higher) preferred in appliedmath,
statistics, computer science, or relatedfield. 5-7 years of experience managing large disparatedata sets
and using quantitativeand qualitativeanalysisto draw meaningful and validinsightsincluding3 years of
programming experience using SAS/Python/R. Strong communication skills(both oral and written). Must
be able to present results to senior leadership,internaland external members. Must be a team player and
25
Постановка задачи извлечения информации
об обязанностях и требованиях из вакансии
When you’re the best, we’re the best. We instillan environmentwhere employees feel engaged, satisfied
and able to contribute their unique skillsand talents. We provide extensive opportunities for personal and
professional development,buildingboth employee competence and organizationalcapabilityto fuel
exceptionalperformance now and in the future.
Job Description:
Responsibilities:
• Provides analysisfor Vizient leadershipteam to identify critical issues/questionsaround member
performance.
• Conducts exploratory dataanalysisfrom complex, disparatedatasources to recognize patterns, and
identify member performance improvement opportunities.
• Generates hypotheses and analyzes datato test and interpret results.
Qualifications:
• Advanceddegree (Masters or higher) preferred in appliedmath, statistics, computer science
• 5-7 years of experience managing large disparatedata sets and using quantitativeand qualitative
analysisto draw meaningful and validinsights including3 yearsof programming experience using
SAS/Python/R
26
Постановка задачи извлечения информации
об обязанностях и требованиях из вакансии
When you’re the best, we’re the best. We instillan environmentwhere employees feel engaged, satisfied
and able to contribute their unique skillsand talents. We provide extensive opportunities for personal and
professional development,buildingboth employee competence and organizationalcapabilityto fuel
exceptionalperformance now and in the future.
Job Description:
Responsibilities:
• Provides analysisfor Vizient leadershipteam to identify critical issues/questionsaround member
performance.
• Conducts exploratory dataanalysisfrom complex, disparatedatasources to recognize patterns, and
identify member performance improvement opportunities.
• Generates hypotheses and analyzes datato test and interpret results.
Qualifications:
• Advanceddegree (Masters or higher) preferred in appliedmath, statistics, computer science
• 5-7 years of experience managing large disparatedata sets and using quantitativeand qualitative
analysisto draw meaningful and validinsights including3 yearsof programming experience using
SAS/Python/R
27
Подход на основе машинного обучения
1. Собрать данные для обучения модели (разметить
предложения и присвоить каждому секцию)
2. Обучить модель
• Сгенерировать признаки
• Выбрать алгоритм машинного обучения
• Настроить гиперпараметры алгоритма
3. Оценить качество модели на новых данных (сравнить
ручную разметку с разметкой алгоритмом)
4. Повторять шаги 1 и 2 до тех пор, пока не довольны 3 :)
28
Подход на основе машинного обучения
1. Собрать данные для обучения модели (разметить
предложения и присвоить каждому секцию)
2. Обучить модель
• Сгенерировать признаки
• Выбрать алгоритм машинного обучения
• Настроить гиперпараметры алгоритма
3. Оценить качество модели на новых данных (сравнить
ручную разметку с разметкой алгоритмом)
4. Повторять шаги 1 и 2 до тех пор, пока не довольны 3 :)
29
Как собрать данные для обучения модели?
Размечать вручнуюПодумать 30
Наблюдение: подмножество вакансий
имеют предсказуемую структуру
31
Наблюдение: подмножество вакансий
имеют предсказуемую структуру
32
Наблюдение: подмножество вакансий
имеют предсказуемую структуру
33
Наблюдение: подмножество вакансий
имеют предсказуемую структуру
34
Наблюдение: подмножество вакансий
имеют предсказуемую структуру
<h3>Qualifications</h3><ul><li>(*)</li></ul>
35
Метод генерации данных для обучения
1. Для каждой секции задать по одному слову-заголовку
• “Обязанности” или “Ваши задачи:” для секции об обязанностях
• “Требования” или “О Вас:” для секции о требованиях
2. Собрать большой корпус вакансий
3. Извлечь автоматизированнымобразом из вакансий примеры
предложенийдля каждой из секций с помощью точного шаблона
вида <h3>ЗАГОЛОВОК-СЕКЦИИ</h3><ul><li>ПРИМЕР-ПРЕДЛОЖЕНИЯ-
ДЛЯ-АЛГОРИТМА</li></ul>
4. Класс “Другое” составить из предложенийот начала вакансии и до
шаблона или после шаблона и до конца; можно произвольный текст
5. Собирать пока не будет много примеров (1,000+на секцию
минимум;мы использовали 10,000,000в финальной версии)
36
Обучающее множество для алгоритма
• Advanceddegree (Masters or higher) preferred in applied
math, statistics, computerscience
• 5-7 years of experience managing large disparatedata sets
and using quantitativeand qualitativeanalysisin R
• Provides analysisfor Vizient leadershipteam to identify
critical issues/questions aroundmember performance.
• Conductsexploratory dataanalysisfrom complex, disparate
data sources to recognize patterns, and identify member
performance improvementopportunities.
• Working at Vizient means making a difference in today’s
dynamic health care industry, every day.
• Our mission is to connect providerswith the knowledge,
solutionsand expertise that accelerate their performance.
delivery networks and non-acute health care providers.
Обязанности
(1,000+ предложений)
Требования
(1,000+ предложений)
Другое
(1,000+ предложений)
37
Машинное обучение: модель и признаки
• Линейный SVM с хешированием признаков (для скорости) на основе
мешка слов (bag of words)
• Уни-граммы
• Би-граммы
• Три-граммы
• Части речи
• Признаки над предложением
• Сколько слов начинается с большой буквы
• Длина предложения (слова, символы)
• Число HTML тегов
• И др.
• Ансамбль алгоритмов по модели стекинга
38
Эксперимент по оценке качества
алгоритма извлечения на новых данных
39
Эксперимент по оценке качества
алгоритма извлечения на новых данных
40
Эксперимент по оценке качества
алгоритма извлечения на новых данных
41
“Докрутка” алгоритма под конкретный язык
посредством расширения словаря правил
0
10
20
30
40
50
60
70
80
90
100
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53
Pagescovered%
Число шаблонов-правил
42
Двустадийный метод обработки вакансий
правилами и машинным обучением
Чтобы достигнуть 97-98% точности при 100% полноте:
1. Извлекаем предложения, используя расширенный словарь
точных правил-шаблонов (что использовали для создания
обучающего множества)
2. Если ни одно правило не сработало, применяем машинное
обучения, как “catch all” алгоритм по всем оставшимся
предложениям вакансии
43
•Как извлечь необходимую информацию
(обязанности, требования) из произвольной
вакансии?
•Как пользователи реагируют на
структурированные сниппеты, содержащие
информацию о требованиях и обязанностях?
44
Принцип Максимальной Общей Полезности (MMR):
1. Подобрать первое предложение для каждой из секций
вакансии на основе релевантности запросу (cosine measure)
2. Подбирать каждое следующее предложение
последовательно так, чтобы оно максимально отличалось от
уже отобранных и также было релевантным запросу
“Собираем” финальный сниппет из
структурированной вакансии
45
“Собираем” финальный сниппет из
структурированной вакансии (пример)
• Provides analysis for Vizient leadership team
to identify critical issues/questionsaround
member performance.
• Conducts exploratory data analysis from
complex, disparate data sources to recognize
patterns, and identify member performance
improvement opportunities.
• Generates hypotheses and analyzes data to
test and interpret results.
Обязанности
“Data sources”Запрос
46
“Собираем” финальный сниппет из
структурированной вакансии (пример)
• Provides analysis for Vizient leadership team
to identify critical issues/questionsaround
member performance.
• Conducts exploratory data analysis from
complex, disparate data sources to recognize
patterns, and identify member performance
improvement opportunities.
• Generates hypotheses and analyzes data to
test and interpret results.
Обязанности
“Data sources”Запрос
1
47
“Собираем” финальный сниппет из
структурированной вакансии (пример)
• Provides analysis for Vizient leadership team
to identify critical issues/questionsaround
member performance.
• Conducts exploratory data analysis from
complex, disparate data sources to recognize
patterns, and identify member performance
improvement opportunities.
• Generates hypotheses and analyzes data to
test and interpret results.
Обязанности
“Data sources”Запрос
1
2
48
“Собираем” финальный сниппет из
структурированной вакансии (пример)
• Provides analysis for Vizient leadership team
to identify critical issues/questionsaround
member performance.
• Conducts exploratory data analysis from
complex, disparate data sources to recognize
patterns, and identify member performance
improvement opportunities.
• Generates hypotheses and analyzes data to
test and interpret results.
Обязанности
“Data sources”Запрос
1
2
3
49
Онлайн А/B-тест (500K пользователей)
A:
B:
50
Архитектура API
BILogicContainer
Redis Cache
Model Builder
Memory
Model Rules Config
Redis Cache
Memory
Model Rules Config
APIEnd-point(NginxProxy)
Crawler
Rules Config
51
А/B-тест результаты: число кликов на
запрос на странице результатов меньше
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1 2 3 4 5 6 7 8 9 10 11
Меньше-лучше
День эксперимента
Series1
Series2
52
А/B-тест результаты: Соотношение
откликов к просмотрам вакансий выше
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Больше-лучше
День эксперимента
Series1
Series2
53
Дополнительные результаты А/B-теста
• Качество извлечения: 97% точность при 100% полноте
• Уменьшилось число запросов за сессию 8%
• Уменьшилось общее число просмотров в 1.4X
• Увеличилось общее число откликов на 1.6%
• Увеличилось число откликов после просмотра вакансии на 13%
• Уменьшилось число «коротких» кликов на 5.5%
• Уменьшилась энтропия кликов в 1.98X
54
Заключение
• Показываем требования и обязанности на странице результатов
• Собираем данные для машинного обучения с помощью точных шаблонов
• Комбинируем подход на основе машинного обучения и правил для
повышения точности финальной модели
• Собираем сниппеты на основе принципа максимальной общей полезности
• Аккуратно сравниваем вариации интерфейса через A/B тесты
55
Контакты
• Email: nik PATTERN datastars.co
• Facebook/Telegram/Twitter/Skype: @spirinus
• Website: www.datastars.co
Вопросы по презентации и другим применениям машинного обучения в
рекрутинге; консалтинговые проекты и обучение по data science, deep
learning; стартапы (маркетплейсы/соц.сети, большие данные, рекрутинг)
56
Бонус: поисковики работы РуНета
впереди планеты всей!
В той или иной форме внедрены структурированные сниппеты:
• Superjob
• Яндекс
• HH.ru
Стоит задуматься!
• JOB.RU и другие
57
58
59
60
Дополнительные слайды
61
Участники UX-исследования
• Required criteria:
• At least 3 month internship experience
• Above 18 years old
• Used online job search engine (e.g. LinkedIn Job, Indeed)
• Gender: 13 females, 13 males
• Job title: Software Engineer (8), Data Scientist (3), Healthcare
Consultant (2), Research Scientist (2), Personal Trainer (1), Genetics
Counselor (1), Product Manager (1), Translator (1), Occupational
Therapist (1), Marketing Manager (1), Business Analyst (1), Foreign
Policy Representative (1), Consultant (1), Biomedical Product
Developer (1), Pharmacist (1).
62
Участники UX-исследования
What is your current
student (work) status?
How many years of work
experience do you have?
63
Результаты исследования (опрос)
64

Применение машинного обучения для генерации структурированных сниппетов в поисковых системах по трудоустройству / Никита Спирин (Datastars)

  • 1.
    Применение машинного обучения длягенерации структурированных сниппетов в поисковых системах по трудоустройству Никита Спирин, Datastars www.datastars.co
  • 2.
    О докладчике • ФУПММФТИ, кафедра “Интеллектуальногоанализаданных”,ВЦ РАН • PhD in Computer Scienceпо теме машинноеобучение, анализтекста, поисковые/рекомендательные системыв University of Illinois(UIUC) • Алгоритмы персонализациии анализлогов FacebookGraph Search • Автор/рецензент/главапрограммного комитета международных конференций по анализуданных (CIKM, SIGIR, WWW, IUI, IPM, др.) • Со-основатель Datastars и Church&Duncan Machine Learning Consulting Group (консалтинги корпоративное обучение по анализуданных). Проекты с SuperJob,Odnoklassniki,MTS (AFK Systema),Intel, Adobe, др. 2
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
    Проблемы со сниппетами •Заголовки на странице выдачи неинформативны (именно для вертикали по поиску работы) • Заголовки на странице выдачи не позволяют различить один результат от другого • Заголовки и сниппеты, построенные на основе запроса, повторяют информацию • Сниппеты содержат бесполезную информацию (ID из базы данных вакансий, имена, и тд.) • Только по заголовку сложно определить является ли вакансия релавантной (Прим. Software Engineer в роли data scientist) 10
  • 11.
    Что показывать всниппетах на странице результатов? 11
  • 12.
    UX-исследование (сбор требований) ``Вербализация”мыслей под запись при поиске работы Разметкавакансий соискателями 2 опроса о важности атрибутов (выдача и страница вакансии) 12
  • 13.
    UX-исследование результаты (вербализация) ``Вербализация”мыслей под запись при поиске работы 1. Компания (36) 2. Навыки (34) 3. Профессия (29) 4. Обязанности (25) 5. Опыт работы в годах (22) 6. Образование (15) 7. Город (14) 13
  • 14.
    UX-исследование результаты (вербализация) “Istopped once I saw SQL and other coding technologies [skills]. I am a different kind of analyst. [P2] 14
  • 15.
    UX-исследование результаты (вербализация) “Istopped once I saw SQL and other coding technologies [skills]. I am a different kind of analyst. [P2] “I try to count the number of required skills I cover. If a lot of the skills don't match my background, I go for another job." [P14] 15
  • 16.
    UX-исследование результаты (вербализация) “Istopped once I saw SQL and other coding technologies [skills]. I am a different kind of analyst. [P2] “I try to count the number of required skills I cover. If a lot of the skills don't match my background, I go for another job." [P14] “When I search I try to follow the following strategy: if I am sure that I fit, I will open the job posting [form the SERP], if it is 50/50, I will still open it since I am exploring more options, if am sure that I don't qualify, I will skip. Basically, I look for must have criteria and if they aren't satisfied, I skip. For me these are title, skill, major, and degree." [P22] 16
  • 17.
    UX-исследование результаты (разметка) 1.Требования (83) 1. Навыки (72) 2. Образование (59) 3. Опыт работы в годах (53) 2. Обязанности (71) 3. Город (24) 4. Вид деятельности (24) 5. Профессия (16) 6. Разрешение на работу (13) Разметкавакансий соискателями 17
  • 18.
    2 опроса оважности атрибутов (выдача и страница вакансии) UX-исследование результаты (опросы) 1. Тип деятельности (9.39/10) 2. Компания (8.99/10) 3. Профессия (8.84/10) 4. Навыки (8.65/10) 5. Обязанности (8.41/10) 6. Город (8.41/10) 7. Образование (8.29/10) 8. Опыт работы в годах (8.26/10) 18
  • 19.
    Вдохновение (анализ литературы) S.Yarosh, T. Matthews, M. Zhou, Asking the right person: supporting expertise selection in the enterprise, CHI ‘12 19
  • 20.
    Идея: показывать настранице результатов обязанности и требования 20
  • 21.
    •Как извлечь необходимуюинформацию (обязанности, требования) из произвольной вакансии? •Как пользователи реагируют на структурированные сниппеты, содержащие информацию о требованиях и обязанностях? 21
  • 22.
    •Как извлечь необходимуюинформацию (обязанности, требования) из произвольной вакансии? •Как пользователи реагируют на структурированные сниппеты, содержащие информацию о требованиях и обязанностях? 22
  • 23.
    Постановка задачи извлеченияинформации об обязанностях и требованиях из вакансии Дано: предложение из вакансии (HTML-tag с текстом) Предсказать: секцию (обязанность, требование, другое) 23
  • 24.
    Постановка задачи извлеченияинформации об обязанностях и требованиях из вакансии When you’re the best, we’re the best. We instillan environmentwhere employees feel engaged, satisfied and able to contribute their unique skillsand talents. We provide extensive opportunities for personal and professional development,buildingboth employee competence and organizationalcapabilityto fuel exceptionalperformance now and in the future. Job Description: Provides analysisfor Vizient leadershipteam to identify critical issues/questionsaround member performance. Conductsexploratorydata analysisfrom complex, disparatedatasources to recognize patterns, and identifymember performance improvement opportunities.Generateshypotheses and analyzes datato test and interpret results. Serves as the resident data expert and share best practices/approachesfor statistics, machine learning techniques, data modeling, simulationand advanced mathematics. Collaborateswith Director, DataScience & Methodologyto build analytical acumenacross all analyticroles in the organization. Advanced degree (Masters or higher) preferred in appliedmath, statistics, computer science, or relatedfield. 5-7 years of experience managing large disparatedata sets and using quantitativeand qualitativeanalysisto draw meaningful and validinsightsincluding3 years of programming experience using SAS/Python/R. Strong communication skills(both oral and written). Must be able to present results to senior leadership,internaland external members. Must be a team player and 24
  • 25.
    Постановка задачи извлеченияинформации об обязанностях и требованиях из вакансии When you’re the best, we’re the best. We instillan environmentwhere employees feel engaged, satisfied and able to contribute their unique skillsand talents. We provide extensive opportunities for personal and professional development,buildingboth employee competence and organizationalcapabilityto fuel exceptionalperformance now and in the future. Job Description: Provides analysisfor Vizient leadershipteam to identify critical issues/questionsaround member performance. Conductsexploratorydata analysisfrom complex, disparatedatasources to recognize patterns, and identifymember performance improvement opportunities.Generateshypotheses and analyzes datato test and interpret results. Serves as the resident data expert and share best practices/approachesfor statistics, machine learning techniques, data modeling, simulationand advanced mathematics. Collaborateswith Director, DataScience & Methodologyto build analytical acumenacross all analyticroles in the organization. Advanced degree (Masters or higher) preferred in appliedmath, statistics, computer science, or relatedfield. 5-7 years of experience managing large disparatedata sets and using quantitativeand qualitativeanalysisto draw meaningful and validinsightsincluding3 years of programming experience using SAS/Python/R. Strong communication skills(both oral and written). Must be able to present results to senior leadership,internaland external members. Must be a team player and 25
  • 26.
    Постановка задачи извлеченияинформации об обязанностях и требованиях из вакансии When you’re the best, we’re the best. We instillan environmentwhere employees feel engaged, satisfied and able to contribute their unique skillsand talents. We provide extensive opportunities for personal and professional development,buildingboth employee competence and organizationalcapabilityto fuel exceptionalperformance now and in the future. Job Description: Responsibilities: • Provides analysisfor Vizient leadershipteam to identify critical issues/questionsaround member performance. • Conducts exploratory dataanalysisfrom complex, disparatedatasources to recognize patterns, and identify member performance improvement opportunities. • Generates hypotheses and analyzes datato test and interpret results. Qualifications: • Advanceddegree (Masters or higher) preferred in appliedmath, statistics, computer science • 5-7 years of experience managing large disparatedata sets and using quantitativeand qualitative analysisto draw meaningful and validinsights including3 yearsof programming experience using SAS/Python/R 26
  • 27.
    Постановка задачи извлеченияинформации об обязанностях и требованиях из вакансии When you’re the best, we’re the best. We instillan environmentwhere employees feel engaged, satisfied and able to contribute their unique skillsand talents. We provide extensive opportunities for personal and professional development,buildingboth employee competence and organizationalcapabilityto fuel exceptionalperformance now and in the future. Job Description: Responsibilities: • Provides analysisfor Vizient leadershipteam to identify critical issues/questionsaround member performance. • Conducts exploratory dataanalysisfrom complex, disparatedatasources to recognize patterns, and identify member performance improvement opportunities. • Generates hypotheses and analyzes datato test and interpret results. Qualifications: • Advanceddegree (Masters or higher) preferred in appliedmath, statistics, computer science • 5-7 years of experience managing large disparatedata sets and using quantitativeand qualitative analysisto draw meaningful and validinsights including3 yearsof programming experience using SAS/Python/R 27
  • 28.
    Подход на основемашинного обучения 1. Собрать данные для обучения модели (разметить предложения и присвоить каждому секцию) 2. Обучить модель • Сгенерировать признаки • Выбрать алгоритм машинного обучения • Настроить гиперпараметры алгоритма 3. Оценить качество модели на новых данных (сравнить ручную разметку с разметкой алгоритмом) 4. Повторять шаги 1 и 2 до тех пор, пока не довольны 3 :) 28
  • 29.
    Подход на основемашинного обучения 1. Собрать данные для обучения модели (разметить предложения и присвоить каждому секцию) 2. Обучить модель • Сгенерировать признаки • Выбрать алгоритм машинного обучения • Настроить гиперпараметры алгоритма 3. Оценить качество модели на новых данных (сравнить ручную разметку с разметкой алгоритмом) 4. Повторять шаги 1 и 2 до тех пор, пока не довольны 3 :) 29
  • 30.
    Как собрать данныедля обучения модели? Размечать вручнуюПодумать 30
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
    Наблюдение: подмножество вакансий имеютпредсказуемую структуру <h3>Qualifications</h3><ul><li>(*)</li></ul> 35
  • 36.
    Метод генерации данныхдля обучения 1. Для каждой секции задать по одному слову-заголовку • “Обязанности” или “Ваши задачи:” для секции об обязанностях • “Требования” или “О Вас:” для секции о требованиях 2. Собрать большой корпус вакансий 3. Извлечь автоматизированнымобразом из вакансий примеры предложенийдля каждой из секций с помощью точного шаблона вида <h3>ЗАГОЛОВОК-СЕКЦИИ</h3><ul><li>ПРИМЕР-ПРЕДЛОЖЕНИЯ- ДЛЯ-АЛГОРИТМА</li></ul> 4. Класс “Другое” составить из предложенийот начала вакансии и до шаблона или после шаблона и до конца; можно произвольный текст 5. Собирать пока не будет много примеров (1,000+на секцию минимум;мы использовали 10,000,000в финальной версии) 36
  • 37.
    Обучающее множество дляалгоритма • Advanceddegree (Masters or higher) preferred in applied math, statistics, computerscience • 5-7 years of experience managing large disparatedata sets and using quantitativeand qualitativeanalysisin R • Provides analysisfor Vizient leadershipteam to identify critical issues/questions aroundmember performance. • Conductsexploratory dataanalysisfrom complex, disparate data sources to recognize patterns, and identify member performance improvementopportunities. • Working at Vizient means making a difference in today’s dynamic health care industry, every day. • Our mission is to connect providerswith the knowledge, solutionsand expertise that accelerate their performance. delivery networks and non-acute health care providers. Обязанности (1,000+ предложений) Требования (1,000+ предложений) Другое (1,000+ предложений) 37
  • 38.
    Машинное обучение: модельи признаки • Линейный SVM с хешированием признаков (для скорости) на основе мешка слов (bag of words) • Уни-граммы • Би-граммы • Три-граммы • Части речи • Признаки над предложением • Сколько слов начинается с большой буквы • Длина предложения (слова, символы) • Число HTML тегов • И др. • Ансамбль алгоритмов по модели стекинга 38
  • 39.
    Эксперимент по оценкекачества алгоритма извлечения на новых данных 39
  • 40.
    Эксперимент по оценкекачества алгоритма извлечения на новых данных 40
  • 41.
    Эксперимент по оценкекачества алгоритма извлечения на новых данных 41
  • 42.
    “Докрутка” алгоритма подконкретный язык посредством расширения словаря правил 0 10 20 30 40 50 60 70 80 90 100 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 Pagescovered% Число шаблонов-правил 42
  • 43.
    Двустадийный метод обработкивакансий правилами и машинным обучением Чтобы достигнуть 97-98% точности при 100% полноте: 1. Извлекаем предложения, используя расширенный словарь точных правил-шаблонов (что использовали для создания обучающего множества) 2. Если ни одно правило не сработало, применяем машинное обучения, как “catch all” алгоритм по всем оставшимся предложениям вакансии 43
  • 44.
    •Как извлечь необходимуюинформацию (обязанности, требования) из произвольной вакансии? •Как пользователи реагируют на структурированные сниппеты, содержащие информацию о требованиях и обязанностях? 44
  • 45.
    Принцип Максимальной ОбщейПолезности (MMR): 1. Подобрать первое предложение для каждой из секций вакансии на основе релевантности запросу (cosine measure) 2. Подбирать каждое следующее предложение последовательно так, чтобы оно максимально отличалось от уже отобранных и также было релевантным запросу “Собираем” финальный сниппет из структурированной вакансии 45
  • 46.
    “Собираем” финальный сниппетиз структурированной вакансии (пример) • Provides analysis for Vizient leadership team to identify critical issues/questionsaround member performance. • Conducts exploratory data analysis from complex, disparate data sources to recognize patterns, and identify member performance improvement opportunities. • Generates hypotheses and analyzes data to test and interpret results. Обязанности “Data sources”Запрос 46
  • 47.
    “Собираем” финальный сниппетиз структурированной вакансии (пример) • Provides analysis for Vizient leadership team to identify critical issues/questionsaround member performance. • Conducts exploratory data analysis from complex, disparate data sources to recognize patterns, and identify member performance improvement opportunities. • Generates hypotheses and analyzes data to test and interpret results. Обязанности “Data sources”Запрос 1 47
  • 48.
    “Собираем” финальный сниппетиз структурированной вакансии (пример) • Provides analysis for Vizient leadership team to identify critical issues/questionsaround member performance. • Conducts exploratory data analysis from complex, disparate data sources to recognize patterns, and identify member performance improvement opportunities. • Generates hypotheses and analyzes data to test and interpret results. Обязанности “Data sources”Запрос 1 2 48
  • 49.
    “Собираем” финальный сниппетиз структурированной вакансии (пример) • Provides analysis for Vizient leadership team to identify critical issues/questionsaround member performance. • Conducts exploratory data analysis from complex, disparate data sources to recognize patterns, and identify member performance improvement opportunities. • Generates hypotheses and analyzes data to test and interpret results. Обязанности “Data sources”Запрос 1 2 3 49
  • 50.
    Онлайн А/B-тест (500Kпользователей) A: B: 50
  • 51.
    Архитектура API BILogicContainer Redis Cache ModelBuilder Memory Model Rules Config Redis Cache Memory Model Rules Config APIEnd-point(NginxProxy) Crawler Rules Config 51
  • 52.
    А/B-тест результаты: числокликов на запрос на странице результатов меньше 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1 2 3 4 5 6 7 8 9 10 11 Меньше-лучше День эксперимента Series1 Series2 52
  • 53.
    А/B-тест результаты: Соотношение откликовк просмотрам вакансий выше 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Больше-лучше День эксперимента Series1 Series2 53
  • 54.
    Дополнительные результаты А/B-теста •Качество извлечения: 97% точность при 100% полноте • Уменьшилось число запросов за сессию 8% • Уменьшилось общее число просмотров в 1.4X • Увеличилось общее число откликов на 1.6% • Увеличилось число откликов после просмотра вакансии на 13% • Уменьшилось число «коротких» кликов на 5.5% • Уменьшилась энтропия кликов в 1.98X 54
  • 55.
    Заключение • Показываем требованияи обязанности на странице результатов • Собираем данные для машинного обучения с помощью точных шаблонов • Комбинируем подход на основе машинного обучения и правил для повышения точности финальной модели • Собираем сниппеты на основе принципа максимальной общей полезности • Аккуратно сравниваем вариации интерфейса через A/B тесты 55
  • 56.
    Контакты • Email: nikPATTERN datastars.co • Facebook/Telegram/Twitter/Skype: @spirinus • Website: www.datastars.co Вопросы по презентации и другим применениям машинного обучения в рекрутинге; консалтинговые проекты и обучение по data science, deep learning; стартапы (маркетплейсы/соц.сети, большие данные, рекрутинг) 56
  • 57.
    Бонус: поисковики работыРуНета впереди планеты всей! В той или иной форме внедрены структурированные сниппеты: • Superjob • Яндекс • HH.ru Стоит задуматься! • JOB.RU и другие 57
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
    Участники UX-исследования • Requiredcriteria: • At least 3 month internship experience • Above 18 years old • Used online job search engine (e.g. LinkedIn Job, Indeed) • Gender: 13 females, 13 males • Job title: Software Engineer (8), Data Scientist (3), Healthcare Consultant (2), Research Scientist (2), Personal Trainer (1), Genetics Counselor (1), Product Manager (1), Translator (1), Occupational Therapist (1), Marketing Manager (1), Business Analyst (1), Foreign Policy Representative (1), Consultant (1), Biomedical Product Developer (1), Pharmacist (1). 62
  • 63.
    Участники UX-исследования What isyour current student (work) status? How many years of work experience do you have? 63
  • 64.