Главное Авторские колонки Вакансии Образование
254 7 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Новостной агрегатор, как приложение семантической сети

Немного о том, про что окажется наш проект newsn1.com, если копнуть чуть глубже. При чём здесь искусственный интеллект, онтологии, шаблоны проектирования, что такое семантическая сеть, и какую рыбу мы собираемся ею ловить. И какое отношение всё это имеет к новостям.
Мнение автора может не совпадать с мнением редакции

Начнём с терминологии

Осознавая, что ни обвинений в заумствовании, ни обвинений в умножении сущностей без необходимости, сегодня избежать не удастся, и принимая во внимание занятость уважаемых читателей, поясню для начала несколько терминов, которыми в дальнейшем собираюсь оперировать.

Семантика — раздел лингвистики, изучающий смысловое значение единиц языка. Лингвистическое понимание данного слова в нашем терминологическом поле нам ближе, чем принятое в программировании.

Семантическая сеть — информационная модель предметной области, имеющая вид ориентированного графа, вершины которого соответствуют объектам предметной области, а рёбра задают отношения между ними. Подробнее можно посмотреть хотя бы и в википедии, там достаточно хорошо и интересно.

Онтология (в понимании, принятом в информатике) — попытка детальной формализации некоторой области знаний с помощью концептуальной схемы. Теоретически, возможны различные способы представления такой формализации, но представление её семантической сетью обеспечивает универсальность и гибкость, и, традиционно, используется именно оно.

Система управления семантической сетью — программная система, хранящая информацию и обеспечивающая доступ приложений к данным семантической сети.

ИИ — искусственный интеллект, свойство интеллектуальных систем выполнять творческие и формализующие функции, которые традиционно считаются прерогативой человека.

Тут мы плавно переходим к очередному сакраментальному вопросу: для чего козе баян?

Искусственный интеллект - миф или реальность?

В последние несколько лет тема искусственного интеллекта навязла на зубах настолько, что нельзя даже сказать, что на эту тему не высказался только ленивый - высказываются даже ленивые, причём часто плодят на эту тему достаточно бредовые фантазии.

В реальности, прежде чем рассуждать на эту тему, следует хотя бы уловить разделение на "сильный" и "слабый" искусственный интеллект (вот здесь на эту тему популярно), и вспомнить, что тест Тьюринга был пройден в 1966 году программкой незабвенного Джозефа Вейценбаума, написанной ради развлечения. Так вот, почти ровно 50 лет с того самого момента никаких продвижений в области сильного ИИ не было (поскольку и автопилоты, и шахматные - или любые другие переборные - автоматы по определению относятся к слабому ИИ). Успехами последних двух лет в области всего, что связано с deep learning, скептицизм в данной области был несколько поколеблен, но, тем не менее, пока есть основания сомневаться в том, что беспредельная вычислительная мощь позволит ИИ самому хоть что-нибудь формализовать.

В этой связи достаточно естественно, но при этом - заманчиво, выглядят две идеи:

  • сделать некую "машину формальных описаний" - некий банк информации с механизмами доступа, единообразно описывающий сущности и их взаимосвязи для различных предметных областей, и использовать эти описания в качестве дополнительных входных данных для, например, алгоритмов deep learning;
  • спроектировать интерфейс человеко-машинного взаимодействия, позволяющий оптимально использовать сильные стороны как машины (безграничная длительная память, огромная скорость перебора), так и человека (способности к абстрактному и ассоциативному мышлению, творчеству и формализации), и протокола решения задач через этот интерфейс.

Под такую постановку задачи и подвернулась идея строить "универсальный описатель" и такой протокол решения на основе семантической сети и системы управления ею.

Почему, всё-таки, новости

Искусственный интеллект - искусственным интеллектом, но применение детальных формализованных описаний предметных областей может быть востребовано и во вполне приземлённых применениях.

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

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

Классическая идея первоначального наполнения сети путём разбора текстов на естественном языке была отвергнута на основании доступного нам опыта других групп разработчиков, работавших в этом направлении.

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

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

пришли к выводу, что первым приложением должен стать агрегатор новостей.

Новости, как предмет анализа, обладают несколькими свойствами, бесценными для цели наполнения базы связанных понятий.

Они достаточно компактны, регулярны, и, что особенно важно в нашем случае, тэгируются живыми людьми и вызывают отклик у живых людей. Именно эти их свойства и используются для наполнения базы понятиями, установления связей между ними, и калибровки достоверности этих связей.

Фактчекинг? Легко!..

Всё, сказанное выше, звучит многообещающе, но сильно упрощает используемую модель.

Так, например, достоверность - вещь вычислимая, но - при условии влияния на параметры пользовательских активностей - либо приводит к охлократии, либо требует наличия экспертов. Первое нас не устраивает, потому - да, в такой системе требуются эксперты. Бонус в том, что квалификация эксперта может быть, во-первых, чётко очерчена, во-вторых - делегирована рекомендациями. Кроме того, чтобы запустить фактчекинг, как это недавно сделал Google, на основе инструментария, предоставляемого семантической сетью, требуются достаточно ограниченные затраты времени экспертов, а далее эта система становится самоподдерживающейся и требует лишь эпизодического вмешательства. То есть, речи о том, что эксперту придётся смотреть даже каждую сотую новость, не идёт.

Кроме того, реализовали в семантическом движке мы на данный момент далеко не всё, что могли и что планировали. Ассоциативные связи по ключевым словам, например, пока поддерживаются очень слабо. То есть, если вы, например, попросите у нашего замечательного бота новости по каким-либо ключевым словам, то он вас поймёт буквально - хотя синтаксические формы применит. А алгоритмы связывания найдены интересные, но их отладка для релиза сейчас превышает возможности нашей команды, и пока откладывается.

Кстати, что интересно, проплаченные новости на источниках (даже уважаемых) средствами администратора мы можем видеть уже давно, но пока не знаем, что с этим знанием делать.

Ну и, конечно, автоматическое таргетирование рекламы по ключевым словам окружающих новостей - где вы такое найдёте, кроме поисковиков - а у нас оно есть!

В целом, по мере разработки и работы с нашим дополнительным инструментарием, иногда натыкаешься на неожиданные возможности - надеюсь, когда-нибудь всё это удастся упаковать в продукт.

Вы это всё серьёзно?

Если одним словом отвечать на вопрос "Вы всё это серьёзно?" - то ответ будет "ну, почти". И смайлик какой-нибудь загадочный.

И дело тут не в том, что мы сомневаемся в работоспособности концепции. Концепция, несомненно, технически, работоспособная - особенно в условиях по-прежнему растущей вычислительной мощности и пропускной способности каналов связи.

Тема построения онтологий некоторое время назад была популярна, например, в контексте semantic web, но потом разговоры о ней утихли так же, как и начались. Ни один из проектов системы управления ими успешен не был.

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

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

Вывод: будем пахать!

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Андрей Хубутия
"...Подтвердившее, что небольшими усовершенствованиями классической тройки "субъект-отношение-объект".."

Интересно, в чем заключалось усовершенствование?
Ответить
NewsN1
Личные новости
Alexey Dolmatov
Если совсем коротко, то - с одной стороны - введением на каждое отношение параметров достоверности (от -1 до 1) и интервала актуальности, и с другой стороны - допущением, что один и тот же объект может входить в отношение в любой из трёх ролей. Хоть во всех трёх сразу :)
Ну и построения шаблонов использования всей этой радости, исходя из вычислимой достоверности, актуальности и постоянной обновляемости.
Ответить
Андрей Хубутия
Интересно.
По поводу вхождения объекта в любую из трех ролей... В RDF-стандарте (классика?) нода вроде как раз и может участвовать в любой из ролей. Разница в том, что у вас она может дублироваться в ролях?
У меня просто "варится" своя техническая реализация RDF. Наибольший интерес вызывает то, что любую ноду можно расположить еще и в четвертной роли - контексте (это в RDF называется "именованный граф"). У вас не было потребности в задействовании "контекстной" роли?

Попутно про Eventos... Эта компания где-то 2 года назад интегрировались в РосТех, но до того они продвигали свою СУБД OntoQuad. И там у них тоже был семантический поиск, запросы генерирующие новостные ленты и т.п. Среди главных проектов - автоматизация кажется РИА-Новости. Вы с ними не пересекались? Уж больно похоже по тематике.
Ответить
NewsN1
Личные новости
Alexey Dolmatov
Не, вообще не пересекались - более того, я первый раз от Вас слышу, что в РИА-новостях что-то такое использовалось.
Мы на каком-то этапе пытались с ABBYY законтачить (они эти темы тоже вдумчиво копают, хотя не в разрезе новостей), но как-то не нашли взаимопонимания.
Про то, что так по стандарту RDF - возможно, я мог и забыть уже, как к этому пришли. Там, когда в этой "триадной" логике начинаешь мыслить, столько сразу всего вырисовывается нетривиально-интересного, что не мудрено забыть, откуда идея появилась.
Идея про четвёртое вхождение - обсуждалась, но как-то не прижилась. Возможно, именно по той причине, что вышла за пределы размерности, которую смогли конструктивно обмозговать :) Так-то - мысль интересная, безусловно.
У нас эту роль выполняют алгоритмические шаблоны - но там тоже "область безбрежного", и всё очень плохо формализовано. Реферируемую статью на эту тему я уже третий год пишу... :(
Ответить
Андрей Хубутия
На самом деле история четвертой роли в RDF тоже весьма не простая. По сути это главное, что семантический-веб с боем "накопал" начиная с 2004 г. до появления RDF 1.1 в феврале 2014. При этом их родной язык запросов SPARQL это нововведение поддерживать отказывается. ...Не все там просто. Но по мне так в этом вся соль. Поэтому и приходится вот свою реализацию СУБД делать.
А вы, кстати, не думали выделить из проекта движок в отдельную СУБД? Сейчас это модно.

Про РИА и Eventos... Я вот про что.. https://ria.ru/news_company/20130718/950503160.html. И было еще видео, где демонстрировалось как сотрудники агентства организуют свою "разведывательную" деятельность с помощью семантических запросов в системе.
Ответить
NewsN1
Личные новости
Alexey Dolmatov
Ну, в нашей-то концепции СУБД не получится, поскольку данные рассматриваются, практически, как живой организм, который должен "дышать" во внешний мир.
То есть, как потенциально отдельный сервис, доступный сторонним приложениям - да, несомненно. В некотором роде, ради этого всё и делалось. А вот именно как СУБД - то есть, так, чтобы кто-то мог взять его, развернуть на корпоративном сервере, и внутри себя использовать - нет. Есть ощущение, что в таком виде оно и не будет работать просто концептуально.
За ссылочку - спасибо, на первый взгляд - очень интересно! Обязательно изучу детальнее.
Ответить
Андрей Хубутия
Да, CУБД легко может быть в форме стороннего сервиса. Вот относительно полный список "графовых" СУБД: http://bit.ly/2pShXG1 и там у каждой системы есть параметр Cloud-based ("Only available as a cloud service"). Правда он везде "no", даже у вроде бы чистого сервиса Stardog.

И интерес к облачным базам данных ширится с каждым днем. Рынок льет воду на эту мельницу: http://www.cnews.ru/news/top/2017-04-21_microsoftamazon_i_google_nachali_tsenovuyu_vojnu
Тоже думаю, не ограничится ли сервисом.
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.