TLDR
Для разнородных групп пользователей (прим. язык, возраст), возможность одинаково эффективно взаимодействовать с веб-приложениями является одним из важнейших факторов такого понятия как "доступность" (англ. Accessibility). Это относится и к системам автоматического ответа на вопросы с использованием графов знаний (англ. Knowledge Graph Question Answering, KGQA), которые обеспечивают доступ к данным Семантического Веба (англ. The Semantic Web) через интерфейс на естественном языке. В ходе работы над такой темой, как многоязычная доступность KGQA-систем, мы с коллегами выявили несколько наиболее острых проблем. Одной из которых является отсутствие многоязычных бенчмарков для KGQA.
В этой статье мы улучшаем один из самых популярных бенчмарков для KGQA -- QALD-9, путем создания эталонных переводов вопросов из исходного датасета на 8 различных языков (немецкий, французский, русский, украинский, белорусский, армянский, башкирский, литовский). Одним из самых важных аспектов является то, что переводы были предоставленны и провалидированы носителями соответствующего языка. Пять из этих языков - армянский, украинский, литовский, башкирский и белорусский - насколько нам известно, никогда ранее не рассматривались в рамках KGQA-систем. А два языка (башкирский и белорусский) рассматриваются ЮНЕСКО как "находящиеся под угрозой исчезновения". Мы назвали новый расширенный датасет "QALD-9-plus". Датасет доступен онлайн: https://github.com/Perevalov/qald_9_plus
Вопросно-ответные системы на основе графов знаний (KGQA)
KGQA-системы конвертируют вопрос на естественном языке в запрос к графу знаний (англ. Knowledge Graph), тем самым позволяя их пользователю иметь доступ к "знаниям" без необходимости изучения языка запросов (например SPARQL). Это и есть главное отличие KGQA-систем от Text-based QA-систем (так же называемых в литературе, как MRC, ODQA, IR-based), работающих на основе неструктурированных данных.
Графы знаний зачастую создаются на основе Фреймворка Описания Ресурсов (англ. Resource Description Framework (RDF)), который представляет собой "модель данных для метаданных". Данные в RDF представлены как триплеты вида "субъект-предикат-объект", например, Иван-Является_Другом-Мария
, именно поэтому их и удобно визуализировать в виде графа. Известная schema.org является "надстройкой" над RDF и используется многими веб-сайтами для разметки своего контента (де-факто, для улучшения поисковой выдачи). Такое структурирование всемирной паутины является фундаментом ранее упомянутого Семантического Веба, где все ресурсы структурированы и связаны друг с другом. Таким образом, KGQA-системы являются нашими проводниками в мир структурированной информации по всей "Всемирной Паутине".
Проблема многоязычности вопросно-ответных систем
Кажущаяся нам естественность доступности информации посредством Гугла совсем не является таковой для носителей тех языков, которыми владеют не сотни миллионов человек (напр. Русский), а единицы миллионов (напр. Белорусский) или даже меньше (напр. Башкирский). Естественно, что большинство людей, говорящих на Белорусском или Башкирском владеют и Русским языком, который открывает возможности доступа к второму по размеру сегменту Веба. Но это не работает для всех языков и, как обычно, всё относительно. Люди владеющие русским языком имеет доступ к пониманию лишь 6.9% контента Всемирной Паутины, тогда как англоязычные пользователи к 63.6% контента (https://w3techs.com/technologies/overview/content_language). В этой связи, был введён термин "Цифровой языковой барьер" (англ. Digital language divide), суть которого заключается в том, что языки, которыми владеет пользователь Веба напрямую влияют на его пользовательский опыт.
Мы провели небольшой эксперимент по тому, как Гугл работает с "большими" и "малыми" языками на примере английского, немецкого, белорусского и башкирского языков. Был задан один простой вопрос "Сколько лет Дональду Трампу?" на каждом из языков соответственно. Ответ, как говорится, убил! На иллюстрации ниже видно, как Гугл успешно ответил на вопрос, заданный на английском и немецком, и как зафейлился на белорусском и башкирском языках -- это ли не показатель проблемы? Стоит заметить, что при успешном ответе, Гугл представляет ответ в структурированном виде, это и есть тот самый Google Knowledge Graph, которому к тому же помогает разметка schema.org.
Как другие справляются с этой проблемой?
Существует заблуждение, что с появлением unsupervised, weakly-supervised, и semi-supervised методов (напр. word2vec или BERT), проблема многоязычности оказалась решена (т.к. нет потребности в большом количестве размеченных данных). Однако, это не так. Если языковую модель можно оценить без использования размеченных данных, то вот более комплексные системы уже не получится (напр. KGQA). Поэтому, проблема наличия структурированных эталонных данных (бенчмарков) на нескольких языках всё ещё является насущной.
Question Answering over Knowledge Graphs до сих пор является довольно специфичной сферой прикладной науки, поэтому и работ, публикуемых на данную тематику не так много. На момент написания статьи существовало всего лишь 3 многоязычных бенчмарка для KGQA. Это QALD, RuBQ, и CWQ (см. иллюстрацию ниже).
Все вышеперечисленные наборы данных не идеальны. Например QALD-9, хоть и имеет в себе 10 языков, однако, качество перевода, мягко говоря, оставляет желать лучшего. RuBQ 2.0 и CWQ для получения переводов использовали автоматический (машинный) перевод, что является некоторым ограничением.
Что мы сделали? Датасет QALD-9-Plus
Для того, чтобы улучшить ситуацию с многоязычностью, мы решили полностью обновить датасет QALD-9, оставив в нём только вопросы на английском языке и привлекли к данной работе краудсорсинговые платформы (Amazon Mechanical Turk, Яндекс Толока). Также, в процессе перевода были задействованы добровольцы из сообщества Open Data Science.
Задача состояла из 2-х этапов: (1) носитель языка переводит с английского на свой родной, и (2) другой носитель языка проверяет варианты перевода. Оба этапа проводились независимо друг от друга.
По итогам работы мы получили переводы на 8 различных языков: русский, украинский, литовский, белорусский, башкирский, армянский, немецкий и французский. 5 из этих языков до текущего момента никогда не были представлены в области KGQA (украинский, литовский, белорусский, башкирский, армянский), а 2 языка (белорусский, башкирский) и вовсе рассматриваются ЮНЕСКО как "находящиеся под угрозой исчезновения".
Помимо переводов, мы также улучшили применяемость нашего бенчмарка. Оригинальный QALD-9 позволял оценивать системы работающие только на основе графа знаний DBpedia. В нашей работе над QALD-9-Plus, мы приняли решение перенести бенчмарк на ещё один граф знаний -- Wikidata. Это оказалось довольно таки трудным занятием, поскольку автоматических конвертеров SPARQL запросов между различными графами знаний ещё не существует, поэтому пришлось выполнять задачу руками. Удивительно, какие порой разные запросы получаются на DBpedia и Wikidata ввиду различных моделей данных (см. код внизу).
# Вопрос -- Когда Финляндия присоединилась к ЕС
# DBpedia
SELECT DISTINCT ?date
WHERE {
dbr:Finland dbp:accessioneudate ?date .
}
# Wikidata
SELECT DISTINCT ?date
WHERE {
wd:Q33 p:P463 ?membership . # member of
?membership pq:P580 ?date . # start time
?membership ps:P463 wd:Q458 . # EU
}
Итоговые характеристики бенчмарка QALD-9-Plus, а также пример его структуры представлены в виде таблицы и фрагмента кода ниже.
{
"id": "86",
"question": [
{
"language": "en",
"string": "What is the highest mountain in Germany?"
},
{
"language": "de",
"string": "Wie heißt der höchste Berg in Deutschland?"
},
{
"language": "ru",
"string": "Какая гора является самой высокой в Германии?"
},
{
"language": "uk",
"string": "Яка найвища гора у Німеччині?"
},
{
"language": "be",
"string": "Самая высокая гара ў Германіі?"
},
{
"language": "lt",
"string": "Pats Aukščiausias kalnas Vokietijoje?"
},
{
"language": "ba",
"string": "Германияла иң бейек тау?"
}
],
"query": {
"sparql": "PREFIX wdt: <http://www.wikidata.org/prop/direct/> PREFIX wd: <http://www.wikidata.org/entity/> SELECT ?uri WHERE { ?uri wdt:P31 wd:Q8502 ; wdt:P2044 ?elevation ; wdt:P17 wd:Q183 . } ORDER BY DESC(?elevation) LIMIT 1"
},
"answers": [
{
"head": {
"vars": [
"uri"
]
},
"results": {
"bindings": [
{
"uri": {
"type": "uri",
"value": "http://www.wikidata.org/entity/Q3375"
}
}
]
}
}
]
}
Вместо заключения
Я буду очень рад, если вы дочитали до сюда! Именно в конце данной статьи я бы хотел поделиться полезными ссылками связанными с данной работой, а именно:
ArXiv link
Видео-презентация на YouTube: https://youtu.be/W1w7CJTV48c
Слайды slides
Google Colab notebook
BibTex цитирование
@misc{perevalov2022qald9plus,
title={QALD-9-plus: A Multilingual Dataset for Question Answering over DBpedia and Wikidata Translated by Native Speakers},
author={Aleksandr Perevalov and Dennis Diefenbach and Ricardo Usbeck and Andreas Both},
year={2022},
eprint={2202.00120},
archivePrefix={arXiv},
primaryClass={cs.CL}
}