Используйте Берт, чтобы предсказать несколько токенов - PullRequest
1 голос
/ 25 апреля 2020

Я ищу предложения по использованию маскированной языковой модели Берта и Берта для прогнозирования нескольких токенов.

Мои данные выглядят следующим образом:

context: some very long context paragraph

вопрос: rainy days lead to @placeholder и ответ на этот вопрос @placeholder wet weather. В модели wet environment является ответом на прогноз.

Итак, на этапе предварительной обработки я должен изменить текст на rainy days lead to [MASK] или что-то вроде rainy days lead to [MASK] [MASK]? Я знаю, что замаскированный LM хорошо работает при прогнозировании одного токена. Как вы думаете, может ли замаскированный LM хорошо работать при прогнозировании нескольких токенов? Если нет, есть ли у вас какие-либо предложения по предварительной обработке и обучению такого рода данных?

Большое спасибо!

1 Ответ

1 голос
/ 27 апреля 2020

Итак, есть 3 вопроса:

Во-первых,

Итак, на этапе предварительной обработки я должен изменить текст на дождливые дни, приводящие к [МАСКЕ] или что-то вроде дождливые дни приводят к [MASK] [MASK]?

С точки зрения слова, вы должны установить [MASK] [MASK]. Но помните, что в BERT маска устанавливается с точки зрения токена. Фактически, «влажная погода» может быть разбита на что-то вроде: [влажная] [weath] [## er], и в этом случае вы должны иметь [MASK] [MASK] [MASK]. Таким образом, один [MASK] на токен.

Second,

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

Как вы можете прочитать в оригинальной статье , они сказали:

Генератор обучающих данных выбирает 15% от позиции токенов наугад для прогнозирования. Если выбран i-й токен, мы заменяем i-й токен на (1) токен [MASK] 80% времени (2) случайный токен 10% времени (3) неизмененный i-й токен 10% времени.

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

В-третьих,

Если нет, есть ли у вас какие-либо предложения по предварительной обработке и обучению такого рода данных?

Итак, ответ - да, но если вы действительно хотите Элементы MASK, которые вы выбираете (а не случайно, как в статье), вы должны адаптировать MASK, когда данные будут токенизированы, потому что число токенов MASKED будет больше (или равно), чем количество MASK в установленном вами словесном пространстве ( Как и в примере, который я вам дал: 1 слово не равно 1 токену, поэтому в основном 1 слово MASKED будет равно 1 или более токену MASK). Но, честно говоря, процесс лабелизации будет настолько огромным, что я рекомендую вам увеличить 15% вероятности для токена MASK или сделать процесс, который MASK 1 или 2, следующий токен для каждого токена MASKED (или что-то в этом роде) ..

...