Как защитить конфиденциальность при обработке медицинского текста.

В Nedap мы разрабатываем электронные медицинские карты (EHR), чтобы упростить и улучшить медицинское обслуживание. Таким образом, мы регулярно обрабатываем большие объемы конфиденциальных медицинских данных. У этих данных есть много возможностей для улучшения лечения и проведения исследований, но в то же время нам необходимо обеспечить защиту конфиденциальности пациента.

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

В этом сообщении блога мы сравниваем три метода обработки естественного языка (NLP) для деидентификации. Мы смотрим как на эффективность (то есть, насколько хорошо он обнаруживает PHI), так и на эффективность (то есть, насколько быстро) метода. Мы публикуем весь код для обучения, оценки и использования методов деидентификации в нашем репозитории GitHub. Для более подробной информации вы также можете заглянуть в нашу газету.

Подходы к деидентификации

Деидентификация часто оформляется как проблема распознавания именованных объектов (NER), когда типы объектов являются категориями PHI, которые мы хотим замаскировать. Для решения этой проблемы обычно применяют три техники НЛП:

  1. Извлечение на основе правил. В системе, основанной на правилах, эксперты в предметной области составляют список эвристик для определения PHI. Например, имена можно найти, определив, предшествует ли слову заголовок (например, Dr. <potential_name>). Когда контекст слова не дает таких сильных сигналов, можно использовать списки поиска (например, список наиболее распространенных имен / фамилий, названий улиц и названий организаций). Нечеткое сопоставление строк может помочь учесть варианты написания. Более структурированная PHI, такая как даты, адреса электронной почты и номера телефонов, идентифицируется с помощью сопоставления шаблонов (регулярных выражений). Системы, основанные на правилах, часто являются сильной базой и могут быть полезны на практике благодаря своей высокой точности и прозрачности. Однако возможность отзыва часто ограничена, поскольку сложно создать исчерпывающие справочные списки и предвидеть все возможные варианты форматирования и написания PHI.
  2. Машинное обучение на основе функций. Альтернативой правилам, созданным вручную, являются методы присвоения меток последовательностям. Эти системы кодируют каждый токен и окружающие его токены как набор функций и позволяют модели машинного обучения, такой как условное случайное поле (CRF), назначать метки для каждого токена, указывающие на наличие PHI. Примеры функций - орфографические (например, token is capitalized или token is a digit) и лингвистические (например, тег части речи токена). Качество метода во многом зависит от того, насколько хорошо разработан набор функций. Как мы увидим ниже, эти системы дешевы во время обучения и вывода и дают хорошие результаты.
  3. Нейронные методы. Современные результаты NER достигаются с помощью архитектур маркировки нейронных последовательностей, таких как BiLSTM-CRF или трансформаторы. Помимо использования более сложной модели, они заменяют созданные вручную функции (часто предварительно обученными) встраиваниями слов, которые лучше отражают лингвистические свойства слова. Однако эти методы значительно дороже во время обучения и вывода, чем упомянутые выше подходы.

Ниже мы собираемся реализовать и сравнить три подхода. Чтобы получить более подробную информацию о методах, я рекомендую прочитать главу 18 в Обработка речи и языка. Даниэль Джурафски и Джеймс Х. Мартин. 2019 (ссылка).

Данные

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

Мы создали наш набор данных следующим образом. Из нашей базы данных EHR мы отобрали 1260 документов с общим количеством ~ 450 000 токенов. Затем мы аннотировали 16 типов PHI (например, имя, инициалы, возраст, профессию). Чтобы гарантировать, что ни одна PHI не будет упущена, у нас было два аннотатора, читающих и аннотирующих каждый документ параллельно и независимо. На этапе обзора мы проверили и объединили две аннотации. На процесс аннотации ушло около 80 часов и 20 часов просмотра, то есть 12,6 документа в час - это ясно показывает, что деидентификация вручную в больших масштабах невозможна. Наконец, мы автоматически заменили каждую PHI искусственной, но реалистичной альтернативой перед дальнейшим использованием данных (процесс, известный как генерация суррогата).

В нашем аннотированном наборе данных в общей сложности около 17 000 экземпляров PHI из 16 категорий. На рисунке ниже показано, что распределение классов сильно искажено. Типы PHI, такие как имена и даты, встречаются чрезвычайно часто, в то время как другие типы, такие как номера социального страхования (SSN) и профессии, довольно редки. Это сложная задача для метода машинного обучения, поскольку его нужно обобщать на меньшем количестве примеров.

Реализация модели на Python

