Pull to refresh
38
0
Александр Сидоров @alextheraven

User

Send message

Просто для истории: M&A починили, https://hh.ru/search/vacancy?text=m%26a

Подскажите, пожалуйста, где именно я такое говорил и на основе чего Вы делаете выводы о наличии у людей понимания? ;)

 

Вообще-то у нас и модель бизнеса, и OKR’ы, и большинство метрик – про то, чтобы соискатель нашёл работу, до результата, а работодатель – до результата нанял. И перечисленные в статье запуски оптимизировали ровно это. Если соискатель успешно найдёт работу, это хорошо, именно при этом условии он через 1-2 года вернётся к нам, потому что примерно за такое время эта работа перестанет его устраивать, в т.ч. потому что он из неё вырастет, она ему надоест, в других местах ему станут предлагать больше и т.д. И в этом случае соискатель будет знать, где искать следующую работу.

Большое спасибо за обратную связь!

 

Хочу вас попросить обратиться в техподдержку, через "помощь", если и когда такое увидите в следующий раз. Ни в коем случае не сомневаюсь в ваших словах. Но за почти шесть лет видел около тысячи жалоб на рекомендации вакансий, при этом жалоб, что сначала экран нерелевантных вакансий, а потом релевантные - ещё не видел.

 

Проблема с отдельными "возмутительными" рекомендованными вакансиями может возникать, если много соискателей с резюме, похожим на ваше, откликались на вакансии, которые вам не подходят.

Такое бывает, особенно когда у этих вакансий указана зарплата выше средней или другие привлекательные условия. И особенно если их потом откликнувшихся приглашали на собеседование.

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

До этого, во время ковида, особенно первого локдауна и последовавших за ним волн увольнений, так было со многими профессиями.

Но может быть, в данном случае какая-то другая причина.

 

Рекомендованная вакансия - не чьё-то оценочное суждение или распределение на работу, а предложение, возможность, которую можно просто проигнорировать. Их генерирует стек моделей, по сути - очень большая и сложная программа с миллионами строк и параметров. Эту программу не писали вручную, а подбирали с помощью другой программы, пайплайна машинного обучения, на основе сотен миллионов примеров, когда отклики и приглашения между резюме и вакансиями произошли и когда не произошли. Ничего оскорбительного ни в одну, ни в другую программу точно никто не закладывал.

 

Чтобы рекомендации стали релевантнее, можно пооткликаться на подходящие вакансии и/или настроить вручную дополнительный фильтр для подходящих вакансий, например, слова исключения. Такой фильтр сохраняется и потом применяется в т.ч. при рассылке рекомендованных вакансий.

Большое спасибо за обратную связь!

 

> Сайт жуткий, архитектора и аналитиков в HH видно нет от слова совсем.

 

У каждого свой вкус и представления, как должно быть. По каким признакам вы бы увидели, что архитектор и аналитик есть? ;)

 

> На первой странице в полэкрана телефона "вы откликнулись ... раз" а вот мне это зачем показывать каждый раз, всегда. Пишите еще сколько раз я позавтракал!!

 

Успешный найм на новую работу примерно наполовину определяется активными откликами соискателя. Имеет смысл не только открыть и обновить резюме, и указать правильный статус поиска работы, но откликнуться несколько раз, а лучше несколько десятков раз. По измерениям, счётчик в этом очень полезен, увеличивает и отклики, и приглашения после них. Но, как и все счётчики полезных действий, например, шагов, калорий, коммитов, при около-нулевых значениях может раздражать ;) .

 

> Поиска по откликам нет от слова совсем. Вот вы откликнулись пару лет назад компании, а теперь есть еще их вакансия и найти старый отклик и вспомнить, что ж там было написано - это квест.

 

К сожалению, ресурсы ограничены, и всегда нужно выбирать, что делать, а что нет.

Большинства соискателей делает не больше нескольких десятков откликов в год в год, и редко кому нужно вспоминать, куда он откликался несколько лет назад. При этом, технически, индексы откликов даже на активные вакансии – уже очень ресурсоёмкие. Откликов на вакансии, которые уже в архиве - на несколько порядков больше. Если отвечать очень прямо – не уверен, что мы сможем себе позволить сделать такую функциональность в обозримом будущем.

 

