Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Probabilistic Soft Logic (PSL) - это структура статистического реляционного обучения (SRL) для моделирования вероятностных и реляционных областей.[2] Это применимо к множеству задач машинного обучения , таких как коллективная классификация , разрешение сущностей , прогнозирование ссылок и согласование онтологий . PSL сочетает в себе два инструмента: логику первого порядка с ее способностью кратко представлять сложные явления и вероятностные графические модели , отражающие неопределенность и неполноту, присущие знаниям реального мира. В частности, PSL использует «мягкую» логику.как его логический компонент и марковские случайные поля как его статистическая модель. PSL предоставляет сложные методы вывода для поиска наиболее вероятного ответа (т. Е. Максимального апостериорного состояния (MAP) ). «Смягчение» логических формул делает вывод операции с полиномиальным временем, а не NP-трудной операцией.

Описание [ править ]

SRL сообщество представило несколько подходов , которые сочетают в себе графические модели и логику первого порядка , чтобы позволить развитие сложных вероятностных моделей с реляционными структурами. Ярким примером таких подходов являются логические сети Маркова (MLN).[3] Как и MLN, PSL - это язык моделирования (с сопутствующей реализацией [4] ) для обучения и прогнозирования в реляционных доменах. В отличие от MLN, PSL использует значения мягкой истинности для предикатов в интервале между [0,1]. Это позволяет быстро решить основной вывод как задачу выпуклой оптимизации. Это полезно в таких задачах, как коллективная классификация ,прогнозирование ссылок , моделирование социальных сетей и идентификация объектов / разрешение сущностей / связывание записей .

Probabilistic Soft Logic была впервые выпущена в 2009 году Лиз Гетур и Маттиас Брохелер.[5] В этой первой версии основное внимание уделялось рассуждениям о сходстве между сущностями. Более поздние версии PSL по-прежнему сохраняли бы способность рассуждать о сходствах, но делали язык более выразительным.

В 2017 году вместе с выпуском новой основной версии PSL (2.0.0) была опубликована статья Journal of Machine Learning Research с подробным описанием PSL и базовой графической модели.[2] Основными нововведениями в PSL 2.0.0 были правила нового типа, которые в основном использовались для определения ограничений и интерфейса командной строки .

Синтаксис и семантика [ править ]

Терминология [ править ]

  • Программа PSL - набор правил, каждое из которых является шаблоном для потенциала в графической модели.
  • Правило - выражение, относящееся к атомам. Правила обычно принимают форму логического следствия первого порядка или линейной комбинации .
  • Константа - строка или число, представляющее реальный элемент юниверса, который представляет программа PSL. Константы могут представлять атрибуты или целые объекты.
  • Переменная - идентификатор, которым можно заменить константы.
  • Срок - либо константа, либо переменная.
  • Предикат - отношение, определяемое уникальным именем и числом принимаемых аргументов.
  • Атом - предикат вместе с его аргументами термина.
  • Наземный атом - атом, все аргументы которого являются константами.

Синтаксис [ править ]

Модель PSL состоит из ряда взвешенных правил и ограничений. PSL поддерживает два типа правил: логические и арифметические.[6]

Логические правила состоят из импликации только одного атома или соединения атомов в теле и одного атома или дизъюнкции атомов в голове. Поскольку PSL использует мягкую логику, жесткие логические операторы заменяются мягкими логическими операторами Лукасевича . Пример выражения логического правила:

Подобный ( A ,  B )  и  HasLabel ( A ,  X )  ->  HasLabel ( B ,  X )

Это правило можно интерпретировать так: если A и B похожи и A имеет метку X, то есть свидетельство того, что B также имеет метку X.

Арифметические правила - это отношения двух линейных комбинаций атомов. Ограничение каждой стороны линейной комбинацией гарантирует, что результирующий потенциал будет выпуклым . Следующие реляционные операторы: =, <=, и >=.

Подобный ( A ,  B )  =  Подобный ( B ,  A )

