Авторы: Гунит Кхер, Индерджит Сингх Бхатти, Нидхи Кантекар, Сиддхарт Горадия, Свагата Датта

Мотивация и предыстория

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

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

Постановка задачи

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

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

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

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

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

Конвейер обработки и анализа данных

Сбор данных

Мы начали со сбора соответствующих данных с публичных форумов, в частности, из сабреддитов. Сабреддиты — это тематические онлайн-дискуссионные форумы, где пользователи могут публиковать контент и взаимодействовать друг с другом. В этом проекте мы собрали сообщения (~ 600 000), сделанные в сабреддитах, которые были:

  1. Связано с психическим здоровьем. Существует несколько субреддитов, посвященных темам психического здоровья, например r/тревога, r/депрессия, r/SuicideWatch и другие соответствующие субреддиты. Данные из этих субреддитов были помечены как «Правда» как имеющие отношение к психическому здоровью.
  2. Не связанные с психическим здоровьем. Точно так же существует множество сабреддитов, посвященных другим темам, не содержащим контента, касающегося психического здоровья, например r/Sports, r/Technology, r/LegalAdvice и т. д. данным из этих субреддитов был присвоен ярлык «False».

Интеграция данных

Поскольку мы извлекали данные из нескольких сабреддитов, используя оболочку, созданную на основе PushShift API, чтобы обойти ограничения API для извлечения больших объемов данных, мы получили большое количество файлов JSON. На этом этапе мы объединили эти файлы и сформировали наш окончательный корпус в файле CSV. Хотя в CSV были стандартные данные, которые вы ожидаете от данных публикации (user_id, post_time, post_url и т. д.), наш анализ был сосредоточен на трех полях: текстовом содержании, сабреддите и чутье.

Исследование данных

После сбора данных мы провели исследовательский анализ данных (EDA), чтобы лучше понять данные. Это включало определение горячих ключевых слов в сообщениях с помощью облаков слов и методов частотного распределения. Далее мы сосредоточились на понимании "изюминок" в наших данных и на том, как мы можем использовать их для достижения наших целей. Flairs в Reddit позволяет пользователям отмечать сообщения, сделанные с помощью некоторых предопределенных тегов, к которым относится их сообщение. Эти таланты определены для каждого субреддита.

Очистка данных

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

Анализ данных

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

Продукт данных

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

Методология:

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

Двоичная классификация – трансферное обучение:

В качестве отправной точки для нашего анализа нам сначала нужно было разделить посты на два класса, то есть связанные/не связанные с психическим здоровьем. Для этого мы построили бинарный классификатор. Для этой цели мы выбрали языковую модель преобразователя XLM-Roberta. Этот выбор обусловлен тем фактом, что мы ожидаем, что сообщения в социальных сетях будут содержать символы, отличные от ASCII (смайлики), и, поскольку Роберта использует токенизаторы BPE, никакие символы данных не отбрасываются, поскольку они обрабатываются как байты. Во-вторых, XLM-Roberta обучалась на многоязычных данных. Мы можем ожидать следы неанглоязычного языка в некоторых сообщениях в социальных сетях, и эта модель может хорошо работать для понимания контекста.

XLM-Roberta предварительно обучен на 2,5 ТБ точек данных, содержащих 100 языков, в режиме самоконтроля. Для нашего варианта использования мы точно настроили базовую модель посредством трансферного обучения с использованием 460 тысяч точек обучающих данных, извлеченных и токенизированных на этапе сбора данных, для обучения классификатора, который предсказывает, связан ли данный текст с психическим здоровьем или нет. Кроме того, мы определили сообщения, которые требовали срочной консультационной поддержки, проанализировав чутье в данных, например, для способности, такие как самоповреждение, самоубийственные мысли и т. д., и использовали их для тонкой настройки другой модели, которая дает нам баллы, указывающие на срочность потребности в консультировании.

Многоклассовая классификация — активное обучение:

Мы полагали, что чутье в наших данных может быть очень полезным для нашего анализа. Однако, поскольку в Reddit необязательно назначать флейры сообщениям, более половины наших данных не содержали флейров. Кроме того, поскольку наши данные были получены из многих субреддитов, каждый со своими особенностями, наша EDA показала, что существует около 400 уникальных особенностей, однако многие из них означают одно и то же, например, для. были таланты, такие как «Рэнт», «Вент», «Вентиляция» и т. д., и все их можно было бы рассмотреть в одном обобщенном ведре «Обсуждение». Мы разделили все таланты на 7 общих сегментов, таких как «Здоровье», «Обсуждение», «Работа_Жизнь» и т. д.

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

