Articulo de referencia

Lógica blanda probabilística

"},"latest release date":{"wt":"{{Start date|2020|05|20}}"},"repo":{"wt":"{{URL|https://github.com/linqs/psl}}"},"programming language":{"wt":"[[Java (programming language)|Java...

La lógica suave probabilística (PSL) es un marco de aprendizaje relacional estadístico (SRL) para modelar dominios probabilísticos y relacionales. [ 2 ] Es aplicable a una variedad de problemas de aprendizaje automático , como clasificación colectiva , resolución de entidades , predicción de enlaces y alineación de ontologías . PSL combina dos herramientas: lógica de primer orden , con su capacidad para representar sucintamente fenómenos complejos, y modelos gráficos probabilísticos , que capturan la incertidumbre e incompletitud inherentes al conocimiento del mundo real. Más específicamente, PSL utiliza lógica "suave" como su componente lógico y campos aleatorios de Markov como su modelo estadístico . PSL proporciona técnicas de inferencia sofisticadas para encontrar la respuesta más probable (es decir, el estado de máxima probabilidad a posteriori (MAP) ). El "suavizado" de las fórmulas lógicas hace que la inferencia sea una operación de tiempo polinomial en lugar de una operación NP-difícil .

Descripción

La comunidad SRL ha introducido múltiples enfoques que combinan modelos gráficos y lógica de primer orden para permitir el desarrollo de modelos probabilísticos complejos con estructuras relacionales. Un ejemplo notable de tales enfoques son las redes de lógica de Markov (MLN). [ 3 ] Al igual que las MLN, PSL es un lenguaje de modelado (con una implementación adjunta [ 4 ] ) para el aprendizaje y la predicción en dominios relacionales. A diferencia de las MLN, PSL utiliza valores de verdad suaves para los predicados en un intervalo entre [0,1]. Esto permite que la inferencia subyacente se resuelva rápidamente como un problema de optimización convexa . Esto es útil en problemas como la clasificación colectiva , la predicción de enlaces , el modelado de redes sociales y la identificación de objetos/resolución de entidades/vinculación de registros .

La lógica blanda probabilística fue publicada por primera vez en 2009 por Lise Getoor y Matthias Broecheler. [ 5 ] Esta primera versión se centró principalmente en el razonamiento sobre similitudes entre entidades. Las versiones posteriores de PSL conservaron la capacidad de razonar sobre similitudes, pero generalizaron el lenguaje para hacerlo más expresivo.

En 2017, se publicó un artículo en el Journal of Machine Learning Research que detallaba PSL y el modelo gráfico subyacente junto con el lanzamiento de una nueva versión principal de PSL (2.0.0). [ 2 ] Las principales novedades de PSL 2.0.0 fueron un nuevo tipo de regla utilizada principalmente para especificar restricciones y una interfaz de línea de comandos .

Sintaxis y semántica

Terminología

  • Programa PSL : un conjunto de reglas, cada una de las cuales es una plantilla para un potencial en un modelo gráfico.
  • Regla : una expresión que relaciona átomos. Las reglas suelen adoptar la forma de una implicación lógica de primer orden o de una combinación lineal .
  • Constante : una cadena de caracteres o un número que representa un elemento real del universo que representa un programa PSL. Las constantes pueden representar atributos o entidades completas.
  • Variable : un identificador por el cual se pueden sustituir constantes.
  • Término : Puede ser una constante o una variable.
  • Predicado : una relación definida por un nombre único y una serie de argumentos que acepta.
  • Átomo : un predicado junto con sus argumentos de término.
  • Átomo fundamental : un átomo donde todos los argumentos son constantes.

Sintaxis

Un modelo PSL se compone de una serie de reglas y restricciones ponderadas. PSL admite dos tipos de reglas: lógicas y aritméticas. [ 6 ]

Las reglas lógicas se componen de una implicación con un solo átomo o una conjunción de átomos en el cuerpo y un solo átomo o una disyunción de átomos en la cabeza. Dado que PSL utiliza lógica blanda, los operadores de lógica dura se reemplazan por operadores de lógica blanda de Łukasiewicz . Un ejemplo de expresión de regla lógica es:

Similar ( A , B ) & HasLabel ( A , X ) -> HasLabel ( B , X )

Esta regla puede interpretarse de la siguiente manera: si A y B son similares y A tiene la etiqueta X, entonces hay evidencia de que B también tiene la etiqueta X.

Las reglas aritméticas son relaciones de dos combinaciones lineales de átomos. Restringir cada lado a una combinación lineal garantiza que el potencial resultante sea convexo . Se admiten los siguientes operadores relacionales: =, <=, y >=.

Similares ( A , B ) = Similares ( B , A )

Esta regla codifica la noción de que la similitud es simétrica en este modelo.

Una característica común de las reglas aritméticas es la operación de suma. Esta operación se puede usar para agregar múltiples átomos. Al usarla, el átomo se reemplaza por la suma de todos los átomos posibles, donde las variables que no son de suma permanecen fijas. Las variables de suma se crean anteponiendo un punto a una variable +. Ejemplo de Fox:

HasLabel ( A , + X ) = 1.0

Si los posibles valores para X son label1 , label2 y label3 , entonces la regla anterior es equivalente a:

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

Ambas reglas obligan a que la suma de todas las etiquetas posibles para una entidad sea igual a 1,0. Este tipo de regla es especialmente útil para problemas de clasificación colectiva , donde solo se puede seleccionar una clase.

Semántica

HL-MRF

Un programa PSL define una familia de modelos gráficos probabilísticos parametrizados por datos. Más específicamente, la familia de modelos gráficos que define pertenece a una clase especial de campo aleatorio de Markov conocido como campo de Markov de pérdida de bisagra (HL-MRF). Un HL-MRF determina una función de densidad sobre un conjunto de variables continuas.y=(y1,,ynorte){\displaystyle \mathbf {y} =(y_{1},\cdots,y_{n})}con dominio conjunto[0,1]norte{\displaystyle [0,1]^{n}}utilizando un conjunto de evidenciaincógnita=(incógnita1,,incógnitametro){\displaystyle \mathbf {x} =(x_{1},\cdots ,x_{m})}pesosw=(w1,,wk){\displaystyle \mathbf {w} =(w_{1},\cdots,w_{k})}y funciones potencialesϕ=(ϕ1,,ϕk){\displaystyle \mathbf {\phi } =(\phi _{1},\cdots ,\phi _{k})}de la formaϕi(incógnita,y)=máximo(i(incógnita,y),0)di{\displaystyle \mathbf {\phi _{i}(\mathbf {x} ,\mathbf {y} )} =\max(\ell _ {i}(\mathbf {x} ,\mathbf {y} ),0)^{d_{i}}}dóndei{\displaystyle \ell _{i}}es una función lineal ydi{1,2}{\displaystyle d_{i}\in \{1,2\}}. La distribución condicional dey{\displaystyle \mathbf {y} }dados los datos observadosincógnita{\displaystyle \mathbf {x} }se define como

PAG(y|incógnita)=1Z(y)exp(i=1kwiϕi(incógnita,y)){\displaystyle P(\mathbf {y} |\mathbf {x} )={\frac {1}{Z(\mathbf {y} )}}\exp(\sum _ {i=1}^{k}w_{i}\phi _ {i}(\mathbf {x} ,\mathbf {y} ))}

DóndeZ(y)=yexp(i=1kwiϕi(incógnita,y)){\displaystyle Z(\mathbf {y} )=\int _{\mathbf {y} }\exp(\sum _{i=1}^{k}w_{i}\phi _{i}(\mathbf {x} ,\mathbf {y} ))}es la función de partición. Esta densidad es una función logarítmicamente convexa y, por lo tanto, la tarea de inferencia común en PSL de encontrar una estimación a posteriori máxima del estado conjunto dey{\displaystyle \mathbf {y} }es un problema convexo. Esto permite que la inferencia en PSL se pueda lograr en tiempo polinomial.

Predicados abiertos/cerrados: supuesto de mundo cerrado.

En PSL, los predicados pueden etiquetarse como abiertos o cerrados.

Cuando un predicado se etiqueta como cerrado, PSL asume que existe un mundo cerrado : cualquier predicado que no se proporcione explícitamente a PSL se considera falso. En otras palabras, la suposición de mundo cerrado presupone que un predicado parcialmente verdadero también se sabe que es parcialmente verdadero. Por ejemplo, si tuviéramos las siguientes constantes en los datos para representar a las personas:{Alidomi,Bob}{\displaystyle \{Alice,Bob\}}y la siguiente constante para las películas:{Avatar}{\displaystyle \{Avatar\}}y proporcionamos a PSL los datos del predicado.{ratinortegramo(Alidomi,Avatar)=0,8}{\displaystyle \{rating(Alice,Avatar)=0.8\}}yratinortegramo(){\displaystyle rating(\cdot )}Si se etiquetó como cerrado, entonces PSL asumiría que{ratinortegramo(Bob,Avatar)=0}{\displaystyle \{rating(Bob,Avatar)=0\}}aunque estos datos nunca se proporcionaron explícitamente al sistema.

Si un predicado está etiquetado como abierto, PSL no asume que se trata de un mundo cerrado. En cambio, PSL intentará inferir colectivamente las instancias no observadas.

Toma de tierra

Los datos se utilizan para instanciar varias funciones potenciales en un proceso llamado puesta a tierra. Las funciones potenciales resultantes se utilizan posteriormente para definir la HL-MRF.

La fundamentación de predicados en PSL es el proceso de realizar todas las sustituciones posibles de las variables en cada predicado con las constantes existentes en los datos, lo que da como resultado una colección de átomos fundamentales,y={y1,,ynorte}{\displaystyle \mathbf {y} =\{y_{1},\cdots,y_{n}\}}. Luego, se realizan todas las sustituciones posibles de los átomos básicos por los predicados en las reglas para crear reglas básicas.

Cada una de las reglas básicas se interpreta como potencial o restricción estricta en el HL-MRF inducido. Una regla lógica se traduce como una relajación continua de conectivos booleanos utilizando la lógica de Łukasiewicz . Una regla lógica básica se transforma en su forma normal disyuntiva . SeaI+{\displaystyle I^{+}}sea ​​el conjunto de índices de las variables que corresponden a átomos que no están negados, y, asimismo,I{\displaystyle I^{-}}el conjunto de índices correspondientes a los átomos que se niegan, en la cláusula disyuntiva. Entonces la regla lógica se corresponde con la desigualdad:

1iI+yiiI(1yi)0{\displaystyle 1-\sum _{i\in I^{+}}y_{i}-\sum _{i\in I^{-}}(1-y_{i})\leq 0}

Si la regla lógica está ponderada con un pesow{\displaystyle w}y exponencial cond{1,2}{\displaystyle d\in \{1,2\}}, entonces el potencial

ϕ(y)=(máximo{1iI+yiiI(1yi),0})d{\displaystyle \phi (\mathbf {y} )={\Big (}\max {\Big \{}1-\sum _{i\in I^{+}}y_{i}-\sum _{i\in I^{-}}(1-y_{i}),0{\Big \}}{\Big )}^{d}}

se agrega al HL-MRF con un parámetro de ponderación dew{\displaystyle w}.

Se manipula una regla aritmética para(y)0{\displaystyle \ell (\mathbf {y} )\leq 0}y el potencial resultante toma la formaϕ(y)=(máximo{(y),0})d{\displaystyle \phi (\mathbf {y} )=(\max\{\ell (\mathbf {y} ),0\})^{d}}.

Interfaces

PSL está disponible a través de tres interfaces de lenguaje diferentes : CLI , Java y Python . La interfaz de línea de comandos (CLI) de PSL es la forma recomendada de usar PSL. [ 7 ] Admite todas las características de uso común de forma reproducible y sin necesidad de compilación. Dado que PSL está escrito en Java, la interfaz Java de PSL es la más completa y los usuarios pueden llamar directamente al núcleo de PSL. [ 8 ] La interfaz Java está disponible a través del repositorio central de Maven . [ 9 ] La interfaz Python de PSL está disponible a través de PyPi [ 10 ] y utiliza DataFrames de pandas para pasar datos entre PSL y el usuario. [ 11 ]

PSL anteriormente proporcionaba una interfaz Groovy. [ 12 ] Se ha declarado obsoleta en la versión 2.2.1 de PSL y está previsto que se elimine en la versión 2.3.0. [ 13 ]

Ejemplos

El laboratorio LINQS, desarrolladores de la implementación oficial de PSL, mantiene una colección de ejemplos de PSL. [ 14 ] Estos ejemplos abarcan conjuntos de datos sintéticos y reales, e incluyen ejemplos de publicaciones académicas que utilizan PSL. A continuación, se presenta un ejemplo sencillo de este repositorio que puede utilizarse para inferir relaciones en una red social. Junto a cada regla, se incluye un comentario que describe la lógica subyacente.

/* Las personas que viven en el mismo lugar tienen más probabilidades de conocerse. */ 20 : Vivió ( P1 , L ) y Vivió ( P2 , L ) y ( P1 ! = P2 ) -> Conoce ( P1 , P2 ) ^ 2/* Es poco probable que las personas que no han vivido en el mismo lugar se conozcan. */ 5 : Vivió ( P1 , L1 ) y Vivió ( P2 , L2 ) y ( P1 ! = P2 ) y ( L1 ! = L2 ) -> ! Conoce ( P1 , P2 ) ^ 2/* Dos personas con intereses similares tienen más probabilidades de conocerse. */ 10 : Gustos ( P1 , X ) & Gustos ( P2 , X ) & ( P1 ! = P2 ) -> Conoce ( P1 , P2 ) ^ 2/* Las personas en los mismos círculos tienden a conocerse entre sí (transitividad). */ 5 : Conoce ( P1 , P2 ) & Conoce ( P2 , P3 ) & ( P1 ! = P3 ) -> Conoce ( P1 , P3 ) ^ 2/* Conocerse mutuamente es simétrico. */ Conoce ( P1 , P2 ) = Conoce ( P2 , P1 ) ./* Por defecto, se asume que dos personas arbitrarias no se conocen (probabilidad previa negativa). */ 5 : ! Conoce ( P1 , P2 ) ^ 2

Véase también

Referencias

  1. "PSL 2.2.2" . GitHub . Consultado el 16 de julio de 2020 .
  2. 1 2 Bach, Stephen; Broecheler, Matthias; Huang, Bert; Getoor, Lise (2017). "Campos aleatorios de Markov con pérdida de bisagra y lógica suave probabilística". Journal of Machine Learning Research . 18 : 1–67 .
  3. Getoor, Lise ; Taskar, Ben (2007). Introducción al aprendizaje relacional estadístico . MIT Press. ISBN 978-0262072885.
  4. "Repositorio de GitHub" . GitHub . Consultado el 26 de marzo de 2018 .
  5. Broecheler, Matthias; Getoor, Lise (2009). Lógica de similitud probabilística . Taller internacional sobre aprendizaje relacional estadístico (SRL).
  6. "Especificación de reglas" . psl.linqs.org . LINQS Lab. 6 de diciembre de 2019. Consultado el 10 de julio de 2020 .
  7. Augustine, Eriq (15 de julio de 2018). "Introducción a PSL" . Probabilistic Soft Logic . Consultado el 15 de julio de 2020 .
  8. "Referencia de la API de PSL" . Lógica blanda probabilística . Consultado el 15 de julio de 2020 .
  9. "Repositorio Maven: org.linqs » psl-java" . mvnrepository.com . Consultado el 15 de julio de 2020 . 
  10. "pslpython: Una interfaz de Python para el software PSL SRL/ML" . Índice de paquetes de Python . Consultado el 15 de julio de 2020 .
  11. Augustine, Eriq (6 de diciembre de 2019). "PSL 2.2.1 Release" . Probabilistic Soft Logic . Recuperado el 15 de julio de 2020 .
  12. "Repositorio Maven: org.linqs » psl-groovy" . mvnrepository.com . 
  13. Augustine, Eriq (6 de diciembre de 2019). "PSL 2.2.1 Release" . Probabilistic Soft Logic . Recuperado el 15 de julio de 2020 .
  14. "linqs/psl-examples" . Github . linqs. 19 de junio de 2020.
  • Videoconferencias sobre PSL en YouTube