За первые две недели работы в геопоиске в качестве миддл ML-разработчика я написал дай бог 30-40 строк кода. И то в основном на плюсах :D
🤔42🔥13🤡3👎1👏1
Мальчики: пук-пук, вот блин, надо резюме получше составить, ШАД закончить, phd получить, а то работу тяжело найти.
Мужчины: с судимостью возьмут?
Гигачады: подключаются на собес с зоны
Мужчины: с судимостью возьмут?
Гигачады: подключаются на собес с зоны
❤68❤🔥11🤡5🤮1
Иду из яндекс офиса, меня останавливает молодой человек который какие-то опросы проводит, но говорит что мне явно ещё не 28 и он меня задерживать не будет, просто хотел сделать комплимент моему костюму
❤44👎4❤🔥3👍2😱2
ML-легушька
Завтра будет пост про теорвер и дейтинг
Я немного продолбался, но сейчас все будет))
Надеюсь на максимальный репост ибо контент вроде норм
Надеюсь на максимальный репост ибо контент вроде норм
💔22❤🔥5👎4
Как школьный теорвер помогает в разработке дейтинга?
Я состою в команде разработки умного дейтинга, и отвечаю там за рекомендации. Задача подбора анкет в дейтинге с одной стороны похожа на задачу поиска, но с другой стороны является менее строгой, так как не произойдёт ничего страшного, если мы сразу не покажем человеку всех релевантных кандидатов - скорее даже наоборот)
Выделим эту ключевую особенность: мы хотим показывать пользователю достаточно релевантных кандидатов, при этом делать это максимально быстро при малом железе и с некоторым элементом случайности, так ещё и zero-shot, так как мы только запускаемся.
Дополнительную сложность, что не позволяет так легко использовать условный FAISS, вносит фактор уже показанных анкет - мы не хотим показывать человеку того, кого он уже видел.
Экскурс в поисковые системы: классический поиск обычно состоит из двух главных компонентов - подбора кандидатов и реранжирования. На первой стадии, с помощью простых моделей, мы сужаем множество возможных релевантных ответов до некоторого небольшого подмножества. После этого идёт реранжирование - мы используем сложные модели, которые на небольшом подмножестве отработают достаточно быстро и смогут из кандидатов сделать хорошую выдачу.
Из особенностей задачи дейтинга мы можем заметить, что первая стадия нам фактически не так важна, как вторая. Поэтому у меня родилась простая идея: что будет, если мы просто брать k случайных пользователей, и уже среди них выбирать, кого мы покажем?
Встаёт вопрос: насколько хорошо это будет работать? Метрики в дейтинге это отдельная интересная тема, однако тут мы можем все формально описать.
Пусть у нас всего n пользователей, которых мы можем показать. Мы выбираем k случайных из них. Какова вероятность, что среди выбранных будет кто-то из m лучших возможных кандидатов? Обозначим это событие за A.
Тогда P(A)=1-P(не A). Что такое не А? Это значит, что среди случайно выбранных кандидатов нет никого из m лучших. Эту вероятность мы можем посчитать по определению. Количество благоприятных исходов - C[k, n-m] (сколько способов существует набрать кандидатов, чтобы среди них не было m лучших), количество исходов всего - C[k, n] (количество всех возможных наборов кандидатов).
Получаем, что P(A)=1-C[k, n-m]/C[k, n]. Сколько пользователей будет в нашем дейтинге? Ну очень не скоро более десяти тысяч. Тогда, например, возьмём k=n/100, m=n/10. То есть каждый раз мы хотим показывать кандидата в топ-10% среди возможных. k=n/100 - всего лишь 100 анкет, на них мы точно успеем прогнать наши тяжёлые модели. При таких параметрах P(A)~0.999975, то есть при таком небольшом количестве сэмплов мы добились чего хотели!
Возможно это все тривиально, либо не лучшее инженерное решение, но мне было интересно провести такие рассуждения и попробовать подобную идею.
Я состою в команде разработки умного дейтинга, и отвечаю там за рекомендации. Задача подбора анкет в дейтинге с одной стороны похожа на задачу поиска, но с другой стороны является менее строгой, так как не произойдёт ничего страшного, если мы сразу не покажем человеку всех релевантных кандидатов - скорее даже наоборот)
Выделим эту ключевую особенность: мы хотим показывать пользователю достаточно релевантных кандидатов, при этом делать это максимально быстро при малом железе и с некоторым элементом случайности, так ещё и zero-shot, так как мы только запускаемся.
Дополнительную сложность, что не позволяет так легко использовать условный FAISS, вносит фактор уже показанных анкет - мы не хотим показывать человеку того, кого он уже видел.
Экскурс в поисковые системы: классический поиск обычно состоит из двух главных компонентов - подбора кандидатов и реранжирования. На первой стадии, с помощью простых моделей, мы сужаем множество возможных релевантных ответов до некоторого небольшого подмножества. После этого идёт реранжирование - мы используем сложные модели, которые на небольшом подмножестве отработают достаточно быстро и смогут из кандидатов сделать хорошую выдачу.
Из особенностей задачи дейтинга мы можем заметить, что первая стадия нам фактически не так важна, как вторая. Поэтому у меня родилась простая идея: что будет, если мы просто брать k случайных пользователей, и уже среди них выбирать, кого мы покажем?
Встаёт вопрос: насколько хорошо это будет работать? Метрики в дейтинге это отдельная интересная тема, однако тут мы можем все формально описать.
Пусть у нас всего n пользователей, которых мы можем показать. Мы выбираем k случайных из них. Какова вероятность, что среди выбранных будет кто-то из m лучших возможных кандидатов? Обозначим это событие за A.
Тогда P(A)=1-P(не A). Что такое не А? Это значит, что среди случайно выбранных кандидатов нет никого из m лучших. Эту вероятность мы можем посчитать по определению. Количество благоприятных исходов - C[k, n-m] (сколько способов существует набрать кандидатов, чтобы среди них не было m лучших), количество исходов всего - C[k, n] (количество всех возможных наборов кандидатов).
Получаем, что P(A)=1-C[k, n-m]/C[k, n]. Сколько пользователей будет в нашем дейтинге? Ну очень не скоро более десяти тысяч. Тогда, например, возьмём k=n/100, m=n/10. То есть каждый раз мы хотим показывать кандидата в топ-10% среди возможных. k=n/100 - всего лишь 100 анкет, на них мы точно успеем прогнать наши тяжёлые модели. При таких параметрах P(A)~0.999975, то есть при таком небольшом количестве сэмплов мы добились чего хотели!
Возможно это все тривиально, либо не лучшее инженерное решение, но мне было интересно провести такие рассуждения и попробовать подобную идею.
❤26❤🔥5👎4👍2🤔1
Доры на концерте нет, но после 4 коктейлей я в контексте
💯43❤🔥5👍3😁2👎1