Автор Томас Маркович, доктор философии.

Вступление

Понимание естественного языка в промышленных масштабах требует эффективного, высококачественного графа знаний для таких задач, как разрешение сущностей и рассуждение. Без способности рассуждать об информации семантически системы понимания естественного языка способны только к поверхностному пониманию. Поскольку требования машинного мышления и задач машинного обучения становятся более сложными, требуются более сложные графы знаний. В самом деле, ранее было замечено, что графы знаний способны давать впечатляющие результаты при использовании для расширения и ускорения задач машинного мышления в небольших масштабах, но затрудняются в больших масштабах из-за сочетания проблем целостности данных и производительности. Решение этой проблемы и обеспечение возможности машинного семантического мышления в масштабе - одна из фундаментальных технологических задач, которые мы решаем в Forge.AI.

Чтобы понять сложность этой задачи, необходимо определить, что такое граф знаний. Существует множество академических определений, но большинство из них изобилуют жаргоном и непонятны. Проще говоря, граф знаний - это граф, в котором каждая вершина представляет объект, а каждое ребро направлено и представляет отношения между объектами. Сущности обычно представляют собой собственные существительные и понятия (например, Apple и Company соответственно), края которых представляют глаголы (например, Is A). Вместе они образуют большие сети, кодирующие семантическую информацию. Например, кодирование того факта, что «Apple - это компания» в графе знаний выполняется путем сохранения двух вершин, одной для «Apple» и одной для «компании», с направленным ребром, исходящим из Apple и указывающим на компанию типа « это". Это показано на рисунке 1:

Граф знаний кодирует множество фактов, каждый с помощью ориентированного ребра. С каждой вершиной может быть связано множество фактов, что в конечном итоге делает ее ориентированным мультиграфом. Этот тип представления обеспечивает интуитивно понятный способ рассуждать о запросах. Например, из графа знаний, представленного на рисунке 1, мы можем рассуждать о вопросе Является ли Apple компанией? просто пройдя по графику, начав с Apple и перейдя к Компании, попутно тестируя ребра и концепции. В производстве графы знаний, как правило, довольно большие и сложные с миллионами или миллиардами ребер. Такой большой объем знаний позволяет нам использовать эти графики, чтобы легко рассуждать о семантических связях для таких задач, как обогащение бизнес-данных и разрешение сущностей. В Forge.AI мы выполняем эти задачи как часть нашего конвейера NLP / NLU для извлечения отдельных событий из неструктурированного текста в машиночитаемый формат.

Имея в руках рабочее определение графа знаний, мы рассмотрим некоторые варианты использования, которые мы нашли для графа знаний здесь, в Forge.AI. Затем мы исследуем инфраструктуру графа, чтобы понять, что поддерживает эти варианты использования. Наконец, мы обсудим часть нашей дорожной карты, чтобы узнать, что будет дальше с Forge.AI и его графом знаний.

Случаи применения

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

Устранение неоднозначности

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

«Хотя компания не разбивает продажи отдельных единиц по моделям, Apple заявляет, что продала 77,3 миллиона iPhone, что меньше 78,2 миллиона iPhone, проданных за тот же период в 2017 году».

Очевидно, это корпорация «Apple», а не фрукт типа «яблоко». Как наш мозг определил это? Мы использовали контекстные подсказки! Мы знаем, что Apple Corporation продает iPhone, потому что сорт фруктов ничего не может продать. Основываясь только на этих контекстных подсказках, мы можем выполнить эту задачу почти мгновенно, используя наши рассуждения. Граф знаний ForgeAI работает таким же образом: когда мы стремимся устранить неоднозначность сущности, мы предоставляем графу знаний набор совмещенных сущности, которые предоставляют графу соответствующий контекст. Однако системы машинного обучения работают не так, как наш мозг, и для того, чтобы система машинного обучения могла рассуждать с учетом контекста, нам нужен граф знаний. Затем наш граф знаний выполняет поиск всех версий «Apple» на полном графике и строит небольшие графы, включающие контекстную информацию, как показано на рисунках 2 и 3. Обратите внимание, что это зашумленный поиск по строке, который позволяет находить версии начальный термин поиска, который может отличаться от исходной строки или содержать строку поиска в качестве подстроки. Мы также ведем справочную таблицу известных псевдонимов для каждой из наших сущностей, где псевдонимами могут быть такие вещи, как коды CIK или символы тикера.

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

Анализ зависимостей

Еще одна важная задача, для которой, как мы обнаружили, полезен граф знаний, является анализ зависимостей. То есть для определения отношения между двумя или более объектами. Это наиболее полезно при попытке определить, является ли извлеченное событие чем-то, что может волновать клиента с учетом его заявленных интересов. Чтобы сделать это конкретным, давайте рассмотрим следующую новость в отношении клиента, который интересуется новостными событиями, касающимися Samsung:

«Российская компания« Норильский никель »объединилась с« Русской платиной »для инвестирования 4,4 млрд долларов в развитие горнодобывающих проектов в Сибири, где находятся одни из самых богатых в мире месторождений платины и палладия. В среду они заявили, что две компании сформируют совместное предприятие для разработки проектов на Таймырском полуострове на крайнем севере России с целью стать крупнейшим производителем драгоценных металлов в мире ».

