Фиктивное введение в мою текущую работу - признание природы семантических отношений между данной парой слов.
Когда я прошу вас «потерпите меня», вы готовитесь к тому, что придется мириться со мной. Если вам говорят: «Этот плюшевый мишка пушистый», ваш мозг вызывает в воображении образ мягкой, милой, пушистой игрушки, которую малыши берут в постель. Если вы читаете о медведях, находящихся под угрозой исчезновения, вы думаете о белых медведях где-то в арктических морских льдах. И когда они расскажут вам в новостях на следующей неделе, что кризис с коронавирусом погрузил нас в худший медвежий рынок нашего поколения, вы инстинктивно поймете, что они говорят об акциях.
Ваше знание английского языка, а также способность понимать зависимости от контекста, лексические и синтаксические структуры и лингвистические нюансы помогут вам различать четыре значения одного и того же слова. Вы принимаете это как должное и почти не думаете об этом, но вам потребовались годы, чтобы приобрести эту способность. Вы прямо или косвенно учитесь на своем личном опыте. Вы учитесь, создавая ассоциации между контекстами, информацией, поведением и реакциями. Каскад нейрокогнитивных реакций, которые запускаются, когда вы подсознательно запускаете набор нейтронов для общения или слушания, - не что иное, как чудо. Все это вместе с вашим генетическим талантом делает для вас язык легким.
С другой стороны, понимание человеческого языка - сложная проблема для компьютеров. В отличие от нас с вами, компьютеры не обладают привилегией языкового обучения, как это делаем мы. Даже языки программирования не интерпретируются ими напрямую - они сначала конвертируются в машинный язык низкого уровня. Истинный машинный код - это просто поток необработанных, обычно двоичных (единиц и нулей) данных. В то время как люди приобретают способность анализировать, обрабатывать, делать выводы и общаться, для компьютера любое слово, выделенное из человеческого языка, будет непонятной тарабарщиной до тех пор, пока он не будет должным образом обучен пониманию языка.
Задача обучения и расширения возможностей машин понимать язык так же, как и мы, называется обработкой естественного языка или НЛП. НЛП - это ветвь искусственного интеллекта, которая сама по себе является зонтиком для многих других подзадач. Ежедневными примерами таких проблем являются поиск, распознавание речи, перевод, обобщение, ответы на вопросы и т. Д. Но все это вызывает вопрос - если компьютеры могут понимать только единицы и нули, как они могут понять сложности человеческого языка?
Векторы слов - представление слов в виде чисел
Рассмотрим пространство, в котором все слова английского языка заполнены в зависимости от их семантического характера. Это воображаемое пространство таково, что слова, имеющие схожие описания или концепции, обладают схожими пространственными свойствами. Например, слова «кошка» и «собака» будут находиться в непосредственной близости друг от друга, потому что идея кошки очень похожа на идею собаки. Оба являются четвероногими домашними животными, из них получаются милые домашние животные. Для слов, которые не похожи по значению, но представляют одно и то же понятие, положения слов относительно друг друга инкапсулируют взаимосвязь. В семантическом пространстве относительное положение «короля» по отношению к положению «королевы» будет аналогично относительному положению между «мужчиной» и «женщиной» или «мальчиком» и «девочкой», потому что определяющее понятие, которое разделяет слова во всех трех падежах одинаковы - род.
В приведенном ниже примере семантического пространства вы можете увидеть, как векторы для таких животных, как лев, тигр, гепард и слон, очень близки друг к другу. Это интуитивно понятно, потому что они часто обсуждаются в схожем контексте; например, эти животные большие, дикие и потенциально опасные - действительно, описательное слово «дикие» довольно близко соответствует этой группе животных.
Поскольку слова в их чистом виде не могут быть интерпретированы компьютером, мы упрощаем их, отображая концепции и идеи, присущие словам, в репрезентативный набор чисел для каждого слова. Эти наборы чисел генерируются или «изучаются» алгебраически «нейронными сетями» (тип алгоритма) и называются «векторами слов». Эти словесные векторы несут способность захватывать информацию о семантических отношениях и синтаксических структурах в наборах слов. Подходы к созданию векторов слов основаны на гипотезе распределения Фёрта (1957), которая гласит:
«Вы должны знать слово по компании, в которой оно находится».
Иными словами, слова, имеющие схожий контекст, как правило, имеют схожие значения.
Векторы слов могут иметь любое количество измерений, хотя стандартное число обычно составляет 50, 100 или 300. Каждое из этих измерений представляет собой значение или абстрактное понятие, степень которого зависит от числового веса слова в этом конкретном измерении. Вот пример, чтобы проиллюстрировать это. Рассмотрим лексикон всего из десяти слов (а не из миллионов) и представим, что наши словесные векторы трехмерны (а не триста).
На рисунке выше для лучшего понимания мы представляем, что каждое измерение улавливает четко определенный смысл, а не абстрактную идею. Например, если вы вообразите, что третье измерение представляет понятие «пушистость», тогда вес каждого слова в этом измерении показывает, насколько близко оно соотносится с этим понятием. Для кролика имеет смысл иметь самый высокий коэффициент пушистости 0,45. Это довольно большое упрощение векторов слов, поскольку размеры не имеют такого четко определенного значения в действительности, но это полезный и интуитивно понятный способ осмыслить концепцию размерностей векторов слов. Мы не будем углубляться в математические подробности того, как нейронные сети изучают встраивание слов, потому что это потребует долгого обхода линейной алгебры. Но теперь вы знаете основную идею, лежащую в основе математики.
Разрешение лексических отношений
Моя текущая исследовательская работа сосредоточена на проблеме, называемой разрешением лексических отношений. Лексическое отношение - это признанный культурой образец ассоциации, существующий между лексическими элементами (словом, частью слова или цепочкой слов) в языке. Например, лексическое отношение между «открыть» и «закрыть» является антонимическим, тогда как «закрыть» и «закрыть» связаны отношениями синонимии. К другим асимметричным лексико-семантическим отношениям относятся ко-гипонимия (например, телефон ← → монитор), гипернимия (например, телефон → громкая связь) или меронимия (например, телефон → мундштук) и т. Д.
Признание точной природы семантических отношений, поддерживаемых между данной парой слов, имеет решающее значение и составляет основу для всех других приложений НЛП (ответы на вопросы, обобщение, распознавание речи и т. Д.), О которых я упоминал выше.
В прошлом было предложено несколько методов различения множественных семантических отношений, существующих между парой слов. Но это продолжает оставаться сложной задачей, особенно когда речь идет о различении определенных отношений. (например, синонимия и гиперонимия).
Исследования - Патчи, Внимание, Кубоид
Чтобы решить эту проблему, наша работа предлагает исследовать появление связанных слов в окрестности определенного слова и оценить влияние, которое оно оказывает на точность предсказания словесных отношений. Наша первоначальная гипотеза заключалась в том, что если каждое слово дополнить векторами слов фиксированного числа соседних слов (или «патчей»), можно добиться улучшенной производительности.
Существует множество мер сходства для объяснения лексико-семантического отношения, связывающего два слова. В нашем случае мы используем косинусную меру сходства, которая доказала свою эффективность в прошлом для множества семантических отношений. Проще говоря, косинусное сходство - это метрика, используемая для определения того, насколько похожи два объекта. Мы распространяем косинусное подобие на участки простым способом. Сходство между двумя фрагментами - это набор однозначных косинусных мер сходства между всеми словами в их соответствующих фрагментах.
Следующий шаг состоит в преобразовании патча в обучающий ввод, потому что, хотя мы можем рисовать и визуализировать патчи в своей голове, компьютеру они нужны в виде конкретных числовых данных, чтобы понять их. 300-мерные векторы слов каждого слова сравниваются с 300-мерными векторами слов всех слов в патче и единым показателем сходства для каждого сравнения. Фактически, мы берем 600 значений (по 300 от каждого из двух слов) и упрощаем их до одного с помощью косинусного подобия. Если мы установим no. соседей должно быть 10, что даст нам 10 x 10 сравнений, что даст 100 значений сходства. Эти значения вместе образуют «таблицу сходства внутри патча». Ниже приведены примеры четырех различных патчей и их оценки внутри патча.
Было решено, что в дополнение к сохранению центральности концепции внутри патчей, также имеет смысл сохранять центральность отношения между патчами. Важно понимать, что только определенные слова в двух патчах могут иметь решающее значение при принятии решения о том, находятся ли два слова в лексико-семантическом отношении. Если два патча используют набор близких семантически связанных слов, которые являются центральными для обеих концепций, процесс принятия решения должен интуитивно быть более надежным.
Однако наши первоначальные результаты показали, что прямое введение соседних слов не привело к улучшениям. Мы полагали, что это произошло главным образом из-за утраты концептуальной центральности, которая произошла в результате изменения стратегии. Если словесные отношения должны оцениваться путем сопоставления двух фрагментов вместо двух слов, необходимое внимание к исходному слову может быть ослаблено.
Следующим логическим шагом было как-то взвесить векторы слов на основе их центральности в концепции. Для этого мы ввели механизм внимания, основанный на алгоритме PageRank (который является одним из алгоритмов, используемых Google для поиска в Интернете. PageRank был разработан для измерения важности страниц веб-сайтов). Мы используем его, чтобы присвоить вес центральности каждому слову «соседи» в патче. Чем больше слово занимает центральное место в патче, тем больше очков оно получает. Эти оценки затем следует использовать в качестве весов внимания к соответствующим представлениям векторных слов соседей. Цель этого механизма - улучшить предсказательную способность нашей системы на основе оценки важности каждого вектора слов в патче. Мы обнаружили, что при развертывании в сочетании с правильной архитектурой исправленные исправления подкрепляют нашу модель и значительно улучшают предыдущие результаты. Чтобы объяснить специфику архитектур, мне пришлось бы зайти на чрезвычайно техническую территорию, так что пока мы избавимся от этих деталей.
Действительно, средние улучшения могут достигать 10,6% для бинарной классификации (для принятия решения между двумя отношениями) и 8% для мультиклассовой классификации (решение между более чем двумя отношениями) по сравнению с подходами без исправлений базовой линии. В настоящее время мы считаем, что могли бы получить еще лучшие результаты, если построим кубоид, в котором векторы слов двух слов вместо того, чтобы быть свернутыми до одного значения сходства, сохраняются в большей степени, только сжимая их из 600 измерений. до 300 измерений. (Мы делаем это, производя скалярное произведение между двумя векторами. Точечное произведение двух 300-мерных векторов дает новый 300-мерный вектор). Наши результаты с кубоидом были многообещающими и показали улучшенные характеристики по сравнению с нашими предыдущими базовыми показателями. Однако есть еще много тестов, которые модель должна пройти, прежде чем она может быть заявлена как прямое обновление по сравнению со своими предшественниками. Наш следующий шаг - сравнить наши результаты с моделями, которые пытаются решить ту же проблему. Каким бы образом он ни закончился, я обязательно буду обновлять этот блог о нашем прогрессе.
Что касается НЛП в целом, нет никаких сомнений в том, что мы все еще десятилетия или, в лучшем случае, годы далеки от того, чтобы приблизиться к созданию искусственного интеллекта, который говорит и общается так же, как мы. Сегодняшний объем данных, необходимых для обучения компьютера простейшим задачам, огромен. Мы не достигли пика с точки зрения качества представлений данных, и у нас нет достаточных вычислительных мощностей для масштабирования моделей, обученных текущим представлениям данных, за пределы определенной степени.
Поразмыслив, я никогда не перестану казаться безумным, что, обладая небольшими знаниями математики, достаточной вычислительной мощностью и приличным знанием языка программирования, вы можете научить совершенно неодушевленный объект понимать язык нашего вида. Если подумать, это довольно сюрреалистично.
Это сообщение в блоге основано на работе, проведенной с Несрин Баннур и Хусамом Ахмуш под руководством профессора Гаэля Диаса.
Вы можете посетить мою страницу здесь. Вы можете следить за моей лентой в твиттере здесь.