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

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

Этим летом у нас было три замечательных стажёра-исследователя: Клара МакКрири и Сэм Шлейфер из Стэнфорда и Вирадж Прабху из Технологического института Джорджии. Стоит отметить, что Вирадж Прабху вернулся в исследовательский стажер! Они добились колоссального прогресса в исследованиях в трех основных областях: вложения в предметную область для определения сходства вопросов, формулировка декодера для медицинского диалога как классификационной задачи для обмена гибкостью для контроля и открытый набор медицинских диагнозов. Мы очень рады сообщить, что исследования их стажировок были рецензированы и представлены на семинаре Машинное обучение NeurIPS 2019 для здравоохранения (ML4H). Хотя вы можете прочитать их работы по приведенным выше ссылкам, то, что следует за этим сообщением в блоге, представляет собой отредактированную короткую версию их работы, написанную их собственными словами.

Если вы заинтересованы в том, чтобы помочь нам в выполнении нашей миссии, подайте заявку на стажировку или на любую из наших других должностей, отправив свое резюме по адресу [email protected].

1. Для поиска похожих медицинских вопросов важны домены

Клара МакКрири, Стэнфорд

TL; DR: задача определения, являются ли данная пара медицинских вопросов похожими или нет, тесно связана с задачей получения ответов на медицинские вопросы. Фактически, эти задачи могут быть более тесно связаны (с точки зрения низкоуровневых функций), чем задачи схожести вопросов в разных областях. Мы показываем, как задача классификации того, является ли утверждение адекватным ответом на медицинский вопрос (ответ на медицинский вопрос), хорошо работает для переноса обучения к задаче на подобие медицинских вопросов. Наша работа подчеркивает важность выбора как правильной задачи предварительного обучения, так и области, из которой поступают эти данные предварительного обучения. Полный текст

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

Проблема

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

Сходство медицинских вопросов нас волнует по нескольким причинам:

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

Проблема схожести вопросов интересует многих, выходящих за рамки медицины. Форум с ответами на вопросы Quora - один из многих предприятий, которые постоянно пытаются улучшить свои алгоритмы обнаружения и объединения повторяющихся вопросов. Фактически, общий тест на понимание языка, тест GLUE, включает в себя задачу под названием Quora Question Pairs (QQP), в которой модель должна помечать пары вопросов как похожие или разные. Уникальность этой проблемы в области медицины состоит в том, что опыт в предметной области необходим для того, чтобы адекватно обозначить медицинские вопросы как похожие или нет, а большинство общеязыковых моделей не имеют такой компетенции. Кроме того, поскольку не существует больших размеченных наборов данных с похожими медицинскими вопросами, неясно, как лучше всего встроить эти знания в модель машинного обучения.

Трансферное обучение

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

Хотя создание набора данных пар медицинских вопросов, достаточно большого для обучения нейронной сети с нуля (QQP использует 363000 пар вопросов), является дорогостоящим и неосуществимым, более управляемым является создание небольшого набора данных (3000 пар вопросов) для точной настройки. и тестирование наших моделей. Мы начали с 1500 бесплатных вопросов, задаваемых пациентами от HealthTap, чтобы гарантировать, что вопросы отражают то, что реальные пациенты задают в Интернете. Затем для каждого вопроса медицинские работники сгенерировали две пары вопросов: одну положительную и одну отрицательную. Положительная пара использовала другой язык, чтобы задать аналогичный вопрос, тогда как отрицательная пара использовала аналогичный язык, чтобы задать другой вопрос.

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

Кроме того, хотя в Интернете нет больших наборов медицинских пар вопросов, есть много медицинских пар вопросов-ответов с таких веб-сайтов, как HealthTap [1] [2] . Некоторые из этих данных помечены категорией, к которой принадлежит вопрос. Мы использовали эти данные для создания еще трех предтренировочных задач в области медицины:

  1. Пары вопрос-ответ (QA): Здесь положительными были вопросы и истинный ответ, который доктор предоставил онлайн. Отрицательными были вопросы и письменный ответ врача на другой вопрос.
  2. Пары ответ-ответ (AA): Положительные были полными медицинскими ответами. Отрицательные - это первые 2 предложения из одного медицинского ответа, за которыми следуют последние несколько предложений другого ответа.
  3. Пары вопрос-категория (QC): положительными были медицинские вопросы и их правильная категориальная метка. Отрицательными были медицинские вопросы и случайный неверный категориальный ярлык.

Для каждого набора данных перед обучением мы сначала обучили модель задаче предварительного обучения, а затем настроили ее на нашем наборе данных пар медицинских вопросов. Мы провели эти эксперименты с использованием модели BERT (результаты приведены ниже) и воспроизвели их с помощью XLNet.

