Войти в почту

Добрый доктор Цукерберг: как социальные сети помогают медицине

Фото: pixabay.com Сергей Николенко – директор по науке Neuromation, научный сотрудник ПОМИ РАН Елена Тутубалина – научный сотрудник Neuromation, научный сотрудник КФУ Неблагоприятные реакции лекарственных средств в социальных сетях В наше время трудно найти человека без аккаунта хотя бы в одной социальной сети – а обычно нескольких. Ещё труднее найти человека, который ни разу в соцсети не заглядывал. Эта беспрецедентная популярность, невероятное число пользователей, пишущих и создающих страницы, значит, что в соцсетях содержится огромное количество информации практически на любую тему. Эти данные, конечно, не так хорошо структурированы, как научные статьи, однако в них кроется множество мнений реальных людей, часто о важных проблемах, и было бы странно не воспользоваться этим кладезем информации. Сегодня мы поговорим о том, как найти в соцсетях важнейшую медицинскую информацию; именно этому была посвящена недавняя работа исследователей компании Neuromation и научных сотрудников КФУ и ПОМИ РАН, опубликованная в журнале Journal of Biomedical Informatics. Здоровье – одна из главных тем в истории человечества; от Древнего Египта до наших дней медицина развивалась вместе с цивилизацией. Но до сих пор практически у всех лекарств, от шаманских трав до продуктов современных фармацевтических компаний, находятся побочные эффекты. Иногда их находят далеко не сразу: как известно, кокаин применялся как средство от кашля, в старые добрые времена его даже давали детям, а Coca-Cola перестала использовать свежие листья коки только в 1903 году. У современных препаратов побочные эффекты тоже есть (например, лунатическое обжорство, пристрастие к азартным играм или рост молочных желез у мужчин), но сегодня мы как минимум стараемся предупреждать о таких вещах заранее. Чтобы выявить побочные эффекты, фармацевтические компании проводят длительные и дорогостоящие клинические испытания. Чтобы лекарство признали безопасным и выпустили на рынок, порой нужны буквально годы. Конечно, тщательные исследования нужны, но у них есть и альтернативная стоимость: люди умирают от потенциально излечимых болезней, пока лекарство, которое могло бы их спасти, проходит клинические испытания. Но даже этот длительный процесс не может выявить все возможные побочные эффекты, или, как их сейчас обычно называют в научной литературе, неблагоприятные побочные реакции (adverse drug reactions, ADR): организм каждого человека уникален, и создать репрезентативную группу всех возможных состояний пациентов и взаимодействия всех лекарственных препаратов невозможно. Особенно когда человек принимает сразу несколько лекарств. И здесь как раз могут помочь социальные сети. Когда лекарство выходит на рынок, и люди начинают его принимать, они (к сожалению) могут испытывать побочные эффекты. Иногда совершенно непредсказуемые: если вы принимаете сразу три разных препарата, их взаимодействие, конечно же, вряд ли кто-то когда-то исследовал. Но когда побочные эффекты всё же происходят, люди начинают жаловаться на них в соцсетях! Было бы замечательно уметь собирать все эти сведения и использовать их. Кстати, побочные действия могут быть не только негативными. Иногда препарат, первоначально предназначенный для лечения одной болезни, оказывается действенным и против других, иногда на первый взгляд абсолютно не связанных. Оказалось, что кокаин – это больше, чем просто сироп от кашля, а виагра изначально предназначалась для лечения стенокардии (и не очень в этом преуспела, кстати). В этом и состояла наша задача: найти побочные реакции, благоприятные и не очень, на основе текстов пользователей в социальных сетях. Данные и постановка задачи Для нашего исследования мы собрали большую коллекцию твитов. В обработке естественных языков Твиттер давно стал одним из самых популярных источников данных: во-первых, тексты там настолько короткие, что можно смело предположить, что каждый твит посвящен только одной теме, а во-вторых, он открыт и позволяет использовать свои данные для научных исследований. Это, кстати, очень важно: проблемы обработки персональной информации сейчас часто выходят на первый план, особенно в такой деликатной сфере, как здравоохранение. Однако «взять и собрать тексты пользователей» – это далеко не вся история. Люди в Твиттере (да и любых других социальных сетях) редко пользуются медицинской терминологией. Честно говоря, если они вообще пишут настоящие названия препаратов – это уже счастье; все мы знаем, какими сложными могут быть названия лекарств и как легко их перепутать или написать неправильно. Поэтому нам недостаточно просто запустить поиск по ключевым словам; нам также придётся «перевести» текст, написанный на «языке социальных сетей» на «формальный медицинский язык». Например, нужно научиться понимать, что «не мог уснуть всю ночь» означает «бессонницу», а «как ножом режет» – «острую боль». Задача сопоставления повседневной речи и медицинской терминологии называется задачей нормализации медицинских концептов (medical concept normalization). Если мы решим эту задачу, мы сможем преодолеть разрыв между языком пользователей Твиттера и языком медицинских специалистов, а значит, сможем собрать данные о побочных реакциях разных лекарств с миллионов людей. Но как это сделать? Естественные языки и рекуррентные нейронные сети Ответ, как это часто бывает в последнее время в искусственном интеллекте, приходит со стороны нейронных сетей. В последние годы в самых разных задачах обработки естественных языков, от анализа тональности до машинного перевода и чат-ботов, лучшие решения получаются при помощи нейронных сетей, точнее говоря, рекуррентных нейронных сетей (recurrent neural networks, RNN). В отличие от других видов нейронных сетей, рекуррентные архитектуры предназначены для работы с данными в виде последовательностей заранее неизвестной длины. Они сохраняют и передают информацию от одного шага последовательности к следующему в своём скрытом состоянии. Язык – отличный пример последовательных данных: каждый текст – это последовательность… да не так уж важно, чего именно. Некоторые модели работают со словами, некоторые спускаются до уровня знаков, некоторые объединяют слова в словосочетания (биграммы), но в любом случае входные данные представляют собой дискретную последовательность. Мы не будем углубляться в детали работы рекуррентных нейронных сетей. Но давайте всё-таки покажем вам структуру сети, на которой мы в итоге остановились: В верхней левой части – двунаправленной рекуррентная нейронная сеть. Последовательность слов (которые кодируются специальными отдельно предобученными векторами чисел; это классический подход к представлению слов в современной обработке естественных языков) поступает на вход сети, которая «читает» её слева направо и справа налево, получая на выходе вектор признаков (чисел) для всего текста. Справа – прямоугольник с надписью «Softmax»; это стандартный последний слой для задач классификации: он превращает вектор полученных признаков отдельных классов в их вероятности. В нашем случае на выходе должны получаться вероятности медицинских терминов из некоторого словаря. До сих пор всё это была совершенно обычная структура современной рекуррентной нейронной сети. Интересная часть схемы находится внизу. Здесь мы извлекаем дополнительные семантические признаки, которые подаются в последний softmax-слой отдельно. Эти признаки получаются при помощи UMLS (Unified Medical Language System), базы знаний, которая синхронизирует термины и коды между докторами, фармацевтами, страховыми компаниями и другими участниками медицинского рынка. UMLS – весьма большая база знаний: в ней содержится более 11 миллионов терминов и 3,6 миллиона медицинских концептов. Помимо английского, UMLS также содержит словарные источники на более чем 24 других языках. Помогут ли эти признаки? И какие вообще получаются результаты? Давайте выясним. Наши результаты Начнём с того, что проиллюстрируем, как наша система на самом деле работает на практике: Модель получает на вход публикацию из соцсети (твит, как на картинке, или любой другой текст) и выдаёт набор стандартных медицинских терминов (концептов), в которых уже легко можно автоматически искать побочные реакции. В этом примере часть концептов относительно просты («паршивый сон» превращается в «проблемы со сном»), но некоторые, вроде «астении», уже труднее соотнести с оригиналом. Мы провели пятикратную перекрестную проверку (кросс-валидацию) нашей модели на общедоступном корпусе размеченных англоязычных отзывов пользователей о 12 широко распространённых лекарствах. Этот созданный в CSIRO корпус состоит из эталонных преобразований сообщений соцсетей и медицинских концептов. И вот какие получились оценки качества нормализации концептов: На этой гистограмме мы сравниваем нашу систему с тремя стандартными нейронными архитектурами. Не будем подробно углубляться в то, какие именно модели мы использовали для сравнения; просто упомянем, что свёрточные сети с одномерными свёртками – также очень популярный инструмент современной обработки естественного языка, и мы использовали архитектуры сетей из работы оксфордских учёных, опубликованной в 2016 году. А вот первый столбик, DNorm, стоит обсудить. Это предыдущий лучший результат для этой задачи, результат из эпохи до революции глубокого обучения. Эта модель была взята из статьи 2013 года, опубликованной исследователями Национального центра биотехнологической информации (National Center for Biotechnology Information, NCBI). Получается, что наша гистограмма отлично показывает, насколько радикально нейронные сети изменили ландшафт всего машинного обучения, и обработки естественных языков в том числе. Модель DNorm была создана всего 5 лет и использовала тогда самые лучшие эвристики, но сейчас уже безнадёжно устарела: даже относительно простые архитектуры нейронных сетей уверенно её обыгрывают, а предложенная нами модель делает всего 14,5% ошибок против 26,5% у DNorm, почти вдвое меньше! Давайте подведём итоги. Глубокое обучение для обработки естественных языков может позволить перевести эту область (по-английски её называют pharmacovigilance, автоматизированное слежение за информацией о фармацевтических препаратах) из научных экспериментов в повседневную фармацевтическую практику. Улучшая таким образом инструменты для мониторинга неблагоприятных побочных реакций, можно буквально спасти жизни тысяч людей во всём мире. Вот для чего нужны все эти цифры: конечно, вряд ли мы сможем прочитать текст и понять его на 100% точно, пока не создадим сильный искусственный интеллект, однако доля ошибок тоже очень важна. Когда мы делаем 25% ошибок, система остаётся теоретическим упражнением, но если сократить долю ошибок до 15%, затем до 10%, до 5%… рано или поздно выгоды превысят издержки. Благодаря быстрому и точному анализу текстовых данных о лекарствах, которые принимают люди, мы сможем помочь фармацевтическим компаниям снизить число неблагоприятных реакций производимых препаратов, вовремя вывести с рынка или снабдить нужными предупреждениями уже существующие препараты. Это ещё один пример того, как нейронные сети могут изменить нашу жизнь в лучшую сторону. Мы в компании Neuromation рады, что стали частью этого процесса, и надеемся возглавить его в том числе и в обработке естественных языков. В исследовании принимали участие научные сотрудники Казанского федерального университета (КФУ), НИЦ «Курчатовский институт», Первого МГМУ им. И.М. Сеченова, Санкт-Петербургского отделения Математического института им. В. А. Стеклова РАН (ПОМИ РАН) и Московского физико-технического института (МФТИ). Работа коллектива была поддержана грантом Российского научного фонда.

Добрый доктор Цукерберг: как социальные сети помогают медицине
© Инвест-Форсайт