назад
28 ноября

Как натренировать ИИ выявлять побочные эффекты лекарств по постам в соцсетях

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

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

Что такое обработка текстов? Это очень важная и актуальная сейчас тема, связанная с разработкой моделей искусственного интеллекта для автоматического анализа большого объема текстов. 

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

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

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

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

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

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

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

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

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

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

Как обучить искусственный интеллект извлекать информацию из текстов?

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

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

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

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

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

Причины: 

  • большая часть названий лекарств упоминается в рекламе или в сообщениях ботов;

  • многие названия лекарств с неоднозначны;

  • дискурс в соцсетях включает множество тем, имеющих отдаленное отношение к обсуждаемому вопросу.

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

  • Помогает, но с тех пор, как я начала лечение, у меня стали активно выпадать волосы;

  • Я не знаю, был ли препарат хорошей идеей #бессонница;

  • Уложил меня спать, а потом я не спал, а нервничал.

К негативным примерам можно отнести твиты, не содержащие личного опыта автора, с перечислением побочных лекарств из аннотации, с описанием негативной реакции на препарат в сочетании с другим лекарством или на просроченное лекарство, а также спам. 

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

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

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

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

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

Методы искусственного интеллекта могут очень много, если есть наборы данных. В данном случае такие наборы данных составляет тройки: есть сущность из текста — например, головная боль, — есть позитивный концепт, который врач посчитал правильным для связывания этой сущности, и все остальные, отрицательные, нерелевантные примеры. Так, очевидно, что головокружение не очень релевантно раку легких. Значит, такие термины, как «рак легких» в этом примере составляют отрицательный словарь.

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

Это быстро, эффективно и работает именно так, как нужно — для анализа новой темы достаточно создать новый словарь.

Какие выводы можно сделать: 

  • комментарии в соцсетях действительно содержит новую информацию о свойствах лекарства;

  • анализ комментариев подтверждает наличие новых связей между лекарством и заболеванием, не упомянутыми в инструкции по применению лекарства;

  • активно используются методы обработки естественного языка и алгоритмы машинного обучения;

  • для обучения моделей требуются размеченные данные и новые текстовые выборки без шума в данных.

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



  • #Медицина