Если заходит разговор о нейросетевой генерации стихов, эрудированные люди сразу вспоминают множественные прецеденты машинной поэзии из прошлого. Все думают, что компьютер сочинял стихи уже тысячу лет (ну ладно, не тысячу, но такие опыты и правда ставились аж с конца 1950-х). Вот был уже такой-то эксперимент, такой-то автомат, такая-то программа.
Но все эти достойные люди заблуждаются. Нейросети, сочиняющие стихи, вовсе не повторяют уже известный нам опыт машинной поэзии, они делают это иначе, и на то, что было раньше, совсем не походят. В этой статье мы расскажем, как получается «нейролирика» и что в ней особенного.
Что общего между поэтами и искусственным интеллектом?
Опытов по генерации стихов нейросетями много. Очень. Достаточно поискать по ключевым словам на GitHub, где программисты, ищущие, чем бы занять свободное время, щедро делятся кодом. Иногда кажется, что только очень ленивые не пытались написать нейросеть, которая начнет говорить стихами.
Почему так? Да потому что стихи очень похожи на те тексты, которые выдает нейросеть. Часто в стихотворении одна мысль выражена в одной строке, а следующая мысль и следующая строка уже слабо связана с предыдущей. Так же порождают текст и нейросетевые алгоритмы. Для диалоговых агентов вроде «Алисы» или Siri, которые сейчас построены на нейросетях, это проблема: они плохо помнят, о чем говорили с пользователем всего пару реплик назад. Им трудно улавливать связи между предложениями, и сами они часто порождают бессвязные тексты. А для стихов это нормально.
Лингвисты знают про так называемые «постулаты Грайса»: негласные правила, обеспечивающие хороший разговор. Во-первых, нужно сообщать твоему визави не больше и не меньше необходимого для понимания твоего сообщения. И стихи, и нейросети это правило игнорируют. Как, в общем, и все остальные постулаты: сообщения должны быть истинными, в сообщениях не должно быть непонятностей и неоднозначностей. И того, и другого, разумеется, более чем достаточно и в том, что порождают поэты, и в том, что выдают нейросети. Поэтому и поэтов, и нейросети очень сложно понять.
Машинная поэзия до нейросетей
А как было раньше, до нейросетей? Раньше поэты искали в компьютере случайность. Случайность (вернее, неподконтрольность автору) — вообще одна из центральных категорий эстетики XX века. Авангардисты очень хотели отмежеваться от академического искусства предыдущих эпох, искусства рационального, холодного, как им казалось, мертвого. Поэтому многие пытались изгнать рацио из своих произведений. Сюрреалисты придумали «автоматическое письмо», с помощью которого записывали будто бы никак не контролируемый ими поток речи, Джексон Поллок случайно плескал краску на холст. Поэты стремились к тому же: если мы возьмем компьютер, он будет выдавать числа в случайном порядке, и это-то и есть настоящее искусство.
Всё это, конечно, парадокс. Создать случайное значение в компьютере очень трудно, он плохо для такого приспособлен. Как раз инженеры хорошо знают, что нет ничего случайного, все чем-то обусловлено. Так откуда же брать такое нужное для многих задач случайное число? Как-то выкручиваются, но, строго говоря, в компьютере сидят генераторы псевдослучайных чисел, а не «настоящих» случайных значений, которых и не может быть в природе.
Как бы там ни было, именно так компьютеры и «писали» стихи.
У них было два варианта: либо берется уже какой-то готовый текст (скажем, «Замок» Кафки), разрезается на части (скажем, предложения) и компьютер комбинирует эти части в случайном порядке. Этого достаточно, чтобы создать арт-объект в духе искусства XX века. Именно такие стихи и порождались 60 лет назад на первых примитивных по сегодняшним меркам ЭВМ. И, конечно, это была современная поэзия, то есть верлибр, стихи без метра и рифмы. Образности и деления на строки оказывается достаточно, чтобы создать мощный эстетический эффект. А рифма и размер — ненужная мишура, архаичная мода XIX века. Попробуйте сегодня выйти на улицу в костюме времен Пушкина!
Второй вариант: составляем словарь слов (желательно слов «попоэтичнее»), загружаем в машину правила, по которым эти слова должны комбинироваться и… снова запускаем генератор случайных значений! Случайность, случайность, случайность. Вот что привлекало поэтов в компьютере: неожиданность результата, неконтролируемость, полная свобода искусства, вот чего искали художники в вычислительных устройствах.
Второй вариант в 1990-е годы стал особенно популярен в России — в нашей стране всем хочется, чтоб компьютер писал обязательно в рифму и обязательно силлабо-тоникой, верлибр наивные читатели (коих много, особенно среди негуманитариев) стихами считать отказывается. Всё это крайне странно: давнишние поэты-компьютерщики середины XX века были гораздо свежее и прогрессивнее наших архаично мыслящих современников.
Что нового принесли нейросети
Итак, машинная поэзия прошлых эпох — это комбинаторика плюс стремление к максимальной случайности. А в нейросетях (внезапно!) нет ничего случайного. То есть случайного вообще не бывает, но уж в нейросетях-то точно. Там случайного меньше, чем где бы то ни было. Дело в том, что они ничего не «комбинируют», они — обучаются, то есть извлекают закономерности из обучающих данных. Если речь о текстах, то из корпусов. Например, мы подсовываем сети, которая умеет читать буквы, некоторый текст, и она совершенно серьезно начинает в этом тексте пытаться разобраться, выявить, почему одна буква следует за другой и предшествует третьей, с какой частотой и вероятностью это происходит. Удивительно, но одного знания о распределении букв оказывается достаточно, чтобы при порождении текста правильно имитировать и согласование слов, и употребление предлогов, и разные другие сложные, на человеческий взгляд, языковые правила. Мы не рассказывали сети, что бывают морфемы, ударения, синтаксические конструкции, а она вдруг взяла и все это поняла сама, хотя только рассматривала буковки (вернее, их последовательность).
Более того, оказывается, нейросеть, выучив исходные тексты, начинает имитировать не только язык, но и стиль. Это не так уж и удивительно: мы уже были свидетелями, как создателям нейросетей удалось отделить контент от стиля в случае с живописью. Именно это сделало возможным создание приложений типа Prisma: берем произвольную картинку и совмещаем её со стилем какого-нибудь Ван-Гога. С текстом пока так ровно не получается, но уже очень хочется. Выделить экстракт стиля писателя или поэта пока не вышло, но то, что нейросеть способна уловить и выучить стиль — несомненно.
Стиль в тексте проявляется много в чем. Например, в стихотворном метре. Вот, возьмем, например, тексты, написанные русским гекзаметром — шестиударным дольником, который обычно используется для перевода гекзаметра античного (Гомера, Вергилия, Овидия и т. д.), обучим на них нейросеть. Что у нас получится?
Силу, к голубке хитон отличась, Гиоклей благородный.
Действительно, правильный гекзаметр. При том что ни правил расстановки ударений, ни вообще того, что ударение существует, мы нейросети не объясняли.
«Гиоклей благородный». Это тоже проявление стиля. В обычной речи мы бы сказали «благородный Гиоклей», а в гекзаметре принято наоборот: «пастырь народов Атрид и герой Ахиллес благородный».
А кто такой Гиоклей? Нет такого имени ни в латыни, ни в греческом, ни в текстах русских переводов античных авторов. Сеть придумала это имя сама. Как мы видели, комбинаторные программы прошлых десятилетий такого не умели: у них же внутри был заложен словарь готовых слов и фраз. Нейросеть же подумала, что такое слово, даже если оно не существует, могло бы существовать. И она права. Нет Гиоклея, но есть Диоклей. И есть много имен, начинающихся на «Г»: Геракл, Гипподам и т.д.
Тексты нейросетей никакая не случайность, это строгая закономерная проекция стиля исходного корпуса, на котором сеть выучилась.
Возьмем другой пример. Это текст не нейросети, а вполне себе человека, современной поэтессы Наталии Азаровой, работающей в направлении неофутуризма (естественно, никакой перекрестной рифмовки и строгого ямба! Мы же в XXI веке живём):
бор ёлки в воду бросил
сил держать верхушки нет
кинет дрожащих в озеро
зеро ребячьей ряби голосов свободно
дно тростником упало навзничь
ничь — я — не — потревожена — от — бором
Москва
21 ноября 2003
Какие черты стиля мы тут видим? Главное — языковую игру: «озеро / зеро», «ребячьей ряби», «свободно / дно», «навзничь / ничь-я», «бором / от-бором».
Натренируем нейросеть на стихах Азаровой. Что получится?
могу не озеро горизонта
синих глубок луг на бахли на стаю
болтлизись?
слежу ночи кораллов гадаю облаками
сэнимальной луна?
Ялта
19 сентября
Алот — это —
их — раз — — —
день — страницы — н-за
не открывая-сознаний
Москва
9-20 февраля 2004
Вслед за современным поэтом нейросеть научилась играть словами! «озеро горизонта», «глубок луг», «н-за / сознаний». Даже какие-то второстепенные вещи вроде дефисов внутри строки и подписей под текстами были воспроизведены. Азарова не писала этих текстов, но вполне могла бы написать, это её поэтика.
Поэтические тексты, которые порождает нейросеть, далеки от того, чтобы быть случайными. Они последовательно «косплеят» оригинал, на котором тренировались.
Зачем это нужно?
Возможно, нейросетевые тексты, воспроизводящие стиль, могут сказать нам что-то важное о первичных текстах, таких, на которых они обучались. Если нейросети порождают для нас небольшой экстракт, выжимку, концентрированный, насыщенный стилем фрагмент, то мы можем медленно его читать, и через медленное чтение на самом деле осуществлять дальнее чтение, то есть видеть в малом нечто большее.
Например, короткий нейросетевой текст выделит для нас важные слова, которые часто повторяют поэты исходного корпуса. Есть и другие способы выделения этих слов: частотные словари, специальные методики подсчетов. Но почему бы не иметь ещё один? К тому же нейросеть как способ наглядного обобщения корпуса — очень user-friendly, ведь она выдает не таблицу с частотностями, а читаемый текст. Фактически с нейросетями мы научились создавать то самое «среднее по больнице» — не в виде абстрактных средних цифр, как это умеет статистика, а порождая конкретного усредненного пациента.
Текст, получившийся благодаря тренировке на корпусе определенного поэта, можно предложить информантам в эксперименте. Угадают ли, кто стоит за этими текстами? Чей стиль воспроизводит нейросеть? Вполне современное олимпиадное задание по литературе.
А ещё литературоведы давно пытаются понять (но и немножко боятся этого понимания): те смыслы, которые они отыскивают в тексте, происходят от автора или от читателя? Кто придумывает стихотворение? Кто наполняет его содержанием? Если читатель, то непонятно, зачем нужны все эти многочисленные биографические исследования, посвященные писателям. Можно предложить текст, сочиненный нейросетью, литературоведу, и, не говоря, откуда этот текст взялся, проследить, сможет ли он приписать «автору» аллюзии, цитаты, замысел? Конечно, это можно было бы сделать и с прежними компьютерными стихами, но нейросетевые и сложнее структурно, и менее предсказуемы. Если литературовед сможет «интерпретировать» и такой текст, значит, он более творческая фигура в отношениях автора и читателя.
Наконец, нейросетевая поэзия может дать нам новый взгляд на чересчур привычный предмет, освежить привычные концепции, отказаться от шор и штампов. За последние столетия таких штампов, мешающих воспринимать поэзию непосредственно, скопилось особенно много. Процесс такого обновления философия XX века называет «деконструкцией». Давайте посмотрим на нейростихи, осознаем, что за ними нет никакого личностного субъекта, нет всевидящего и всезнающего автора, нет я-начала, это должно научить нас воспринимать красоту текста самого по себе, а не в связке с глупым «Что хотел сказать автор?»