РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 6 июня, 17:00
Тезисы:
http://ritfest.ru/2017/abstracts/2768.html
Идеальная поисковая система должна возвращать упорядоченный по убыванию релевантности список результатов. Однако, это не всегда получается из-за сложности естественного языка, неоднозначности в запросах, вариативности личных предпочтений пользователей. Как следствие, релевантный результат может находиться на любой позиции на странице поисковой выдачи.
...
Semelhante a Применение машинного обучения для генерации структурированных сниппетов в поисковых системах по трудоустройству / Никита Спирин (Datastars)
Semelhante a Применение машинного обучения для генерации структурированных сниппетов в поисковых системах по трудоустройству / Никита Спирин (Datastars) (20)
Применение машинного обучения для генерации структурированных сниппетов в поисковых системах по трудоустройству / Никита Спирин (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
10. Проблемы со сниппетами
• Заголовки на странице выдачи неинформативны (именно для
вертикали по поиску работы)
• Заголовки на странице выдачи не позволяют различить один
результат от другого
• Заголовки и сниппеты, построенные на основе запроса,
повторяют информацию
• Сниппеты содержат бесполезную информацию (ID из базы
данных вакансий, имена, и тд.)
• Только по заголовку сложно определить является ли вакансия
релавантной (Прим. Software Engineer в роли data scientist)
10
13. UX-исследование результаты (вербализация)
``Вербализация” мыслей под
запись при поиске работы
1. Компания (36)
2. Навыки (34)
3. Профессия (29)
4. Обязанности (25)
5. Опыт работы в годах (22)
6. Образование (15)
7. Город (14)
13
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]
15
16. 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
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
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
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
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
54. Дополнительные результаты А/B-теста
• Качество извлечения: 97% точность при 100% полноте
• Уменьшилось число запросов за сессию 8%
• Уменьшилось общее число просмотров в 1.4X
• Увеличилось общее число откликов на 1.6%
• Увеличилось число откликов после просмотра вакансии на 13%
• Уменьшилось число «коротких» кликов на 5.5%
• Уменьшилась энтропия кликов в 1.98X
54
55. Заключение
• Показываем требования и обязанности на странице результатов
• Собираем данные для машинного обучения с помощью точных шаблонов
• Комбинируем подход на основе машинного обучения и правил для
повышения точности финальной модели
• Собираем сниппеты на основе принципа максимальной общей полезности
• Аккуратно сравниваем вариации интерфейса через A/B тесты
55
56. Контакты
• Email: nik PATTERN datastars.co
• Facebook/Telegram/Twitter/Skype: @spirinus
• Website: www.datastars.co
Вопросы по презентации и другим применениям машинного обучения в
рекрутинге; консалтинговые проекты и обучение по data science, deep
learning; стартапы (маркетплейсы/соц.сети, большие данные, рекрутинг)
56
57. Бонус: поисковики работы РуНета
впереди планеты всей!
В той или иной форме внедрены структурированные сниппеты:
• Superjob
• Яндекс
• HH.ru
Стоит задуматься!
• JOB.RU и другие
57