Краткое содержание выступления на Празднике Грейс Хоппер, сентябрь 2018 г.

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

Еще в мае 2018 года все говорили о конфиденциальности, когда вступил в силу GDPR. В Concur Labs мы не перестали говорить о конфиденциальности в конце мая. Мы продолжаем изучать новые идеи о том, как повысить конфиденциальность пользователей, и понимать, как это влияет на модели машинного обучения. Как сохранить конфиденциальность пользователей, но при этом создать крутые продукты на основе машинного обучения?

Шаг первый в повышении конфиденциальности пользователей при сохранении полезности данных - выйти за рамки простой модели согласия или отказа. Конфиденциальность может быть скользящей шкалой, а не просто переключателем: есть много вариантов между сбором всех данных и сбором ни одной из данных. Некоторые из этих параметров предназначены для пользователя, чтобы он мог контролировать предоставляемые данные, а некоторые - для разработчика или специалиста по данным, когда они контролируют объем данных, которые хранятся и используются. И данные, которые используются в модели машинного обучения, не обязательно должны быть всеми доступными данными. Что произойдет, если мы будем использовать только часть доступных данных?

Что делать, если мы используем анонимные данные, по которым мы не можем идентифицировать отдельного человека? Можем ли мы построить точные модели машинного обучения, используя анонимные данные?

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

Чтобы проиллюстрировать это, я буду использовать некоторые синтетические данные, которые представляют типы данных, с которыми мы обычно работаем в SAP Concur. Наши данные касаются командировок и расходов: когда вы отправляетесь в командировку и хотите получить компенсацию впоследствии через SAP Concur, вы можете отправить нам эти данные через Slack, Outlook или один из других мобильных или веб-продуктов SAP Concur. Затем эти данные могут быть сохранены в нашей базе данных различными способами. Это может быть естественный язык, например текст квитанции, изображение квитанции или структурированные столбчатые данные с датой, суммой, типом расходов и т. Д. Я буду использовать эти данные, чтобы показать влияние анонимности данных с помощью различных методов.

Удаление или псевдонимизация личных данных

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

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

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

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

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

K-анонимность

K-анонимность была впервые введена в 1998 году Пиеранджелой Самерати и Латаней Суини и дает некоторые гарантии анонимности данных. Чтобы объяснить k-анонимность, сначала необходимо объяснить концепцию квазиидентифицирующих данных. Это данные, которые не идентифицируют человека напрямую (поэтому имена и т. Д. Исключаются), но их можно использовать для однозначной идентификации человека, если у вас их достаточно. Например, наш набор данных о командировочных расходах содержит местоположение, дату, сумму и поставщика для отдельных транзакций. Они уникальны для одного человека в наборе данных, и с некоторой внешней информацией можно будет повторно идентифицировать этого человека так же, как в примере с такси выше.

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

K-анонимность особенно полезна для структурированных наборов данных, содержащих много категориальных данных. Это может быть достигнуто путем агрегирования или удаления данных до тех пор, пока k строк не станут идентичными, как показано ниже на примере данных из чеков:

Мы используем эти данные для построения еще одной простой модели двоичной классификации, которая может предсказать, является ли квитанция квитанцией отеля или квитанцией такси, как указано выше. На графике слева показано, как точность модели резко снижается при увеличении k. Объем информации, потерянной в процессе анонимизации, делает k-анонимность непригодной для построения моделей машинного обучения.

Поскольку k-анонимизация не включает рандомизацию, она уязвима для атак связывания с внешней информацией. В нашем примере выше, если мы знаем, что Крис есть в нашей базе данных и что он использовал Lyft, мы также знаем, что его поездка была в июле 2018 года и он заплатил от 10 до 20 долларов. Для решения этой проблемы были предложены расширения k-анонимности, такие как l-разнообразие и t-близость, но они все еще сохраняют некоторые уязвимости.

Дифференциальная конфиденциальность

Дифференциальная конфиденциальность - это математическое определение, а не метод анонимизации данных, но оно дает нам самые надежные гарантии конфиденциальности, доступные прямо сейчас. Это формализация идеи о том, что запрос не должен раскрывать, находится ли человек в наборе данных, и он гарантирует, что вероятность того, что запрос или преобразование даст определенный результат, почти одинакова, независимо от того, находится ли человек в наборе данных или нет. . Общая идея заключается в том, что если ваши личные данные не влияют на результат, вы не теряете никакой конфиденциальности, будучи включенными в этот набор данных. Ярким примером этого в реальном мире является использование дифференциальной конфиденциальности для Переписи населения США 2020 года.

Существует много различных способов достижения дифференциальной конфиденциальности, и большинство из них включают некоторую рандомизацию или шум, который используется для маскировки исходных данных. Одним из самых простых является понятие рандомизированный ответ. Если на вопрос да / нет есть деликатный ответ, то человек, которому задают вопрос, подбрасывает монетку. Если доходит орел, человек должен ответить правдиво. Если выпадет решка, человек должен дать случайный ответ. Они снова подбрасывают монету и отвечают да, если выпадает решка, и нет, если выпадает решка. Таким образом, человек, которому задают вопрос, сохраняет некоторое правдоподобное отрицание своего ответа на вопрос. Если этот вопрос задают большому количеству людей, мы можем рассчитать приблизительную долю людей, ответивших да и нет, потому что нам известны соответствующие вероятности. И эта цифра становится более точной с увеличением числа людей в наборе данных.

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

Существует множество вариантов использования дифференциальной конфиденциальности в машинном обучении. Шум может быть добавлен к входу или выходу модели, или некоторая рандомизация может быть введена на этапах обучения модели. И это не ограничивается простыми моделями: глубокие нейронные сети также можно обучать дифференциально частным способом, не оказывая большого влияния на производительность модели.

«Наш опыт показывает, что защита конфиденциальности для глубоких нейронных сетей может быть достигнута при умеренных затратах на сложность программного обеспечения, эффективность обучения и качество модели»

Https://arxiv.org/pdf/1607.00133.pdf

Проект PATE использует интересный подход: тренировочные данные разделяются на несколько отдельных моделей, и прогнозы этих учителей комбинируются с добавлением некоторого шума. Затем ярлыки из моделей учителя используются вместе с некоторыми аналогичными немаркированными общедоступными данными для обучения модели ученик. Прогнозы модели студента могут быть опубликованы, но при этом сохраняется различная конфиденциальность исходных данных.

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

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

«Не исключено, что методы дифференциальной конфиденциальности действительно могут сделать вашу модель более общей. Потому что, по сути, когда модели запоминают свои обучающие данные, это может быть связано с переобучением. Таким образом, введение всего этого шума может помочь итоговой модели увести вас дальше от переобучения, и вы получите более общую модель ».

Https://www.oreilly.com/ideas/how-privacy-preserving-techniques-can-lead-to-more-robust-machine-learning-models

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

Как анонимность вписывается в процесс построения модели машинного обучения?

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

Заключение

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

Предыдущие статьи Concur Labs о конфиденциальности данных можно найти здесь:

Когда масштабы конфиденциальности: интеллектуальный дизайн продукта в соответствии с Общими правилами защиты данных

Продукты данных в соответствии с GDPR и конфиденциальность по дизайну: от настоящего момента к следующему

Дизайн продукта с учетом конфиденциальности

Изучение конфиденциальности в геолокационных службах