Большинство ИИ, умеющих писать художественную прозу, основываются на заранее известных комбинациях персонажей, мест, и действий, которые могут быть совершены. ИИ по имени «Шахерезада», который разработали в одной из лабораторий IBM, устроен по другому принципу: он основывается на последовательности событий.

Как работает алгоритм

История для «Шахерезады» — это последовательность событий или действий (сюжетных точек), внутренне обоснованная и логичная, где одно событие вытекает из другого.

Для сбора информации и обучения программа использует технологию краудсорсинга: она задает людям вопросы о конкретных ситуациях и, получая ответы, объединяет их в ситуационную модель. Система просит участников сегментировать свои рассказы, чтобы избежать сложных языковых структур, и формировать предложения, которые содержат только одно событие и один глагол.

Ответы собираются в корпус текстов, который программа анализирует, определяя связь между сюжетными точками и группируя их на основе семантического сходства. На основе этого анализа «Шахерезада» строит схемы, или графы, событий, а изучая граф, становится способной сгенерировать историю на любую тему. Событие при этом — это самостоятельная история по теме.

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

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

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

Программа способна составлять план своих историй, и ее сюжеты логичны и целостны. «Шахерезада» может установить логическое соответствие: для того, чтобы на асфальте блестели лужи, нужно, чтобы накануне прошел дождь. Если персонаж открывает хранилище, то этому должны предшествовать события, в которых персонаж находит хранилище и получает ключ от него.

Как строится история

Генерация истории — это процесс выбора последовательности событий. Допустим, «Шахерезаде» нужно создать историю на тему «ограбление банка». Система использует краудсорсинг, чтобы быстро получить ряд нужных для истории примеров, строит график на основе последовательности событий и определяет взаимоисключающие события.

После построения сюжетного графа остается только вопрос, какую из получившихся линий — историй — выбрать. Система генерирует истории, добавляя события в историю так, чтобы не нарушались никакие ограничения приоритета или отношения взаимного исключения. Чтобы быть добавленным в историю, событие должно быть выполнимым. Событие выполнимо, когда все его прямые, обязательные предшествующие элементы пройдены, кроме тех, которые взаимно исключают друг друга. История заканчивается, когда достигается одно конечное событие.

Сюжет на графе описывает ситуацию, которая строго ограничена приоритетностью событий. Но остается вопрос, насколько типичной должна быть полученная история, чтобы рассказ имел смысл.

Авторы определяют типичность как функцию вероятности событий (узлов) и конкретных последовательностей (последовательности узел-ссылка-узел). Изменяя включение узлов и связей в соответствии с их вероятностью, при соблюдении отношений «до», авторы программы могут создавать истории, схожие с существующими на заданную тему, но с произвольной типичностью в пределах нормы.

Из графа сюжета можно извлечь следующую информацию:
• Типичность событий и вероятность того, что событие является частью ситуации.
• Смежность и вероятность того, что два события должны произойти в непосредственной близости друг от друга.
• Совпадение и вероятность того, что какие-либо два события наблюдались в одной и той же краудсорсинговой истории.

Наиболее типичная история, которая может быть сгенерирована из сюжетного графика, определяется как включение n наиболее вероятных событий, упорядоченных в соответствии с наиболее вероятными отношениями между этими n-узлами. Можно сгенерировать более интересные истории на ту же тему, найдя возможную последовательность с:
(а) маловероятным событием;
(б) вероятными событиями, которые происходят в маловероятном порядке;
(в) несмежными событиями, которые обычно являются смежными;
(г) парами событий, которые имеют низкое совпадение;
(д) пропусками события, которое часто происходит вместе с настоящим событием.

Алгоритм генерации производит более миллиона возможных последовательностей для сюжетного графика истории с грабежом банка.

И что, это работает?

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

В оценке качества участвовали 360 человек, оценку прошли 60 историй «Шахерезады». При этом истории были распределены так, чтобы люди-судьи сталкивались и с историями, написанными Шахерезадой, и с историями, написанными людьми. Количество правок было показателем качества истории: меньше число правок означало лучшее качество.

Разница между авторскими и компьютерными историями незначительна во многих измерениях, что весьма показательно, учитывая масштаб оценки. Существенных различий в количестве добавленных событий нет. Было заключено, что Шахерезада не пропускает важные события чаще, чем человеческие авторы.

83% независимых читателей, не зная, что читают рассказы, созданные алгоритмом, оценили их высоко.

ИИ пока слабо справляется с генерацией художественной речи, но ученые постоянно совершенствуют алгоритмы, позволяющие машине учиться самой. Алгоритм «Шахерезада» и принцип ее работы внесли большой вклад в развитие области генерации качественных художественных текстов компьютерами.

Источник: Boyang Li, Stephen Lee-Urban, George Johnston, and Mark O. Riedl. Story Generation with Crowdsourced Plot Graphs

Читать по теме: Тест Тьюринга для киберпоэтов