Мне, конечно, не очевидно, как эта история связана с Samsung. Вопрос в том, чтобы определить, связано ли это новостное событие с Samsung, и если да, то с характером этого отношения, чтобы мы могли определить, передавать ли это событие нашему клиенту. Начнем с построения небольших графов вокруг каждой из сущностей. Имея в руках эти графики, мы затем вычисляем путь по алгоритму Дейкстры между каждой из отмеченных конечных точек. Пример такого пути приведен на рисунке 4.

На рисунке 4 мы видим, что граф знаний предполагает, что иридий является металлом платиновой группы и что металлы платиновой группы добываются в Норильске. Мы также видим, что Сеть знаний считает, что иридий используется в органических светоизлучающих диодах (или OLED), которые случайно используются в телефонах Samsung. Следовательно, это новостное событие, вероятно, имеет отношение к нашему клиенту. Фактически, это событие очень важно для интереса наших клиентов к Samsung, потому что Iridium невероятно важен для производства OLED-экранов из-за своей способности производить синий светодиод. Более того, Samsung даже профинансировал исследователей из Массачусетского технологического института и Гарварда для изучения альтернатив Iridium для OLED-экранов.

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

Инфраструктура графа

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

Есть небольшое количество фактов, на которые я готов поставить свою жизнь - что-то вроде Остона Мэтьюза - Торонто Мейпл Лиф - и очень много фактов, на которые я готов поставить 20 долларов - например, Бостонская резня произошла в 1770 году. И то, и другое верно, но из-за количества информации, которую я недавно прочитал, я знаю о первом гораздо больше, чем о втором, и, следовательно, более уверен в этом. Руководствуясь этим, мы разработали наш граф знаний таким образом, чтобы каждое ребро имело веса, которые мы решили интерпретировать как достоверность. Эти данные позволяют нам уловить неотъемлемую неопределенность, необходимую для моделирования быстро меняющегося мира, и рассуждать о достоверности запросов. Благодаря тому, что граф является вероятностным, мы можем принять истинные байесовские рассуждения, когда мы пытаемся оценить запрос, а также предоставить конкретные априорные значения для запроса, чтобы повысить или понизить вес утверждения на основе происхождения (например, собственные утверждения компании о выпуск нового продукта должен иметь больший вес, чем слухи в Твиттере).

Одна из самых интересных инженерных проблем графов знаний - это их размер. Нередко наличие графа знаний с более чем 1 миллиардом фактов и 50 миллионами вершин; для этого могут легко потребоваться сотни гигабайт оперативной памяти. Даже больше, чем требования к памяти, вызывают вычислительные затраты на вычисление даже базовых свойств графа, таких как длина пути между вершинами. Мы использовали два взаимодополняющих подхода, чтобы наши графические алгоритмы работали как можно быстрее. Во-первых, поскольку наши ребра интерпретируются как вероятности, можно установить ограничение вероятности, за пределами которого мы не заинтересованы в связях графов. Это позволяет нам рассматривать алгоритмы графа только над строго ограниченными подмножествами графа, что дает нам значительные алгоритмические улучшения. Во-вторых, мы спроектировали структуру данных, чтобы она оставалась максимально согласованной с кешем, представив наш граф знаний в виде разреженного трехрангового тензора в попытке оптимизировать фактическую пропускную способность ЦП.

У нас также есть четкий путь к эффективному распараллеливанию, используя то, что мы называем галактической структурой графа. Хотя это не является общей чертой всех графов, мы заметили, что существуют сильно связанные кластеры вершин, которые только слабо связаны друг с другом. Интуитивно это имеет смысл. Например, рассмотрим такие области, как Toronto Maple Leafs, и современную физику элементарных частиц - между этими полями мало наложений, и, следовательно, нет необходимости рассуждать о графе, который содержит оба кластера сильно взаимосвязанных вершин, когда рассуждает о Дэйв Кеон, Toronto Maple Листья легенды. Эта галактическая структура открывает нам многообещающий путь к эффективному распараллеливанию с использованием стандартного оборудования.

Куда мы идем?

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

Вероятностное рассуждение

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

Автоматическая проверка фактов

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

Автоматическое пополнение графика

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

Динамика графика

Моделирование влияния определенных ребер на связность двух отмеченных вершин в графе имеет фундаментальное значение для понимания устойчивости сети. В контексте графа знаний это дает нам информацию о влиянии этого факта. Интуитивно, если мы представим, что вершины в нашем графе являются городами и краевыми дорогами, с весами краев, соответствующими ширине этих дорог (например, 0,1 - это однополосная дорога, а 1.0 - шестиполосная супермагистраль), тогда время перемещение между двумя разными городами указывает на силу их связи. Имея множество альтернативных маршрутов и множество широких автомагистралей, мы можем сказать, что эти города тесно связаны между собой. Математически проблему можно представить в терминах двухточечной корреляционной функции для набора случайных блужданий по графу. Это дискретные случайные блуждания, динамика которых может быть смоделирована дискретной функцией Грина. Воспользовавшись связью между дискретными функциями Грина на графике случайной топологии и дискретными уравнениями Лапласа, мы предварительно обнаружили, что можно оценить влияние изменения ребра. Мы рады формализовать и укрепить эту связь и раскрыть эти меры, чтобы помочь в создании более совершенных моделей.

График знаний в Forge.AI является важным элементом нашего технологического стека, и у него есть захватывающий потенциал для дальнейшего развития. Мы с нетерпением ждем возможности поделиться с вами новыми идеями в ближайшие месяцы.

Примечание. Изначально этот пост был опубликован в нашем блоге: https://www.forge.ai/blog/knowledge-graphs-for-enhanced-machine-reasoning-at-forge.ai