> Там неудобно почти всё и поиск нерелевантный совсем. Поиск M&A, а это серьёзные люди на рынке капитала, дает таксистов, парфюмеров и пр.пр.

Мы посмотрим на особенности токенизации названия компании «G M A». Пока можно искать так:

https://hh.ru/search/vacancy?text=m%26a+not+%22g+m+a%22&from=suggest_post&salary=&area=1&ored_clusters=true&enable_snippets=true . Про остальное, что неудобно - напишите, пожалуйста, подробнее.

Большое спасибо за отличную статью и комментарии! А вы пробовали делать смысловой поиск, не только по термам, но и по похожести эмбеддингов документов и запроса/профиля соискателя? И ещё вопрос, есть ли у вас аннотационные признаки, если да, то как устроен их пайплайн и храните ли вы их прямо в индексе?

Есть сборник видео и статей, как у нас всё устроено в поиске и рекомендациях https://vk.com/@713179846-search-and-recomendations-tech-and-processes . Там материалы немного устарели, про RNN DSSM и двустороннее поведение на эмбеддингах ещё нет, но думаю, что в этом году появится.

К сожалению, по Вашему сообщению непонятно, почему так. Напишите, пожалуйста, в техподдержку, через меню "помощь".

В отличие от рекомендаций, в поиске этот алгоритм не применяется, а вакансии выбираются по тексту, потом ранжируются по типу и дате публикации, потом немного доранжируются моделями по вероятности отклика и последующего приглашения. Сейчас hh.ru - это классифайд, у него модель монетизации такая, что все места на выдаче проданы. Несмотря на это, по запросу "M&A" в Москве 48 вакансий из топ 50 релевантны. На выдаче резюме такой монетизации нет, там 50 из топ-50.

А если серьёзно, то я правильно понял, что запатентован примерно тот же метод, что был описан в посте несколько лет назад?

Запатентовали важную часть, которая позволила 1) перестать использовать большую часть эвристик в эвристическом фильтре, причём работает лучше, чем он 2) справиться не с 490 000 вакансий (кстати, сейчас уже в 2 раза больше), а с примерно 10 000 000 резюме (да, рекомендации работают только по резюме, а только с последними обновлёнными).

Я так понимаю использование дискет 5,25'' в вашей системе не предусмотрено?

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

А в чем непосредственно новизна Вашего метода, описание похоже типовую систему ранжирования на перцептивных хешах?

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

Смотрите, большинство соискателей пользуется поиском по вакансиям по-другому. Чуть больше, чем в половине случаев нажимают кнопку «найти» с пустым запросом, ещё примерно в четверти – с запросом из одного слова, ещё в 14% – с двумя, 6% – с тремя. Когда запрос не пустой, в большинстве случаев вводят 1-3 буквы, затем выбирают слово из саджеста. Безо всяких сложных фильтров, языка поисковых запросов и т.д. Этот сценарий простой, наиболее высокочастотный, но сделать, чтобы он хорошо работал, сложно, и можно только с помощью ML, на нём и концентрируемся. Чаще только сценарий «через поиск не ищу, жду, чтобы подходящие вакансии и приглашения сами пришли».

Сложные условия, которые трудно подобрать и хочется сохранить, актуальны для части из оставшихся нескольких единиц процентов. Большинство соискателей ищут работу меньше недели, и не готовы изучать сложные интерфейсы. Управление сохранёнными запросами — прорабатывали, пока не получилось сделать такой UX, чтобы большинство не путалось, особенно на мобильном. Т.к. это всё же единицы процентов, от идеи совсем не отказались, кое-что в этой области планируем, приоритет не очень высокий. Пока не сделали, можете устроить себе эту функциональность через автопоиск, или за 5 мин. через панель закладок и папки избранного в браузере, сохраняя URL'ы нужных Вам запросов.

Про проблему «беспокоят местные компании», кажется, первое обращение. К сожалению, ничего такого не планируем — существующая форма резюме и логика доступа уже довольно сложная. Отказывайте на приглашения, добавляйте компании в блеклист.

