+ All Categories
Home > Education > NLU/RG: интерпретация команд с помощью OpenCCG

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

Date post: 29-Jun-2015
Category:
Upload: konstantin-sokolov
View: 488 times
Download: 15 times
Share this document with a friend
70
SmartHouse SynSem MMCCG & HLDS FTW Константин Соколов Mathlingvo, СПбГУ, i-Free http://nlu-rg.ru Санкт-Петербург, 2014
Transcript
Page 1: NLU/RG: интерпретация команд с помощью OpenCCG

SmartHouse SynSemMMCCG & HLDS FTW

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

Mathlingvo, СПбГУ, i-Free

http://nlu-rg.ru

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

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

План

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

1

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

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

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

Подзадача

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

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

2

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

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

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

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

3

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

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

4

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

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

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

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

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

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

5

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

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

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

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

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

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

6

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

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

Дискурс:

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

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

7

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

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

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

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

8

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

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

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

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

9

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

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

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

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

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

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

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

10

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

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

11

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

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

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

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

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

12

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

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

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

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

(SemEval-2014)

13

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

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

14

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

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

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

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

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

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

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

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

15

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

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

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

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

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

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

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

16

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

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

17

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

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

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

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

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

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

18

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

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

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

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

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

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

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

19

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

Цели

20

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

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

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

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

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

21

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

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

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

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

22

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

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

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

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

23

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

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

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

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

24

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

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

25

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

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

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

26

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

MMCCG

This page intentionally left blank

27

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

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

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

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

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

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

28

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

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

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

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

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

29

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

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

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

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

30

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

Реляционная семантика (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

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

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

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

32

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

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

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

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

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

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

33

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

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

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

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

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

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

34

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

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

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

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

35

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

Гибридная логика и 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

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

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

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

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

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

37

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

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

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

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

38

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

Hybrid Logic Dependency Semantics

Hybrid Logic Dependency Semantics:

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

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

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

39

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

Технологии

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

40

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

Формализмы

41

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

dotCCG (1)

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

42

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

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

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

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

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

dotCCG (4)

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

feature {ont-event: event {

action};

ont-entity: entity {physical {

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

}};

};

45

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

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

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

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

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

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

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

HLDS (3)

HLDS в виде AVM:

action

predicate onMood impActor 1

Patient

thing

predicate 2 лампаNum sg

Modifierq-color

[predicate красный_adj

]

49

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

HLMC (1)

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

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

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

50

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

HLMC (2)

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

51

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

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

52

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

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

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

53

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

Пример анализа (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

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

Пример анализа (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

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

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

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

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

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

56

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

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

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

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

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

n/np>pp

>ntypechange−6n\∗n

<ntypechange−4np

>

s\−np

57

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

Пример анализа (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

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

Пример анализа (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

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

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

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

60

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

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

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

61

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

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

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

62

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

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

63

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

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

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

64

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

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

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

65

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

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

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

66

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

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

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

67

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

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

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

68

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

Спасибо!


Recommended