Это правило кодирует представление о том, что подобие симметрично в этой модели.

Часто используемой функцией арифметических правил является операция суммирования. Операцию суммирования можно использовать для объединения нескольких атомов. При использовании атом заменяется суммой всех возможных атомов с фиксированными переменными без суммирования. Переменные суммирования производятся путем добавления к переменной префикса +. Пример лисы:

HasLabel ( A ,  + X )  =  1,0

Если возможные значения для X - label1 , label2 и label3 , то приведенное выше правило эквивалентно следующему:

HasLabel ( A ,  'label1' )  +  HasLabel ( A ,  'label2' )  +  HasLabel ( A ,  'label3' )  =  1.0.

Оба эти правила заставляют сумму всех возможных меток для объекта равняться 1,0. Этот тип правила особенно полезен для задач коллективной классификации , когда можно выбрать только один класс.

Семантика [ править ]

HL-MRF [ править ]

Программа PSL определяет семейство вероятностных графических моделей , параметризованных данными. В частности, семейство определяемых им графических моделей принадлежит к специальному классу марковского случайного поля, известному как марковское поле с шарнирной потерей (HL-MRF). HL-MRF определяет функцию плотности по набору непрерывных переменных с совместной областью, используя набор свидетельств , весов и потенциальных функций вида где - линейная функция и . Условное распределение заданных наблюдаемых данных определяется как

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

Открытые / закрытые предикаты - предположение о закрытом мире [ править ]

Предикаты в PSL можно пометить как открытые или закрытые.

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

Если предикат помечен как открытый, то PSL не делает предположение о закрытом мире. Вместо этого PSL попытается коллективно вывести ненаблюдаемые экземпляры.

Заземление [ править ]

Данные используются для реализации нескольких потенциальных функций в процессе, называемом заземлением. Полученные в результате потенциальные функции затем используются для определения HL-MRF.

Заземление предиката в PSL является процесс создания всех возможных замен переменных в каждом предиката с существующими постоянными в данных, что приводит к коллекции атомов наземных, . Затем все возможные замены основных атомов вместо предикатов в правилах производятся для создания основных правил.

Каждое из основных правил интерпретируется либо как потенциальные, либо как жесткие ограничения в индуцированном HL-MRF. Логическое правило переводится как непрерывное ослабление логических связок с использованием логики Лукасевича . Основное логическое правило преобразуется в свою дизъюнктивную нормальную форму . Позвольте быть набором индексов переменных, которые соответствуют атомам, которые не инвертируются, а также набор индексов, соответствующих атомам, которые инвертируются, в дизъюнктивном предложении. Тогда логическое правило преобразуется в неравенство:

Если логическое правило взвешено с весом и возведено в степень , то потенциальное

добавляется в HL-MRF с весовым параметром .

Арифметическое правило манипулируется, и результирующий потенциал принимает форму .

Интерфейсы [ править ]

PSL доступен через три разных языковых интерфейса : CLI , Java и Python . Интерфейс командной строки (CLI) PSL - рекомендуемый способ использования PSL.[7] Он поддерживает все функции, обычно используемые в воспроизводимой форме, не требующей компиляции. Поскольку PSL написан на Java, интерфейс PSL Java является наиболее обширным, и пользователи могут обращаться непосредственно к ядру PSL.[8] Интерфейс Java доступен через центральный репозиторий Maven .[9] Интерфейс PSL Python доступен через PyPi [10] и использует pandas.DataFrames для передачи данных между PSL и пользователем.[11]

PSL ранее предоставлял интерфейс Groovy.[12] Он объявлен устаревшим в версии 2.2.1 PSL, и его планируется удалить в версии 2.3.0.[13]

Примеры [ править ]

Лаборатория LINQS, разработчики официальной реализации PSL, поддерживают коллекцию примеров PSL.[14] Эти примеры охватывают как синтетические, так и реальные наборы данных и включают примеры из академических публикаций, использующих PSL. Ниже приведен игрушечный пример из этого репозитория, который можно использовать для определения отношений в социальной сети. К каждому правилу прилагается комментарий, описывающий мотивирующую интуицию, стоящую за утверждениями.

