August 4th, 2016

2019

Коннекционистская весна онтологической инженерии

Идея ручного построения онтологий оказалась в реализации запредельно трудоёмкой -- поэтому в "ручной" онтологической инженерии наступила стагнация, "зима компьютерных онтологий" стала достойной частью "зимы искусственного интеллекта". Если не понимать, что искусственный интеллект вошёл в своё лето не по символистской логической (в том числе символистской логической computational ontology) дороге, а через прорубленное в это лето коннекционистское окно deep learning, то можно ждать онтологического лета до морковкиного заговения. Но если понимать, то онтологическая весна уже пришла, а скоро уж будет и лето.

Коннективистская онтологическая инженерия придёт со стороны лингвистики, и ведущим словом там ещё некоторое время будет не "онтология", а "семантика". Коннективисты обнаружили embeddings и крепко занялись ими в плане выражения семантики -- при этом понимая наличие жёстких возражений (вот тут собраны возражения Nando de Freitas, главным образом по использованию предварительно вычисленных embeddings -- построение и работа с коннекционистскими standalone онтологическими описаниями необязательно будет повторять формы работы с классическими символистскими онтологическими описаниями и тем самым наследовать проблемы этих онтологий, впрочем, как и наследовать и их достоинства: http://ailev.livejournal.com/1240509.html).

Но возражения возражениями, а исследования по линии коннекционистских словарей-тезаурусов-онтологий интенсифицируются на глазах:
-- сначала они занимаются значениями отдельных слов в "векторных пространствах" aka semantic space, conceptual space и прочими вариантами "геометрий значений" -- даже книжка есть такая, https://mitpress.mit.edu/books/geometry-meaning,
-- потом приходят к выводу, что нужно заниматься значениями как таковыми (которые привязываются иногда к словам, иногда к частям слов, иногда к словосочетаниям, и дальше по идее distributional semantics -- фразам, предложениям, документам),
-- потом (сильно потом!) начинает появляться идея о моделировании отношений (это они и называют онтологиями -- но ведь это только "как говорят о мире"),
-- и только потом-потом идея сначала о мультимодальной (аудио, видео, тексты) семантике -- http://acl2016.org/index.php?article_id=59,
-- и только совсем потом о grounding -- привязывания этого всего "лингвистического "как говорят о мире" к реалиям окружающего мира, то есть появляется классическая онтология по линии ответа на вопрос "что есть в мире" (а не "что говорят о том, что есть в мире", отвязка от лингвистики).

Вот хороший обзор-тьюториал на эту тему: "Semantic Representations of Word Senses and Concepts" -- http://wwwusers.di.uniroma1.it/~collados/Slides_ACL16Tutorial_SemanticRepresentation.pdf (это 258 слайдов, а компактное описание и литература тут: http://arxiv.org/abs/1608.00841, и даже есть страничка самого тьюториала с совсем уж компактным изложением: http://acl2016.org/index.php?article_id=58).

В этом обзоре зацеплено кусочком довольно много интересных направлений, каждое из которых само по себе чуть ли не маленькая предметная область. Вот, например, семантика многословных выражений (где сразу напоминается, что "сыграть в ящик" -- это помереть, т.е. рассчитывать на только композиционную семантику нельзя), недаром по этому поводу проводится в этом году уже 12й международный семинар -- http://multiword.sourceforge.net/PHITE.php?sitesig=CONF&page=CONF_06_MWE_2016___lb__ACL__rb__

Удивительно, но в обзоре "Semantic Representations..." не затрагивается работа со смыслом частей слов, так что нужно читать дополнительные тексты. Например, типовой текст такого рода "Morphological Priors for Probabilistic Neural Word Embeddings", где разбираются со словами, для которых просто невозможно набрать большую статистику, например sesquipedalianism, и с переменным успехом пытаются смешать композиционную и распределённую семантику, нейросети и байесовские оценки -- http://arxiv.org/abs/1608.01056. Идите по ссылке и смотрите тамошнюю литературу, там есть и ссылки на работу с семантикой даже на символьном и фонемном уровне, а не уровне частей слов.

И эти работы, связывающие knowledge graphs и глубокие нейросети, множатся и множатся. Например, три дня назад вышла http://arxiv.org/abs/1608.00318 -- we propose a Neural Knowledge Language Model (NKLM) which combines symbolic knowledge provided by knowledge graphs with RNN language models. At each time step, the model predicts a fact on which the observed word is supposed to be based. Then, a word is either generated from the vocabulary or copied from the knowledge graph. We train and test the model on a new dataset, WikiFacts. In experiments, we show that the NKLM significantly improves the perplexity while generating a much smaller number of unknown words. In addition, we demonstrate that the sampled descriptions include named entities which were used to be the unknown words in RNN language models.

Semantic Spaces -- это очень, очень горячая тема. Вот свежие (11 июня 2016) Proceedings of the 2016 Workshop on Semantic Spaces at the Intersection of NLP, Physics and Cognitive Science -- http://eptcs.web.cse.unsw.edu.au/content.cgi?SLPCS2016. Exploiting the common ground provided by the concept of a vector space, the workshop brought together researchers working at the intersection of Natural Language Processing (NLP), cognitive science, and physics, offering them an appropriate forum for presenting their uniquely motivated work and ideas. The interplay between these three disciplines inspired theoretically motivated approaches to the understanding of how word meanings interact with each other in sentences and discourse, how diagrammatic reasoning depicts and simplifies this interaction, how language models are determined by input from the world, and how word and sentence meanings interact logically. Конечно, вместе с физиками сюда приходит и теория категорий, идёт формирование поддисциплины Categorical Compositional Distributional Semantics, в этом семинаре было несколько работ на эту тему. Ну, и дальше не обходится без традиционного для коннективистских представлений выхода на квантовые алгоритмы: We propose a new application of quantum computing to the field of natural language processing. Ongoing work in this field attempts to incorporate grammatical structure into algorithms that compute meaning -- http://eptcs.web.cse.unsw.edu.au/paper.cgi?SLPCS2016.8

Есть и другие околофизические представления, тот же Yan LeCun не устаёт напоминать о free lunch theorem и поэтому недостаточность работы только в одного вида представлениях, а хоть и коннективистских, а хоть и методами deep learning -- https://www.quora.com/What-are-the-limits-of-deep-learning-2. Он напоминает, что прогресс лежит на линии комбинирования разных представлений, например, графовые energy-based models and structured predictions on top of neural nets (or other models) -- http://web.stanford.edu/class/cs379c/archive/2012/suggested_reading_list/documents/LeCunetal06.pdf (это аж 2006 год, тем не менее у Yan LeCun уже были примеры, когда его древние алгоритмы на современной элементной базе работали более чем хорошо). Напомню ещё работы по symbolic variables binding, где на коннекционистских структурах моделируется логические представления, последний раз я собирал ссылки тут: http://ailev.livejournal.com/1266905.html

Пунктиром в работе с семантическими пространствами всё время идёт физика, так и вспоминается, что "метафизика" (с которой неразрывно связано само понятие онтологии) именно что мета-физика. Если локальные представления, символистские, как-то сразу абстрагированы от физического мира, они ведут себя по совсем другим правилам, то коннеционистские представления оказываются в разы физичнее -- и для их понимания используется тот же подход и та же математика, которые были приняты в физике (я год назад уже об этом писал в "физике процессов эволюции и deep learning" -- http://ailev.livejournal.com/1197148.html).

Ещё одна интересная тема -- это выход от "объективной модели мира", застывшей метафизики к деятельностной, к выражению интента, целей, намерений, обоснований и т.д.. И вовсе необязательно речь идёт о диалоге или называнию словами действий в фильмах. Так, Dominic Widdows на семинаре http://arxiv.org/abs/1608.01018 говорит о том, что semantic spaces can be used to represent goals and objectives, something that has been markedly lacking in formal models for language. "Drawing words from a distribution of topics in accordance with grammatical structure" does not describe why people write documents, and a quick glance at a few news articles shows that part of the reason is "to convince the reader of something". The second part of the talk will explore the suggestion that goals and objectives can be expressed in the same model as words and documents, potentially leading to a way of understanding of rhetoric and persuasion in terms of semantic spaces.

Несколько лет в связи с коннеционистскими представлениями появилась и тема argumentation mining (не нужно говорить, как это связано с темой инженерных обоснований? Поглядите ссылочки в : http://ailev.livejournal.com/811715.html) -- http://argmining2016.arg.tech/. Argument mining (also, `argumentation mining’) is a relatively new challenge in corpus-based discourse analysis that involves automatically identifying argumentative structures within discourse, e.g., the premises, conclusion, and argumentation scheme of each argument, as well as argument-subargument and argument-counterargument relationships between pairs of arguments in the document. To date, researchers have investigated methods for argument mining in areas such as legal documents , on-line debates, product reviews, academic literature, user comments on proposed regulations, newspaper articles and court cases, as well as in dialogical domains. -- с инженерными обоснованиями, понятно, в этом списке пока слабО, но это точно появится в ближайшие годы.

Вот этот последний поворот мне особенно близок к сердцу, появление учёта intent -- это переход от "объективных" систем к нормальному современному системному рассмотрению. Я уже писал, что коннекционизм проблематизирует системный подход (http://ailev.livejournal.com/1252230.html), но он же помогает его и укреплять. Системный же подход 2.0, со стейкхолдерами и их intent, их concerns (даже если это прихватывается пока только через лингвистику) поможет самому коннекционизму выйти за пределы "объективной дисциплины STEM" (http://ailev.livejournal.com/1283663.html), действительно преодолеть ограничения математики-физики и выйти в более широкое пространство человеческого и, конечно, нечеловеческого мышления.
2019

За пределами STEM-образования

Всё, что происходит вокруг STEM-образования сегодня -- это инерция движения по линии "объективного" системного подхода. Образец STEM берётся из "дедушкиной системной инженерии" образца где-то до середины 1975 года, где системы были "объективными" и поэтому "объективная" формализация шла по линии физики-математики. А потом за десяток лет жизнь изменилась, в системном подходе в его инженерной версии появились стейкхолдеры, и вся "объективность" оказалась субъективной, основанной на интересах (concern) этих стейкхолдеров -- вся эта математика-физика оказалась глубоко посаженной на интересы людей. Сами даже западные математики-физики, даже советские социалистические насквозь системотехники это не отследили, в результате обычный STEM сегодня неполноценен, в нём не учтена человеческая деятельность. Нужен STEM++. Какие дисциплины туда должны войти? Краткий списочек я уже давал в http://ailev.livejournal.com/1283133.html, а тут рассортирую его:

1. Классический STEM (https://en.wikipedia.org/wiki/Science,_technology,_engineering,_and_mathematics):
-- наука (естественные науки: классические физика, химия, биология и т.д., редко когда computer science, но тоже бывает). Тут физическая компетентность (связь математики с физическим миром прежде всего), остальное по большому счёту бантики "для эрудиции".
-- технология (чаще всего понимается как умение работать на "станочках" -- типовые уроки труда, ещё не инженеры, а только "техники")
-- инженерия -- инженеры-механики, электрики и прочие инженеры, часто и software engineers (с не слишком большим знанием computer science и data modeling)
-- математика: алгебраическая компетентность, включая линейную алгебру, геометрическая компетентность (наглядная геометрия, потом с выходом в работу 3D САПР), статистическая (и, желательно, байесовская) компетентность. И ещё тут учитываем компьютерную математику, а не работу только карандашом по бумажке: https://www.ted.com/talks/conrad_wolfram_teaching_kids_real_math_with_computers/transcript?language=ru

2. За пределами STEM, развитие мыслительных компетенций -- абстрагирования, осознанности, адекватности, разумности:
-- логическая компетентность, "логика науки" и "логика инженерии" (правильные рассуждения, в том числе в рамках матлогики, и на естественном языке). Тут не только булевская логика, но и её расширения в вероятности (по линии Jaynes "Probability theory: the logic of science", http://bookzz.org/book/539703/d8b66c). Именно тут связь строгого и правдоподобного рассуждений, работа с эвристиками по Billy Koen "Discussion of the method" http://bookzz.org/book/1244349/defe5d.
-- онтология и моделирование данных (в STEM обычно выпадают): как на базе разных foundational ontologies строить разные upper ontologies (большие картины мира) и далее что-то делать с предметными онтиками. Вот тут Chris Partridge, http://www.borosolutions.co.uk/research/content/files/books/BusObj-Printed-20050531-with-watermark.pdf
-- языковая компетентность (функциональная грамотность -- умение понимать нарратив и производить нарратив: можно получить её только при работе с несколькими языками, на одном русском её не получишь)
-- (кибер)психотехническая компетентность (openmeta), тут живёт осознанность, понимание своих прокрастинационных предпочтений и лености, контроль уровня сосредоточенности, знакомство с собственными заскоками и умение ладить с миром.
-- системный подход (хотя бы в объеме http://ailev.livejournal.com/1278600.html)
-- алгоритмическая компетентность (та самая алгоритмика из computer science, в том числе развитая в сторону умений планировать -- алгоритмику, а не "компьютерную технологию/грамотность" в школах СССР ещё вводили именно для этого, а не для умения работать с компьютером-станочком)
-- вычислимость как таковая (computer science), хотя бы в объеме SICP, https://wizardforcel.gitbooks.io/sicp-in-python/content/index.html. А дальше -- парадигмы программирования.
-- системная инженерия (требования, архитектура, испытания, жизненный цикл и управление конфигурацией, и т.д.), без этого любая другая инженерия будет кустарна.
-- какая-то работа с распределёнными представлениями и их связью с символьными представлениями (тут ещё мало кто понимает, но без этого уже в 21 веке нельзя). Это ещё только формируется, инженерия систем машинного обучения, http://www.slideshare.net/ailev/alevenchuk-machine-learning-engineering, http://ailev.livejournal.com/1205999.html. Очень интересно об этой новой дисциплине, застрявшей между математикой, физикой, лингвистикой (http://ailev.livejournal.com/1283541.html) и программированием написано тут: https://habrahabr.ru/post/307024/. Базовые представления о пространстве значений (например, по линии Peter Gardenfors, The Geometry of Meaning: Semanics Based on Conceptual Spaces -- http://bookzz.org/book/2514718/f34e5e)
-- праксиология, социология, экономика (и предпринимательство), право. Ибо живём в мире людей и нужно уметь думать про их деятельность.
-- эволюционные и экологические представления (тут даже не знаю, куда это отнести -- но без них трудно понимать, например, тексты типа "против целей", http://ailev.livejournal.com/1254147.html).

Мне могут возражать, что в STEM это всё есть. Ну, иногда бывает в разговорах про STEM, на уровне хотелок, и отнюдь не всё. Это всё beyond STEM, за пределами STEM. Ну не учат в STEM тому же абстрагированию -- а ведь это важнейшее умение, только абстракции помогут удержать в голове хоть в каком-то единстве разбросанные далеко-далеко друг от друга знания (см. обоснование, например, тут -- необходимость глубины, этажерки абстраций, наличия дисциплины движения "по вертикали" среди огромных горизонтальных пластов линеаризованного в текстах знания: http://ailev.livejournal.com/1274014.html). Мы должны учить глубине! Мы должны учить "мета", двигаться по вертикали, а не только в горизонталях предметного мышления. В школе учат предметно "по горизонтали", STEM этого не избегает -- только предметы он выбирает вполне определённые и настаивает на их взаимосвязи. А я тут про "предметы межпредметья", ими нужно заниматься!

Хотя я готов согласиться даже на заимствование популярного имени -- пусть это будет STEM++, хотя я бы склонялся к обратному: говорить, что это у меня образовательная основа, из "человека дикого", человека-кустаря получение "человека разумного", а в STEM к "разумности" добавляют прикладные её аспекты технологии и инженерии (математику и физику как приложение математики к миру при этом я бы причислял, конечно, к себе -- в основы разумности).

Пока я призываю к STEM++, в котором учтены люди и общее их умение думать (не только вычислять), в школе со скоростью пожара распространяется неполноценный STEM--, в котором развивается только прикладной аспект. Это идёт под флагом кружков рукоделия под гордым именем "проекты", см. длинный тред https://www.facebook.com/shperk/posts/10157195239750153. Я в этом треде тоже отметился. Я не против проектов, проекты нужны! Без формального образования (http://ailev.livejournal.com/1263511.html -- "формальное образование в эпоху перемен"), которое преодолевает свою "теоретичность", оторванность от жизни в проектах, мы не получим думающих творцов. Получим только "просто творцов", но не думающих -- только "чувствующих", ремесленников, которые могут только повторить что-то подсмотренное у мастера, ибо в голове у них нет теории, нет "разумности" и осознанности, только "интуитивность". На "проектах" без теоретической подготовки, которую эти проекты закрепляют, можно вырастить толпы Кулибиных и Левшей, которые дадут потрясающие примеры ремесленных "шедевров" для кунсткамер и музеев техники всего мира, но в серию это всё уникальное искусство запустить будет невозможно.

Опять же, формальное образование (в противопоставление материальному), весь этот STEM++ просто требует проектной деятельности, ибо нужен навык работы с теорией in the wild, когда у тебя нет поставленных задач и тебе нужно уметь увидеть предмет не в задачке из тренажёра, а в бурлящей и сбивающей с толку жизни. Учебные "проекты", и только они, только реальные большие работы дают возможность преодолеть барьер между книжным знанием и жизнью. Вот тут первые два пункта в достижении ментальной беглости дают на тренажёрах необходимое теоретическое знание, но для третьего пункта необходимы проекты (пост про curriculum learning для системного тренажёра): http://ailev.livejournal.com/1282190.htm

Поэтому я и говорю: нужно "мимо школы" (хоть начальной, хоть средней, хоть высшей), иначе ничего не получится -- чиновники совершенно искренне испортят всё дело, ибо они хорошо разбираются в детях, старинных физике и математике, а также опыте предыдущих поколений педагогов. Жизнь же поменялась, и учитывать нужно совсем новые обстоятельства.

Вот я и предлагаю сделать образовательный проект (кратко описанный в http://ailev.livejournal.com/1280262.html, пост "мимо школы"), который основан на следующих принципах:
-- даются дисциплины "мимо школы", учат тому, что ни в какой школе и ни в каком ВУЗе не учили, не учат, и вряд ли когда-нибудь будут учить.
-- все эти дисциплины делают "человека разумного": развивают мозг в направлении потенциальной возможности впоследствии освоить любую прикладную дисциплину. В какой-то мере это можно назвать "учить учиться", в какой-то мере "учить думать", в какой-то мере речь идёт о междисциплинарной основе разумности. Человек выводится на уровень, в котором он может стать сам себе педагогом (пункт 4 в http://ailev.livejournal.com/1279588.html -- со всеми предостережениями оттуда).
-- все дисциплины даются не только на уровне непонятно откуда пришедшего в тренировке навыка, но и на уровне осознанности (чтобы можно было выбирать: какой навык на какой заменять, или можно было обсудить эти свои навыки с кем-то). Люди знают, какими приёмами мышления они владеют, и что они с этим потом могут сделать.
-- дисциплины тесно переплетены друг с другом в curriculum learning
-- упор не на "объяснялки", а на тренажёры (а потом и "проекты").
-- тренажёры безлюдны ("сержантский метод" -- люди нужны для организации работы на тренажёрах, а не для объяснений), высокий уровень автоматизации. И мы надеемся, что как-то удастся сдвинуть мотив на цель: сначала тренинг будет достигаться для получения каких-то морковок, а затем выяснится, что тренировки самоценны.
-- понимание, что если речь идёт о мотивации для такого обучения, то это не мотивация на участие в каких-то отдельных действиях-мероприятиях, а мотивация на изменения образа жизни, тренажёры же это на много часов в день! (обсуждалось в http://cartmendum.livejournal.com/173785.html?thread=3586521#t3586521 -- и развёрнутый пост про "зажигание мастерства" http://ailev.livejournal.com/1130190.html).
-- высокий инструментальный уровень, чтобы снизить барьеры на работу с этой образовательной системой ученика, поднять комфорт этой работы, так и снизить барьеры и поднять комфорт этой работы для методистов.
-- глубокая индивидуализация образования (адаптивное обучение, ответы на специальные запросы), это делается за счёт применения технологий машинного обучения и искусcтвенного интеллекта.
-- открытая архитектура (т.е. опубликованные API) образовательной системы, что позволяет легко добавлять какие-то образовательные модули с новыми заданиями или даже целыми курсами, а также вписывать эту образовательную систему в окружающий информационный мир (см. про Студии -- http://ailev.livejournal.com/1280626.html).
-- по мере развития проекта будет стык с оффлайн частью, проектами, где нужно будет работать руками (в какой-то мере это предмет настоящего поста) -- т.е. нужен интерфейс и по поддержке реальных командных проектов с живыми педагогами, а не "машинным сержантом". Это всё только часть blended learning обучения -- и что в этом тексте не сказано, то просто не сказано, это не значит, что в жизни этого не будет.