Заказ / контекстно-зависимый документ / предложение для векторов в Spacy

Я хотел бы выполнять некоторые контролируемые задачи двоичной классификации с предложениями и использовал spaCy из-за его простоты использования. Я использовал spaCy для преобразования текста в векторы, а затем отправил векторы в модель машинного обучения (например, XGBoost) для выполнения классификации. Однако результаты были не очень удовлетворительными.

В spaCy легко загрузить модель (например, BERT / Roberta / XLNet) для преобразования слов / предложений в объекты nlp. Однако при прямом вызове вектора объекта по умолчанию будет использоваться среднее значение векторов токенов.

Вот два вопроса:

1) Можем ли мы сделать лучше, чем просто получить среднее значение векторов токенов, например, имея векторы предложений с учетом контекста / порядка с помощью spaCy? Например, можем ли мы извлечь вложение предложения из предыдущего слоя преобразователя BERT вместо конечных векторов токенов в spaCy?

2) Было бы лучше напрямую использовать spaCy для обучения последующей задачи двоичной классификации? Например, здесь обсуждается, как добавить текстовый классификатор в модель spaCy. Или вообще лучше применять более мощные модели машинного обучения, такие как XGBoost?

Заранее спасибо!

1 ответ

Я обнаружил, что это обсуждается на странице ниже. Может это поможет.

"Большинство людей обычно принимают только скрытые состояния токена [CLS] последнего уровня - использование скрытых состояний для всех токенов или из нескольких уровней обычно не очень помогает".

https://github.com/huggingface/transformers/issues/1950