Да, GAN можно использовать для текста. Однако существует проблема в сочетании того, как работают GAN и как обычно текст генерируется нейронными сетями:
- ГАН работают, распространяя градиенты через состав Генератора и Дискриминатора.
- Обычно текст генерируется при наличии окончательного слоя softmax над пространством токенов, то есть выход сети, как правило, представляет собой вероятности генерации каждого токена (то есть дискретной стохастической единицы).
Эти две вещи сами по себе плохо работают, потому что вы не можете распространять градиенты через дискретные стохастические единицы. Есть 2 основных подходы к решению этого: REINFORCE алгоритм и перепараметризация Gumbel-Софтмакс (также известный как бетон распределения ). Примите во внимание, что REINFORCE, как известно, имеет высокую дисперсию, поэтому вам нужны большие объемы данных для получения хороших оценок градиента.
В качестве примера REINFORCE для текстовых GAN вы можете проверить статью SeqGAN . Пример Gumbel-Softmax вы можете проверить в этой статье .
Другой совершенно другой вариант - не иметь дискретную стохастическую единицу в качестве выходного сигнала генератора (например, генерировать токены детерминистически во встроенном пространстве), что устраняет первоначальную проблему обратного распространения через них.