Как показано на графике (ось X: количество обучающих примеров, использованных в финальной задаче, а именно: сходство медицинских вопросов), мы обнаружили, что наилучшей предтренировочной задачей была задача Вопрос-ответ (QA ) соответствие. Это подчеркивает важность как задачи предварительного обучения, так и области, из которой исходят эти данные предварительного обучения. Например, несмотря на то, что данные AA и QC имеют медицинское значение, предварительное обучение на данных QQP (которое является общим) превосходит их оба. Однако предварительное обучение на данных QA (также имеющих медицинское значение) превосходит QQP. Кроме того, мы также наблюдаем, что это превосходство усиливается для небольших тренировочных наборов заключительного задания. Чтобы глубже понять причину этого улучшения, мы рассмотрели ошибки, допущенные каждой моделью. Наш качественный анализ ошибок показывает, как некоторые медицинские синонимы, которые вызывали ложноотрицательные результаты в модели Quora (например, гипертония / высокое кровяное давление и менструальный цикл / период), были изучены моделями, предварительно обученными на наборах медицинских данных. , который ответил на эти вопросы правильно. Мы приводим много таких примеров в нашей статье. Благодаря нашему анализу ошибок мы получили представление о типах ошибок, которые совершают наши лучшие модели.

2. Классификация как декодер: торговля гибкостью для контроля в медицинском диалоге

Сэм Шлейфер, Стэнфорд

Летом я работал с Манишем Чаблани над автоматизацией медицинских разговоров с помощью ИИ. Шаг в этом направлении - предложить врачам ответы, которые они могут использовать или вносить в медицинские беседы с пользователями телемедицины. Предлагаемый ответ - сложная задача, потому что модель должна быть способна обрабатывать широкий спектр сценариев диалога первичной медико-санитарной помощи, включая ответы вежливости (например. «Скоро станет лучше»), задавая пациентам соответствующие вопросы об их симптомах. чтобы сузить область диагностики заболеваний и дать советы по устранению симптомов. Вот некоторые примеры:

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

Наш подход: классификация как декодер

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

Дискриминационный подход имеет несколько ключевых преимуществ: во-первых, врачи могут со временем редактировать и улучшать эти типовые ответы без переобучения модели. Например, если бы мы хотели переключиться с рекомендации «пользователям спать 6–8 часов в сутки» на «рекомендации 7–9 часов», мы могли бы просто обновить сообщение, связанное с выходным классом, и дискриминативная модель немедленно сгенерировала бы новый совет в тот же разговорный контекст, без переобучения.

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

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

Эксперименты

Проблема кластеризации ответов является неконтролируемой и может быть оценена только как часть проблемы предложения сквозного ответа. Точнее говоря, спрашивая медицинских экспертов, лучше ли ответы, генерируемые одной системой, чем ответы, генерируемые другой системой. К счастью, результаты были очень обнадеживающими: для случайной выборки из 775 пар разговоров и ответов только 12% ответов нашего дискриминационного подхода хуже, чем реакция врача в том же разговоре, по сравнению с 18% для генеративной модели.

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

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

3. Открытый медицинский диагноз.

Вирадж Удай Прабху, Технологический институт Джорджии

В США все большее число взрослых (около трети!) [3] [4] используют Интернет для диагностики проблем со здоровьем, и онлайн-средства проверки симптомов все чаще становятся частью этого процесса. Эти инструменты основаны на диагностических моделях, подобных системам поддержки принятия клинических решений, и помогают пациентам ответить на ряд вопросов об их симптомах и, наконец, поставить диагноз. Такие услуги способны произвести революцию в сфере услуг телемедицины, ориентированной на пациентов, которые могут перейти от текущих основанных на правилах протоколов для горячих линий медсестер к более точным и масштабируемым системам искусственного интеллекта.

Однако существующие модели диагностики делают предположение закрытого, т.е. совокупность болезней ограничена теми, которые модель диагностики может понять. На практике невозможно получить достаточные обучающие данные для каждого состояния человека (в МКБ-10 существует более 14 025 кодов диагнозов и 2000 семейств болезней), поэтому весьма вероятно, что модель диагностики после развертывания обнаружит случаи соответствующие ранее невидимым условиям. Чтобы решить эту проблему, поставщики услуг телездравоохранения часто ограничивают свое покрытие определенной областью обслуживания. Однако определение того, попадает ли пациент в рамки диагностики на основе симптомов, часто требует дополнительных моделей или человеческого опыта, что приводит к более высоким затратам и само по себе подвержено ошибкам. Кроме того, каждый ошибочный диагноз - это упущенная возможность для улучшения лечения и даже может иметь критическое значение для безопасности.

