Сравнение коммерческих предложений

Теперь предположим, что в результате применения процессов формирования рассуждений, описанных в предыдущем разделе, подготовлено множество страниц с предложениями, касающимися нашего запроса "laptops". Чтобы сравнить эти предложения, агент должен извлечь из страниц с предложениями соответствующую информацию о цене, быстродействии, объеме диска, весе и т.д. Применительно к реальным Web-страницам эта задача может оказаться сложной, по всем тем же причинам, которые уже упоминались выше. Общепринятый способ решения этой проблемы состоит в использовании программ, называемых оболочками (wrapper), для извлечения информации из страницы. Технология извлечения информации будет описана в разделе 23.3. А пока предположим, что такие оболочки существуют и после получения доступа к странице и базе знаний они добавляют к базе знаний определенные утверждения. Как правило, для обработки страницы должна применяться определенная иерархия оболочек: наиболее общая оболочка извлекает информацию о датах и ценах, более конкретная извлекает данные об атрибутах товаров, относящихся к категории компьютеров, а в случае необходимости применяется оболочка, относящаяся к конкретному узлу, которая обладает сведениями о формате представления данных в конкретном магазине. Допустим, что имеется страница с узла gen-store. com, на которой находится текст:
YVM ThinkBook 970. Our price: $1449.00
сопровождаемый данными о различных технических характеристиках. В этом случае желательно иметь оболочку для извлечения примерно такой информации:
3lc,offer lc е LaptopComputers л offer е ProductOffers л ScreenSizeilc, InchesilA)) л ScreenType(lc, ColorLCD) л MemorySize[lc, Megabytes(512)) л CPUSpeed{lc, GHz{2.4)) л OfferedProduct{offer, lc) л Store{offer, GenStore) л URL{offer, "genstore.com/comps/34356.html") л Price{offerf $(449)) л Date(offer. Today)
Этот пример иллюстрирует некоторые проблемы, которые возникают с самого начала серьезных исследований в области инженерии знаний для коммерческих сделок. Например, обратите внимание на то, что цена является атрибутом предложения offer, а не самого товара. Это важно, поскольку предложение в каждом конкретном магазине может изменяться со дня на день, даже на один и тот же портативный компьютер, а для некоторых категорий (такие как дома и картины) предложения по приобретению одного и того же отдельного объекта могут даже сопровождаться другими одновременными предложениями по покупке сопутствующих товаров по различным ценам. Возникают и многие другие осложнения, о которых еще не шла речь, например, возможность того, что цена будет зависеть от метода платежа и от прав покупателя на некоторые скидки. Так или иначе, но в этой области еще предстоит выполнить очень много интересной работы.
Последняя задача состоит в сравнении информации о предложениях, которая была извлечена из разных страниц. Например, рассмотрим следующие три предложения:
А: 2.4 GHz CPU, 512MB RAM, 80 GB disk, DVD, CDRW, $1695 B: 2.0 GHz CPU, 1GB RAM, 120 GB disk, DVD, CDRW, $1800 C: 2.2 GHz CPU, 512MB RAM, 80 GB disk, DVD, CDRW, $1800
Предложение А доминирует над предложением с; это означает, что предлагаемый на узле А компьютер дешевле и имеет более высокое быстродействие, а во всем остальном два компьютера одинаковы. Вообще говоря, предложение х доминирует над Y, если х имеет лучшее значение по меньшей мере одного атрибута и не хуже по всем остальным атрибутам. Но ни А, ни В не доминируют друг над другом. Чтобы определить, какое из этих предложений лучше, необходимо знать, как покупатель оценивает быстродействие процессора и стоимость по отношению к объему памяти и диска. Тема выбора предпочтений среди многочисленных атрибутов в целом рассматривается в разделе 16.4, а пока наш торговый агент просто возвращает список всех предложений, соответствующих описанию покупателя, над которыми не доминируют другие предложения. В данном примере ни одно предложение не доминирует ни над А, ни над В. Обратите внимание на то, что данный результат основан на предположении, что все предпочитают более низкие цены, более быстродействующие процессоры и больший объем памяти. Некоторые атрибуты, такие как размер экрана в ноутбуке, зависят от конкретных предпочтений пользователя (хочет ли он иметь большой экран или миниатюрный ноутбук); для решения вопроса о таких предпочтениях торговый агент должен получить ответ от пользователя.
Торговый агент, описанный в этом разделе, является весьма простым; для него возможны многие усовершенствования. Тем не менее этот агент обладает достаточными способностями, чтобы при наличии правильных знаний о конкретной проблемной области он мог действительно оказать помощь покупателю. Поскольку этот агент имеет декларативную конструкцию, его можно легко дополнить для использования в более сложных приложениях. Основной замысел данного раздела состоял в том, чтобы показать, что для агента, подобного этому, требуется определенное представление знаний (в частности, об иерархии товаров), а после приобретения некоторых знаний в такой форме уже не очень сложно создать все остальное, что требуется от агента, основанного на знаниях.
СИСТЕМЫ ФОРМИРОВАНИЯ РАССУЖДЕНИЙ О КАТЕГОРИЯХ
Выше было показано, что категории являются основными строительными блоками любой крупномасштабной схемы представления знаний. А в данном разделе описаны системы, специально предназначенные для организации и проведения рассуждений, касающихся категорий. Существуют два тесно связанных семейства систем: семантические сети предоставляют графические средства, позволяющие визуально представить базу знаний, и эффективные алгоритмы для логического вывода сведений о любом объекте на основании его принадлежности к некоторой категории, а описательные логики предоставляют формальный язык для конструирования и комбинирования определений категорий, а также эффективные алгоритмы для установления связей между категориями на уровне подмножеств и надмножеств.
Семантические сети
В 1909 году Чарльз Пирс предложил графическую систему обозначений в виде узлов и дуг, получившую название экзистенциальных графов, которую он назвал "логикой будущего". Так зародилось понятие семантических сетей. С того времени и начались продолжительные дебаты между приверженцами "чистой логики" и приверженцами "чисто семантических сетей". К сожалению, эти дебаты затмили тот факт, что семантические сети (по меньшей мере, те из них, в которых правильно определена семантика) представляют собой всего лишь одну из форм логики. Система обозначений для высказываний некоторых типов, предусмотренная в семантических сетях, часто является более удобной для человека, но если отбросить эти особенности, касающиеся "удобного интерфейса", то базовые понятия (объекты, отношения, кванторы и т.д.) окажутся теми же самыми.
Существует много вариантов семантических сетей, но все они способны представлять отдельные объекты, категории объектов и отношения между объектами. В типичной графической системе обозначений имена объектов или категорий изображаются в овалах или прямоугольниках, а связи между ними обозначаются с помощью дуг с метками. Например, на рис. 10.7 показана связь MemberOf между Магу и FemalePersons, которая соответствует логическому утверждению Mary е FemalePersons; аналогичным образом, связь SisterOf между Магу и John соответствует утверждению SisterOf (Mary, John). Категории можно соединять с помощью связи SubsetOf и т.д. Рисовать эти овалы и стрелки так интересно, что часто можно забыть обо всем. Например, мы знаем, что матерями людей являются особы женского пола, но можно ли нарисовать связь HasMother от категории Persons к категории FemalePersons? Ответ является отрицательным, поскольку HasMother — это связь между человеком и его матерью, а категории не имеют матерей7. По этой причине на рис. 10.7 используется специальное обозначение — связь с меткой в прямоугольнике с двойным контуром. Эта связь соответствует следующему утверждению:
Vx х е Persons => [Vy HasMother(х,у) => у е FemalePersons]
Нам может также потребоваться сформулировать утверждение, что люди имеют две ноги, таким образом:
Vx х е Persons => Legs (х, 2)
Как и прежде, необходимо тщательно следить за тем, чтобы в этом высказывании не утверждалось, что ногами обладает категория; как показано на рис. 10.7, для формулировки утверждений о свойствах каждого элемента категории используется связь, обозначенная меткой в прямоугольнике с одинарным контуром.
Система обозначений с использованием семантических сетей обеспечивает значительные удобства при формировании рассуждений с учетом наследования такого типа, которые были впервые представлены в разделе 10.2. Например, благодаря тому, что Мэри является человеком, она наследует свойство иметь две ноги. Поэтому, чтобы узнать, сколько ног имеет Мэри, алгоритм наследования проходит по связи MemberOf от объекта Магу к категории, к которой она принадлежит, а затем проходит по связям Subsеtof вверх по иерархии до тех пор, пока не находит категорию, для которой имеется связь с обведенной прямоугольником меткой Legs, в данном случае категорию Persons. Простота и эффективность этого механизма логического вывода по сравнению с логическим доказательством теорем издавна была одной из основных привлекательных особенностей семантических сетей.
Наследование становится сложнее, если некоторый объект может принадлежать больше чем к одной категории или если категория может быть подмножеством больше чем одной отличной от нее категории; такая ситуация называется множественным наследованием. В подобных случаях алгоритм наследования может находить два или несколько конфликтующих значений, представляющих собой ответ на запрос. По этой причине множественное наследование запрещено в некоторых языках объектно-ориентированного программирования (Object-Oriented Programming — OOP), таких как язык Java, в котором используется наследование в иерархии классов. В семантических сетях множественное наследование обычно разрешено, но мы отложим обсуждение этой темы до раздела 10.7.
Еще одной общей формой логического вывода является использование инверсных связей. Например, связь HasSister является инверсной по отношению к SisterOf, а это означает, что имеет место следующее высказывание:
Vp, s HasSister(р, s) SisterOf {s,p)
Это высказывание может быть подтверждено в семантической сети, если связи являются овеществленными, т.е. преобразованными в объекты в полном смысле этого понятия. Например, может быть предусмотрен объект SisterOf, соединенный связью Inverse с объектом HasSister. После получения запроса, касающегося того, кто является сестрой (SisterOf) Джона, алгоритм логического вывода может обнаружить, что связь HasSister является инверсной по отношению к связи SisterOf, и поэтому ответить на данный запрос, проследовав по связи HasSister от объекта John к объекту Магу. При отсутствии этой инверсной информации могло бы потребоваться проверить каждое лицо женского пола для определения того, не имеет ли это лицо связь SisterOf, направленную к Джону. Это связано с тем, что в семантических сетях непосредственная индексация предусмотрена только для самих объектов, а также категорий и связей, исходящих из них; проводя сравнение с логикой первого порядка, можно отметить, что это аналогично индексации базы знаний только по первому параметру каждого предиката.
Читатель должен был обнаружить очевидный недостаток системы обозначений с помощью семантических сетей по сравнению с логикой первого порядка: тот факт, что между овалами проводятся связи, соединяющие два овала, говорит о том, что в семантических сетях могут быть представлены только бинарные отношения. Например, высказывание Fly(Shankar, NewYork, NewDelhi, Yesterday) не может быть реализовано непосредственно в семантической сети. Тем не менее можно достичь эффекта реализации n-арных высказываний путем овеществления самого рассматриваемого высказывания в виде события (см. раздел 10.3), принадлежащего к соответствующей категории событий. На рис. 10.8 показана структура семантической сети для указанного выше конкретного события. Обратите внимание на то, что ограничение, связанное с необходимостью применять только бинарные отношения, вынуждает создавать богатую онтологию овеществленных понятий; в действительности основная часть онтологии, разработанной в данной главе, происходила из систем с семантическими сетями.
Овеществление высказываний дает возможность представить в системе обозначений семантической сети любое базовое, атомарное высказывание логики первого порядка, не содержащее функций. Реализация некоторых видов высказываний с кванторами всеобщности может осуществляться с помощью инверсных связей и применяемых к категориям стрелок с метками в одинарных и двойных прямоугольниках, но даже такие ухищрения отнюдь не позволяют приблизиться к возможностям полной логики первого порядка. В этой системе обозначений недостает всех таких выразительных возможностей, как отрицание, дизъюнкция, вложенные функциональные символы и кванторы существования. В последнее время появилась возможность расширить эту систему обозначений, чтобы сделать ее эквивалентной логике первого порядка (как при использовании экзистенциальных графов Пирса или секционированных семантических сетей Хендрикса [647]), но это приводит к исчезновению одного из основных преимуществ семантических сетей — простоты и прозрачности процессов логического вывода. Простая система обозначений позволяет проектировщикам создавать большие сети и все еще иметь полное представление о том, какие запросы должны быть эффективными, поскольку, во-первых, можно легко визуально представить, через какие шаги должна пройти процедура логического вывода, и, во-вторых, в некоторых случаях язык запросов настолько прост, что в нем невозможно сформулировать сложные, запутанные запросы. Для тех случаев, когда обнаруживается, что выразительная мощь слишком ограничена, во многих системах семантических сетей предусмотрены процедурные вложения, позволяющие компенсировать эти недостатки. Процедурное вложение — это метод, с помощью которого при выполнении запроса, касающегося некоторого отношения (а иногда и при вводе в базу знаний некоторого утверждения), осуществляется вызов специальной процедуры (предназначенной лишь для обработки этого отношения), а не общего алгоритма логического вывода.
Одной из самых важных характерных особенностей семантических сетей является их способность представлять заданные по умолчанию значения для категорий. Внимательно изучив рис. 10.7, можно обнаружить, что Джон имеет одну ногу, несмотря на тот факт, что он — человек, а все люди имеют две ноги. В строго логической базе знаний такое сочетание фактов было бы противоречивым, но в семантической сети утверждение, что все люди имеют две ноги, обладает лишь статусом значения, применяемого по умолчанию; т.е. применительно к любому человеку предполагается, что он имеет две ноги, если этому не противоречит более конкретная информация. Принудительное применение семантики заданных по умолчанию значений осуществляется естественным образом с помощью алгоритма наследования, поскольку этот алгоритм следует по связям, направленным вверх от самого объекта (в данном случае Джона), и останавливается, как только находит искомое значение. Принято говорить, что заданное по умолчанию значение перекрывается более конкретным значением. Обратите внимание на то, что можно было бы также перекрыть информацию о заданном по умолчанию количестве ног, создав категорию одноногих людей OneLeggedPersons, подмножество категории Persons, элементом которого является John.
Можно было бы также сохранить строго логическую семантику для этой сети, сформировав следующее высказывание, что утверждение Legs для Persons содержит исключение для John:
Vx х G Persons л x Ф John Legs {x, 2)
При наличии фиксированной сети такое дополнение было бы семантически адекватным, но стало бы гораздо менее кратким по сравнению с самой сетевой системой обозначений, если бы и без этого в сети было бы много исключений. А в сети, которая обновляется путем добавления дополнительных утверждений, такой подход оказался бы полностью неприемлемым, поскольку фактически потребовалось бы указывать, что к исключениям относятся все люди, в отношении которых еще не известно, имеют ли они две или только одну ногу. В разделе 10.7 приведены дополнительные сведения об этой проблеме и о формировании рассуждений в логике умолчаний в целом.







Материалы

Яндекс.Метрика