/ * Люди, живущие в одном месте, с большей вероятностью узнают друг друга. * / 20 :  Выжил ( P1 ,  L )  и  выжил ( P2 ,  L )  &  ( P1  ! =  P2 )  ->  Знает ( P1 ,  P2 )  ^ 2/ * Люди, которые не жили в одном месте, скорее всего, не знают друг друга. * / 5 :  Выжившие ( P1 ,  L1 )  и  живые ( P2 ,  L2 )  &  ( P1  ! =  P2 )  &  ( L1  ! =  L2 )  ->  ! Знает ( P1 ,  P2 )  ^ 2/ * Два человека со схожими интересами с большей вероятностью узнают друг друга. * / 10 :  Нравится ( P1 ,  X )  и  нравится ( P2 ,  X )  &  ( P1  ! =  P2 )  ->  Знает ( P1 ,  P2 )  ^ 2/ * Люди из одних и тех же кругов обычно знают друг друга (транзитивность). * / 5 :  Знает ( P1 ,  P2 )  &  Знает ( P2 ,  P3 )  &  ( P1  ! =  P3 )  ->  Знает ( P1 ,  P3 )  ^ 2/ * Знание друг друга симметрично. * / Знает ( P1 ,  P2 )  =  Знает ( P2 ,  P1 )  ./ * По умолчанию предполагается, что два произвольных человека не знают друг друга (априор отрицательный). * / 5 :  ! Знает ( P1 ,  P2 )  ^ 2

См. Также [ править ]

  • Статистическое реляционное обучение
  • Вероятностно-логическая сеть
  • Марковская логическая сеть
  • Нечеткая логика

Ссылки [ править ]

  1. ^ «PSL 2.2.2» . GitHub . Дата обращения 16 июля 2020 .
  2. ^ a b Бах, Стивен; Брохелер, Матиас; Хуанг, Берт; Гетур, Лиз (2017). "Марковские случайные поля без шарниров и вероятностная мягкая логика". Журнал исследований в области машинного обучения . 18 : 1–67.
  3. ^ Getoor, Лиза ; Таскар, Бен (2007). Введение в статистическое реляционное обучение . MIT Press. ISBN  978-0262072885.
  4. ^ "Репозиторий GitHub" . Проверено 26 марта 2018 .
  5. ^ Broecheler, Матиас; Getoor, Лиз (2009). Вероятностная логика подобия . Международный семинар по статистическому реляционному обучению (SRL).
  6. ^ «Спецификация правила» . psl.linqs.org . LINQS Lab. 6 декабря 2019 . Проверено 10 июля, 2020 .
  7. Августин, Эрик (15 июля 2018 г.). «Начало работы с PSL» . Вероятностная мягкая логика . Дата обращения 15 июля 2020 .
  8. ^ «Справочник по API PSL» . Вероятностная мягкая логика . Дата обращения 15 июля 2020 .
  9. ^ "Репозиторий Maven: org.linqs» psl-java " . mvnrepository.com . Дата обращения 15 июля 2020 .
  10. ^ "pslpython: интерфейс Python для программного обеспечения PSL SRL / ML" . Индекс пакетов Python . Дата обращения 15 июля 2020 .
  11. Августин, Эрик (6 декабря 2019 г.). «Релиз PSL 2.2.1» . Вероятностная мягкая логика . Дата обращения 15 июля 2020 .
  12. ^ "Репозиторий Maven: org.linqs» psl-groovy " . mvnrepository.com .
  13. Августин, Эрик (6 декабря 2019 г.). «Релиз PSL 2.2.1» . Вероятностная мягкая логика . Дата обращения 15 июля 2020 .
  14. ^ "linqs / psl-examples" . Github . linqs. 19 июня 2020.

Внешние ссылки [ править ]

  • Видео-лекции о PSL на Youtube