Мы реализуем три подхода к деидентификации следующим образом:

  1. Система, основанная на правилах. Отличная система, основанная на правилах для голландских электронных записей, - это DEDUCE. Он был разработан для медсестер и планов лечения в психиатрической лечебнице. Мы немного адаптируем метод к нашей схеме аннотаций и включаем поисковый список из 1200 институтов, распространенных в нашей области. DEDUCE доступен в виде пакета Python (код и статья Винсента Менгера).
  2. Функциональная CRF. Мы повторно внедряем основанную на токене CRF и функцию, установленную Liu et al. (2015) , которые достигли хороших результатов в тестах по деидентификации английского языка. В качестве реализации CRF мы используем привязку Python sklearn-crfsuite к CRFSuite с регуляризацией эластичной сети. Мы оптимизируем два коэффициента регуляризации норм L1 и L2 с помощью случайного поиска.
  3. BiLSTM-CRF. В качестве метода нейронной деидентификации мы реализуем BiLSTM-CRF с контекстными вложениями строк (Flair Embeddings), которые недавно предоставили самые современные результаты в NER. Мы объединяем предварительно обученные голландские вложения контекстных строк с голландскими вложениями fasttext. Мы устанавливаем гиперпараметры по умолчанию в Flair.

Все три метода имеют общую процедуру предварительной обработки: мы используем spaCy для сегментации предложений и токенизации. Для методов машинного обучения мы маркируем каждый токен в соответствии со схемой тегов BIO.

Для получения дополнительной информации вы можете взглянуть на наш код на GitHub: https://github.com/nedap/deidentify.

Полученные результаты

Чтобы оценить методы деидентификации, мы смотрим на точность, отзыв и F1 на уровне объекта (стандартный подход к оценке для систем NER). Мы разделяем наши наборы данных на наборы для обучения, проверки и тестирования в соотношении 60/20/20.

Эффективность: качество деидентификации

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

Можно сделать некоторые наблюдения:

  • Оба метода машинного обучения (CRF и BiLSTM-CRF) значительно превосходят основанную на правилах систему DEDUCE.
  • BiLSTM-CRF обеспечивает значительное улучшение отзыва на 10% по сравнению с традиционным методом CRF при сохранении точности.
  • Точность метода, основанного на правилах, довольно высока и составляет 0,81, что показывает, что многие правила хорошо разработаны. Однако, как мы увидим ниже, мы обнаружили, что списки поиска и сопоставление с образцом метода на основе правил не работают для PHI с большим разнообразием (например, названия организаций, даты, адреса).

Эффективность модели по тегу PHI для BiLSTM-CRF и DEDUCE

Теперь мы более подробно рассмотрим эффективность каждой категории PHI, чтобы лучше понять, какие типы PHI мы можем ожидать от метода автоматического деидентификации (см. Рисунок ниже).

Мы видим следующее:

  • Нейронный метод работает не хуже, чем метод, основанный на правилах, для всех категорий PHI.
  • Инициалы, идентификаторы и профессии труднее всего обнаружить даже при использовании метода машинного обучения. Есть две проблемы. Во-первых, инициалы и идентификаторы трудно отличить от сокращений и медицинских измерений. Во-вторых, категория PHI профессии имеет высокую вариативность (подумайте обо всех различных способах объяснения названия должности) и, следовательно, требует от машинного обучения большого количества данных по обучению.
  • Категория «Другая» PHI не может быть зафиксирована ни одним из подходов автоматического деидентификации. Это следует иметь в виду при использовании деидентифицированных записей в нисходящем направлении. Записи могут по-прежнему содержать информацию, которая может быть напрямую идентифицирующей (возможно, в сочетании с базовыми знаниями).

Влияние размера тренировочного набора

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

Удивительно, но мы обнаружили, что оба метода машинного обучения превосходят DEDUCE даже при таком небольшом объеме обучающих данных, как 10% данных (см. Рисунок ниже). Это говорит о том, что методы машинного обучения должны быть предпочтительнее, когда обучающие данные доступны или могут быть получены.

Эффективность

Наконец, мы посмотрим на эффективность вывода каждого метода [2]. Мы заметили, что BiLSTM-CRF до 6 раз медленнее, чем DEDUCE и CRF. Мы смогли обучить более дешевый вариант нейронного метода (BiLSTM-CRF fast), который использует меньший слой встраивания Flair с 1024 вместо 2048 скрытых единиц и без объединения. Это значительно сократило количество параметров модели с ~ 158M до ~ 20M, оказав лишь незначительное влияние на качество (F1 0,8999 против 0,8904).

Заключение

В этом сообщении в блоге мы сравнили три подхода НЛП к деидентификации и оценили их эффективность и действенность. Вкратце мы обнаружили следующее.

  • Методы, основанные на правилах, могут обеспечить надежную основу и дешевы в вычислительном отношении.
  • Методы машинного обучения (CRF и BiLSTM-CRF) предпочтительнее, когда доступны (даже небольшие) наборы обучающих данных.
  • Методам машинного обучения не хватает объяснимости / прозрачности методов, основанных на правилах, и они более дороги с вычислительной точки зрения.

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

Примечания

  • [1] Среди немногих доступных наборов данных по деидентификационному тестированию - корпуса на английском языке i2b2 / UTHealth и Nursing Notes.
  • [2] В нашей тестовой системе используется графический процессор GeForce RTX 2080 Ti и процессор Intel Xeon Gold 6126 с ~ 400 ГБ оперативной памяти.