Главное Авторские колонки Вакансии Образование
arrow-right Created with Sketch. Alexey Dolmatov 254 7 В избр. Сохранено
Авторизуйтесь
Вход с паролем

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем