При этом использовались пары букв – биграммы. Мы можем пойти дальше и задаться вопросом: с какой вероятностью очередная буква будет появляться после определенной последовательности из трех букв (триграммы). Для этого понадобится гораздо больше данных, потому что триграмм намного больше, чем диграмм. Зато получающийся список будет гораздо больше похож на настоящие имена:
Kendi, Jeane, Abby, Fleureemaira, Jean, Starlo, Caming, Bettilia…
При переходе к пятибуквенным комбинациям ситуация настолько улучшается, что мы нередко просто воспроизводим реальные имена из базы, однако кое-какие новые все же встречаются:
Adam, Dalila, Melicia, Kelsey, Bevan, Chrisann, Contrina, Susan…
Используя цепь с триграммами и имена детей, родившихся в 2017 году, мы получим такой список:
Anaki, Emalee, Chan, Jalee, Elif, Branshi, Naaviel, Corby, Luxton, Naftalene, Rayerson, Alahna…
Он определенно выглядит более современно, причем примерно половина в нем – реальные имена, с которыми ходят сейчас дети. Для младенцев 1917 года рождения:
Vensie, Adelle, Allwood, Walter, Wandeliottlie, Kathryn, Fran, Earnet, Carlus, Hazellia, Oberta…
Сколь бы ни была проста цепь Маркова, она как-то улавливает стиль использования имен в разные времена. И этот способ придумать имя выглядит творческим. Некоторые из этих имен весьма неплохи! Вы вполне можете представить, что ребенка зовут Jalee или в стиле ретро – Vensie, но вряд ли назовете его Naftalene[170]
.Способность цепи Маркова генерировать нечто вроде языка заставляет задуматься: может быть, язык – это просто цепь Маркова? Не создаем ли мы, когда говорим, просто новые слова на основе нескольких последних произнесенных нами слов или на основе какого-то вероятностного распределения, которое мы знаем из всех когда-либо услышанных чужих фраз?
Дело не только в этом. В конце концов, мы подбираем слова, каким-то образом относящиеся к окружающему миру, а не просто повторяем уже сказанное.
И все же современные цепи Маркова могут генерировать нечто удивительно похожее на человеческий язык. Алгоритм GPT-3 компании OpenAI – духовный потомок текстовой машины Шеннона, только намного мощнее. На входе не три буквы, а фрагмент текста длиной в сотни слов, но принцип тот же: если есть недавно созданный текст, то какова вероятность, что следующее слово будет «эта», «геометрия» или «гололедица»?
Вы можете подумать, что это легко. Достаточно взять первые пять предложений из вашей книги, пропустить их через GPT-3 и получить список вероятностей для каждой возможной комбинации слов в этих предложениях.
Погодите, а с чего вы взяли, что это легко? Вообще-то нет. Просто предыдущий абзац – это попытка алгоритма GPT-3 продолжить текст из трех абзацев перед ним. Я выбрал самый осмысленный результат из десятка попыток. Но все результаты каким-то образом звучат так, словно они взяты из книги, которую вы читаете, и это, скажу я вам, несколько тревожит ее автора, даже когда предложения не имеют смысла вообще, как в этом фрагменте[171]
:Если вы знакомы с понятием теоремы Байеса, то это должно быть для вас легко. Если есть вероятность 50 %, что следующим словом будет «эта», и 50-процентный шанс, что им будет «геометрия», то вероятность того, что следующим словом будет либо «эта геометрия», либо «гололедица», составляет (50
/50)2 = 0.