Тематическое моделирование — обучение без учителя:

Мы использовали обучение без учителя, в частности Скрытое распределение Дирихле (LDA), для тематического моделирования для выявления скрытых тем в наших данных. LDA — это вероятностная модель, которая предполагает, что каждый документ в корпусе представляет собой смесь тем, а каждая тема — это распределение по словам.

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

Оценка

Теперь давайте перейдем к хорошей части, результатам. Как только мы обучили наши модели, пришло время сделать вывод о результатах. Благодаря мощным моделям преобразования наши точно настроенные модели Roberta при тестировании на наборе данных с 115 000 точек данных показали точность 97,4 % при присвоении постам правильных классов. Точно так же классификатор срочности, который был точно настроен с использованием 16 000 точек данных в обучающем наборе, при тестировании на 4 000 тестовых выборках показал точность 97,08%.

Далее по конвейеру моделей наша модель LDA извлекла 10 тем из нашего корпуса, они состояли из вероятностных распределений слов, составляющих эти темы. После некоторого ручного анализа слов в этих темах мы смогли пометить каждую тему. Итак, наша тематическая модель включала такие темы, как «Межличностные отношения и тревога», «образование/работа или финансовый стресс», «тревога и панические атаки» и т. д.

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

Продукт данных

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

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

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

Извлеченные уроки

В ходе создания этого решения мы узнали несколько новых навыков:

  1. Сбор данных может быть сложной задачей: сбор соответствующих данных с публичных форумов может занимать много времени и быть сложным из-за объема данных и потенциального шума. Чтобы противостоять этим проблемам, мы научились реализовывать оболочку API PushShift, чтобы обойти ограничение количества записей на ответ при извлечении данных в большом диапазоне дат.
  2. Обучение без учителя может выявить скрытые закономерности: тематическое моделирование LDA было эффективным методом обучения без учителя для выявления закономерностей и скрытых тем в данных. Это послужило мощным инструментом для добавления идей, которые мы стремились донести в рамках нашего проекта.
  3. Модели-трансформеры невероятно эффективны: хотя обучение больших моделей, таких как Roberta, для точной настройки в соответствии с вашим вариантом использования может занять много времени и больших вычислительных ресурсов, их производительность полностью оправдывает затраченные усилия. Кроме того, существует несколько фреймворков, таких как pytorch Lightning и Huggingface Acceleration, которые могут ускорить обучение и использовать GPU и TPU.
  4. Активное обучение: недостаточно размеченных данных? Активное обучение является ключом. Хотя это требует значительного ручного вмешательства, после того, как вы создадите конвейер для тегирования, обучения и тестирования, он может оказаться мощным инструментом и намного лучше, чем маркировать все данные вручную.
  5. Развертывание моделей машинного обучения. Мы научились контейнеризовать серверную часть, содержащую модели машинного обучения. Мы использовали GCP и развернули контейнеры без сервера. Далее мы узнали, как удобным способом отправить большие модели, такие как наши доработанные классификаторы Roberta, в хаб моделей huggingface и поделиться нашей моделью с другими членами сообщества huggingface.

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

Сводка

Проект Wellness Watch был направлен на расширение охвата консультированием с использованием методов машинного обучения для обнаружения и извлечения информации из сообщений в социальных сетях, связанных с психическим здоровьем. Основной мотивацией проекта было решение проблемы стигматизации в связи с психическим здоровьем, когда людям может быть неудобно обращаться за консультационной поддержкой. Мы собрали соответствующие данные из Reddit, провели исследовательский анализ данных для определения горячих ключевых слов, очистили данные с помощью методов NLP и выполнили тематическое моделирование с использованием LDA, чтобы понять закономерности и скрытые темы в данных.

Чтобы обнаружить посты, которые могут потребовать консультационной поддержки, мы использовали трансферное обучение для тонкой настройки предварительно обученной модели XLM-Roberta на 460 тыс. точек данных, извлеченных из различных соответствующих субреддитов, и достигли высокой точности 97% при тестировании на 115 тыс. тестовых выборках, что свидетельствует о его эффективности. в выявлении должностей, связанных с психическим здоровьем, а также в прогнозировании срочности потребности в консультировании. Затем мы реализовали активное обучение, используя модель логистической регрессии, чтобы классифицировать сообщения по 7 сегментам, которые мы определили, представляющим категории, в которые попадают эти сообщения. Использование этого способа классификации в 7 общих классов за счет использования чутья, связанного с сообщениями самих авторов, позволяет нам чтобы передать дальнейшие отличительные идеи специалистам в области здравоохранения, даже если мы сами не обладаем специальными знаниями в предметной области.

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

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