Как подготовить обучающий набор для модели машинного обучения для системы рекомендаций? Есть идеи? - PullRequest
0 голосов
/ 13 мая 2019

Я создаю систему рекомендаций по машинному обучению для сопоставления кандидатов с вакансиями.

У меня есть два набора данных. Один содержит объявления о вакансиях, другой содержит кандидатов. Объявления о вакансиях первоначально получены на шведском языке от шведского агентства по безработице. Я написал скрипт на Python для перевода этих вакансий на английский. Каждое объявление о вакансии имеет заголовок и описание, представляющие собой текст любого вида, от одного до 20 предложений. Поле описания содержит все от обязанностей, требуемых навыков и всего остального, что есть у одной публикации работы.

С другой стороны, набор данных, который содержит кандидатов, содержит информацию о возрасте, образовании, предыдущем опыте, знаниях и навыках для каждого кандидата. У каждого кандидата было до шести навыков. Все навыки из набора данных собираются, и набор данных кодируется в «горячем» виде, что означает, что я создал столбец для каждого возможного навыка и обозначил его 0 или 1, в зависимости от знаний пользователя о навыке.

Теперь мне нужно подготовить некоторые данные для обучения модели. Я уже разделил кандидатов на тренировочный и тестовый набор. Теперь я должен найти способ каким-то образом извлечь ключевые слова из должностных инструкций и сравнить их с навыками кандидатов. Есть ли у вас какие-либо идеи о том, как это сделать, от извлечения и определения ключевых слов до перекрестной проверки каждого кандидата при каждой публикации вакансии?

Любая помощь будет принята с благодарностью!

Ура!

1 Ответ

1 голос
/ 13 мая 2019

Вы хотите создать модель рекомендации.

Я собираюсь предположить, что у вас есть целевые данные (кандидаты и объявления о вакансиях, которые, как вы знаете, связаны), потому что если вы этого не сделаете, я не могу понять, какВы можете сделать это (по крайней мере, не с машинным обучением, все, что вы можете сделать, это использовать свои знания, чтобы написать правило (ваш мозг имеет данные из вашего жизненного опыта, но алгоритм этого не делает)).

Это, вероятно,будет матрица факторизации.Я рекомендую вам попробовать модель WNMF (взвешенная неотрицательная матричная факторизация).

Для этого есть 3 шага:

Попробуйте встроить слои в характеристики ваших кандидатов (по одному для каждой характеристики),Сложите эти векторы вместе, это будет представление кандидата в скрытом пространстве.

Найдите способ преобразовать ваши вакансии в векторы одинаковой длины.Вы можете проверить doc2vec, чтобы сделать это.Это далеко не самый сложный шаг, потому что преобразовать текст в вектор при сохранении информации может быть очень сложно.Вот почему также может быть хорошей идеей создать функцию, которая отображает каждый документ на вектор самостоятельно, даже если это не машинное обучение (в документе есть слово «компьютер»? Требуется ли большой опыт? Знаете, какие функции важны?и создайте вектор с этими функциями).

Вычислите скалярное произведение векторов кандидатов и вакансий, чтобы получить свой прогноз.Сравните это с вашей целью (1, если кандидат был связан с работой, 0, если нет).Если попытаться использовать регрессию, ваш прогноз будет сопоставим с вероятностью кандидата и совмещаемой работой.

...