В PayPal специалисты по обработке данных используют технологии данных и машинного обучения, чтобы предоставлять нашим клиентам различные безопасные платежные услуги, а также обеспечивать удобство для пользователей. Помимо использования структурированных данных для машинного обучения (ML), мы также используем различные типы неструктурированных данных, такие как текст, для повышения качества наших моделей машинного обучения. В частности, мы используем методы обработки естественного языка (NLP) для извлечения значимой информации из текста для множества различных случаев использования.

Одна из типичных проблем, с которыми мы сталкиваемся, заключается в том, что пользователи могут вводить как законный, так и бессмысленный / спам-текст в течение жизненного цикла использования продуктов PayPal. Злоумышленники, взаимодействуя с PayPal, обычно скрывают свою настоящую личность или намерение рассылать спам в нашей системе. Итак, у нас есть острая потребность в обнаружении и шумоподавлении таких данных, которые мы получаем из различных точек взаимодействия с клиентами, масштабируемым образом, что гарантирует принятие сложных технологий НЛП.

Краткое введение в языковые модели

Языковое моделирование широко используется во многих приложениях НЛП, таких как распознавание речи, машинный перевод и поиск информации. Статистическая языковая модель обеспечивает распределение вероятностей по последовательностям слов или символов. Для данной последовательности слов или символов длиной m языковая модель накладывает вероятность последовательности p (w1, w2,…, wm). Таким образом, если мы можем обучить языковую модель на основе строк / слов, то мы можем использовать вероятность, чтобы проверить, вероятно ли сгенерирована конкретная строка / предложение из языковой модели или нет. Чем ниже вероятность, тем выше вероятность того, что строка является спамом.

Одна из основных проблем при построении таких языковых моделей - это присущая им разреженность данных. Распространенной практикой является предположение, что каждое слово или символ независимы друг от друга или что они зависят только от предыдущих n слов или символов, что известно как модель «n-грамм». Возьмем для примера модель триграммы (n = 3). По цепному правилу вероятности имеем

p(w1, w2,…, wm) = p(w1) . p(w2 | w1) . p(w3 | w1, w2) . p(w4 | w1, w2, w3)….. p(wn | w1, w2, …, wn-1)

Теперь, добавив предположение модели триграммы,

p(wn | w1, w2, …, wn-1) = p(wn | wn-2, wn-1),

у нас есть,

p(w1, w2, …, wm) = p(w1) . p(w2 | w1) . p(w3 | w1, w2) . p(w4 | w2, w3)….. p(wn | wn-2, wn-1).

Возьмем для примера строку «Крис». Если мы поменяем местами «r» и «h» в этой допустимой строке, мы увидим значительное снижение логарифмической вероятности строки «Crhis» с триграммы «Chr» на «Crh», что редко встречается в английском словаре.

Обучение языковой модели «спам»

Поскольку языковая модель является неконтролируемой, нам не нужен ярлык "спам" или "не спам". Однако мы должны подготовить достаточно хорошее население для обучения языковой модели. На практике мы исходим из предположения, что большая часть наших данных о населении представляет собой читаемый человеком текст. Обычно мы начинаем с большого набора данных для обучения населения с миллионами внутренних или внешних точек данных, а затем применяем некоторую предопределенную логику для фильтрации шума (например, из-за ошибки регистрации данных), чтобы сохранить данные обучения как можно более чистыми. .

Один простой метод, который мы используем для построения нашей модели триграммы, заключается в использовании распределения эмпирических обучающих данных для аппроксимации условного распределения вероятностей. Другими словами, мы можем быстро получить частоту всех n-граммовых комбинаций слов или символов, а затем преобразовать их в условное распределение вероятностей следующим образом

p(w3|w1, w2) = #(w1, w2, w3) / # (w1, w2)

где # (w1, w2,…, wn) представляет количество вхождений последовательности (w1, w2,…, wn) в нашем наборе обучающих данных.

В некоторых случаях мы имеем дело с многоязычными данными, и с этим нужно хорошо справляться. Одно из решений - обучать модели на разных языковых наборах, например, на английском и русском. Другое решение - преобразовать неанглийские слова или символы в английские, а затем построить соответствующую модель для неанглийского языка.

Непосредственное использование вероятностной модели, приведенной выше, может привести к несправедливому сравнению текстов разной длины (поскольку более длинные слова или предложения обычно имеют более низкую абсолютную вероятность появления). Чтобы устранить этот пробел, мы используем понятие недоумения для нормализации (вероятность по длине), а также используем его для измерения уровня спама. Определение недоумения таково:

В обработке естественного языка недоумение - это способ оценки языковой модели (которая предсказывает вероятность строки или предложения). Как правило, спам-текст имеет более высокую оценку сложности с определенной языковой моделью.

Как упоминалось ранее, даже несмотря на то, что языковая модель является неконтролируемой, на практике мы используем некоторые помеченные вручную данные, чтобы помочь нам определить оптимальный порог отсечения, чтобы определить, является ли строка или предложение спамом или нет. В одном из наших тестовых экспериментов мы успешно идентифицировали более 70 процентов строк спама, настроив правильный порог с разумной точностью.

Еще один параметр, который необходимо настроить, - это наилучшее значение « для данной модели n-грамм. На основе обширных экспериментов мы обнаружили, что не существует глобального оптимального n для всех вариантов использования. Иногда мы используем недоумение по поводу набора оценочных данных, чтобы выбрать лучшее n для конкретной задачи. Тем не менее, в большинстве случаев обнаружения спама на уровне персонажа n = 3 оказывается хорошим выбором, предлагающим хороший компромисс между сложностью базовой модели и ее производительностью.

Подпишитесь на наш блог на носителе или свяжитесь с нами по адресу [email protected] с любыми вопросами.