Всем привет, на связи команда Data Science Авито. В этой статье рассказываем, какие команды есть в нашем департаменте, на конкретных примерах объясняем, над чем работаем и как развиваем бизнес. Также мы подготовили для вас ссылки на стажировки и образовательные программы.
Статья будет интересна начинающим и мидл-дата-сайентистам, а также тем, кто только хочет войти в профессию и ищет образовательные программы.
Что внутри статьи:
Контекст
Кейсы
Упрощаем размещение объявлений
Автоматизируем сложные операции
Создаём модели, которые помогают определиться с ценой
Помогаем увеличивать ликвидность товаров
Стажировки и образование
Как Авито помогает дата-сайентистам расти
Коротко: чем занимаются специалисты по data science в Авито
Как устроен Авито — кратко
В Авито пять вертикалей: Товары, Недвижимость, Авто, Услуги и Работа. Разработка продуктов строится по двум направлениям:
Вертикальная разработка — это точечные решения, которые применяются в конкретных категориях. Например, процесс размещения объявлений в вертикалях отличается, и в каждой его развивают по-своему — стремятся к привычным для пользователя и рынка решениям.
Горизонтальная разработка — это технологии, которые можно переиспользовать в разных вертикалях. Например, мы сделали один мессенджер для всех категорий: не нужно создавать отдельный для Авто, и ещё один — для Товаров.
В этой статье расскажем о горизонтальных DS-командах — они создают решения сразу для всех категорий Авито. Вертикальные команды мы представим в других материалах.
Горизонтальные DS-команды: автомодерация, антифрод, монетизация, поиск и рекомендации, а ещё AI Lab
Расскажем, чем занимается каждое из направлений:
Автомодерация — специалисты разрабатывают и поддерживают сервис проверки контента, который создают пользователи. Это сложная система на основе алгоритмов машинного обучения, которая позволяет автоматизировать модерацию 99% объявлений. Несколько задач этой команды:
-
поиск запрещённого контента в текстах, на фото и видео;
-
автоматическое исправление некритичных нарушений в объявлениях;
-
блокировка объявлений-дублей.
Например, о системе автоматической модерации видео на Авито можно узнать из статьи на Хабре: «Как мы запустили автоматическую модерацию видео в объявлениях Авито».
Антифрод — специалисты из этой команды разрабатывают алгоритмы, которые поддерживают безопасность на Авито и вычисляют недобросовестных пользователей. Примеры задач команды:
-
поиск подозрительных операций в общении между пользователями. Например, обнаружение фишинговых ссылок или сообщений, где продавец обманным путём хочет получить предоплату;
-
разработка и внедрение моделей, которые замечают взломы учётных записей;
-
создание моделей, которые мешают недобросовестным пользователям заводить новые профили после блокировки и продолжать нарушать правила Авито;
-
выявление просмотров от ботов — это необходимо, чтобы не списывать за такие события деньги с продавцов, которые платят за просмотры.
Монетизация. В этой команде с одной стороны ищут способы растить выручку, а с другой — заботятся, чтобы у пользователей был положительный опыт взаимодействия с Авито.
Например, один из инструментов монетизации — услуги продвижения. Они нужны, чтобы продавцы могли поднимать объявления выше в результатах поиска и выделять их среди предложений конкурентов. Вот некоторые задачи DS-инженеров:
-
разработка алгоритмов эффективного расходования бюджетов для продавцов, которые используют продвижение;
-
поиск оптимальных механизмов смешивания объявлений с продвижением и без него в результатах поиска и рекомендациях;
-
улучшение механизма математического аукциона — он помогает справедливо распределять трафик между продавцами, которые подключили продвижение;
-
оценка потенциала, проектирование и разработка новых монетизационных продуктов.
Подробнее об алгоритмах монетизации рассказывал руководитель юнита в статье на datasecrets: «ML в Авито: как работают рекомендации, LLM и монетизация в крупнейшем сервисе объявлений».
AI Lab. Занимаются DS-задачами для разных команд Авито — от извлечения параметров из текстов объявлений и оценки стоимости смартфонов до компьютерного зрения и распознавания речи.
Например, в это направление входит команда, которая развивает большие языковые модели — LLM или large language models. Одна из моделей позволяет генерировать описание товара по фото, заголовку и параметрам объявления. Пользователю остаётся отредактировать текст, если нужно, и объявление готово к публикации.
Больше про нашу работу в этом направлении можно почитать на Хабре: «Как мы обучили Mistral 7B русскому языку и адаптировали для объявлений Авито».
Поиск и рекомендации — это первое, что видят люди, когда открывают Авито. Специалисты команды пишут микросервисы на Python и Go, занимаются машинным обучением, чтобы лучше угадывать интересы пользователей и показывать им релевантные объявления. Примеры задач команды:
-
улучшение качества рекомендательной системы — отбор кандидатов, ранжирование;
-
развитие core-модели, например, item2vec, которую используем и в других моделях.
Про векторный поиск на Авито рассказывали в статье на Хабре: «Как мы используем item2vec для рекомендаций похожих товаров».
А про ранжирование объявлений рассказывал data science team lead в статье на Хабре: «Как работает поисковое ранжирование для миллионов объявлений Авито».
Ускоряем процесс авторизации
Теперь расскажем про несколько конкретных кейсов работы DS-инженеров: дадим больше деталей и объясним суть наших задач.
Рассмотрим стандартную ситуацию: человек приходит на Авито, чтобы разместить объявление. Для этого нужно пройти регистрацию или авторизоваться. Человек вводит данные и ждёт подтверждения.
Мы собираем данные и быстро убеждаемся, что пользователь не нарушает правила площадки. Например, проверяем, чтобы люди не заходили с подозрительных IP-адресов или с нескольких IP одновременно. Так мы боремся со взломами.
Задача специалистов по data science тут — быстро всё проверить, пропустить на сайт добросовестных пользователей и не допустить взлом или авторизацию мошенников.
Упрощаем размещение объявлений
Следующий шаг пользователя после регистрации — размещение объявления.
На Авито сложная иерархия категорий. Она помогает покупателям легко находить то, что нужно. Но для продавца может создавать сложности и отнимать время: приходится выбирать категорию, подкатегорию и заполнять параметры, а в этом иногда трудно разобраться с ходу.
Мы развиваем алгоритмы подсказок, которые автоматически заполняют нужные атрибуты за продавца. Например, так выглядит дерево категорий для подачи объявления о продаже молотка:
Мы не будем заставлять продавцов разбираться в иерархии и искать нужную подкатегорию вручную. Вместо этого попросим написать название товара на подаче объявления, и предложим список с примерами категорий. Продавцу останется выбрать подходящую:
Другой пример: чтобы разместить объявление о продаже автомобиля, нужно заполнить множество параметров, например, год выпуска, поколение модели или объём двигателя. Чтобы ускорить процесс, мы спрашиваем у продавца VIN-номер: когда человек его укажет, часть полей заполнятся автоматически:
Информацию об авто можно проверить в Автотеке.
VIN-номер можно ввести вручную или загрузить фото паспорта, ТС или СТС. Система распознает данные на фото и сама заполнит поля
Чтобы типовые задачи не отнимали у команды DS много времени, их можно решать на специализированных платформах
Если мы захотим подсказывать пользователю другие параметры — например, цвет одежды по фото, — подготовить нужную модель получится гораздо быстрее, чем в первый раз. Достаточно будет собрать и разметить датасет нужных объявлений, загрузить его на платформу, а модель создастся автоматически и сразу начнёт помогать пользователям заполнять объявления.
Автоматизируем сложные операции
На Авито публикуют и редактируют огромное количество объявлений.
Их могут размещать и компании, у которых бывают сотни разных товаров в продаже. Такие пользователи могут работать со всем своим массивом предложений разом, если используют автозагрузку — наш сервис, который автоматически размещает и обновляет объявления.
При этом, инфомодель Авито — то есть иерархия категорий и набор параметров в объявлениях — регулярно меняется. Например, появляются новые подразделы и параметры, а некоторые становятся обязательными для размещения. Это помогает пользователям быстрее находить нужное и лучше ориентироваться на Авито.
Мы создаём платформу, где можем легко поддерживать изменения инфомодели. Чтобы всё работало, и объявления корректно публиковались в нужных категориях, нам приходится собирать и анализировать их данные, а потом проверять, соответствуют ли они инфомодели. Это нужно делать быстро — пользователи с автозагрузкой могут разом добавлять или менять массивы объявлений.
Система параметров быстро развивается, и за квартал в инфомодели бывает до 1 000 изменений.
Интересные инженерные задачи в этом направлении
Создание пайплайнов, которые будут выдерживать большие нагрузки. Например, сервис, определяющий параметры объявлений, работает под нагрузкой 100 000 запросов в минуту.
Отслеживание изменений в объявлениях. Пользователи постоянно обновляют контент: меняют цену, описание, фотографии товаров. Модели должны успевать проверять эти изменения, чтобы мы были уверены, что содержимое не нарушает правила площадки.
Делаем Авито безопаснее
Контент, который люди размещают в интернете, регулируется государством. Например, на онлайн-площадках нельзя продавать алкоголь или лекарства, и ответственность за публикацию таких объявлений лежит на площадке.
Поэтому нам нужно вовремя отлавливать контент, который нарушает правила, и удалять его. Но когда люди публикуют миллионы объявлений каждый день — то следить и вовремя удалять весь контент вручную не получится. Тут снова помогают дата-сайентисты.
DS-инженеры создают модели, которые анализируют разные типы контента в объявлениях и не пропускают то, что нарушает правила. Несколько моделей анализируют контент на фотографиях, видео и в текстах, а также распознают человеческую речь. Затем предсказания всех моделей собираются на платформе модерации и агрегируются.
Об одном из интересных кейсов модерации человеческой речи рассказывали коллеги из команды мессенджера Авито: «О чём стоит знать, если планируете запускать голосовые сообщения в продукте — кейс Авито».
Это позволяет следить за нарушениями правил. Например, на Авито нельзя размещать личные номера телефонов в объявлениях, но некоторые пользователи стараются обойти ограничения — маскируют номер под что-то другое и выкладывает фотографию с набором цифр. Или добавляют видео, где голосом диктуют контакты. Поэтому модерации приходится следить за всеми типами контента сразу.
Интересные инженерные задачи в этом направлении
Часто нужно работать со сложно формализуемыми задачами. Например, учить модель вычленять оскорбления или агрессию в голосовых сообщениях.
Постоянно развивать модели. Не получится написать пайплайн один раз и больше не возвращаться: недобросовестные пользователи находят новые способы обходить правила.
Создаём модели, которые помогают определиться с ценой
Продавцы хотят продать дороже, а покупатели — купить дешевле. Из-за этого у пользователей классифайдов возникает конфликт интересов. Задача Авито — встать посередине, сблизить продавцов с покупателями и дать непредвзятую оценку рынка. Когда у обеих сторон есть справедливый ориентир для цены, сделки совершать проще. Такие задачи тоже решают DS-инженеры.
Мы создали модель предсказания цены, которая делает приблизительный расчёт и предлагает его пользователям. На данный момент она работает в категориях Недвижимость, Авто и Товары.
У такой задачи есть ряд сложностей — рассмотрим их на примере объявлений с автомобилями.
Мы выяснили, что если просто предлагать покупателям и продавцам цену, которую предсказала модель, они не будут ей доверять. Поэтому нужно делать хорошо интерпретируемые модели — то есть рассказывать, как всё работает: как мы делаем оценку, на что опираемся, откуда взяли конкретную стоимость, и почему оценке можно доверять.
Ещё одна сложность в том, что мы не можем полностью опираться на цены из объявлений. Человек может написать любую цену, но не факт, что автомобиль купят именно по ней. Поэтому нам нужно было создать модель, которая ориентировалась бы не на данные из объявлений, а на информацию о реальных сделках — хотя данных о них у нас не так много.
В итоге мы развиваем алгоритмы, которые ориентируются на множество параметров из объявлений. Например, модели анализируют год выпуска машины, историю эксплуатации, ремонтов и ДТП. Чем старше авто, тем сильнее на цену влияет состояние.
Модели с компьютерным зрением ищут признаки эксплуатации автомобиля по фото — например, сколы или ржавчину — а потом сортируют фотографии по типу контента. Затем, когда модель собрала и отсортировала фотографии, нужно оценить состояние деталей авто, которые мы видим на фото.
Так выглядит пример оценки стоимости авто, который предлагает модель после анализа:
Помогаем увеличивать ликвидность товаров
В объявлениях важно указывать, можно ли отправить товар с доставкой или нет. Например, книги легко помещаются в коробку, а вот стиральную машину нельзя отправить СДЭКом или Почтой России. К тому же анализировать каждое объявление вручную не получится — это отнимало бы слишком много времени. Эту задачу тоже решили DS-инженеры.
Мы создали модель, которая определяет, доступен ли товар для доставки. Даже внутри одной категории могут быть доставляемые и недоставляемые товары. Например, в категории «Фитнес и тренажёры» продают и беговые дорожки, и резинки для фитнеса. Поэтому инженеры обучили модель определять габариты товаров и проставлять метки «доставляем» или «не доставляем» внутри категорий.
Благодаря нововведению мы увеличили количество сделок — например, в категории «Инструменты» заказов стало на 2% больше.
Подробности про этот кейс можно почитать в статье на Хабре: «Как data science Авито Доставке помогал».
Как Авито помогает дата-сайентистам расти
В 2024 году в Авито больше ста DS-инженеров, которые работают в десятках команд.
Мы любим делиться опытом и решать интересные задачи. А ещё придумываем разные образовательные программы, благодаря которым вы сможете попасть к нам:
Магистратура по Data Science в МФТИ
Стажировка Data Science в Авито
Если уже чувствуете себя уверенным специалистом — заглядывайте на нашу страницу с вакансиями, мы всегда в поисках талантливых ребят.
Смотреть вакансии в команду DS
Коротко: чем занимаются DS-инженеры в Авито
У нас есть 5 горизонтальных DS команд: автомодерация объявлений, антифрод, монетизация, поиск и рекомендации и AI Lab. Их решения используют во всех категориях. Есть и вертикальные команды — они занимаются решениями для конкретных категорий Авито, о них мы расскажем в других материалах.
Вот несколько примеров наших задач:
Ускоряем авторизацию. Здесь нам важно как можно быстрее пропустить на сайт добросовестных пользователей и не допускать взломов их аккаунтов. Например, для этого мы проверяем, чтобы к нам не заходили с подозрительных или нескольких IP-адресов сразу.
Упрощаем размещение объявлений. Например, наша модель подскажет продавцу подходящие подкатегории, как только он начнёт набирать название объявления. Это экономит время и улучшает опыт продавца.
Помогаем пользователям находить нужное. Например, дополняем пустые поисковые выдачи. Если по запросу ничего не найдено — начинаем искать похожие товары и предлагаем их пользователям. По нашему опыту, удачное расширение полноты выдачи улучшает опыт в поиске не хуже, чем качественное ранжирование.
Подсказываем, что написать в объявлении. Например, одна из наших LLM моделей может создать для продавца описание товара по фото, заголовку и параметрам объявления. Человеку останется только отредактировать текст и публикация готова.
Делаем Авито безопаснее. Наши модели анализируют контент в объявлениях и не пропускают то, что нарушает правила. Это позволяет автоматически модерировать тексты, видео и картинки в миллионах объявлений каждый день.
Создаём модели, которые помогают определиться с ценой. Даём независимую оценку рынка, чтобы у продавцов и покупателей был ориентир для стоимости, например, машин и квартир. Так проще договариваться и заключать сделки.
Спасибо вам за уделенное статье время! С радостью ответим на вопросы в комментариях.
ссылка на оригинал статьи https://habr.com/ru/articles/870672/
Добавить комментарий