Collective Intelligence – Telegram
Collective Intelligence
742 subscribers
39 photos
1 video
32 files
438 links
Collective intelligence (CI) is shared or group intelligence that emerges from the collaboration, collective efforts, and competition of many individuals and appears in consensus decision making.
Download Telegram
https://www.facebook.com/100000998741278/posts/4275112192532030/?d=n

На этой неделе мы сделали, чтобы рекомендации вакансий уже на самом первом этапе, при предварительном выборе, применялись RNN DSSM нейросети. Это даёт примерно +400 дополнительных наймов в день, при том, что вакансий, в среднем стало рекомендоваться меньше (да лучше).
Многие рекомендательные системы основаны на вертикальном стеке моделей. На предварительном этапе у них простые эвристики и модели с не очень высоким качеством, зато позволяющие очень быстро сделать из всех элементов «короткий» список (в нашем случае – около 50 тыс. вакансий). Когда-то у нас на первом этапе был эвристический фильтр, который пропускал через себя только вакансии, у которых город совпадал с указанным в резюме соискателя, а для крупных городов – у которых совпадала ещё и профобласть/специализация.
Порой, например, IT-директора жаловались, что в их Железнодорожном для них есть работа максимум эникейщиками. Поэтому мы стали учитывать, что люди могут хотеть переехать, а ещё что часть работы может формально находиться в другом городе, а фактически – в пределах ежедневной транспортной доступности.
Дальше мы увидели жалобы, что нет подходящей работы, хотя находится ведь, например, для швей. Оказалось, что специализаций «швея» несколько, в искусстве и в производстве. Соискатели предпочитают настраивать в резюме «искусство», работодатели – «производство». Таких примеров тысячи, люди переходят из одной профобласти в другую, тенденции в таких переходах изменяются, особенно в связи с коронакризисом, писать исправления для каждого вручную – не вариант. Профобласти и специализации – как и любой ручной классификатор, не идеален, он большой и неоднозначный, и когда люди настраивают его для своих резюме и вакансий, там есть 2 вида ошибок: регулярные (из-за неоднозначности) и случайные (например, когда пользователь отнесся к нему, как к формальности, и выбрал первую попавшуюся специализацию). Чтобы бороться с регулярными, применили PPMI, чтобы со случайными – расширение «короткого» списка с помощью быстрой оценки, сначала сходства резюме и вакансии по тексту (симхеши LSH, т.к. kNN/HNSW оказались слишком медленными), потом по вероятности приглашения (симхеши на обучаемый функции хеширования, MLH).
К тому моменту в эвристическом фильтре особо не осталось эвристик, и он потерял свой единственный плюс - интерпретируемость. А у нас появились нейросети RNN DSSM, хорошо, на основе последовательностей и слов, оценивающие вероятность найма, а также учитывающие числовые и категориальные статические признаки. Метапризнак на RNN DSSM - топ 1 по силе в остальных моделях. Поэтому мы заменили PPMI и MLH на быстрый фильтр на RNN DSSM. Теперь рекомендациям вакансий не страшны ошибки в профобластях и специализациях, потому что они их совсем перестали использовать и учитывая результат – это правильно.
Это важный шаг к тому, чтобы избавиться от линейных моделей и ансамблей решающих деревьев и сделать всё на end-to-end state-of-the-art нейросетях.

Ещё на этой неделе мы применили в рекомендациях по резюме улучшенную, с тонко подобранными гиперпараметрами, RNN DSSM, теперь это даёт ещё около +320 дополнительных наймов в день. В целом, рекомендации резюме в июне дали 1,4 раза больше наймов по базе резюме, чем все виды поиска резюме. По видам поиска, поиск по соответствию, на ML, дал в 1,7 раза больше, чем поиск по дате. Работодатели голосуют за ML, который экономит им время, своим поведением.

Кроме того, на этой неделе мы сделали, чтобы поиск по вакансиям учитывал регион и расстояние от соискателя до интересных ему вакансий в течение 5 мин, обеспечили +20 дополнительных наймов в день. Рекомендации вакансий, конечно, тоже дают в 1,4 раза больше наймов, чем поиск по вакансиям (интересное совпадение), но мы продолжаем развивать и поиск по вакансиям, потому что он даёт бустинг премиальным вакансиям. Для Премиумов и Стандарт+ за счёт прямого бустинга в поиске система не только обеспечивает больше откликов, но и накапливает больше данных о том, какие пользователи на них откликаются и кого из них потом приглашают.
Эти данные используются и в рекомендациях вакансий, за счёт чего откликов на них из рекомендаций становится совсем немного больше – и они при этом становятся намного более релевантными.

Это что касается этой недели. А на прошлой и позапрошлой у нас был перерыв в продуктовых запусках. Дело не в моём отпуске, а в том, что мы оптимизировали и перезапустили саму систему экспериментов. В поиске мы почти ничего не запускаем без экспериментов, которые показывают, становится ли пользователям лучше. Стандартная продолжительность экспериментов – 2 недели. Система контролируемых экспериментов состоит из системы TDI- и A/B-тестов, а также экспериментальных экземпляров рекомендательных и поисковых систем, которые выдают результаты пользователям, для которых включен эксперимент.
Работа систем на ML связана с постоянным расчётом признаков, при каждом изменении данных о резюме, вакансии, действии пользователя, изменении его местоположения. Многие эксперименты связаны с тем, что мы добавляем или изменяем признаки и метапризнаки. Действий пользователя становится всё больше, а метапризнаки, особенно нейросетевые – всё более ресурсоёмкими, экспериментов – тоже всё больше, например, за Q2 в поиске проверили 67 продуктовых гипотез, в среднем по 3 эксперимента на каждую. Но чтобы быстрее повышать качество выдач и расти, нужно ещё больше экспериментов, и по количеству, и по ресурсоёмкости.
Раньше мы могли себе позволить, для упрощения системы, пересчитывать для каждого экспериментального экземпляра системы и те признаки, которые в нём изменились, и те, которые не изменились, по сравнению с другими экземплярами, экспериментальными и production. Но в последнее время это стало для нас узким местом, ограничивающим количество экспериментов, особенно со сложными (нейросети) и быстрыми (поведение, гео) признаками. Теперь мы сделали, чтобы каждый признак считался только один раз. В результате, сэкономили примерно 40% ресурсоёмкости подсистем, считающих признаки, и сможем улучшать систему быстрее, ну или хотя бы с той же скоростью. В запусках сделали 2-недельный перерыв, но это, даже если брать только последние 3 запуска, того стоило. Пользуйтесь на здоровье!

Ссылка на классическую статью про трансформеры и картинка, пожалуй, самой большой проблемы с ними в production – для привлечения внимания. https://jalammar.github.io/illustrated-transformer/
Forwarded from data.csv (Алексей Смагин)
Wall Street Journal выпустили увлекательное видео о том, как работают алгоритмы тиктока.

Они натренировали несколько десятков ботов с разными интересами, чтобы те смотрели определённые видео, и выяснили, что тиктоку хватает от 40 минут до 2 часов, чтобы построить персональную и удивительно точную ленту рекомендаций, основанную на том, что смотрит пользователь.

У алгоритма есть не очень приятная особенность. Тикток будет показывать вам не те видео, которые вам нравятся, а те видео, которые вы будете смотреть.
В некоторых случаях тикток может стать триггером для мрачных состояний — например, одного бота WJS натренировали для того, чтобы смотреть грустные видео, и вскоре его лента на 93% стала лентой депрессивных роликов.

Смотрите исследование:
https://youtu.be/nfczi2cI6Cs
Has examples how to calculate diversity and novelty