Авторы: Дж. Уильям Мердок, Ави Сил, Анастас Стояновский, Кристоф Гитте

Многие бизнес-приложения используют своего рода поиск для поиска документов или отрывков. Некоторые также могут захотеть найти ответы в этих документах или отрывках. В этой статье мы приводим несколько примеров этой задачи. Мы объясняем его связь с передовыми исследовательскими технологиями. Затем мы опишем возможности поиска ответов в IBM Watson Discovery. Мы обсудим способы использования этой возможности в бизнес-приложении. Мы говорим об ограничениях технологии и планах по устранению этих ограничений. Наконец, мы обсуждаем доступность возможности и запрашиваем обратную связь.

Задача найти ответ

Рассмотрим следующий вопрос:

Какие версии Firefox поддерживает InfoSphere Information Server 1.3?

Страница поддержки IBM отвечает на этот вопрос, говоря:

Если вы откроете веб-консоль InfoSphere Information Server в Internet Explorer 11, вы можете получить сообщение об ошибке: IBM InfoSphere Information Server поддерживает браузеры Mozilla Firefox (ESR 17 и 24) и Microsoft Internet Explorer (версии 9.0 и 10.0).

Для некоторых приложений найти этот документ может быть достаточно, чтобы оказаться полезным. Однако для многих было бы лучше также подчеркнуть или выделить точный ответ: «СОЭ 17 и 24».

Приведенный выше пример представляет собой явный вопрос, но его также можно сформулировать как неявный вопрос:

Версии InfoSphere Information Server 1.3 Firefox

Этот запрос грамматически не является вопросом, но имеет примерно такое же значение. Таким образом, мы ожидаем такого же ответа и на этот вопрос.

Ответ в этих примерах («ESR 17 и 24») представляет собой литеральную строку в тексте. Это определяющая характеристика поиска ответов: он находит ответы в самом тексте. Он не создает новых ответов, делая выводы. Например, если вы спросите систему поиска ответов «Сколько будет 4 плюс 7?» она не смогла бы дать вам правильный ответ, если бы в этой системе не было текста, в котором прямо говорилось, что 4 плюс 7 равно 11. В тексте не нужно было бы использовать эти точные слова, но он должен был бы сказать что-то на этот счет.

Исследования в поиске ответов

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

Поиск ответа в пределах одного фрагмента текста (например, абзаца) иногда называют «машинным пониманием прочитанного». Задание напоминает задание на понимание прочитанного, распространенное в стандартизированном тестировании детей. Система получает проход и вопрос и отвечает на вопрос. При этом большинство тестов на «понимание прочитанного» для детей включают вывод ответа, а не просто поиск ответа. Таким образом, «машинное понимание прочитанного» — это несовершенный ярлык для компонента, который находит ответ в отрывке. Тем не менее, он обычно используется для описания технологий такого рода в различных научных публикациях.

Популярные наборы данных для тестирования таких систем включают набор данных Google Natural Questions (для английского) и набор данных TyDi (для 10 других типологически разных языков, включая бенгальский, русский, финский и т. д., и даже языков с низким ресурсом, например, суахили). . Вы можете узнать больше о наборах данных и посмотреть, какие исследовательские системы эффективны по этим ссылкам. Таблицы лидеров на соответствующих страницах показывают, какие системы лучше всего работают с данными в данный момент времени. GAAMA (аббревиатура от Go Ahead Ask Me A ничего) от IBM Research, которая обучается на основе большой многоязычной языковой модели под названием XLM-RoBERTa, как правило, находится на вершине рейтинга или рядом с ним по поиску коротких ответов.

Поиск ответов в IBM Watson Discovery

Возможность поиска ответов в IBM Watson Discovery начинается с поиска. Он использует технологию информационного поиска для поиска документов и отрывков. Далее Watson Discovery называет свою модель GAAMA. Используя эту модель, он извлекает ответы из отрывков. Наконец, он возвращает документы, отрывки и ответы.

Подробную информацию о том, как использовать функцию поиска ответов для IBM Watson Discovery v2, можно найти в этой публикации в блоге сообщества IBM и в Документации по API. Ниже мы приводим лишь краткий пример и введение.

Пример API

Здесь мы приводим наглядный пример. Рассмотрим запрос:

{“natural_language_query”: “InfoSphere Information Server 1.3 Firefox versions”, 
“passages”: { 
“enabled”: true, 
“max_per_document”: 3, 
“characters”: 850, 
“fields”: [“title”, “content”], 
“find_answers”: true, 
“max_answers_per_passage”: 1}}

Для этого запроса Watson Discovery сначала ищет документы, относящиеся к «версиям InfoSphere Information Server 1.3 Firefox». Поскольку passages.enabled имеет значение true, он пытается найти отрывки для каждого документа. Поскольку passages.max_per_document равно 3, он находит не более 3 отрывков для каждого документа. Поскольку passages.characters равен 850, длина отрывков составляет примерно 850 символов. Отрывки берутся из полей с именами «заголовок» или «контент» на основе параметра passages.fields. Поскольку passages.find_answers равно true, Watson Discovery пытается найти ответы в отрывках (используя свою модель GAAMA). Поскольку пассажи.max_answers_per_passage равно 1, в каждом отрывке будет найден не более 1 ответа.

Для этого примера запроса Watson Discovery возвращает список документов. В каждом документе есть список отрывков. В каждом отрывке есть список ответов. Вот пример отрывка внутри документа в этом результате поиска:

{“passage_text”: “<em>InfoSphere</em> <em>Information</em> <em>Server</em> Web Console with Internet Explorer 11, you may get the error message: IBM <em>InfoSphere</em> <em>Information</em> <em>Server</em> supports Mozilla <em>Firefox</em> (ESR 17 and 24) and Microsoft Internet Explorer (<em>version</em> 9.0 and 10.0) browsers.”, 
“start_offset”: 287, 
“end_offset”: 526, 
“field”: “content”, 
“answers”: [{ 
“answer_text”: “(ESR 17 and 24)”, 
“start_offset”: 446, 
“end_offset”: 700, 
“confidence”: 0.6925222}]}

Этот объект перехода начинается с текста отрывка. В тексте подчеркиваются совпадения ключевого слова с запросом. Далее идет начальное и конечное смещения прохода. После этого следует поле, из которого был взят отрывок (в данном примере это «контент»). Существует список ответов с одним ответом (поскольку в запросе мы установили для параметра пассажи.max_answers_per_passage значение 1). Каждый ответ имеет текст, смещения и значение достоверности. Достоверность варьируется от 0 до 1 и представляет собой оценку вероятности того, что ответ правильный.

Бизнес-приложения

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

В целом, мы ожидаем, что точность поиска ответов будет выше, а также для случаев использования проверки документов. Например, рассмотрим поисковый запрос типа «Каков крайний срок поставки продукции в оптовом контракте на 2021 год с SampleCo?» В этом запросе есть две отдельные задачи: (1) найти оптовый контракт на 2021 год с SampleCo и (2) найти крайний срок поставки продукта в рамках этого контракта. Для Watson Discovery будет намного проще, если вы разделите их на два этапа. Сначала пользователь найдет оптовый контракт с SampleCo на 2021 год (возможно, выполнив поиск по запросу «оптовый контракт на 2021 год с SampleCo» или, возможно, пролистав список контрактов). Затем пользователь задавал вопросы об этом контракте, такие как «Каков крайний срок поставки продукта?». Любой подход может работать и получать правильные ответы. Подход, основанный на обзоре документов, скорее всего, даст правильные ответы чаще. Однако поисковый подход может обеспечить лучший и более удобный пользовательский интерфейс. Мы рекомендуем рассмотреть оба варианта в зависимости от потребностей ваших конечных пользователей.

Как только вы нашли ответы в своем приложении, вам нужно показать их пользователям. Обычно ответы имеют больше смысла в контексте отрывка, в котором они были найдены. Поэтому для большинства приложений мы рекомендуем подчеркивать ответ в отрывке, а не показывать только ответ. В некоторых случаях может быть полезно сначала представить ответ более крупным шрифтом, а затем показать отрывок с ответом в нем. Если в вашем приложении очень мало места для отображения ответов (например, приложение для смарт-часов), то показ текста ответа может иметь смысл. Однако в этом случае мы рекомендуем отображать такие ответы только в том случае, если Watson Discovery имеет чрезвычайно высокую степень достоверности. Предоставление неправильного ответа без какого-либо контекста часто является плохим и запутанным пользовательским опытом. Любая система поиска ответов даст неправильные ответы.

Даже если вы показываете полный контекст, мы рекомендуем отбрасывать ответы с низким уровнем достоверности. Когда поиск ответов включен, Watson Discovery почти всегда будет возвращать ответы в каждом проходе. Часто эти ответы имеют очень низкую достоверность и почти наверняка неверны. Решение о том, насколько вы должны быть уверены, прежде чем показывать ответ, очень субъективно и во многом зависит от деталей заявки. По этой причине Watson Discovery не отбрасывает ответы с низким уровнем достоверности внутри компании. Он полагается на вызывающее приложение, чтобы решить, достаточно ли высока достоверность для какого-либо использования. Подробнее о том, как выбрать доверительный порог, см. в этой статье.

Ограничения и будущая работа

Вот некоторые ключевые ограничения возможности поиска ответов в Watson Discovery:

  • Как отмечалось ранее, функция поиска ответов в Watson Discovery не создает ответы, а только находит их. Поэтому, если ответ не указан в тексте, он не может найти этот ответ.
  • Поиск ответов полезен только для ответов на вопросы «да/нет», если есть какой-то текст, который отвечает на вопрос. Например, рассмотрите вопрос: «Должен ли я утеплить чердак перед зимой?» Если у вас есть документ, в котором говорится, что вы должны добавить больше изоляции перед зимой, поиск ответа может быть полезен для поиска этого утверждения. Однако, если у вас есть документ, в котором перечислены преимущества и недостатки такого подхода и не делается вывод, поиск ответа не поможет. Поиск документа Watson Discovery и отрывка может быть полезен для поиска этого текста, но в тексте нет ответа, который нужно найти.
  • Эта возможность обычно бесполезна для запросов, которые явно или неявно не задают вопрос. Например, такой запрос, как «Поддержка IBM», является навигационным запросом, в котором пользователь пытается найти определенную страницу, а не получить ответ.
  • Возможность поиска ответа полезна для вопросов, где ответом является одно существительное (например, «Кто выиграл Суперкубок XII?» — «Далласские ковбои») или сложная фраза или предложение (например, «Почему Ковбои выиграли Суперкубок XII?» ?» — «потому что их защита заставляла много перебрасываться и уничтожала игру в пасы Бронкос»). Однако более сложные вопросы, требующие ответов на отрывок или объем документа, не подходят для поиска ответов. Поэтому, если ваши пользователи задают только вопросы, требующие очень длинных ответов, поиск ответов может оказаться бесполезным. Если ваши пользователи задают множество вопросов, и значительная часть из них требует более коротких ответов, то поиск ответов, скорее всего, поможет. В этих случаях вы часто можете полагаться на достоверность ответов, чтобы знать, какие ответы показывать, а какие игнорировать.
  • Поиск ответов Watson Discovery не особенно хорош для поиска ответов в таблицах или сложных списках. Например, если я спрошу «валовой доход IBM за 2014 год», поиск ответа, скорее всего, даст правильный ответ, если есть предложение, в котором указывается валовой доход IBM за год. Гораздо меньше шансов получить правильный ответ из таблицы, показывающей различные финансовые результаты за разные годы.

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

Наличие поиска ответов в Watson Discovery

Поиск ответов теперь общедоступен для IBM Watson Discovery v2 в публичном облаке IBM, которое доступно в тарифных планах Плюс и Премиум. Если у вас есть экземпляр Watson Discovery v2 в общедоступном облаке IBM, мы рекомендуем вам попробовать его. Мы также скоро сделаем его доступным для частного облака и облаков сторонних производителей через IBM CloudPak for Data.

Если у вас есть отзывы об этой функции, сообщите нам об этом, разместив сообщение в теме обсуждения поиска ответов в рамках Сообщества IBM Watson Discovery.