Lockdown Home Project — Можем ли мы использовать НЛП, чтобы ответить на вопросы о Covid-19?

Kaggle недавно запустил вызов, чтобы найти ответы на некоторые из наиболее часто задаваемых научных вопросов о Covid-19. Приведенный набор данных содержит (на момент написания) 128 000 научных статей с 59 000 полными текстами о COVID-19, атипичной пневмонии и родственных коронавирусах. Призыв к действию — использовать ИИ для разработки инструментов, которые могут анализировать огромное количество текста, чтобы помочь медицинскому сообществу найти ответы на наиболее актуальные вопросы об этом вирусе.

Поскольку мы все застряли дома из-за ситуации с COVID, мы с женой решили сделать этот мини-проект. Мы отправили ответ (который включал в себя вклад ее коллег по группе PhD) на задание: Что известно о передаче, инкубации и устойчивости к окружающей среде?

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

Частота термина, обратная частоте документа (TF-IDF) + подобие косинуса

Частота термина, обратная частоте документа (TF-IDF) – это статистическая мера, которая часто используется для оценки важности слова в документе. Формула для вычисления оценки TF-IDF для слова iв документеj:

Часть уравнения TF измеряет частоту слова i, выраженную в процентах от общего количества слов в документе j. Если слово i появляется в документе jчасто, мы можем подумать, что оно очень важно. Но как насчет общеупотребительных слов, таких как «the», которые появляются в каждом документе? Часть уравнения IDF уравновешивает важность таких слов путем деления общего количества документов на количество документов, содержащих слово i, а затем логарифмирования частное.

Косинусное сходство можно визуализировать с помощью приведенной выше диаграммы. Векторы «Франция» и «Италия» имеют небольшое значение θ между собой, так как они похожи (оба являются странами). Однако между «мячом» и «крокодилом» значение θ близко к 90°, что говорит нам о том, что они не похожи. Векторы «Франция-Париж» и «Рим-Италия» на первый взгляд выглядят одинаково, но имеют значение θ, близкое к 180°, потому что они «противоположны». Первый вектор содержит страну перед городом, а второй вектор содержит город перед страной.

Хотя этот тип представления может быть достигнут с помощью таких методов, как Word2Vec или GloVe, наше представление Bag of Words с использованием TF-IDF менее сложно.

query = ['coronavirus coronaviruses cov covid']

Используя TfidfVectorizer от scikit-learn, мы выполняем TF-IDF и векторизацию запроса и всех абстрактных абзацев по отдельности. Мы также удаляем общие «стоп-слова» (слова, которые чаще всего встречаются в языке) и выбираем подходящий размер объекта для векторов.

Впоследствии мы использовали cosine_similarity scikit-learn, чтобы сравнить сходство между вектором запроса и всеми абстрактными векторами. Это позволило нам отфильтровать статьи, содержащие слова в запросе.

БЕРТ + ОТДЕЛКА

BERT (Представления двунаправленного кодировщика от Transformers) — это современная языковая модель, опубликованная Google. Он использует Transformer, модель внимания, которая изучает контекстные отношения между словами в тексте. Исследователи также использовали инновационную технику под названием «Моделирование маскированного языка» (MLM), которая позволяла модели изучать контекст в обоих направлениях.

У Джея Аламмара есть отличные анимационные объяснения интуиции, стоящей за Трансформером и Вниманием.

Используемая нами модель была импортирована из Huggingface и использует фреймворк PyTorch. Hugging Face — это стартап, ориентированный на проблемы, связанные с НЛП, известный своей современной библиотекой Transformers.

Мы использовали конфигурацию предварительно обученной модели BERT с большим объемом без корпуса, которая была точно настроена в наборе данных для ответов на вопросы Стэнфордского университета (SQuAD) для нашей задачи. Эта модель была предварительно обучена на большом количестве текстов (таких как Википедия) для изучения семантики и синтаксики языка.

SQuAD – набор данных для понимания прочитанного. Он содержит вопросы, заданные в наборе статей Википедии, и ответы на каждый вопрос представляют собой либо фрагмент текста из соответствующего отрывка (модель Huggingface была обучена в версии 1.1. В версии 2.0 вопросы также могли быть помечены как невозможные для ответа). отвечать.)

Тонкая настройка этого набора данных означает использование модели BERT, которая «изучила» механику языка, и научила ее находить ответы на вопросы в отрывках. Полученная модель будет хорошо понимать контекст вопроса и искать ответ в заданном отрывке.

Результаты и заключение

Этот подход в основном использует TF-IDF для фильтрации огромного количества данных, чтобы найти соответствующие абзацы, относящиеся к рассматриваемому вопросу. TF-IDF использует простое представление Bag-of-Words, которое не может понять контекст вопроса. Языковая модель BERT использовалась только в конце, чтобы выделить возможные части абзаца, которые могут содержать соответствующий ответ.

Поскольку представление Bag-of-Words не может понять контекст, этот подход лучше всего подходит, когда в вопросе мало ключевых слов. Например, для вопроса «Как долго длится инкубационный период» мы выбрали тему «инкубационный период». Это привело к множеству правдоподобных ответов, выделенных BERT, в том числе «от 2 до 5 дней», «от 0 до 33 дней», «5,2 дня».

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