Говорить пользователям «да, скоро будет» гораздо приятнее, чем «нет, ничего такого не планируем». У каждого пользователя есть свои пожелания. Но даже если бы мы имели неограниченные ресурсы, не имели требований, чтобы компания была очень прибыльной, и могли бы реализовать их все, продуктом стало бы невозможно пользоваться из-за сложности логики и интерфейса. Приходится выбирать.
Привет, я Саша Сидоров, продакт-менеджер поисковых и рекомендательных систем в HH. Я знаю об этой проблеме примерно с марта 2017. Она влияет на качество выдачи примерно для 0,3% соискателей часто и 2% — изредка. Её ещё не починили в том числе из-за моих решений всё это время проверять другие гипотезы, которые могут улучшить выдачу у бОльшего количества пользователей, от 30% и больше. О части из них, которые принесли пользу и решили выкатить на всех в 2019, мы написали выше. Количество ресурсов всегда ограничено, сделать всё не получится, моя работа – вместе с командой выбирать, что делать, чтобы разработка окупалась и приносила наибольшую пользу.

К сожалению, эту проблему вряд ли получится решить так просто, как Вы пишете. У многих вакансий в разных регионах разный уровень зарплаты, иногда разный (по форме) заголовок и описание. Иногда, наоборот, заголовки разные, описание одинаковое. Какую вакансию выбирать – тоже нельзя решить простым правилом. Нужно учитывать зарплату, часовой пояс, продвижение вакансии работодателем (да, мы коммерческая компания), скорость разбора откликов на вакансию, физическое расстояние и возможно, что-то ещё, с помощью ML. Это довольно дорого делать и скорее всего не получится статистически значимо измерить за разумное время, сделали ли лучше, потому изменение будет влияет на не очень большое количество пользователей.

Поэтому думаем над тем, чтобы улучшить выдачу не только по удалённой работе, но для некоторых других пользователей, которые сейчас могут встречаться с не подходящими для них дублями внутри городов, чтобы изменения коснулись хотя бы 10% соискателей и пользу от них можно было измерить. Но это ещё несколько сложнее и дороже. Приоритет не очень большой, дойдём ли до проверки этой гипотезы в этом году и покажут ли эксперименты улучшение, чтобы включить на всех – сейчас не могу сказать.
Возможно, но тогда мог бы выйти бодрый спор об определениях, наподобие «как это машина автоматически подбирает функции, решающие правила, когда pipeline для этого настраивает и запускает человек? линейная регрессия в Excel это уже ML или ещё нет? а в scikit-learn? а если сначала коэффициенты подобрали ML'ем, а потом подправили, ввели бустинги и fixlist'ы вручную — было машинное обучение, а какое стало?»
На самом деле, нейросеть одинаково не находит между этими терминами связи, значения прогноза на уровне сотых — в пределах случайной погрешности.
Модели могут учитывать данные о разных, по порядку, местах работы по-разному. Т.к. существенная часть моделей – не линейные, то в каждом конкретном случае вклад конкретных значений определённых признаков в итоговый score может быть разным, поэтому я не могу сказать о весе.

Модели выучивают закономерности из откликов пользователей. Например, если кто-то с резюме, похожим на ваше, много откликался на вакансии с rust и kdb/q, модели могут это выучить. Также могут выучить, что те, кто знает php, часто откликаются на вакансии, в которых есть js. Для частых запросов+резюме+вакансий есть много примеров, поэтому закономерности могут быть более качественными, чем для редких, для которых в train может быть всего несколько отдельных откликов, иногда странных.
Можно обновить резюме и настроить для него видимость «не видно никому», тогда звонков от работодателей не будет. Но мы подумаем, как понимать, что пользователь ищет работу, при этом специально не обновляет резюме, спасибо за пример.
В этом проекте Hadoop используется как хранилище, выгрузка — скриптами на Hive SQL, дальше действительно, почти обычный стек ML на Python на отдельных серверах. Spark и MLlib на кластере Hadoop используется в других проектах HH.
Посмотрел, для рекомендательной системы достаточно сложный случай — стаж PHP-разработчиком примерно вдвое больше, похожих резюме (и откликов, по которым учится система) не очень много, само резюме полностью по-английски. Как сделать рекомендации лучше для редких резюме — в целом, понятно и запланировали, а пока можно создать автопоиск по «golang разработчик» — зайти на hh.ru/search/vacancy?text=golang+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA и щёлкнуть «получать на почту новые вакансии по этому запросу».
Про применение collaborative filtering не могу рассказывать, к сожалению, NDA. Spark на кластере Hadoop тоже используем.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity