NLU/RG: интерпретация команд с помощью OpenCCG

Post on 29-Jun-2015

488 views 15 download

transcript

SmartHouse SynSemMMCCG & HLDS FTW

Константин Соколов

Mathlingvo, СПбГУ, i-Free

http://nlu-rg.ru

Санкт-Петербург, 2014

План

• Постановка задачи• Концепция решения• Теоретические основы и технологии• Демонстрация• Результаты прототипирования, оценки

1

Большая задача

Мультимодальное управление умным домом

Подзадача

Семантический анализ запросовв рамках естественно-языкового интерфейса

управления умным домом

2

Постановка задачи

• Умный дом• согласованное взаимодействие разнородного оборудования• обратная связь, видимость, прозрачность• персонализированное, адаптивное, проактивное поведение

• Мультимодальное управление• сосуществование различных способов управления• естественно-языковой интерфейс не должен уметь всё

3

Допущения и предпосылки

4

Допущения и предпосылки (1)

Командный режим работы:

• Это не диалоговая система и не IVR• Обратная связь

• изменение состояния устройств• панель управления• носимые устройства• звуковые сигналы и пр.

• Голосовое взаимодействие одностороннее• уточнений и наводящих вопросов от системы нет• синтеза речи нет• mixed initiative нет

5

Допущения и предпосылки (2)

Контролируемый язык:

• Две крайности, которых хотелось бы избежать:• всё что угодно• список команд для заучивания

• Ограниченный домен• мы работаем с очень узкой предметной областью• мы контролируем набор языковых конструкций и словарь

• Цель: говорить как угодно, но ”только про лампочки”.

6

Допущения и предпосылки (3)

Дискурс:

• Поддержка контекста взаимодействия в пределах сессии• В пределах сессии пользователь может

• чего-то не уточнять, предполагать известным• ссылаться на предшествующее состояние системы• ссылаться на свои прошлые слова

7

Допущения и предпосылки (4)

Голосовое управление:

• ASR может ошибаться• ASR может возвращать список гипотез• ASR можно настраивать с учетом текущего контекста

8

Допущения и предпосылки (5)

Ежедневное использование:

• Пользователей мало, но они взаимодействуют постоянно• Доля успешных взаимодействий должна быть большой• Требуется качественный анализ и быстродействие

9

Допущения и предпосылки (6)

Технические особенности:

• Возможность опереться на знания о системе ипользователях

• Возможность использовать специализированноеоборудование для решения задачи управления

• Возможность использовать вычислительно тяжелыеподходы

• Нет возможности ”ходить в облако”

10

Близкие области исследований

11

Близкие области исследований (1)

• Вычислительная семантика• теоретико-модельная формальная семантика• синтактико-семантический интерфейс• NLU как компонент систем распознавания речи

• Искусственный интеллект• символьные методы в компьютерной лингвистике• робототехника (анализ сцен, восприятие)• представление знаний и interactive grounding

• Computer Science• логический вывод• проверка и построение моделей• верификация программ

12

Близкие области исследований (2)

• Известные решения• C&C Tools• OpenCCG• LKB, PATR-II и др.

• Дорожки• Recognizing Textual Entailment (c 2005 г.)• Supervised Semantic Parsing of Robotic Spatial Commands

(SemEval-2014)

13

Основные проблемы

14

Основные проблемы (1)

• Ошибки распознавания

• “включи” и “выключи”• “включи свет и лампу” и “включи свет у лампы”

• Неоднозначность

• “красная и белая лампа”• две лампы, одна красная и одна белая• одна красно-белая лампа (“большой и сильный человек”)

• “красная лампа в прихожей”• в прихожей много ламп, одна из них красная• красных ламп много, одна из них в прихожей

• “включи свет и телевизор на кухне”• и свет, и телевизор - на кухне• телевизор на кухне, свет - нет

15

Основные проблемы (2)

• Учет семантических и прагматических факторов

• “включи лампу на кухне и телевизор в комнате”• кухня не может стоять в комнате

• “включи лампу на столе и телевизор в комнате”• лампа на столе, стол в комнате• лампа на столе, но стол не в комнате

• “включи лампу”• зависимость от местоположения• зависимость от конфигурации (несколько ламп)

• “сделай музыку погромче”• разное поведение днем и ночью• различные пользовательские предпочтения

16

Предлагаемый подход

17

Предлагаемый подход (1)

• Синтактико-семантический компонент• получает список вариантов от ASR• формирует варианты интерпретации• устраняет заведомо некорректные варианты• расширяет пространство гипотез, делая допущения• вычисляет оценки правдоподобности гипотез• формирует ранжированный список гипотез

• Модуль принятия решений делает выбор на основе• прагматической информации

• местоположения пользователя• состояния оборудования• времени суток

• эвристик и правила (интеллектуальное поведение)• модели пользователя (персонализация)• статистики прошлых запросов (адаптация)• текущих предпочтений (режим работы, энергосбережение)

18

Предлагаемый подход (2)

Суть подхода - генерация гипотез и фильтрация

Компонент Число гипотез Параметры для расчета оценки

Распознавание речи 10 score, confidenceРасширение запроса 100 количество вставок, удалений, пропусков, словарных замен,

расстояние редактированияПарсер 100 сложность разборов, проективность, использование доп. правилЛогическая форма 200 глубина для рекурсивных структур, количество переменных,

число клауз и пр.Оценка модели 10 выполнимость всей формы или отдельных её частей

19

Цели

20

Цели прототипирования (1)

• Работа с русским языком• Работа с неоднозначностью• Оценка реализуемости и трудоемкости• Оценка возможностей имеющихся open-source решенийдля работы с deep semantic parsing

• Оценка возможности интеграции в существующуюинфраструктуру (включая интеграцию с ASR)

• Оценка вариативности языковых конструкций,поддающихся реализации

21

Цели прототипирования (2)

НЕ ставились цели:

• Достичь быстродействия системы или оценить его• Покрытие кейсов по сценариям использования системыконечным пользователем

22

Цели демонстрации (1)

• Рассказать о теоретических основах подхода• Рассказать об используемых компонентах• Рассказать об используемых формализмах• Посмотреть на реализацию разборовконкретных типов предложений

• Дать оценки по исходным задачам прототипа

23

Цели демонстрации (2)

• Рассказать об ограничених текущего прототипа и как ихможно решать

• Рассказать, что еще не было сделано• Рассказать о дополнительных возможностях, которыеможет предостаавить выбранный подход

24

Теоретический минимум и технологии

25

Теоретический минимум

• Multimodal Combinatory Categorial Grammar (MMCCG)• Hybrid Logic Dependency Semantics (HLDS)• Hybrid Logic Model Checking (HLMC)

26

MMCCG

This page intentionally left blank

27

Модальная логика

Модальный оператор �

• �φ - “необходимо p”• ♦φ - “возможно p”• ♦φ ≡ ∼ � ∼ φ

Аксиомы некоторых модальных систем:• K: �(φ ⊃ ψ) ⊃ (�φ ⊃ �ψ)

• T: �φ ⊃ φ• S4: �φ ⊃ ��φ

28

Реляционная семантика (1)

Шкала Крипке (Kripke frame):

F = (W ,R), где W - непустое множество, R ⊆W ×W .

• wi ∈W - миры, состояния, точки отнесенности• R - отношение достижимости• если wRv , то говорят, что v возможен относительно w

29

Реляционная семантика (2)

Модель Крипке M = (F ,V ), где

• F - шкала Крипке• V : P → 2W - функция оценивания, т.е. отображение изатомарных выражений в подмножества множества миров

30

Реляционная семантика (3)

ПустьM = (F ,V ), w ∈W , φ - формула, p ∈ P

Истинность φ в моделиM в точке w определяется рекурсивно

• M,w |= p ⇐⇒ w ∈ V (p)• M,w |= ¬φ ⇐⇒ M,w 6|= φ

• M,w |= φ ∨ ψ ⇐⇒ M,w |= φ илиM,w |= ψ

• M,w |= �φ ⇐⇒ ∀v ∈W . (wRv →M, v |= φ)

• M,w 6|=⊥

ЕслиM,w |= φ, говорят, что φ логически следует изM,w

31

Мультимодальная логика

• Набор модальных операторов �i (соотв., ♦i )• Шкала Крипке - размеченный граф

32

Гибридная логика (1)

• Будем писать 〈π〉 и [π] вместо ♦π и �π

• 〈π〉α ≡ ¬[π]¬α• Введем дополнительно класс номиналов (обозн. i , j , k)• Введем оператор @i со значением “истинно в точке i”

Язык гибридной логики HL(@):

WFFHL(@) := > | i | p | ¬α | α ∧ β | 〈π〉α | @iα

33

Гибридная логика (2)

Гибридная модель Крипке:

M = (W , {Rπ|π ∈ MOD},V ), где

• F = (W , {Rπ|π ∈ MOD}) - шкала Крипке• V : PROP ∪ NOM → 2W

• V (i) - синглетон

34

Гибридная логика (3)

Денотационная семантика для HL(@):

• M,w |= i ⇔ w = V (i)• M,w |= @iα ⇔ M,w ′ |= α и w ′ = V (i)

35

Гибридная логика и XML (1)

<biblio><book id="b1">

<author>Marx</author><author>de Rijke</author><title>Hybrid Logics</title><date>1998</date><cites idref="b1"/>

</book><book id="b2">

<author>Franceschet</author><title>Model Checking</title><date>2000</date><cites idref="a1"/>

</book></biblio>

36

Гибридная логика и XML (2)

XML документ - модель, формула гибридной логики - запрос.

• Существует ли в точности одна книга автора Franceschet?• @root〈biblio〉〈book〉 ↓ x . 〈author〉Franceschet ∧ @root〈biblio〉[book]x

• Существует ли две разных книги?• @root〈biblio〉〈book〉 ↓ x . @root〈biblio〉〈book〉¬x

37

Гибридная логика и проверка моделей

Дана гибридная модельM и формула α, найти все узлы вM,в которых α истинна:

T (M, α) = {w ∈W | M,w |= α}

38

Hybrid Logic Dependency Semantics

Hybrid Logic Dependency Semantics:

• Композициональный семантический формализм• Описание семантических структур зависимостей спомощью выражений гибридной логики

• Cемантическая композиция реализуется как унификациялогических форм (ср. с формализмами на основеλ-исчисления: конкатенация с последующей редукцией)

• Реализован в системе OpenCCG (Baldridge et al., 2007)

39

Технологии

• OpenCCG (Baldridge et al., 2007)• Грамматика Moloko (DFKI)• HLMC (L. Dragone)

40

Формализмы

41

dotCCG (1)

• DSL для создания MMCCG-грамматик• Транслируется в XML-формат OpenCCG• MOLOKO - около 4 kLOC• Мой прототип - около 0.5 kLOC (из-за морфологии)

42

dotCCG (2)

Определение семейства слов:

family tv(V) {entry : s \! np / np : E:event(* <Actor>(S:entity)

<Patient>(X:entity));}

Запись в словарной части:

word лампа:Noun(thing, pred=лампа) {лампа: s-sg nom fem;лампу: s-sg acc fem;лампы: s-pl nom fem;лампы: s-pl acc fem;

}

43

dotCCG (3)

Правила изменения типа:

rule {typechange: s<10> [E NUM PERS MOOD POL FIN VFORM vf-to-imp] \!

np<9> [S nom NUM PERS nf-real] /np<2> [X acc]

=> s<~10>[E fin-full s-imp] /np<2> [X acc] : E:event(<Mood>(imp)

<Subject>(S:entityaddressee));

}

44

dotCCG (4)

Фрагмент онтологии:

feature {ont-event: event {

action};

ont-entity: entity {physical {

animate { person },thing,e-location { e-region, e-place }

}};

};

45

dotCCG (5)

Макросы:

def COORD(args) { R( args <First>(F) ^ <Next>(N) ) }

# Адъективное склонение, твердая разновидностьdef adj-adj-h-sg-fem(base) {

# sg, fembase."ая" : nom s-sg s-degree-base fem pre-n;base."ой" : gen s-sg s-degree-base fem pre-n;base."ой" : dat s-sg s-degree-base fem pre-n;base."ую" : acc s-sg s-degree-base fem pre-n;base."ой" : abl s-sg s-degree-base fem pre-n;base."ой" : loc s-sg s-degree-base fem pre-n;

}

46

HLDS (1)

Компактная форма:

@w0:action(ON ^<Mood>imp ^<Actor>x1:entity ^<Patient>(w2:thing ^ лампа ^

<Num>sg ^<Modifier>(w1:q-color ^ красный-adj) ^<Modifier>(w3:m-location ^ на ^

<Anchor>(w4:e-place ^ кухня ^<Num>sg))))

47

HLDS (2)

Линеаризованная форма:

@E_0:action(CLOSE) ^@E_0:action(<Mood>imp) ^@E_0:action(<Actor>S_0:entity) ^@E_0:action(<Patient>T_1:thing) ^@M_3:m-location(в) ^@M_3:m-location(<Anchor>T_4:e-place) ^@T_1:thing(шторы) ^@T_1:thing(<Num>pl) ^@T_1:thing(<Modifier>M_3:m-location) ^@T_4:e-place(прихожая) ^@T_4:e-place(<Num>sg))

48

HLDS (3)

HLDS в виде AVM:

action

predicate onMood impActor 1

Patient

thing

predicate 2 лампаNum sg

Modifierq-color

[predicate красный_adj

]

49

HLMC (1)

Выражение на языке гибридной логики для HLMC:

# без номиналовshtory & <num>(pl) & <modifier>(na & <anchor>(kuhnya & <num>(sg)))

# с номиналами и переменными@root (B x (<thing>(x <modifier>(<anchor>(kuhnya)))))

50

HLMC (2)

Гибридная модель Крипке для HLMC (описывается в XML).

51

Пример анализа

52

Пример анализа (1)

включи лампу и подсветку на кухне

53

Пример анализа (2)

Первый вариант разбора (MMCCG):

включи лампу и подсветку на кухне

s\−np/np np n/np\∗np n pp/�np np<

n/np>pp

typechange−6n\∗n

<ntypechange−3np

>ntypechange−4np

>

s\−np

54

Пример анализа (3)

Первый вариант разбора (HLDS):

@w0:action(ON ^<Mood>imp ^<Actor>x1:entity ^<Patient>(w2:entity ^ и ^

<Num>pl ^<First>(w1:thing ^ лампа ^

<Num>sg) ^<Next>(w3:thing ^ подсветка ^

<Num>sg ^<Modifier>(w4:m-location ^ на ^

<Anchor>(w5:e-place ^ кухня ^<Num>sg))) ^

<Num>pl))

55

Пример анализа (4)

Первый вариант разбора (HLMC):

> ON (lampa & <num>(sg)) : x1_node x6_node

> ON (podsvetka & <num>(sg) &<modifier>((na & <anchor>((kuhnya & <num>(sg)))))) : x3_node

56

Пример анализа (5)

Второй вариант разбора (MMCCG):

включи лампу и подсветку на кухне

s\−np/np np n/np\∗np np pp/�np np<

n/np>pp

>ntypechange−6n\∗n

<ntypechange−4np

>

s\−np

57

Пример анализа (6)

Второй вариант разбора (HLDS):

@w0:action(ON ^<Mood>imp ^<Actor>x1:entity ^<Patient>(w2:entity ^ и ^

<Num>pl ^<First>(w1:thing ^ лампа ^

<Num>sg) ^<Modifier>(w4:m-location ^ на ^

<Anchor>(w5:e-place ^ кухня ^<Num>sg)) ^

<Next>(w3:thing ^ подсветка ^<Num>sg) ^

<Num>pl))

58

Пример анализа (7)

Второй вариант разбора (HLMC):

> ON (lampa & <num>(sg) &<modifier>((na & <anchor>((kuhnya & <num>(sg)))))) : x1_node

> ON (podsvetka & <num>(sg) &<modifier>((na & <anchor>((kuhnya & <num>(sg)))))) : x3_node

59

Другие примеры (1)

• лампа• красная лампа• включи красную лампу• выключи красную лампу• включи красную лампу на кухне• включи лампу на кухне• включи красную лампу и подсветку

60

Другие примеры (2)

• включи красную лампу на кухне и подсветку• включи красную лампу и подсветку на кухне• включи лампу на кухне и подсветку в прихожей• включи лампу и выключи подсветку• включи красную лампу и выключи лампу на кухне• включи красную лампу и закрой шторы на кухне

61

Другие примеры (3)

• включи и выключи лампу• включи и выключи лампу на кухне• включи и выключи лампу и подсветку на кухне• включи лампу и лампочку и подсветку на кухне• включи и выключи лампу на кухне и подсветку в прихожей• включи и выключи лампу на столе и подсветку в прихожей

62

Выводы и оценки

63

Работа с русским языком

• Простые типы предложений портируются легко• Необходимо аккуратно реализовать онтологию• Трудоемкая реализация морфологии (но ср.: RusForIR)• Программировать не нужно• Работа для лингвиста (или нескольких)• Отличные возможности для повторного использования• Реализация большого фрагмента русского языка вформализме MMCCG может стать существенным вкладомв отечественную компьютерную лингвистику

64

Работа с неоднозначностью

• Удалось реализовать все предполагавшиеся варианты• ... и обнаружить еще несколько

65

Что предстоит сделать

• Поддержка дискурса• Расчет оценок• Портирование HLMC и поддержка типов• Автоматизация создания модели

66

Оценка трудоемкости

• Грамматика - около месяца• Model Checking - до двух недель• Модуль принятия решений - не удалось оценить

67

Новые возможности

• Генерация правого контекста для распознавания речи• Валидация модели• Извлечение семантических ролей

68

Спасибо!