Роман Сергеевич Бевзенко на встрече Клуба цивилистов в Новосибирске спросил, почему нейросети переводят лучше старых словарных программ. Объясняю на кошечках.
«Кошка» – это слово, а не ваш любимый питомец. Его значение определяется не указанием на вашу кошку, а связями с другими словами – со словом «кот», «пёс», «хозяин». «Обязательство» вовсе нельзя потрогать, но оно тоже связано со словами «право», «долг», «санкция», «договор».
Это более очевидно, если мы вспомним, как объясняем собеседнику незнакомые слова. Что такое «кошка? Это «кот» + «женщина». «Сын» ≈ «ребенок» + «мужчина». Мы приводим другие слова и показываем, чем это слово на них похоже, а чем отличается. Самые очевидные примеры – это слова, обозначающие родство: «мать», «отец», «сын», «дочь», «дядя», «тётя» и т.д.
На основе этой идеи все понятия можно разместить в некоем запутанном большом пространстве в виде точек. Близкие по смыслу понятия будут лежать рядом. «Кошка» разместится где-то рядом с «котом» и неподалеку от «собаки», но далеко от «обязательств». Направление стрелки от «матери» к «отцу» обозначит пол, от «котенка» к «кошке» – возраст.
Теперь совсем немного усложним и представим вместо слов не точки, а векторы – помните, линии такие чертили на графике в школе? Примерно так нейросети видят весь этот наш человеческий язык (все снобы и математики сейчас молчите наедине с собой в душном одиночестве).
В этом пространстве векторов справедливо выполняются уравнения вида:
🤴«король» - 👨«мужчина» + 👩«женщина» ≈ 👸«королева»,
🐩«собака» - 🐩🐩«собаки» ≈ 🐈«кошка» - 🐈🐈«кошки».
То есть в этом пространстве есть некоторые математические обозначения пола, множественного и единственного числа, других синтаксических категорий.
Как не трудно догадаться, все эти соотношения, длины и расстояния между векторов сохраняются для любого языка. Это как сменить пластмассовые шахматы на деревянные: ладья всегда в углу и ходит по прямой. Мать относится к сыну также, как и «mother» к «son». А «obligation» и «обязательство» находятся примерно в равном окружении из «право/right», «договор/contract», «санкция/sanction». Модели известны пространства русских и английских смыслов и ей остается лишь повернуть и совместить одни координаты с другими.
Алгоритмический перевод, работавший по словарю, кроме того, что переводил «написание», а не смысл, также не мог установить по написанию слова «кран» – это кран водопроводный или строительный. Нейросеть же видит слово «кран» в векторном пространстве окружающих слов. Если рядом есть «кухня» и «вода», модель считывает это как сантехнический смысл. Если «стройка» и «башня» – как строительный.