stringtranslate.com

Lógica blanda probabilística

Probabilistic Soft Logic (PSL) es un marco de aprendizaje estadístico relacional (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 de manera sucinta fenómenos complejos, y modelos gráficos probabilísticos , que capturan la incertidumbre y la incompletitud inherentes al conocimiento del mundo real. Más específicamente, PSL utiliza lógica "suave" como componente lógico y campos aleatorios de Markov como modelo estadístico. PSL proporciona técnicas de inferencia sofisticadas para encontrar la respuesta más probable (es decir, el estado máximo a posteriori (MAP) ). El "ablandamiento" de las fórmulas lógicas hace que la inferencia sea una operación de tiempo polinomial en lugar de una operación NP-dura .

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 lógicas de Markov (MLN). [3] Al igual que los MLN, PSL es un lenguaje de modelado (con una implementación adjunta [4] ) para aprender y predecir en dominios relacionales. A diferencia de los 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 clasificación colectiva , predicción de enlaces , modelado de redes sociales e identificación de objetos/resolución de entidades/vinculación de registros .

Probabilistic Soft Logic fue lanzado por primera vez en 2009 por Lise Getoor y Matthias Broecheler. [5] Esta primera versión se centró en gran medida en el razonamiento sobre similitudes entre entidades. Las versiones posteriores de PSL aún mantendrían la capacidad de razonar sobre similitudes, pero generalizarían el lenguaje para que fuera más expresivo.

En 2017, se publicó un artículo del Journal of Machine Learning Research que detalla 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 características nuevas 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

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 lógicos duros se reemplazan por operadores lógicos blandos de Łukasiewicz . Un ejemplo de expresión de regla lógica es:

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

Esta regla puede interpretarse en el sentido de que 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únmente utilizada de las reglas aritméticas es la operación de suma. La operación de suma se puede utilizar para agregar múltiples átomos. Cuando se usa, el átomo se reemplaza con la suma de todos los átomos posibles donde se fijan las variables que no son sumatorias. Las variables de suma se crean anteponiendo a una variable un +. Ejemplo de zorro:

TieneEtiqueta ( A ,  + X )  =  1,0

Si los valores posibles para X son etiqueta1 , etiqueta2 y etiqueta3 , entonces la regla anterior es equivalente a:

HasLabel ( A ,  'etiqueta1' )  +  HasLabel ( A ,  'etiqueta2' )  +  HasLabel ( A ,  'etiqueta3' )  =  1,0

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

Semántica

HL-MRF

Un programa PSL define una familia de modelos gráficos probabilísticos que están 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 conocida como campo de Markov con pérdida de bisagra (HL-MRF). Un HL-MRF determina una función de densidad sobre un conjunto de variables continuas con dominio conjunto utilizando un conjunto de evidencia , ponderaciones y funciones potenciales de la forma donde es una función lineal y . La distribución condicional de los datos observados dados se define como

¿Dónde está 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 máxima a posteriori del estado conjunto de es un problema convexo. Esto permite que la inferencia en PSL se pueda lograr en tiempo polinomial.

Predicados abiertos/cerrados: supuesto del mundo cerrado

Los predicados en PSL se pueden etiquetar como abiertos o cerrados.

Cuando un predicado se etiqueta como cerrado, PSL asume que el mundo es cerrado : cualquier predicado que no se proporcione explícitamente a PSL se supone que es falso. En otras palabras, el supuesto del mundo cerrado supone que un predicado que es parcialmente verdadero también se sabe que es parcialmente verdadero. Por ejemplo, si tuviéramos las siguientes constantes en los datos para representar personas: y la siguiente constante para películas: y le proporcionamos a PSL los datos del predicado y fue etiquetado como cerrado, entonces PSL asumiría que, aunque estos datos nunca se proporcionaron explícitamente al sistema.

Si un predicado está etiquetado como abierto, entonces PSL no asume el supuesto de mundo cerrado. En cambio, PSL intentará inferir colectivamente los casos no observados.

Toma de tierra

Los datos se utilizan para crear instancias de varias funciones potenciales en un proceso llamado conexión a tierra. Las funciones potenciales resultantes se utilizan luego para definir el HL-MRF.

Los predicados fundamentales en PSL son 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 . Luego, se realizan todas las sustituciones posibles de los átomos fundamentales por los predicados en las reglas para crear reglas básicas.

Cada una de las reglas básicas se interpreta como potenciales o restricciones estrictas 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 fundamental se transforma en su forma normal disyuntiva . Sea el conjunto de índices de las variables que corresponden a átomos que no están negados, y, asimismo, el conjunto de índices correspondientes a átomos que están negados, en la cláusula disyuntiva. Entonces la regla lógica se corresponde con la desigualdad:

Si la regla lógica se pondera con un peso y se exponencia con , entonces el potencial

se agrega al HL-MRF con un parámetro de peso de .

Se manipula una regla aritmética y el potencial resultante toma la forma .

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 utilizar PSL. [7] Admite todas las funciones comúnmente utilizadas en una forma reproducible que no requiere compilación. Dado que PSL está escrito en Java, la interfaz Java de PSL es la más amplia 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 PSL Python está disponible a través de PyPi [10] y utiliza pandas DataFrames para pasar datos entre PSL y el usuario. [11]

PSL proporcionó anteriormente una interfaz Groovy. [12] Ha quedado obsoleto 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 cubren conjuntos de datos tanto sintéticos como del mundo real e incluyen ejemplos de publicaciones académicas que utilizan PSL. A continuación se muestra un ejemplo de juguete de este repositorio que se puede utilizar para inferir relaciones en una red social. Junto con cada regla hay un comentario que describe la intuición motivadora detrás de las declaraciones.

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

Ver también

Referencias

  1. ^ "PSL 2.2.2". GitHub . Consultado el 16 de julio de 2020 .
  2. ^ ab Bach, Stephen; Broecheler, Matías; Huang, Bert; Getoor, Lise (2017). "Campos aleatorios de Markov con pérdida de bisagra y lógica suave probabilística". Revista de investigación sobre aprendizaje automático . 18 : 1–67.
  3. ^ Getoor, Lise ; Taskar, Ben (2007). Introducción al aprendizaje estadístico relacional. Prensa del MIT. ISBN  978-0262072885.
  4. ^ "Repositorio de GitHub" . Consultado el 26 de marzo de 2018 .
  5. ^ Broecheler, Matías; Getoor, Lise (2009). Lógica de similitud probabilística. Taller Internacional sobre Aprendizaje Estadístico Relacional (SRL).
  6. ^ "Especificación de reglas". psl.linqs.org . Laboratorio LINQS. 6 de diciembre de 2019 . Consultado el 10 de julio de 2020 .
  7. ^ Agustín, Eriq (15 de julio de 2018). "Primeros pasos con PSL". Lógica blanda probabilística . 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. ^ Agustín, Eriq (6 de diciembre de 2019). "Lanzamiento de PSL 2.2.1". Lógica blanda probabilística . Consultado el 15 de julio de 2020 .
  12. ^ "Repositorio Maven: org.linqs» psl-groovy ". mvnrepository.com .
  13. ^ Agustín, Eriq (6 de diciembre de 2019). "Lanzamiento de PSL 2.2.1". Lógica blanda probabilística . Consultado el 15 de julio de 2020 .
  14. ^ "ejemplos de linqs/psl". Github . linqs. 19 de junio de 2020.

enlaces externos