Рассмотрим приведенный выше пример, который иллюстрирует типичный рабочий процесс проверки симптомов. Для данного списка обнаруженных пользователями результатов, которые включают ригидность мышц, боль в челюсти и мышечные спазмы, закрытая диагностическая модель предсказывает, что хлыстовая травма является наиболее вероятным состоянием, за которым следует скарлатина и дивертикулит. В этом случае основным заболеванием на самом деле является столбняк, диагностировать который диагностическая модель никогда не была обучена. Такой ошибочный диагноз является артефактом «принудительного выбора» таких замкнутых моделей. Кроме того, в этом случае модель представляет собой глубокую нейронную сеть - хотя такие модели, как правило, достигают высочайшего уровня производительности при выполнении нескольких задач, они часто очень самоуверенны в своих прогнозах, что подтверждается высокой степенью достоверности (95,3%). в этом случае назначается неверный прогноз. Оба эти ограничения создают серьезные проблемы для развертывания таких диагностических моделей.

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

Еще одна важная проблема при построении диагностических моделей - это доступ к данным. Медицинские данные обычно хранятся в больничных репозиториях и по соображениям конфиденциальности часто не могут быть взяты за пределы исходного сайта для объединения с другими источниками. Это затрудняет обучение диагностических моделей (особенно нейронных сетей с неэффективным использованием данных). Кроме того, на сайтах здравоохранения часто есть данные, которые дополняют друг друга - например, в больницах на восточном побережье США, вероятно, будет гораздо больше обращений к пациентам с переохлаждением, чем на западном. Чтобы разрабатывать модели с высокой точностью и охватом, нам нужны механизмы для объединения моделей, обученных на разных сайтах. С этой целью мы представляем задачу Ensembled Open Set Diagnosis, в которой мы объединяем модели, обученные на источниках данных, которые не могут быть совместно использованы, и оцениваем их эффективность открытой диагностики.

Конкретно мы изучаем две задачи, которые проиллюстрированы ниже. В Задаче 1 (Диагностика открытого набора) наша цель - изучить модель для диагностики избранного набора заболеваний (назовите это Lselect) и отклонить невидимые условия (назовите это Lunknown), то есть объявить «Не знаю». При желании нам предоставляется доступ к данным наблюдений для подмножества условий Lextra, которые не пересекаются с Lselect и которые мы можем использовать для моделирования невидимых условий. В задаче 2 (диагностика ансамблевого открытого набора) цель и настройка оценки идентичны задаче 1; однако данные обучения теперь распределены по нескольким сайтам здравоохранения.

Для нашего набора данных мы моделируем клинические случаи, используя алгоритм моделирования, предложенный в этой предыдущей работе от Curai, и создаем разбиения для Lselect, Lextra и Lunknown. Мы измеряем производительность как диагностическую точность, соответствующую заданной частоте ложных срабатываний (т. Е. ошибочной диагностике неизвестного состояния как известного). Наша цель - достичь высокой точности при низком уровне ложных срабатываний. Мы оцениваем большой и сложный набор тестов из более чем 200 тысяч случаев, соответствующих заболеваниям в Lselect и Lunknown.

Мы экспериментируем с тремя различными подходами к обучению: i) простая базовая линия кросс-энтропии (CE), где мы пороговываем уверенность последнего слоя softmax для предсказания «Не знаю»; ii) обучение с дополнительным классом фона (BG) как универсальный метод для невидимых условий, дополнительный класс обучается на примерах из Lextra, и iii) современный метод обучения с открытым набором, называемый Entropic Open-Set (EOS) loss, который тренируется с регулярной кросс-энтропией для visible (Lselect) указывает на данные, а в противном случае поощряет высокую энтропию (для Lextra). Для обучающих групп в Задаче 2 мы экспериментируем как с наивной стратегией объединения (прогнозирование класса с максимальной достоверностью), так и с выученной стратегией, при которой мы обучаем дополнительную сеть для объединения результаты отдельных экспертных моделей, которые обучаются на разных сайтах. Все наши модели параметризованы как двухслойные нейронные сети, и мы представляем случаи с помощью быстрого кодирования с использованием глобального словаря симптомов.

Наши результаты приведены выше. Что касается Задачи 1, мы находим, что подход BG явно превосходит EOS. В Задаче 2 с помощью наивного ансамбля мы обнаруживаем, что сохраняется та же тенденция. Однако при изучении ансамбля EOS превосходит BG (здесь не показано). В Задаче 2 мы также сообщаем о соответствующей производительности метода в Задаче 1 как о верхней границе оракула, с разрывом, представляющим ошибку, вызванную распределенным обучением. По всем параметрам подходы, моделирующие невидимые условия (BG и EOS) последовательно, превосходят базовый уровень, который этого не делает (CE). Кроме того, мы обнаруживаем, что подходы с открытой установкой не работают хуже при закрытой диагностике (то есть, когда во время тестирования возникают только наблюдаемые условия). Для дополнительных экспериментов, результатов и анализа, пожалуйста, прочтите нашу статью здесь.

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

Наконец, я хотел бы поблагодарить всех моих соавторов по этой работе (Аниту, Джеффа, Намита, Маниша, Дэвида и Ксавьера) за их руководство в этом проекте и всех в Curai за потрясающий опыт стажировки!