Мне нужны данные, но я не могу получить к ним доступ из соображений конфиденциальности. Знакомый? Как мы можем решать реальные гуманитарные проблемы (скажем, диабет, болезнь Альцгеймера или рак), если доступ к таким реальным наборам данных ограничен? Сколько раз мы сталкивались с блокпостами — упс, это «частные» данные — без ограничений. Конечно, это можно уважать, но должен быть способ.

Наивным решением является анонимизация или редактирование конфиденциальных данных. К сожалению, это не работает, потому что теперь хорошо известно, что анонимизированные наборы данных можно быстро деанонимизировать. Вспомните знаменитый пример Netflix, где анонимизированные матрицы пользовательского рейтинга были быстро деанонимизированы с помощью того, что теперь известно как атаки на привязку данных, то есть злоумышленник, который знает немного дополнительной информации из другой базы данных (в данном случае IMDB), может быстро восстановить конфиденциальная информация. Это то, что ученые-компьютерщики Нараянан и Шматиков показали в своей статье об атаках статистической деанонимизации, которые можно было бы обобщить на гораздо более широкий класс атак, выходящих далеко за рамки простой корреляции между данными.

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

Вот как и почему:

1. Помните указатели? — где адрес памяти для переменной выставляется указателем, а не самой переменной. Эта концепция расширена для создания тензорного указателя, поскольку тензоры являются базовыми примитивами в средах глубокого обучения (обходной путь: кстати, слово тензор знакомо большинству инженеров, инженеров-строителей и инженеров-электриков). , особенно — книга Г. Кронса 1931 года: Тензорный анализ сетей. Для более мягкого введения читайте это) Таким образом, данные никогда не покидали бы помещение, и вместо этого можно было бы выполнять операции с этими тензорными указателями. фактических данных. Это позволяет проводить скрытое исследование данных, включая проектирование признаков без явного раскрытия конфиденциальных данных, то есть мы можем сосредоточиться на том, что вызывает определенное заболевание, не зная и не заботясь о том, кто болеет этим заболеванием.

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

3. Хорошо. Некоторая степень конфиденциальности данных — но этого все же недостаточно — как насчет вычислений, которые выполняются с данными (которые могут быть раскрыты), как насчет моделей как таковых (те параметры, которые вы так мучительно тренировали, могут быть украдены! Или изменено), и что происходит, когда есть несколько владельцев как моделей, так и данных! Да, действительный. Итак, добро пожаловать в мир шифрования. Вот только Rijndeal (он же AES — Advanced Encryption Standard) в данном случае не сработает. Почему? — потому что службе, работающей в облаке или где-либо еще, потребуется доступ к ключу (уязвимость системы безопасности) для вычислений с этими данными. Итак, что нужно, так это возможность вычислений с зашифрованными данными — и это то, что делает гомоморфное шифрование. Впервые задуманный двумя из команды RSA (Ривест, Адельман в 1978 году), он впервые был обнаружен в 2009 году Крейгом Джентри с использованием криптографии на основе решетки. Таким образом, в сценарии с одним владельцем ненадежная сторона может запускать, вычислять или обучать модель с зашифрованными данными. Здорово. Как насчет многопартийного сценария? - совместная собственность!

4. Войдите в безопасную многостороннюю связь (MPC); отлично читается классика Гольдрейха — глава 7, которая начинается с случая честного большинства. Проще говоря, MPC позволяет нескольким сторонам совместно выполнять вычисления с общими, но с частными данными. Например, исследователи из Бостонского университета использовали безопасный MPC для анализа гендерного разрыва в заработной плате в Бостоне, используя данные о заработной плате, предоставленные компаниями в районе Бостона. Подробнее здесь.

Так что, действительно, слава команде Openmined, которая внедряет эти мощные концепции в стандартные библиотеки машинного обучения (Pytorch и Tensorflow), чтобы расширить и повысить уровень применения этих платформ для решения реальных задач. Подробнее об их работе и блоге здесь.