как работают и как их распознать
Покупки и траты
К нам в руки попала очередная инструкция, которую изобрели мошенники для кражи денег у покупателей на «Авито».
Екатерина Табатчикова
разобрала схему мошенников
Профиль автораОлег Замиралов
защищает деньги клиентов банка
Мы не будем рассказывать, как это сделать, чтобы не плодить мошенников. Но объясним механику, чтобы вы о ней знали и сохранили свои деньги. Для этого мы создадим объявление и попытаемся выманить у покупателя деньги.
Никто не пострадал
«Продавцом-мошенником» была Катя, редактор Т—Ж, а «покупателем» — Олег, соавтор этой статьи. Катя действовала строго по инструкции, а Олег вел себя как неосторожный покупатель.
Шаг 1
Мошенник создает профильНа «Авито» у каждого продавца есть рейтинг: в профиле видно, сколько времени зарегистрирован аккаунт и какие у продавца отзывы.
Мошенник может купить такой профиль на специальных биржах или создать с нуля. Тогда придется подтверждать регистрацию через смс. Мошенники не хотят светить свои номера телефонов, поэтому покупают онлайн-номер: всего 2 рубля — и можно принять сообщение с кодом от «Авито» и подтвердить регистрацию. После этого мошенник придумывает и выкладывает объявление.
Номер для «Авито» стоит 2 рубля. На него нельзя будет позвонить — только принять сообщение. Мошеннику этого достаточно: он не планирует разговаривать с покупателямиШаг 2
Составляет привлекательное объявлениеМошенники не выставляют все подряд. Например, продавать популярные модели смартфонов неинтересно, потому что в основном будут писать перекупщики, а не реальные люди. Слишком дешевые вещи типа пуговиц или шкатулок тоже мимо: на них много не заработаешь. Зато в инструкции написано, что точно купят, как лучше фотографировать товар и как общаться с покупателем.
Что продают. Самые ходовые товары — это электроника, запчасти для техники и брендовая женская одежда.
Фотографии. В той же инструкции советуют фотографировать вещь, которая есть дома, но не выставлять сразу все снимки. Пару фотографий нужно оставить для переписки с покупателем, когда тот попросит показать вещь с другого ракурса.
Другой вариант — взять фотографии из постов в группах «Продам Москва», «Продам Питер» и подобных. В таком случае снимки нужно отзеркалить, чтобы дотошный покупатель не смог найти оригиналы в «Яндекс-картинках».
5 способов потерять деньги в интернете
Геолокация. У мошенников расчет такой: покупатель должен жить в крупном городе и оформить доставку. Поэтому мошенник говорит, что сам он из области, но готов отправить товар.
Способ связи. Мошенник оставит единственный способ связи: сообщения на сайте. Теперь остается дождаться, когда ему напишет покупатель.
В этом объявлении все как надо: реальные фотографии телевизора, номер телефона скрыт, профиль с хорошими отзывами, продавец находится в областном городе — Подольске, но готов отправить товар в надежной упаковкеШаг 3
Переводит разговор в мессенджерМошенник переносит разговор в мессенджер: чаще всего в Вотсап. Это делается для того, чтобы «отвязаться» от «Авито» и втереться в доверие покупателю: вот он я, реальный честный человек, вот мой номер телефона. На самом деле номер активирован через тот же онлайн-сервис, который помог зарегистрировать аккаунт на «Авито». Позвонить на него или узнать имя владельца не получится.
В инструкции для мошенников нет ничего необычного: нужно отвечать на все вопросы покупателя, отправлять фотографии по первому запросу, терпеливо дожидаться ответа и мягко направлять к оформлению доставки.
Я пытался продать Айпад на «Авито» и чуть не отдал деньги мошенникам
Мошенник заранее сфотографировал телевизор со всех сторон и отправил нужные снимки. Затем он просит перейти в ВотсапШаг 4
Предлагает оформить безопасную доставкуВсе кажется безопасным: продавец не просит предоплату, а предлагает купить с «Авито-доставкой».
Эту услугу придумали для удобства и безопасности. Покупатель оформляет доставку, выбирает место получения и оплачивает товар. Деньги только резервируются на карте, но не уходят продавцу. Продавец сдает товар в пункт приема транспортной компании. Транспортная компания присваивает посылке трек-номер, «Авито» отправляет его покупателю и продавцу, чтобы каждый мог отследить передвижение товара.
Расскажем, как уберечь свои деньги
От воров, хакеров и других нехороших ребят. Подпишитесь на рассылку, чтобы не пропустить важные статьи
Когда посылка приходит в пункт выдачи, покупатель проверяет ее и, если все нормально, забирает. Тогда продавец получает деньги на банковскую карту.
Чтобы оформить такую безопасную доставку, нужно нажать на кнопку «Купить с доставкой» на странице объявления. Если продавец не хочет заморачиваться с доставкой, он эту опцию отключает — соответственно, покупатели кнопку не видят.
Как мошенники прикидываются друзьями в соцсетях: 4 опасных сообщения
Мошенники знают, что «Авито-доставка» безопасна и выгодна для покупателя, поэтому рекомендуют оформить ее. Но есть нюанс.
Следите за руками:
Мошенник узнает, в какой город нужно отправить посылку: эта информация ему скоро пригодится. А еще говорит, что «Авито-доставка» сохранит деньги покупателя и защитит его от кота в мешке Но покупатель не может оформить доставку: кнопки-то нет. Ее действительно нет, потому что мошенник не собирался продавать телевизор с доставкой. Зато он включил ее на пару секунд, чтобы сделать скрин и показать покупателюШаг 5
Оформляет доставку за покупателяМошенник говорит, что на «Авито» какие-то сбои, поэтому кнопка «Купить с доставкой» якобы неактивна. Но он может сам оформить доставку — главное, сообщить ему, куда отправить товар и кто его будет получать. Вроде бы ничего подозрительного: он не просит номер карты, не просит предоплату и вообще пытается помочь.
Мошенник знает город, куда нужно отправить товар, и быстро находит пункты выдачи заказов. В нашем случае — в Электростали — их немного. Мошенник спрашивает покупателя, в какой пункт отправить товар, чтобы правильно оформить доставку.
Шаг 6
Подделывает форму доставкиНачинается самое интересное. Мошенник вводит в специальную форму, адрес которой мы вам не покажем, данные о посылке: кто отправил, кто будет получать, куда приедет и что там внутри. Эта форма создана специально для его темных дел — она генерирует ссылку на страницу оплаты, которая внешне практически неотличима от настоящего сайта «Боксберри». Теперь мошеннику нужно, чтобы покупатель перешел по этой ссылке и оплатил товар.
В этих полях можно написать что угодно, но мошенник аккуратно перепишет ФИО получателя и адрес, чтобы не вызвать подозрений В результате получится такое окно. Тут есть и данные покупателя, и статус посылки — и кнопка оплаты заказаШаг 7
Отправляет квитанциюМошенник шлет ссылку покупателю — и тот видит, что товар отправлен по нужному адресу. Есть трек-номер, ФИО указаны верно, да и транспортная компания известная.
Когда покупатель оплачивает товар, деньги уходят не «Авито» и не «Боксберри», а прямиком в руки мошеннику.
Мошенник отправляет ссылку на фальшивое окно, которое имитирует сайт транспортной компанииПокупатель вводит данные карты, чтобы «оплатить» товар. Правда, адрес транспортной компании подозрительный: начинается не на «w w w», а на «w v w v» — подвох заметен не сразу | И попадает в черный список |
Договаривайтесь о сделке на «Авито», чтобы не потерять деньги
Андрей Рыбинцев
эксперт по безопасности сделок на «Авито»
Мы блокируем более 2000 мошеннических аккаунтов ежедневно и регулярно отправляем запросы на блокировку фишинговых страниц. Система понимает, когда продавец отправляет стороннюю ссылку в сообщениях на «Авито», и тут же присылает предупреждение покупателю: пожалуйста, не игнорируйте его.
Также мы показываем предупреждение, если продавец приглашает в другие чаты, чтобы продолжить общение. Если вы договариваетесь о покупке вне платформы — в Вотсапе, по почте или смсками, мы не можем вас там обезопасить. Чтобы не попасться в руки мошенников, важно делать все именно на «Авито»: общаться с продавцом, оформлять доставку и оплачивать товар.
Безопасно оформить посылку можно только кнопкой «Купить с доставкой» на нашем сайте или в приложении. Откажитесь от покупки, если продавец предлагает перейти на сайт логистической компании, чтобы там оформить и оплатить отправление. В случае любых сомнений в честности продавца сообщите об этом в нашу службу поддержки.
Как не попасться
- Обращайте внимание на рейтинг продавца и возраст профиля.
- Не переходите на общение в мессенджерах, тем более если речь идет о доставке.
- Кнопка «Купить с доставкой» или работает, или нет. Не может быть, чтобы она была активна только для продавца.
- Не переходите и не оплачивайте доставку по ссылкам продавца. Ссылка на оплату должна прийти от администрации «Авито».
- Проверяйте трек-номер на официальном сайте транспортной компании.
- В случае любых сомнений в честности продавца сообщите об этом службе поддержке «Авито». Возможно, его аккаунт заблокируют.
Купить Кофейные кружки из нержавеющей стали с крышками — Кофейные пивные кружки с двойными стенками на 14 унций — Набор из 2 шт. — Серый — Лучшее соотношение цены и качества — Здоровый выбор без бисфенола А — Небьющиеся и влагонепроницаемые
Связанные страницы
Дом и кухня › Кухня и столовая › Рестораны и развлечения › Посуда из стекла и напитков › Чашки, кружки и блюдца
Отказ от ответственности: указанная выше цена включает все применимые налоги и сборы. Информация, представленная выше, предназначена только для справочных целей. Продуктов может не быть на складе, а расчеты доставки могут измениться в любое время. Desertcart не подтверждает никаких утверждений, сделанных в приведенных выше описаниях продуктов. Для получения дополнительной информации обратитесь к производителю или в службу поддержки клиентов Desertcart. Хотя Desertcart прилагает разумные усилия, чтобы показывать только товары, доступные в вашей стране, некоторые товары могут быть отменены, если они запрещены к ввозу на Кипр. Для получения более подробной информации посетите нашу страницу поддержки.
Часто задаваемые вопросы о кофейных кружках из нержавеющей стали с крышками, 14 унций, изолированные кофейные пивные кружки с двойными стенками, набор из 2 серых, лучшее соотношение цены и качества, не содержит BPA, здоровый выбор, небьющиеся и устойчивые к проливам от Avito на Кипре
Где я могу купить кофейные кружки из нержавеющей стали с крышками Кофейные пивные кружки с двойными стенками на 14 унций, набор из 2 серых, лучшее соотношение цены и качества, не содержит BPA, здоровый выбор, небьющиеся и устойчивые к проливам.
desertcart — это лучшая платформа для покупок в Интернете, где вы можете купить кофейные кружки из нержавеющей стали с крышками, 14 унций, изолированные кофейные пивные кружки с двойными стенками, набор из 2 серых, не содержащих бисфенола А, здоровый выбор, небьющиеся и устойчивые к проливам от известных брендов. Desertcart поставляет самый уникальный и самый большой выбор товаров со всего мира, особенно из США, Великобритании и Индии, по лучшим ценам и в кратчайшие сроки.
Кофейные кружки из нержавеющей стали с крышками, 14 унций, изолированные кофейные пивные кружки с двойными стенками, набор из 2 серых, не содержащих бисфенола А, здоровый выбор, небьющиеся и устойчивые к проливам, доступны и готовы к доставке на Кипр?
Desertcart отправляет кофейные кружки из нержавеющей стали с крышками, 14 унций, изолированные кофейные пивные кружки с двойными стенками, набор из 2 серых, не содержит BPA, лучший выбор, небьющийся и влагозащищенный. Получите неограниченную бесплатную доставку в более чем 164 странах с членством в Desertcart Plus. Мы можем быстро доставить кофейные кружки из нержавеющей стали с крышками, 14 унций, изолированные кофейные пивные кружки с двойными стенками, набор из 2 серых, не содержащих бисфенола А, здоровый выбор, небьющиеся и устойчивые к проливам, быстро и без хлопот с доставкой, таможней или пошлинами.
Безопасно ли покупать кофейные кружки из нержавеющей стали с крышками, 14 унций, двойные изолированные кофейные пивные кружки, набор из 2 серых, не содержит бисфенола-А, здоровый выбор, небьющиеся и устойчивые к проливам, по лучшей цене?
Да, абсолютно безопасно покупать кофейные кружки из нержавеющей стали с крышками, 14 унций, изолированные кофейные пивные кружки с двойными стенками, набор из 2 серых, лучшее соотношение цены и качества, не содержит бисфенола-А, здоровый выбор, небьющиеся и устойчивые к проливам. работает в 164 странах. С 2014 года Desertcart поставляет клиентам широкий ассортимент товаров и выполняет их желания. Вы найдете несколько положительных отзывов от клиентов Desertcart на таких порталах, как Trustpilot и т. д. Веб-сайт использует систему HTTPS для защиты всех клиентов и защиты финансовых данных и транзакций, совершаемых в Интернете. Компания использует новейшие модернизированные технологии и программные системы для обеспечения честных и безопасных покупок для всех клиентов. Ваши данные надежно защищены и охраняются компанией с использованием шифрования и других новейших программ и технологий.
Устранение дубликатов в постоянно растущем кошмаре контента | Адиль Худхуд | Avito
DD Engine сортировка дубликатов (авторское право Warner Bros) Опубликовано в·
Чтение: 12 мин. сайт, вы полагаетесь на контент, созданный пользователями для предоставления качественного продукта широкой публике с минимальным вмешательством с вашей стороны. Потому что, в конце концов, вы просто посредник между покупателем и продавцом. Теперь, как бы вы поступили, чтобы обеспечить наилучшее взаимодействие с пользователем, полностью полагаясь на добрую волю издателей? это вопрос, который мы задаем себе каждый день недели (по крайней мере, в рабочие дни), и это является основой нашего бизнеса, как заявил большой босс Ролв Эрик Риссдал«Расширение прав и возможностей людей в их повседневной жизни».
Одним из основных неудобств для наших пользователей является нерелевантность рекламы, необходимость просматривать бесчисленные страницы одних и тех же повторяющихся объявлений только для того, чтобы найти то, что вы действительно ищете, иногда вы даже сдаетесь, когда идеальная сделка всего одна страница прочь. точно так же, как когда вы что-то гуглите и обнаруживаете, что достигаете темного и влажного царства того, что лежит за пределами второй страницы результатов поиска Google.
Так что же нам делать? как мы можем решить эту проблему с ограниченными ресурсами, которые у нас есть?
Мы просидели минут 10 и состоялся следующий разговор
- Менеджер по продукту: Я снова и снова натыкаюсь на одну и ту же рекламу, может стоит что-то с этим сделать, пользователи жалуются на избыточность некоторых объявлений.
- Инженер: Действительно, на днях я искал Raspberry PI, и я увидел поток объявлений о настольных компьютерах. если мы заблокируем людей от повторной вставки одних и тех же объявлений?
- Инженер: как?
- Менеджер по продукту: Мне не нужна ваша работа
- Инженер: Я буду сравнивать каждую новую вставленную рекламу с остальными объявлениями пользователя и блокировать ее, если это дубликат
- Менеджер по продукту: звучит хорошо для меня , сколько времени вам нужно?
- Инженер: два месяца
- Менеджер по продукту: Один месяц кажется логичным
- Инженер: как?
- Менеджер по продукту: ладно, один месяц уже
И тут началось, первая версия проекта по обнаружению дубликатов.
Д-р Владимир Левенштейн считается отцом теории кодирования в России, его вклад присутствует во многих аспектах нашей повседневной жизни. Одно из его самых известных творений лежит в основе большинства современных алгоритмов проверки орфографии: «расстояние Левенштейна». И это было ключом к решению нашей проблемы.
Какой молодец!Расстояние Левенштейна — это способ измерения сходства между двумя строками. Он работает, вычисляя изменения, необходимые для перехода от строки (A) к строке (B). чем больше расстояние, тем больше отличаются тексты.
Пример:
у нас есть две строки, начальный текст (I) и конечный текст (F), мы будем называть функцию расстояния Левенштейна DT.
Если I = «adil» и F= «adil», то dt(I,F)=0, так как преобразование I в F требует 0 шагов
Если I= «adil» и F= «adim» dt( I,F)=1, так как преобразование из I в F требует 1 шага (т.е. l => m)
Таким образом, чем больше расстояние, тем больше отличаются тексты. И это то, на что мы полагались в первую очередь, чтобы определить, когда и как вставляются повторяющиеся объявления.
На следующей схеме я покажу, как была реализована первая итерация проекта обнаружения дубликатов.
Краткое объяснение
Выглядит довольно просто! но дьявол кроется в деталях, большое поле, в котором явно говорится, что проверка выполняется, — это то место, где происходит волшебство (или должно было произойти .. по крайней мере), и именно там расстояние Левенштейна используется для решения нашего дубликата проблема.
Подробное объяснение
Сначала объявление отправляется в процесс вставки объявления, выполняются необходимые проверки (Проверка на наличие SQL-инъекций, лол!). если реклама признана «легальной», то она подвергается процессу «обнаружения дубликатов», в ходе которого реклама прогоняется по базе данных, чтобы проверить, не пытается ли пользователь повторно опубликовать ту же самую рекламу об этом чертовом отвратительном мотоцикле, который слишком дорого… в любом случае… проверка выполняется по базе данных с использованием хранимой процедуры, которая возвращает «оценку», эта оценка используется, чтобы считать рекламу «дублирующейся» или «уникальной», вот сильно отредактированная версия хранимой процедуры, которая ее обрабатывала. :
Красиво, не правда ли? это было хорошее решение, я избавлю вас от подробностей о том, как оно было реализовано в огромной системе, и сразу перейду к тому, что пошло не так.
Таким образом, чтобы получить оценку сходства, алгоритм должен сравнить новые данные с существующими данными пользователя. однако есть одна загвоздка.
В середине 2014 года постоянно возникала проблема с уникальностью пользователей. Из-за роста телекоммуникационного пузыря в Марокко получить новый номер телефона дешевле, чем чизбургеры. а поскольку Avito.ma накладывает некоторые ограничения на количество объявлений, которые можно размещать в определенных категориях, некоторые пользователи прибегали к созданию нескольких учетных записей с несколькими телефонными номерами, чтобы размещать максимум объявлений (пользователи были ограничены номером телефона или электронной почтой), поэтому, если у пользователя есть 3 телефонных номера, он может создать 3 одноразовых телефонных номера и иметь в 3 раза больше разрешенной рекламы.
Решение, к которому мы пришли, состояло в том, чтобы добавить новую концепцию под названием «Группы пользователей», основанную на алгоритме, который использует «определенные» параметры, чтобы определить, являетесь ли вы одним и тем же пользователем, использующим разные учетные записи или нет, и местами. ваш аккаунт в соответствующей группе. Мы позволяем группам расти самостоятельно, без вмешательства человека. и это оказалось весьма кстати.
Перенесемся к реализации первого проекта по обнаружению дубликатов. Все шло гладко, и мы наслаждались, наблюдая за падением количества дубликатов, мы даже создавали новые смелые проекты поверх ловушки дубликатов. мало ли мы знали, что в тенях базы данных скрывается большая опасность.
Avito.ma является одним из самых быстрорастущих веб-сайтов в Марокко, а это означает, что любой код, который мы напишем в 2014 году, вероятно, придется снова оптимизировать в 2015, 2016 и т. д., и это ловушка, в которую мы попали. Логика групп пользователей дала отличные результаты, но также привела к одной из самых опасных ситуаций, с которыми мы когда-либо сталкивались как техническая команда: ПОСТОЯННЫЕ ТАЙМ-АУТЫ БАЗЫ ДАННЫХ. это началось в начале 2016 года, мы заметили, что запросы к базе данных занимают немного больше времени, чем обычно, мы покопались и поняли, что это была проверка дубликатов, которая занимает много времени, еще немного понаблюдав, мы выяснили что-то действительно страшное. алгоритм группировки вышел из строя, вместо группировки учетных записей он начал группировать группы учетных записей. поэтому вместо добавления одной учетной записи в группу он добавляет все учетные записи в одной группе в новую группу. и мы закончили с группами до 500 пользователей, а некоторые из них насчитывали более 30000 объявлений на группу. и зная, что система обнаружения дубликатов сравнивает все данные объявления с сохраненными данными, и предполагая, что объявление имеет около 6 параметров (тема, текст, цена, адрес и т. д.), мы могли бы иметь что-то вроде (30000 * 6) операций сравнения при вставке одного объявление. умножив это на безумное количество рекламы, публикуемой ежедневно, мы получаем сумасшедшее количество операций в день только для того, чтобы обеспечить уникальность рекламы. надо было что-то делать… быстро..
Технический директор призвал собрать оперативную группу после того, как база данных сдалась, и решил прекратить выполнение всех запросов по тайм-ауту. нас буквально сняли с наших рабочих столов и поместили на другой этаж, чтобы выполнить одну задачу: ЗАСТАВИТЬ ВЕЩИ СНОВА РАБОТАТЬ. Изначально нас было трое: 1 супер-мега разработчик (она же настоящая чудо-женщина), 1 безумный бэкэнд-разработчик (на самом деле безумный) и я. Мы начали обдумывать разные решения этих многочисленных проблем, которые у нас есть… Как мы можем предложить одно волшебное решение, которое вытащит нас из этой неразберихи… если бы только существовала система, в которой мы могли бы выполнять операции быстрого сравнения и где все необходимые данные можно было бы хранить и извлекать немедленно… что-то полностью оторванное от базы данных…
Фотография сделана в день сборкисогласно их официальному веб-сайту:
Elasticsearch — это распределенная поисковая и аналитическая система RESTful, способная решать растущее число вариантов использования. Являясь сердцем Elastic Stack, он централизованно хранит ваши данные, чтобы вы могли обнаруживать ожидаемое и обнаруживать неожиданное.
Мы изучали идею внедрения Elasticsearch в качестве системы обнаружения дубликатов около двух недель. быстрые POC, скучные разговоры, горькие осознания и бесплодные встречи… и тогда мы решили, что собираемся пойти ва-банк с этим предложением.
Сам проект был разделен на несколько подпроектов, каждый из которых руководил определенным аспектом реализации:
- Настройка кластера elasticsearch и всех операций infra/devops (Дуния Алла)
- Индексирование данных в elasticseach (Адиль Худхауд )
- Использование elasticsearch в качестве механизма обнаружения дубликатов (Hamza Aid)
Таким образом, в основном моя задача заключалась в том, чтобы убедиться, что все необходимые данные правильно индексируются в ES, не влияя на производительность базы данных.
Первым шагом индексации данных было определить, какие данные должны быть проиндексированы, конечно, ради обнаружения дубликатов мы могли бы проиндексировать только параметры, необходимые для проверки, но это было бы пустой тратой потенциала этого проект, поэтому, пока проект был продан руководству и другим заинтересованным сторонам в качестве механизма обнаружения дубликатов, мы тайно работали над индексацией ВСЕХ, что у нас есть. Для этого нам нужна была хорошая стратегия индексации.
Разные игроки
Вот обзор развернутого решения:
База данных
База данных postgresql, ничего особенного. хотя у нас было секретное оружие, облегчающее процесс индексации, мы отслеживаем все действия над объявлениями в отдельных таблицах, каждое изменение объявления имеет свой уникальный идентификатор, отметку времени и т. д., что означает, что мы могли легко полностью индексировать объявления и обновлять (переиндексировать ) изменили рекламу (изменили, удалили, деактивировали и т. д.) в elasticsearch.
Notify
Postgres предоставил классную функцию, которая позволяет отправлять уведомления при возникновении определенных событий, официальная документация Notify:
Команда NOTIFY отправляет событие уведомления вместе с дополнительной строкой «полезной нагрузки» каждому клиентскому приложению, которое ранее выполняло канал LISTEN для указанного имени канала в текущей базе данных.
мы настраиваем некоторые триггеры для отслеживания всех изменений данных и созданных функций, которые вызываются каждый раз, когда действие выполняется над объявлением.
Это пример вставки
- Index_tracking: таблица, которую мы используем для отслеживания всех действий по индексированию.
- NEW.id: новый идентификатор вставленного объявления
- ‘Notification_channel’: имя, если канал, который прослушивает демон индексации, используется функцией pg_notify
- TG_TABLE_NAME: имя таблицы, вызвавшей событие
- TG_OP: название выполняемой операции (вставка, обновление и т. д.)
Демон индексации
Это служба, предназначенная для индексации (и переиндексации) данных. он полагается в основном на функцию «уведомления» postgres, он прослушивает «Notification_channel», который мы установили в триггере.
При «уведомлении» он извлекает данные объявления из базы данных, используя идентификатор, отправленный в уведомлении, а затем отправляет новые данные в elasticSearch для индексации.
Работает с двумя модами: пакетным и в реальном времени. для пакетного режима он собирает идентификаторы, отправленные в уведомлениях, в течение определенного периода времени (обычно от 10 до 20 секунд), прежде чем выбирать данные из БД для индексации, режим реального времени, с другой стороны,… в реальном времени.
Кластер ElasticSearch
Мы используем кластерный сервис Amazon elasticSearch. Надежный и избавляет нас от многих хлопот в обслуживании и настройке сервиса.
- Микросервис обнаружения дубликатов
по прозвищу OWL, микросервис REST, написанный на golang (от Hamza Aid), который обрабатывает квалификацию дубликатов с использованием двух этапов: сначала он получает звезды, получая возможные похожие объявления для данного объявления из elasticSearch с использованием moreLikeThis lucene Затем он сравнивает результаты с исходной рекламной информацией, используя функцию расстояния Левенштейна.
Мы также экспериментировали с некоторыми алгоритмами, основанными на Яро-Винклере (реквизит Soufiane Mghanen), но на данный момент Левенштейн является нашим фаворитом.
Вот фрагмент реализации Jaro-Winkler, с которой мы экспериментируем, больше на https://github.com/xrash/smetrics:
Вот, у нас есть несколько причудливых алгоритмов вместе с индексированными данными в elasticSearch. Как эта система эксплуатируется? и как это вписывается в существующий рабочий процесс?
Технический директор и продакт-менеджеры поддерживают насFrontend? бэкэнд?
Это обнаружение дубликатов или DD вкратце (слишком поздно, чем сейчас) реализовано в нескольких местах на нашей платформе (платформах), я выделю реализацию в двух стратегических местах:
Обнаружение внешнего интерфейса
Передний край защиты, мы называем это внутренне «обнаружение внешнего интерфейса», но на самом деле все происходит на внутреннем уровне. этот срабатывает, когда вставляется реклама. Сразу после нажатия кнопки «Отправить» в микросервис обнаружения дубликатов «по прозвищу OWL» отправляется запрос для получения оценки. в зависимости от этой оценки мы либо принимаем рекламу, либо отклоняем ее и показываем пользователю, что у него уже где-то скрывается похожая реклама (мы даже указываем пользователю исходную рекламу) и что он может либо деактивировать старую рекламу, либо возобновить ее.
Очередь дубликатов
Все объявления проходят модерацию, часть автоматически, часть вручную. по этой причине мы установили модуль обнаружения дубликатов в системе модерации. Модуль DD сканирует вставленные объявления на наличие дубликатов и помечает каждое из них определенным… флагом. есть два флага:
- Черный флаг: это объявление определенно является дубликатом, оно автоматически отклоняется
- Флаг потенциальных дубликатов: это объявление может быть дубликатом, оно модерируется вручную и решается модератором (человеком) судить.
- Объявление, не являющееся дубликатом, просто не помечается.
Весь проект был прыжком веры, у нас не было много времени, чтобы обдумать все возможные решения, и мы вложили в этот проект всю возможную веру. и мальчик о мальчик, это окупилось.
Воздействие на базу данных:
Мы перешли от постоянной 100%-й загрузки ЦП и отсутствия остановок до среднего значения <30% в часы пик. воздействие было мгновенным, через несколько минут капля была замечена. . и виртуальное шампанское разлилось.
Виноградный сокВлияние на контент
Количество жалоб, которые мы получили после развертывания проекта DD, было просто… удивительно наблюдать (не с точки зрения поддержки клиентов, конечно) Пользователи, которые привыкли спамить веб-сайт с дубликатами теперь в ярости из-за «нового» изменения. Команда CS и менеджер по контенту проделали большую работу по повышению осведомленности о важности наличия чистого контента на веб-сайте и о том, насколько это выгодно как для покупателей, так и для продавцов.
Вот некоторые аспекты влияния проекта DD на контент:
- 70%-е снижение дубликатов в течение одного года
- Сокращение времени ручной модерации: время, затрачиваемое на модерацию дубликатов, теперь тратится на улучшение качества контента
- Небольшое снижение содержания, но значительное улучшение качества контента
В общем, проект был ОТЛИЧНЫМ! это положительно повлияло на контент, модерацию, контроль качества, доходы и многие другие аспекты нашей повседневной жизни на Avito.