Можно ли использовать BERT для создания предложений?


12

Я новый ученик в НЛП. Я заинтересован в задаче генерации предложений. Насколько мне известно, одним из современных методов является CharRNN , который использует RNN для генерации последовательности слов.

Тем не менее, BERT вышел несколько недель назад и является очень мощным. Поэтому мне интересно, можно ли эту задачу также выполнить с помощью BERT? Я новичок в этой области, и спасибо за любые советы!


1
Можно ли для этого использовать OpenAI GPT? Я считаю, что OpenAI GPT имеет другую архитектуру и используется для генерации текста
Sandeep Bhutani

Я считаю, что CharRNN определенно не SOTA, из-за ограниченной длины контекста, от работы в масштабе символов. Вместо этого есть работа над подсловами и кодированием пар байтов
information_interchange

Ответы:


21

Для новичков НЕТ.

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


Для продвинутых исследователей, ДА.

Вы можете начать с предложения всех токенов [MASK] и генерировать слова одно за другим в произвольном порядке (вместо обычного разложения слева направо). Хотя качество генерации текста сложно контролировать.

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


В итоге:

  • Если вы хотите провести некоторые исследования в области декодирования с помощью BERT, существует огромное пространство для изучения.
  • Если вы хотите создавать качественные тексты, лично я рекомендую вам проверить GPT-2 .

3

этот эксперимент Стивена Мэйхью предполагает, что BERT паршив в последовательной генерации текста:

http://mayhewsw.github.io/2019/01/16/can-bert-generate-text/

although he had already eaten a large meal, he was still very hungry

Как и прежде, я замаскировал «голодных», чтобы увидеть, что предсказывает БЕРТ. Если бы он мог предсказать это правильно без какого-либо правильного контекста, мы могли бы быть в хорошей форме для поколения.

Это не удалось. Берт предсказал «много» как последнее слово. Возможно, это потому, что БЕРТ считает, что отсутствие точки означает, что предложение должно продолжаться. Может быть, это просто так, чтобы закончить предложения, это запутано. Я не уверен.

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

Таким образом, по крайней мере, используя эти тривиальные методы, BERT не может генерировать текст.


2

Нет. Формирование предложения напрямую связано с языковым моделированием (учитывая предыдущие слова в предложении, что является следующим словом). Из-за двунаправленности BERT BERT нельзя использовать в качестве языковой модели. Если его нельзя использовать в качестве языковой модели, я не вижу, как можно сгенерировать предложение, используя BERT.


1
Мой ответ больше не верен. Вы можете принять ответ
@soloice

1

Какие альтернативные варианты существуют для этого?

Нет. Формирование предложения напрямую связано с языковым моделированием (учитывая предыдущие слова в предложении, что является следующим словом). Из-за двунаправленности BERT BERT нельзя использовать в качестве языковой модели. Если его нельзя использовать в качестве языковой модели, я не вижу, как можно сгенерировать предложение, используя BERT.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.