Что такое векторные модели и как можно их использовать
Векторное представление слова в компьютерной лингвистике — это сопоставление слову из некоторого словаря числового вектора фиксированной длины, который отражает совместную встречаемость слова с другими словами в корпусе текстов. Каким образом такая модель передает важные семантические признаки слова? Какие у нее есть преимущества и ограничения? Грамота решила подступиться к этой теме с помощью компьютерного лингвиста Бориса Орехова.
Слово и его окружение
Идея представления слова через контекст старая, но не так давно благодаря развитию компьютерных технологий она была реализована в коде, и оказалось, что она имеет исследовательские и инженерные перспективы.
Как действовали лингвисты до появления векторов, если им нужно было объяснить компьютеру, что значит слово? Они это делали с помощью составленных вручную словарей. Это не очень удобно, потому что количество слов превышает человеческие возможности их обработки, ни один словарь не фиксирует все, и, кроме того, словари не обновляются с такой скоростью, с какой появляется лексика. Поэтому ручной подход к описанию значений оказывается громоздким, дорогим и неэффективным.
Технология, о которой мы говорим, по сути дела, позволяет объяснить компьютеру, что примерно значит слово. Мы уже давно научились объяснять компьютеру грамматику и другие уровни языка, а вот с семантикой были проблемы.
Выяснилось, что можно довольно хорошо понять, что значит слово, если правильным образом учесть его контекст — то окружение, в котором оно чаще всего появляется в текстах.
При этом векторное представление реализуется на концептуальном уровне довольно просто, здесь нет больших препятствий, которые не позволяли бы понять, о чем идет речь. Я часто привожу в качестве примера фразы типа Он придет сюда через несколько X. На месте этого X может стоять часов, дней, минут. Конечно, это три разных слова, но все они обозначают промежуток времени: он придет сюда через несколько часов, он придет сюда через несколько минут... Все эти высказывания звучат естественно.
От слов к числам
Если мы возьмем достаточно большой набор текстов, то аналогичные конструкции будут там встречаться в изобилии. И, соответственно, технология фиксации сведений о контекстах заключается в том, чтобы переводить эти конструкции в математические модели: сделать из он придет через несколько Х математическую матрицу.
Как мы будем создавать эту матрицу, имея дело с текстом? Мы выбираем некоторое слово, которое нас интересует, и создаем вокруг него окно «видимости» определенного размера (например, пять слов слева и пять слов справа). Те десять слов, которые попадают в это окно, не ранжируются и образуют «мешок слов»: мы берем эти слова и как будто бросаем их в мешок, где они могут перемешаться, как при игре в лото.
Такой подход связан с тем, что порядок слов может меняться в зависимости от стиля, от акцентов во фразе, но на семантику слова, которую мы в этом случае хотим выявить, порядок слов не влияет.
Дальше выяснилось, что самый удобный способ хранения информации о контексте — это вектор.
Вектор — это на математическом языке ряд чисел. Каждое из этих чисел отражает совместную встречаемость со словом, которое нас интересует, некоторого другого слова.
И, таким образом, все высказывания в некотором наборе текстов превращаются в многомерное пространство, которое мы даже не можем помыслить. Мы все привыкли к трехмерному пространству, в котором живем. Мы можем легко понять, как устроено двумерное пространство — скажем, страница книги. В случае векторного представления слов мы имеем дело с пространствами трехсот-пятисотмерными. Каждое измерение — это то, насколько часто или редко какое-то слово встречается в одном контексте с данным.
Что в этом хорошего? Хорошо то, что, избавившись от слов и всяких других непонятных сущностей, математики могут уже на своем языке производить с векторами разные полезные операции. Например, они могут вектора вычитать или складывать. И в какой-то момент выяснилось, что у этих операций есть языковой смысл! Например, если мы возьмем вектор слова король, вычтем из него вектор слова мужчина и прибавим вектор слова женщина, у нас получится значение, которое максимально близко к вектору слова королева.
Тем самым мы можем сказать, что у нас есть интуитивно правильное описание семантики в математических терминах. И главное следствие из этого факта состоит в том, что теперь, как я говорил выше, мы наконец-то можем объяснить компьютеру, что значит слово, на его «языке».
Эспрессо или капучино?
Правда, тут есть разные сложности, связанные с тем, что векторное представление — это все-таки не семантика в точном смысле. Мне встречалась картинка, которая отражает суть проблемы. На ней изображен ресторан будущего, в котором клиентов обслуживают роботы. Клиент заказывает эспрессо, а ему приносят капучино; он возмущается, но робот-официант не понимает причину недовольства. Для робота капучино и эспрессо — это кофе, то есть почти одно и то же; он не видит, что для человека разница между ними может быть критична.
Вот так же и с векторами: главное, что мы можем сделать с такими моделями, — это получить список векторов слов, наиболее похожих на данный. В этом списке будут слова, которые в теории должны быть синонимами «нашего» слова, но на самом деле это не синонимы, а слова, связанные с нашим очень разными отношениями.
Скажем, если мы возьмем слово теплый, то очень похожий вектор будет у слова холодный, хотя это антонимы. Очевидно, что между этими словами есть ассоциативная связь, но не синонимическая, а устроенная более сложным образом. Их сходство основано на том, что они встречаются в похожих контекстах, в компании почти одинакового набора слов, и характеризуют предметы, обладающие измеряемой температурой.
Поэтому специалисты не говорят, что похожие векторы — это синонимы; обычно они пользуются более хитрыми терминами и называют их квазисинонимами или ассоциатами.
Оказалось, что раз мы теперь умеем объяснить компьютеру, в чем сходство слов, то на этом мы можем построить разные компьютерные системы.
Векторы и качество жизни
Самое очевидное применение векторов — в сфере информационного поиска. Если человек вводит в поисковой строке «Яндекса» какое-то слово, это не значит, что он ищет именно это слово. Он ищет некоторый смысл, и раньше компьютеру было очень сложно понять, в чем этот смысл заключается. С изобретением векторов дорожка от задачи к ее решению стала гораздо короче. Стало понятно, что если человек ищет что-то, связанное со строительными принадлежностями, это не значит, что ему нужно показывать в выдаче только молотки. Может быть, ему нужны еще и гвозди.
Когда в большую схему интернет-поиска встроены векторы, система лучше понимает, что человек от нее хочет. А это, в свою очередь, улучшает пользовательский опыт и в конечном счете повышает качество жизни.
В целом к поисковым задачам относится все, что связано с обработкой естественного языка компьютером. Это любая область, где мы имеем много-много текстов, про которые нужно что-то понять, но при этом прочесть их все невозможно. Например, это может быть корпус законов или корпус публикаций в социальных сетях. По сути дела, это тоже информационный поиск, только примененный к одной коллекции текстов.
Многозначность как преимущество
При векторном описании все значения многозначного слова слипаются в один комок: для каких-то задач это проблема, а для каких-то, наоборот, решение. Там, где это проблема, были изобретены новые технологии, в частности нейросети, название которых крутится вокруг слова BERT (RuRoBERTa и т. д.). Они умеют учитывать контекст таким образом, что уже не одно слово становится вектором и учитывается в качестве смыслообразующей единицы, а все предложение становится такой единицей, и тогда проблема многозначности снимается.
Но когда мы берем в качестве исходного материала не тексты, репрезентирующие весь язык, а специфический домен, скажем, тексты, порожденные одним человеком, или тематические тексты юридического характера, то неразличение значений уже становится плюсом. С помощью векторов мы понимаем, какие из множества значений для этого домена более релевантны.
Если, к примеру, мы сравним общеязыковые векторы, построенные на корпусе текстов всех носителей языка, со специальными векторами, построенными на корпусе текстов Льва Толстого, то увидим, чем индивидуальная семантика слов у Толстого отличается от семантики тех же слов у всех остальных людей.
Мне было интересно, чем, например, отличается поле у Толстого от общеязыкового поля. Когда мы говорим о Толстом, то первым делом вспоминаем «Войну и мир», а там на поле происходят битвы, например Бородинская. И поэтому можно предположить, что в многозначном слове поле Толстому важен компонент, касающийся войны и баталий.
Выяснилось, что это не так: для Толстого поле ближе всего к таким словам, как луг, лес, жатва. Поле для него — это прежде всего сельскохозяйственное пространство, а вовсе не то место, где воюют, несмотря на то, что он бывший военный.
К сожалению, не с каждым писателем можно «разобраться» с помощью векторов: они, как и любая технология, основанная на статистике, дают значимые результаты только при достаточном объеме данных. В корпусе текстов Толстого около восьми миллионов словоупотреблений; у других писателей, которые были не столь плодовиты, значения векторов будут скорее случайными. С Достоевским еще можно попробовать, но вот, скажем, с Тютчевым уже не получится.
Роль лингвистов
Там, где инженерная мысль упирается в некоторые ограничения, лингвист в теории может изобрести какой-то нестандартный подход, учесть свойства языка, о которых никто не думал, и таким образом проблему решить. Но нельзя сказать, что так происходит всегда. Правда в том, что в таких областях, как машинный перевод или даже информационный поиск, на нынешнем этапе роль лингвистов скорее мерцающая. Нет уверенности в том, что они добавляют что-то к общей технологии.
Если же рассматривать большие языковые модели не как инструмент, который надо разрабатывать, а как нового актора, продукция которого может стать предметом изучения, то тут есть проблема, которая касается ценностей: статус исследователя тем выше, чем более эксклюзивный материал он рассматривает. А если речь идет о сгенерированных текстах, которые можно порождать тоннами в секунду, то такого ученого не будут воспринимать всерьез. Я думаю, что академическая традиция изучения текстов, порожденных компьютером, не сформируется; на этом поле возможны отдельные яркие исследования, но скорее как исключение. Специалист по Пушкину всегда будет более востребован и уважаем, чем человек, который изучает «Стихи.ру». Хотя, по идее, для науки разницы между ними быть не должно.
Еще на
эту тему
Что нейросети умеют делать с текстами и чем предстоит заняться человеку
Эксперты обсудили, как мы будем взаимодействовать с ИИ
Семантические издания Толстого, Пушкина и Чехова — новый способ существования литературных текстов
Как цифровые технологии расширяют возможности изучения классиков
Машинный диалект: границы рефлексии
Взгляд лингвиста Бориса Орехова на язык нейросетей