Повышайте эффективность рекламы с нашим бесплатным сервисом: http://goo.gl/ORY69s в 3-5 раз.
Рассказываем от А до Я про таргетированную рекламу:
https://vk.com/hiconversion
https://www.facebook.com/HiConversion/
Какие особенности и механизмы сплит-тестирования в ВК? В этом уроке мы узнаем о том, как сплит-тестить в ВК, как выбирать и оптимизировать рекламу.
Анализ ассоциированных конверсий и циклов ретаргетинга.Hiconversion
Повышайте эффективность рекламы с нашим бесплатным сервисом: http://goo.gl/ORY69s в 3-5 раз.
Рассказываем от А до Я про таргетированную рекламу:
https://vk.com/hiconversion
https://www.facebook.com/HiConversion/
Как проводить анализ ассоциированных конверсий? На какие данные необходимо опираться при сборе статистики?
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
Поговорим о том, почему это далеко не самая простая задача, и как следует разбираться с возникающими трудностями. Рассмотрим и покритикуем существующие решения. Научимся создавать свой собственный велосипед.
Мы в Avito не так давно начали использовать Golang, но он уже успел занять важное место в различных частях проекта. В докладе мы расскажем о том, какие задачи нам помогает решать Go, почему выбор пал именно на этот язык, с какими подводными камнями мы столкнулись, и как их обходили. В частности поговорим про:
• Сервисы. Как мы начали использовать Go для разработки микросервисов, как это сказалось на их поддержке, а также отдельно расскажем про “шаблон сервиса”, который мы используем.
• Поиск. Как мы с помощью Go мы реализовали RtIndexer для обновления Sphinx Rt индексов в кластере из множества машин (поиск по активным объявлениям), который устойчиво работает с отставанием не более 10 секунд при нагрузке до 1000 rps.
• Автоматизацию тестирования. Как мы пишем тестовые сервисы и API на Go. Подробней остановимся на использовании общих моделей тел запросов и ответов для отправки и получения, использовании горутин как воркеров для обработки очереди.
Повышайте эффективность рекламы с нашим бесплатным сервисом: http://goo.gl/ORY69s в 3-5 раз.
Рассказываем от А до Я про таргетированную рекламу:
https://vk.com/hiconversion
https://www.facebook.com/HiConversion/
Какие особенности и механизмы сплит-тестирования в ВК? В этом уроке мы узнаем о том, как сплит-тестить в ВК, как выбирать и оптимизировать рекламу.
Анализ ассоциированных конверсий и циклов ретаргетинга.Hiconversion
Повышайте эффективность рекламы с нашим бесплатным сервисом: http://goo.gl/ORY69s в 3-5 раз.
Рассказываем от А до Я про таргетированную рекламу:
https://vk.com/hiconversion
https://www.facebook.com/HiConversion/
Как проводить анализ ассоциированных конверсий? На какие данные необходимо опираться при сборе статистики?
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
Поговорим о том, почему это далеко не самая простая задача, и как следует разбираться с возникающими трудностями. Рассмотрим и покритикуем существующие решения. Научимся создавать свой собственный велосипед.
Мы в Avito не так давно начали использовать Golang, но он уже успел занять важное место в различных частях проекта. В докладе мы расскажем о том, какие задачи нам помогает решать Go, почему выбор пал именно на этот язык, с какими подводными камнями мы столкнулись, и как их обходили. В частности поговорим про:
• Сервисы. Как мы начали использовать Go для разработки микросервисов, как это сказалось на их поддержке, а также отдельно расскажем про “шаблон сервиса”, который мы используем.
• Поиск. Как мы с помощью Go мы реализовали RtIndexer для обновления Sphinx Rt индексов в кластере из множества машин (поиск по активным объявлениям), который устойчиво работает с отставанием не более 10 секунд при нагрузке до 1000 rps.
• Автоматизацию тестирования. Как мы пишем тестовые сервисы и API на Go. Подробней остановимся на использовании общих моделей тел запросов и ответов для отправки и получения, использовании горутин как воркеров для обработки очереди.
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)AvitoTech
В Badoo я работаю в команде, которая разрабатывает на PHP. Одна из фич, которой мы занимаемся, со временем начала отъедать всё больше и больше железячных ресурсов. В итоге мы едва успевали добавлять серверы под растущую нагрузку. При этом вечера, проведённые с Go дома, подсказывали, что можно сделать на порядки производительнее, не затратив на разработку много времени.
Я расскажу о том, почему наша фича так плохо ложится на PHP и хорошо – на Go, как уговорить всех всё переписать и не показаться сумасшедшим, ну и, конечно же, как из 19 серверов оставить только 4.
"DeepLink’и в Avito" Артём Разинов (Avito)AvitoTech
Мы активно используем DeepLink’и в наших приложениях, как в push-уведомлениях, так и в ответах от API. В докладе я расскажу о том, как мы обрабатываем DeepLink’и для показа экранов из разных уголков приложения и для невидимых пользователю вещей.
Встреча iOS-разработчиков @ Avito #2 - 24 сентября 2016
“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)AvitoTech
Avito каждый день помогает миллионам продавцов и покупателей найти друга несмотря на “языковой барьер”. Из доклада вы узнаете, какие алгоритмы мы используем для нахождения ошибок и опечаток, синонимов и сокр.
SphinxSearch meetup #2 @ Avito, 18.06.2016
"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)AvitoTech
Победитель первого этапа конкурса Avito-2016 по распознаванию категорий объявлений расскажет о том, как ему удалось добиться этого результата.
Python Data Science meetup @ Avito 13.08.2016
"Построение рекомендательной системы на Python" Василий Лексин (Avito)AvitoTech
В своём докладе ведущий аналитик Avito Василий Лексин поделится опытом построения рекомендательной системы для всех general категорий. Из рассказа вы узнаете, как создать такую систему с нуля, в том числе: как подготовить данные, обучить модель и сгенерировать рекомендации.
Python Data Science meetup @ Avito 13.08.2016
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...AvitoTech
"Контекстная реклама в Avito: что под капотом?"
Вадим Аюев и Андрей Остапец (Avito)
Из этого доклада вы узнаете об основных этапах создания и обучения моделей, на основе которых работает контекстная реклама в Avito: как собираем и готовим данные, обучаем модели, как реализовано тестирование и внедрение.
Python Data Science meetup @ Avito 13.08.2016
Андрей Юткин. Media Picker — to infinity and beyondAvitoTech
Paparazzo - https://github.com/avito-tech/Paparazzo
В своём докладе Андрей поделится опытом разработки собственной камеры и галереи в приложении Avito и расскажет про проблемы, с которыми столкнулся в процессе. Из доклада вы узнаете:
- как реализовать вывод изображения с камеры в нескольких view одновременно
- как оптимизировать работу с памятью при работе с картинками
- как абстрагироваться от источника картинки
- как обработать изображения с помощью фрэймворка ImageIO
- как абстрагироваться от UIKit в слое Presenter архитектуры VIPER
- как работать с изображениями из iCloud и про другие скользкие моменты фрэймворка Photos.
"Building data streams" Константин Евтеев (Avito)AvitoTech
С ростом объема данных, количества пользователей и, как следствие, ростом нагрузки, возникает вопрос о масштабируемой архитектуре и распределении нагрузки, сохраняя при этом консистентность данных и отказоустойчивость системы. В своем докладе я расскажу, как мы решаем эти вопросы в Avito. Речь пойдет о реализации отдельных компонентов мета-шаблона Lambda Architecture с помощью PGQ и Londiste:
1. Работа с разными моделями данных: для обновления и чтения информации.
2. Batch and stream processing, обрабатывающий 1000 событий в секунду.
3. Инициализация и поддержка remote aggregates data sources.
4. Сохранение консистентности данных.
5. Восстановление при авариях и др.
"Опыт участия в Microsoft Malware Classification Challenge" Михаил Трофимов ...AvitoTech
"Опыт участия в Microsoft Malware Classification Challenge"
Михаил Трофимов (Machine Learning Works)
Из доклада Михаила вы узнаете о технической стороне конкурса: как проанализировать 200GB данных на ноутбуке, какие проблемы возникали в процессе и как их решали.
Python Data Science meetup @ Avito 13.08.2016
"Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (...AvitoTech
"Распознавание марки и модели автомобилей по изображениям"
Евгений Нижибицкий (Rambler&Co)
Евгений поделится опытом построения алгоритма классификации изображений автомобилей, который показал наилучший результат в конкурсе.
Python Data Science meetup @ Avito 13.08.2016
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)AvitoTech
Порой в процессе развития высоконагруженного проекта наступает момент, когда необходимо масштабирование. Возможно, ваш проект впервые упёрся в производительность железа (и таким образом перешёл в разряд высоконагруженных); возможно, это уже не первое масштабирование — не важно. Какие же проблемы могут возникнуть?
Во-первых, если вы увеличиваете количество бэкенд-серверов, и, соответственно, количество рабочих процессов, то с ростом количества одновременных клиентских подключений вырастают и накладные расходы на базах данных.
Во-вторых, достаточно быстро может кончиться ресурс in-memory баз данных. Потребуется создать (либо увеличить) кластер, а это каждый раз влечёт за собой необходимость модифицировать логику приложения.
В-третьих, чем больше серверов, тем больше вероятность, что один из них выйдет из строя. Поэтому неплохо задуматься о том, как обеспечить отказоустойчивость, а это, опять же, потребует модифицировать логику приложения.
В этом докладе я расскажу, как и какими инструментами можно легко решить все вышеперечисленные проблемы: уменьшить накладные расходы от большого количества подключений к базам данных, создать/модифицировать кластер БД прозрачно для приложения, а также прозрачно добавить устойчивость к падениям серверов БД.
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...AvitoTech
икита расскажет о возможностях backend as a service, ответит на вопрос есть ли жизнь после Parse, поделится опытом разработки BaaS Scorocode, особенностями архитектуры и кейсами применения, как можно ускорить разработку с помощью BaaS.
Вадим Дробинин. Защищаем себя и пользователей: руководство по безопасностиAvitoTech
Докладчик поднимет важную тему защиты пользовательских данных и непосредственно ресурсов приложений от внешних угроз, расскажет об основных проблемах, с которыми сталкиваются разработчики, обеспокоенные безопасностью своих приложений и покажет наиболее успешные способы защиты от атак на Swift
Какие задачи решает команда рекомендаций в Avito - Василий ЛексинAvitoTech
На одной из прошлых встреч мы уже рассказывали о том, что под капотом у рекомендаций в Avito. В этот раз мы подробней расскажем о том, какие задачи решает наша команда, зачем мы организовали конкурс на построение рекомендательной модели, какие результаты мы ожидали получить по итогам соревнования, что из этого удалось получить, а что нет. Кроме того, поделимся своим опытом участия в конкурсе RecSys Challenge 2017.
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)AvitoTech
В Badoo я работаю в команде, которая разрабатывает на PHP. Одна из фич, которой мы занимаемся, со временем начала отъедать всё больше и больше железячных ресурсов. В итоге мы едва успевали добавлять серверы под растущую нагрузку. При этом вечера, проведённые с Go дома, подсказывали, что можно сделать на порядки производительнее, не затратив на разработку много времени.
Я расскажу о том, почему наша фича так плохо ложится на PHP и хорошо – на Go, как уговорить всех всё переписать и не показаться сумасшедшим, ну и, конечно же, как из 19 серверов оставить только 4.
"DeepLink’и в Avito" Артём Разинов (Avito)AvitoTech
Мы активно используем DeepLink’и в наших приложениях, как в push-уведомлениях, так и в ответах от API. В докладе я расскажу о том, как мы обрабатываем DeepLink’и для показа экранов из разных уголков приложения и для невидимых пользователю вещей.
Встреча iOS-разработчиков @ Avito #2 - 24 сентября 2016
“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)AvitoTech
Avito каждый день помогает миллионам продавцов и покупателей найти друга несмотря на “языковой барьер”. Из доклада вы узнаете, какие алгоритмы мы используем для нахождения ошибок и опечаток, синонимов и сокр.
SphinxSearch meetup #2 @ Avito, 18.06.2016
"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)AvitoTech
Победитель первого этапа конкурса Avito-2016 по распознаванию категорий объявлений расскажет о том, как ему удалось добиться этого результата.
Python Data Science meetup @ Avito 13.08.2016
"Построение рекомендательной системы на Python" Василий Лексин (Avito)AvitoTech
В своём докладе ведущий аналитик Avito Василий Лексин поделится опытом построения рекомендательной системы для всех general категорий. Из рассказа вы узнаете, как создать такую систему с нуля, в том числе: как подготовить данные, обучить модель и сгенерировать рекомендации.
Python Data Science meetup @ Avito 13.08.2016
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...AvitoTech
"Контекстная реклама в Avito: что под капотом?"
Вадим Аюев и Андрей Остапец (Avito)
Из этого доклада вы узнаете об основных этапах создания и обучения моделей, на основе которых работает контекстная реклама в Avito: как собираем и готовим данные, обучаем модели, как реализовано тестирование и внедрение.
Python Data Science meetup @ Avito 13.08.2016
Андрей Юткин. Media Picker — to infinity and beyondAvitoTech
Paparazzo - https://github.com/avito-tech/Paparazzo
В своём докладе Андрей поделится опытом разработки собственной камеры и галереи в приложении Avito и расскажет про проблемы, с которыми столкнулся в процессе. Из доклада вы узнаете:
- как реализовать вывод изображения с камеры в нескольких view одновременно
- как оптимизировать работу с памятью при работе с картинками
- как абстрагироваться от источника картинки
- как обработать изображения с помощью фрэймворка ImageIO
- как абстрагироваться от UIKit в слое Presenter архитектуры VIPER
- как работать с изображениями из iCloud и про другие скользкие моменты фрэймворка Photos.
"Building data streams" Константин Евтеев (Avito)AvitoTech
С ростом объема данных, количества пользователей и, как следствие, ростом нагрузки, возникает вопрос о масштабируемой архитектуре и распределении нагрузки, сохраняя при этом консистентность данных и отказоустойчивость системы. В своем докладе я расскажу, как мы решаем эти вопросы в Avito. Речь пойдет о реализации отдельных компонентов мета-шаблона Lambda Architecture с помощью PGQ и Londiste:
1. Работа с разными моделями данных: для обновления и чтения информации.
2. Batch and stream processing, обрабатывающий 1000 событий в секунду.
3. Инициализация и поддержка remote aggregates data sources.
4. Сохранение консистентности данных.
5. Восстановление при авариях и др.
"Опыт участия в Microsoft Malware Classification Challenge" Михаил Трофимов ...AvitoTech
"Опыт участия в Microsoft Malware Classification Challenge"
Михаил Трофимов (Machine Learning Works)
Из доклада Михаила вы узнаете о технической стороне конкурса: как проанализировать 200GB данных на ноутбуке, какие проблемы возникали в процессе и как их решали.
Python Data Science meetup @ Avito 13.08.2016
"Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (...AvitoTech
"Распознавание марки и модели автомобилей по изображениям"
Евгений Нижибицкий (Rambler&Co)
Евгений поделится опытом построения алгоритма классификации изображений автомобилей, который показал наилучший результат в конкурсе.
Python Data Science meetup @ Avito 13.08.2016
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)AvitoTech
Порой в процессе развития высоконагруженного проекта наступает момент, когда необходимо масштабирование. Возможно, ваш проект впервые упёрся в производительность железа (и таким образом перешёл в разряд высоконагруженных); возможно, это уже не первое масштабирование — не важно. Какие же проблемы могут возникнуть?
Во-первых, если вы увеличиваете количество бэкенд-серверов, и, соответственно, количество рабочих процессов, то с ростом количества одновременных клиентских подключений вырастают и накладные расходы на базах данных.
Во-вторых, достаточно быстро может кончиться ресурс in-memory баз данных. Потребуется создать (либо увеличить) кластер, а это каждый раз влечёт за собой необходимость модифицировать логику приложения.
В-третьих, чем больше серверов, тем больше вероятность, что один из них выйдет из строя. Поэтому неплохо задуматься о том, как обеспечить отказоустойчивость, а это, опять же, потребует модифицировать логику приложения.
В этом докладе я расскажу, как и какими инструментами можно легко решить все вышеперечисленные проблемы: уменьшить накладные расходы от большого количества подключений к базам данных, создать/модифицировать кластер БД прозрачно для приложения, а также прозрачно добавить устойчивость к падениям серверов БД.
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...AvitoTech
икита расскажет о возможностях backend as a service, ответит на вопрос есть ли жизнь после Parse, поделится опытом разработки BaaS Scorocode, особенностями архитектуры и кейсами применения, как можно ускорить разработку с помощью BaaS.
Вадим Дробинин. Защищаем себя и пользователей: руководство по безопасностиAvitoTech
Докладчик поднимет важную тему защиты пользовательских данных и непосредственно ресурсов приложений от внешних угроз, расскажет об основных проблемах, с которыми сталкиваются разработчики, обеспокоенные безопасностью своих приложений и покажет наиболее успешные способы защиты от атак на Swift
Какие задачи решает команда рекомендаций в Avito - Василий ЛексинAvitoTech
На одной из прошлых встреч мы уже рассказывали о том, что под капотом у рекомендаций в Avito. В этот раз мы подробней расскажем о том, какие задачи решает наша команда, зачем мы организовали конкурс на построение рекомендательной модели, какие результаты мы ожидали получить по итогам соревнования, что из этого удалось получить, а что нет. Кроме того, поделимся своим опытом участия в конкурсе RecSys Challenge 2017.
Лицом к лицу с клиентом пойми кто твой клиент и продавай большеАндрей Федоров
Тезисы доклада:
- Как развивать бизнес в сети кроме покупного трафика (SEO, PPC, Прайс-агрегаторы)
- Клиентоориентированный юзабилити-аудит: что это такое и с чем его едят
- Для чего нужна сегментация аудитории
- Пошаговый план проведения юзабилити-аудита
- На какие вопросы ответит юзабилити-аудит для Вашего бизнеса
- Успешные примеры из жизни интернет-магазинов
19 мая прошел бесплатный вебинар: «SEO для SERM: инструменты, советы по управлению репутацией бренда в поиске».
Спикер: Ирина Коваленко - SEO специалист компании WebPromo.
Доклад с Online MDDay 2014. http://online2014.mdday.ru
Расскажу о том, что делать, когда вам «кажется», что приложение готово и его пора начать рекламировать.
Обычно это обманчивое чувство :-) Как устроены сторы (App Store и Google Play), какие существуют типы трафика, как устроен топ и что можно или даже нужно сделать для продвижения самостоятельно. Зачем и почему стОит сделать ASO и «разобраться» с конкурентами. Когда всё-таки можно начинать платное продвижение и какие каналы выбрать.
Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)AvitoTech
В последнее время на популярных площадках появляется все больше конкурсов, связанных с компьютерным зрением, и в особенности — с сегментацией изображений. Некоторое время назад в таких задачах повсеместно доминировали подходы на основе сети U-Net. Евгений расскажет о решениях двух недавно завершившихся конкурсов, где хорошо зарекомендовали себя подходы на основе новой, претендующей на “народное признание“, сети.
Применение компьютерного зрения для анализа спортивных соревнований (Николай ...AvitoTech
Большое количество статистической информации о ходе спортивных игр и соревнований собирается вручную. Для автоматизации этого процесса можно использовать методы компьютерного зрения. В докладе будут рассмотрены подходы к анализу видеопотока с игры в настольньй теннис в реальном времени. Будут предложены алгоритмы, основанные на искусственных нейронных сетях и классическом компьютерном зрении для определения игровых событий, траектории мяча и фиксации результатов с судейского табло, а также представлены первые результаты.
Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)AvitoTech
В докладе будут рассмотрены основные научные работы, которые позволили нейронным сетям распознавать людей точнее, чем это делает человек. Также будут продемонстрированы результаты компании VisionLabs на независимых международных тестах Face Recognition Vendor Test института NIST и Labeled Faces in the Wild Университета Массачусетса.
AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)AvitoTech
В Avito активно используется машинное обучение в различных микросервисах и продуктах. В докладе будет рассказано про часть, связанную с компьютерным зрением: AvitoNet. Это внутренний датасет и обученные на нём нейросети. Артур Кузин расскажет про задачи, которые ставились перед сервисом AvitoNet на этапе планирования, а также о выбранном подходе к решению и эволюции сервиса. Будут показаны результаты с демонстрацией работы AvitoNet во время подачи объявлений.
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)AvitoTech
Любой проект со временем растет и наполняется новыми функциональными возможностями. QA-процессы должны оперативно и адекватно на это реагировать. Например, увеличением количества тестов всех видов. В этом докладе мы будем говорить про UI-тесты, которые играют важную роль в создании качественного продукта.
Количество тестов постепенно растет: от 1000 к 3000, от 6000 к 9000+ и т.д. Чтобы эта лавина не "накрыла" наш QA-процесс, нужно с самого раннего этапа развития проекта автоматизации думать про эффективность всей системы и каждого теста в ней.
В этом докладе я расскажу, как сделать систему гибкой к изменениям, а также про эффективное использование каждого из тестов. Кроме того, мы поговорим про оценку и метрики не только процессов автоматизации, но и всего QA.
Avito Automation Meetup (26.08.2017)
https://avitotech.timepad.ru/event/542380/
Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...AvitoTech
Мы все стремимся создавать качественные продукты. Мы знаем, что для того, чтобы создавать качественные тесты, их надо проверять, а значит, создавать тесты. Мы все знаем насколько это нужно… до того момента, пока не начинаем делать продукт.
И как только мы с горящими глазами садимся создавать свои тесты, нам тут же начинает мешать множество вещей: долго, дорого, ненужно, неэффективно… Хотя вот буквально пару недель назад все были согласны, что нужно писать тесты.
Давайте посмотрим, можно ли выбраться из этого лабиринта отговорок и создавать тесты быстро, дёшево и эффективно их потом поддерживать.
Avito Automation Meetup (26.08.2017)
https://avitotech.timepad.ru/event/542380/
Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)AvitoTech
Continuous integration умеет запускать тесты. Для этого его и придумали. Однако, как всегда, есть нюансы, связанные с теми или иными видами тестов. На митапе я расскажу про особенности настройки CI для работы с нагрузочным, приёмочным, интеграционным, UI- и Smoke-тестированием, проверкой корректности установки и апгрейда. Поговорим о том, на какие грабли можно при этом наступить и как их обойти.
Avito Automation Meetup (26.08.2017)
https://avitotech.timepad.ru/event/542380/
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)AvitoTech
Вы думаете, что сделали все для того, чтобы ваша система автоматизации тестирования работала чётко и правильно? Закрыли список задач? Или наоборот, находитесь в поиске того, что еще не охвачено? Тогда этот доклад для вас и для всех, кто интересуется автоматизацией тестирования и её гранями.
Когда все процессы в системах автотестирования работают нормально и выдают релевантные результаты, есть риск обмануться, что сделано уже всё, впереди — лишь унылая актуализация автотестов. Доклад прольет свет на то, что можно делать полезного в рамках и вокруг автоматизации тестирования.
Avito Automation Meetup (26.08.2017)
https://avitotech.timepad.ru/event/542380/
Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...AvitoTech
Когда в прошлом году Apple с выходом Xcode 8 отказались от UI Automator, мы, как и многие, оказались у разбитого корыта. Appium, который у нас использовался, потерял актуальность, мы начали искать альтернативы и нашли инструмент WebDriverAgent от Facebook. Доклад о том, с какими проблемами мы столкнулись, как мы их решали и как это повлияло на нашу инфраструктуру тестирования iOS-приложений.
Avito Automation Meetup (26.08.2017)
https://avitotech.timepad.ru/event/542380/
2. 222
• User-item:
• Объявления, которые в настоящий момент ищет пользователь
• Дополняющие товары/услуги
• User-category:
• Категории текущих интересов пользователя
• Кросс-категориальные рекомендации
• Item-item:
• Рекомендации похожих объявлений
• Дополняющие товары/услуги
• Рекомендации поисковых запросов
Какие рекомендации нужны на Авито?
3. 333
• Где можно показывать user-item рекомендации?
• Email’ы с подборкой рекомендованных объявлений
• Push-уведомления со ссылкой на персональные рекомендации в приложении
• Рекомендации на главной странице Android/iOS приложений
• Где можно показывать item-item рекомендации?
• Страница объявления
• Email кампании
Где можно показывать рекомендации?
6. 666
• Входные данные:
• История действий пользователей на сайте: просмотры, поисковые запросы, контакты, избранное
• Профили пользователей: данные из привязанных аккаунтов соц. сетей, локация
• Все активные объявления Авито: title, description, params, price
• Задача:
• Для каждого активного пользователя показать top N объявлений с наибольшей вероятностью запроса контакта (звонок или отправка
сообщения)
Постановка задачи user-item рекомендаций
7. 777
• Пользователя, как правило, интересует типовой товар:
• на который есть много активных объявлений,
• объявления быстро закрываются
• Лучше строить рекомендации не на конкретных объявлениях, а на типовых товарах
• Объявления создаются обычными пользователями: много неполных описаний
Специфика рекомендаций на Авито
8. 888
• Offline модели (отставание 1-2 часа):
• Коллаборативная фильтрация
• Контентные рекомендации
• Гибридные рекомендации
• Online модели (отставание не более 5 секунд):
• Должны в реальном времени учитывать интересы пользователя
• Должны уметь рекомендовать самые свежие объявления
• Как правило, применяются простые методы
Методы построения рекомендаций
9. 999
• Offline-метрики на кросс-валидации: precision, recall, NDCG, R-score
• Online-метрики: CTR, CTR на top N
• Online сплит-тесты: показ рекомендаций от различных моделей vs. случайная подборка объявлений
• Целевая метрика: прирост в количестве запросов контактов на A/B тесте
Оценка качества моделей