Разработчики) | LINQS Lab |
---|---|
изначальный выпуск | 23 сентября 2011 г. |
Стабильный выпуск | 2.2.2 [1] / 20 мая 2020 г. |
Репозиторий | github |
Написано в | Ява |
Платформа | Linux , macOS , Windows |
Тип | Машинное обучение , статистическое реляционное обучение |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | psl |
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
См. Также [ править ]
- Статистическое реляционное обучение
- Вероятностно-логическая сеть
- Марковская логическая сеть
- Нечеткая логика
Ссылки [ править ]
- ^ «PSL 2.2.2» . GitHub . Дата обращения 16 июля 2020 .
- ^ a b Бах, Стивен; Брохелер, Матиас; Хуанг, Берт; Гетур, Лиз (2017). "Марковские случайные поля без шарниров и вероятностная мягкая логика". Журнал исследований в области машинного обучения . 18 : 1–67.
- ^ Getoor, Лиза ; Таскар, Бен (2007). Введение в статистическое реляционное обучение . MIT Press. ISBN 978-0262072885.
- ^ "Репозиторий GitHub" . Проверено 26 марта 2018 .
- ^ Broecheler, Матиас; Getoor, Лиз (2009). Вероятностная логика подобия . Международный семинар по статистическому реляционному обучению (SRL).
- ^ «Спецификация правила» . psl.linqs.org . LINQS Lab. 6 декабря 2019 . Проверено 10 июля, 2020 .
- ↑ Августин, Эрик (15 июля 2018 г.). «Начало работы с PSL» . Вероятностная мягкая логика . Дата обращения 15 июля 2020 .
- ^ «Справочник по API PSL» . Вероятностная мягкая логика . Дата обращения 15 июля 2020 .
- ^ "Репозиторий Maven: org.linqs» psl-java " . mvnrepository.com . Дата обращения 15 июля 2020 .
- ^ "pslpython: интерфейс Python для программного обеспечения PSL SRL / ML" . Индекс пакетов Python . Дата обращения 15 июля 2020 .
- ↑ Августин, Эрик (6 декабря 2019 г.). «Релиз PSL 2.2.1» . Вероятностная мягкая логика . Дата обращения 15 июля 2020 .
- ^ "Репозиторий Maven: org.linqs» psl-groovy " . mvnrepository.com .
- ↑ Августин, Эрик (6 декабря 2019 г.). «Релиз PSL 2.2.1» . Вероятностная мягкая логика . Дата обращения 15 июля 2020 .
- ^ "linqs / psl-examples" . Github . linqs. 19 июня 2020.
Внешние ссылки [ править ]
- Видео-лекции о PSL на Youtube