Pull to refresh

Comments 21

Возможно это было бы круто, если бы оно работало. Если я просто хочу пройтись по вашему сайту, посмотреть например вакансии на удалёнку в какой-то области IT — придётся разгребать тонны мусора от спамеров, которые размещают одну и ту-же вакансию в 10-20 городах, и ваш сайт заботливо мне весь этот хлам вываливает на 3-4 страницах вперемешку со стоящими вакансиями. Странно, что вы не можете сделать элементарные вещи, зато рассуждаете о каком-то там умном поиске.
Большое спасибо за комментарий, но главное не можем или не можем, а в каком порядке делать. Порядок определяется тем, какую пользу принесёт и сколько стоит сделать.

Без указания региона до города ищет меньше 5% пользователей, успешность поиска по таким запросам – обычная. Даже если кардинально улучшить качество поиска для такой доли пользователей, общая польза будет не очень большой.

С пустым запросом ищет около половины пользователей, ещё несколько десятков процентов — с неоднозначными однословными запросами и без заданных условий, т.е. большинство. Поиск на ML обеспечивает улучшение качества выдачи для таких запросов.

Задача про склейку дублей есть, оценка трудоёмкости у неё довольно высокая, т.к. качественная склейка нечетких дублей, с измерением этого качества и механизмом исключений, выбор самого подходящего для пользователя дубля, корректировка количества найденных резюме, с учётом того, что часть из них дубли — не такая уж элементарная вещь. Доберёмся в порядке приоритета.
Что мешает, например, сделать перечисление городов, в которых вакансия доступна и банить за дубли? Понимаю, что они вам платят за свой спам, но всему же есть предел.
Без указания региона до города ищет меньше 5% пользователей

Примерно половину людей в IT сфере интересует исключительно удалёнка. Возможно это 5% от всех ваших пользователей. Но думаю, что дело не в этом. Я 2 раза покопался (по другому этот процесс назвать не могу) у вас на сайте, и больше у меня желания на него заходить нет. У вас вакансий больше, чем, например, на тутошнем «моём круге», но я лучше зайду на последний, чем буду рыться в мусоре. И, полагаю, что так поступает подавляющее большинство. Отсюда и берутся ваши 5%. В интернете все голосуют ногами, когда что-то не устраивает — благо всегда есть конкурент. Странно, что вы этого не понимаете.
Скажите, а вы не думали попробовать ElasticSearch за вместо того что бы руками использовать Lucene? Я к чему спрашиваю, ES из коробки в кластере и смог бы по телу документа найти похожие используя всякие tfidf и каждому выдать score, и уже затем дальше это дело спускать к другим моделям
Эти признаки считает Lucene, мы используем их в моделях, хотя пришлось довольно много в нём править, чтобы научить получать их по отдельности.
Революция в вашем поиске произойдет тогда, когда вы перестанете выдавать вакансии, много раз просмотренные, откликнутые и давно отказные. Они же и в подписку сыпятся.
Особенно в сниппете «Вам подойдут эти вакансии», из 6-и — все отвеченные, две — отказ. Ну и зачем они мне опять? Глубину просмотра вам улучшать?
Весь ваш форум забит тикетами на эту тему.
В рекомендациях на сайте, рассылках и пуш-уведомлениях — давно не показываем, а в поиске продолжаем показывать, т.к. эксперимент с этим в поиске показал ухудшение.
Это легко проверить, hh.ru/search/vacancy?text=java&area=1 и hh.ru/search/vacancy?text=javascript&area=1. Для меня эти выдачи очень сильно отличаются, и это правильно. Для кого-то они могут не отличаться, и это тоже может быть правильным.

Результаты зависят от конкретных резюме, вакансий и запросов. Модели выучивают закономерности, с какими резюме по таким запросам на какие вакансии соискатели обычно откликаются, и кого после этого работодатели приглашают. Поэтому, к примеру, если у кандидата резюме full stack developer’а со знанием Java, то по запросу «JavaScript» ему/ей, в первую очередь, поиск покажет вакансии full stack developer’ов с Java, примерно такие же, как по запросу «Java».
Вы меня не поймите не правильно, просто многие рекрут-компании, да и некоторые работодатели, шлют письма с предложениями о вакансии JavaScript, а у меня в резюме Java/JavaAndroid ))
К сожалению во многих, средних и малых компаниях, подбором занимаются секретари не понимающие разницы. Я уже не говорю о разнице между Java SE и Java EE.

Интересно, а coloborative filtering не даёт желаемых результатов? И ещё очень интересно смотрите ли вы в сторону spark за вместо hadoop

Про применение collaborative filtering не могу рассказывать, к сожалению, NDA. Spark на кластере Hadoop тоже используем.
Интересно просто было, так как я так понимаю что вы все считаете в Python, а родным для Spark'а языком вроде как есть Scala, соотв любопытно просто насколько оно хорошо работает в месте или под python вы подразумеваете просто на одной машине sklearn?
В этом проекте Hadoop используется как хранилище, выгрузка — скриптами на Hive SQL, дальше действительно, почти обычный стек ML на Python на отдельных серверах. Spark и MLlib на кластере Hadoop используется в других проектах HH.

Я golang разработчик, у меня резюме называется golang разработчик, дополнительный язык php.
И вот, что я получаю в рассылке:


Fullstack JavaScript Developer
Senior Backend Developer (PHP)
Backend Rust developer
KDB/Q Developer — GM Mercury
Clojure developer
Senior PHP developer


Итого: релевантных текущему резюме 0%,
релевантных прошлому опыту 33%

Посмотрел, для рекомендательной системы достаточно сложный случай — стаж 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 и щёлкнуть «получать на почту новые вакансии по этому запросу».
Попробовал:
Разработчик Golang
Fronт-end разработчик
Разработчик BigData
Руководитель разработки в платёжную систему
Программист Go/Java

Лучше: теперь релевантных 40% и относительно релевантных (с вакансией руководителя, у которого есть golang упоминание в навыках) 60%
Но на мой взгляд, результаты по прежнему странные. Не думаю, что рекомендации или автопоиск сейчас пригодны, по крайней мере, для не массовых спецов.

А последним годам опыта не придается больший вес? Ну даже пусть с ним с php, откуда javascript, rust, kdb/q (даже не слышал о таком) и зачем рекомендовать такое странное?
Вашему совету вниму в любом случае и посмотрю на те рекомендации, что будут приходить по запросу "golang разработчик".

Модели могут учитывать данные о разных, по порядку, местах работы по-разному. Т.к. существенная часть моделей – не линейные, то в каждом конкретном случае вклад конкретных значений определённых признаков в итоговый score может быть разным, поэтому я не могу сказать о весе.

Модели выучивают закономерности из откликов пользователей. Например, если кто-то с резюме, похожим на ваше, много откликался на вакансии с rust и kdb/q, модели могут это выучить. Также могут выучить, что те, кто знает php, часто откликаются на вакансии, в которых есть js. Для частых запросов+резюме+вакансий есть много примеров, поэтому закономерности могут быть более качественными, чем для редких, для которых в train может быть всего несколько отдельных откликов, иногда странных.
Если вам приходят так себе подходящие вакансии, дело может быть в этом: нужно просто обновить резюме.

Не хочу. Если я обновлю резюме, то оно попадет в первые страницы выдачи поиска резюме. И начнутся звонки. И это уже активный поиск. А подходящие вакансии интересны при пассивном поиске, когда иногда смотришь на похожие варианты и думаешь «а может и правда?...».
Можно обновить резюме и настроить для него видимость «не видно никому», тогда звонков от работодателей не будет. Но мы подумаем, как понимать, что пользователь ищет работу, при этом специально не обновляет резюме, спасибо за пример.
Sign up to leave a comment.