1. Интеллектуальный поиск.
"Нам нужно сделать каталог всей нашей корпоративной информации, её очень много и она крайне бессистемна". Нет, вам не нужно сделать каталог вашей информации, он вам не поможет. Посмотрите, WWW давно уже избавился от каталогов -- хотя когда-то они были очень популярны, и у Google, и у Yahoo!, и у Яндекса эти каталоги были. Что вам нужно -- это нормальный интеллектуальный поиск.
"Нам нужно сделать систему управления знаниями". Нет, так это всё называлось двадцать лет назад. Сегодня это опять же "интеллектуальный поиск".
Осталось определить, что такое "интеллектуальный":
-- супер-пупер-продвинутый универсальный поиск: структурированная (базы данных) и неструктурированная информация в одном флаконе, поиск полнотекстовый. Это текущий state-of-the-art, решения типа Dassault Systemes Exalead (конечно, есть и много чего подешевле). Иногда люди пытаются что-то говорить тут про "семантику", но на поверку это оказывается не более чем какая-то работа с синтаксисом. Скажем, продающийся в России вариант IBM Watson ровно из этой серии. Это где-то за рубежом есть более умные варианты IBM Watson, но в России пока всё не очень хорошо (но, как обычно в таких случаях, "ситуация может поменяться со дня на день").
-- "семантический поиск", т.е. поиск с использованием knowledge graph, "как у Гугля". Главная засада тут -- это как сделать knowledge graph обучением. Для этого нужно надёжно извлекать из текста объекты вашей предметной области, плюс уметь извлекать отношения. Проблема в том, что это умеют делать отнюдь не все -- а те, кто умеют это делать, делают руками (то есть ненадёжно, долго, дорого). Эти knowledge graph уже можно "учить" автомагически, но это пока зона экспериментов. НИР, а не НИОКР (как бы ни выглядело по-другому). Те немногие решения, которые есть на рынке ("семантические"), хорошо работают с текстами "из интернетов", но очень плохо с текстами вашей компании -- и это "доучивание" тут первое препятствие, а второе -- как в полнотекстовом поиске использовать этот самый knowledge graph уже более-менее всем понятно.
-- поиск с ответами на вопросы (question answering system). Впрочем, не совсем поиск, и называется "поиск" всё реже и реже. Чаще это называется assistant (ага, это Siri, Google Assistant и т.д., только в рамках корпоративной информации, а не "интернета в целом"). 1. вопросы предполагаются на естественном языке (то есть в систему должна быть встроена модель языка, какое-то "понимание речи", а не просто полнотекстовый поиск по ключевым словам). 2. Удерживаются цепочки уточнений при ответах на вопросы. 3. Система при ответе на вопросы может пораскинуть мозгами и сделать пару-тройку шагов логического вывода -- впрочем, это предполагается и у предыдущих, "семантических" систем. 4. Если ответ короткий, то просто его скажет. Ну, или выдаст ссылки на текст с ответом (но у "ассистентов" это не предполагается). Длинные диалоги обычно не подразумеваются, но развитие явно идёт в эту сторону.
-- поиск по заранее неизвестным источникам, ибо не факт, что спрашивают именно корпоративную информацию. Это может быть и далеко выходящая за пределы компании информация о стандартах, о законах, информация технической библиотеки, информация а хоть и Библиотеки Конгресса (почему бы и нет?), вся информация из "интернетов" (да, включая социальные сети и чаты), да ещё хорошо бы приоритетно подмешивать и какую-то "личную информацию", если о такой можно говорить при работе в компании (но хотя бы вытаскивать письма из собственной переписки, чтобы не искать что-то в этих письмах отдельным запросом!).
2. Управление конфигурацией и изменениями.
На рынке о таких системах мало говорят, ибо прежде всего такими системами интересуются в инженерных компаниях. Конечно, если у тебя есть какая-то конфигурация, то в ней хорошо бы уметь что-то найти. Так что по факту в эту задачу 2 входит и задача 1. Но есть и другое: если мы говорим об управлении конфигурацией и изменениях, то мы должны:
-- уметь искать что-то в базисах, а не во всей наличной информации самых разных версий. Если у вас есть какой-то "мануал" для позапрошлой версии ваших практик, то нужно понимать, что эта информация неактуальна. Ну, и какая часть осталась актуальной, если новой версии никто и не планирует делать? Люди с этим как-то разбираются, нужно с этим разбираться и машинам. Простейшая тут задача -- это сработать с корпоративными текстами, предоставляя поиск по изменённым версиям этих текстов (что особо пикантно, когда тексты не переписываются, а к ним проводятся многочисленные "изменения", например так любят работать законодатели -- есть основной текст и куча к нему патчей. Сделать конечный текст из множества к нему "официальных поправок, каждая по одной строчке" -- отдельная задача, а ведь по этому конечному тексту ещё и искать нужно!).
-- уметь находить конфигурационные коллизии. Это сходу означает, что мало найти что-то. Нужно уметь как-то делать проверку этого "чего-то" на непротиворечивость с "чем-то" другим. Скажем, в базе данных (структурированной) у вас информационная модель, и в ней отражены два насоса в базисе -- и вы уверены, что так и есть. Нечеловеческие глазки должны выхватить из потока входящих неприметное письмо "все три ваших насоса закуплены и будут у вас не позднее вторника" и инициировать содержательную проверку. Если есть стандарт, где сепульки должны быть не более 40мм в диаметре, и этот стандарт действующий в вашем проекте (это нужно ещё сообразить как-то, какие стандарты у вас из имеющихся в доступных информационных системах будут "действующие"), то нужно инициировать содержательную проверку, когда появился первый же документ или первая же запись в базе данных, что чукумба (которая, оказывается, должна признаваться сепулькой согласно определениям стандарта) выбрана "5 размера", что означает 53мм в диаметре -- и этот перевод "размера" в миллиметры тоже ещё нужно сообразить.
-- тут можно ещё добавить что-то про права доступа к документам, объединение собственной информации и информации подрядчиков, и сразу станет понятно, что это задача, плохо решаемая даже "сильным искусственным интеллектом".
Пока искусственного интеллекта тут немного, зато много ручного труда.
3. Задача организации диалога.
"У нас колл-центр, и хотелось бы как-то разгрузить его сотрудников". Это типичная задача для всяких чат-ботов. Ибо диалог сразу подразумевает какую-то его цель, множество реплик, переспросы и уточнения -- и в конечном итоге достижения цели диалога (это не поиск! это не ответ на вопрос! мало дать какую-то запрошенную информацию -- нужно много чего сделать, чтобы понять и помочь клиенту решить его проблему). Какие тут проблемы?
-- стык системы диалога с базами данных. Все проблемы поиска по текстам, базам данных, картинкам (одновременно!) и с запросами на естественном языке наличествуют.
-- при этом ответы нужно давать по состоянию знаний "на сейчас", ответы типа "когда-то у нас был такой случай" не пойдут: если вы прекратили сегодня утром выдавать кредиты типа X, то в диалоге о проблемах с получением кредита типа X нужно не выдавать самый удачный вчерашний разговор, когда машине удалось уболтать клиента получить такой кредит (в машинном обучении это ведь произойдёт с большой степенью вероятности: повтор ранее успешных действий), а наоборот -- сразу сообщить, что "такие кредиты мы больше не выдаём". Ох, тут даже забыть нельзя про существование такого кредита, ибо тогда нельзя будет его распознать в запросе! То есть всё управление конфигурацией и изменениями тут будет наличествовать, уйти от решения этих вопросов нельзя.
-- агент/бот должен ещё и как-то "думать", чтобы достигнуть цели диалога (удерживать состояние диалога, иметь модель того, с кем говорит -- в том числе учитывать уже известную про собеседника информацию), причём существенная компонента этого "думания" даже не прохождение каких-то логических шагов, "умозаключения", а совсем другое: необходимость планировать. Ибо диалог должен куда-то вести, должна быть решена какая-то проблема. Шаги по её решению нужно спланировать, не факт, что эти шаги можно просто вытащить из базы данных (хотя сегодня так и делают: имеют десяток сценариев диалога, и сводят диалог к этим десяти жёстким сценариям).
4. А ещё хотелось бы автоматизировать офисную работу: ответы на письма, прохождение документов и всё-всё-всё. Долой офисный планктон.
Да, уже есть и такие системы, но они до сих пор не столько обучаемы, сколько настраиваемы вручную -- все эти complex event processing, но с добавляемыми усилениями в части понимания естественного языка. Тут, конечно, идут мощные подвижки -- подсказки Гугля о том, как вам ответить на некоторые типы писем, как раз из этой серии. Но офисный планктон кроме простых действий (даже включающих аналитику! это аж сделать запрос в базу данных, потом посмотреть в эксельку и что-то прикинуть по ней) ещё и вступает в разные диалоги -- то есть задача быстро начинает включать предыдущую "организацию диалога", которая включает в себя диалог на базе понимания текущей конфигурации дел и обнаружения коллизий в этой конфигурации, а это включает в себя какое-то понимание естественного языка и умение найти информационную иголку в стоге корпоративного информационного сена -- решение задачи интеллектуального поиска. Логический вывод сегодня встраивается в поиск, планирование в диалог. И ещё разнообразие решаемых задач одним и тем же агентом. Вот он, искусственный интеллект во всей своей силе (strong AI, GAI) -- вечно в будущем.
Конечно, я тут написал только очень общую классификацию задач работ с корпоративной информацией. Уже сегодня в Сети можно найти много самых разных других классификаций, самых разных предложений, которые не укладываются в предложенную тут мной схему (ведь разных типов бизнесов огромное количество! и разных классов корпоративных приложений тоже ой-ой-ой! и я даже "биг дату" не помянул!). И уже доступно огромное число "готовых решений" -- которые на поверку оказываются разной формы и из разных материалов топорами, из которых потом предлагается варить суп той или иной наваристости ещё год-два, "дорабатывая по месту напильником".
Всё это, повторюсь, в зыбком пространстве между амбициозными корпоративными НИР и очень скромными НИОКР. И ничего такого, чтобы "гарантировало ROI".
Но так же всегда было? Чем же отличается сегодняшний день от вчерашнего? Практически всем:
-- сегодня можно заниматься такими амбициозными НИР по повышению интеллекта корпоративного софта, о которых вчера ещё и мечтать нельзя было, чтобы не прослыть фантазёром.
-- скромные НИОКР по искусственному интеллекту тоже возможны, только для получения результата нужно тщательно целиться со сценариями использования.
Ну, и задёшево и по-быстрому в эту страну искусственного интеллекта входа пока нет. Конечно, у каждого в кармане будет пара-тройка персональных ассистентов от Гугла и Фейсбука, но сами Гугль и Фейсбук вкладывают в разработку этих ассистентов огромные деньги, и результаты пока более чем скромны. Непонятно, почему у каких-то других фирм получить этих ассистентов для своих собственных целей было бы в разы дешевле: чудес не бывает, бесплатных мозгов не получить, даже если это компьютерные мозги. Но если не начинать в крупных компаниях соответствующие НИРы сейчас, то на следующем шаге такие консервативные компании непременно окажутся в кругу соседей, у которых работа происходит почему-то на порядок (т.е. вдесятеро) быстрей. И поздно будет начинать исследования, вылет с рынка будет стремителен.
UPDATE: слайды на эту тему -- http://www.slideshare.net/ailev/ss-69254540, видео доклада -- https://youtu.be/qSUxlHMydvAv=qSUxlHMydvA