확률론적 연성 논리

Probabilistic soft logic
PSL
PSL Logo.png
개발자LINQS 연구소
초기 릴리즈2011년 9월 23일(2011-09-23)
안정적 해제
2.2.2 / 2020년[1] 5월 20일(2020-05-20)
리포지토리github.com/linqs/psl
기록 위치자바
플랫폼Linux, macOS, Windows
유형기계학습, 통계관계학습
면허증아파치 라이선스 2.0
웹사이트psl.linqs.org

확률론적 소프트 로직(PSL)은 확률론적 및 관계적 영역을 모델링하기 위한 통계적 관계 학습(SRL) 프레임워크다.[2] 집단 분류, 실체 결의, 링크 예측, 온톨로지 정렬 등 다양한 머신러닝 문제에 적용할 수 있다.PSL은 복잡한 현상을 간결하게 표현하는 능력을 갖춘 1차 논리학과 실세계 지식의 불확실성과 불완전성을 포착하는 확률론적 그래픽 모델 등 두 가지 도구를 결합한다.보다 구체적으로, PSL은 논리적 구성요소로 "소프트" 로직을 사용하고, 통계 모델로는 마르코프 무작위 필드를 사용한다.PSL은 가장 가능성이 높은 답을 찾기 위한 정교한 추론 기법(즉, 최대 authori(MAP) 상태)을 제공한다.논리 공식의 "연화"는 NP-하드 연산보다는 다항 시간 연산을 추론한다.

설명

SRL 커뮤니티는 관계형 구조를 가진 복잡한 확률론적 모델을 개발할 수 있도록 그래픽 모델과 1차 논리를 결합한 다중 접근방식을 도입했다.그러한 접근방식의 주목할 만한 예는 MLNs이다.[3] MSL은 MLN과 마찬가지로 관계형 영역에서 학습하고 예측하기 위한 모델링 언어(동행 구현[4] 포함)이다.MLN과 달리 PSL은 [0,1] 사이의 간격에서 술어에 대한 부드러운 진리 값을 사용한다.이를 통해 기본적인 추론이 볼록 최적화 문제로 빠르게 해결될 수 있다.이는 집합 분류, 링크 예측, 소셜 네트워크 모델링, 객체 식별/엔티티 해결/기록 연계 등의 문제에서 유용하다.

확률론적 소프트 로직은 리즈 게투어와 마티아스 브로헬러가 2009년 처음 출시했다.[5] 이 첫 번째 버전은 기업들 간의 유사성에 대한 추론에 집중하였다.PSL의 후기 버전은 유사성에 대해 추론할 수 있는 능력을 여전히 유지하지만, 언어를 더 표현하기 위해 일반화할 것이다.

2017년에는 PSL의 새로운 주요 버전(2.0.0)의 발표와 함께 PSL과 기초 그래픽 모델을 상세히 기술한 저널 오브 머신러닝 리서치(Journal of Machine Learning Research) 기사가 발표되었다.[2] PSL 2.0.0의 주요 새로운 기능은 제약조건과 명령줄 인터페이스를 지정하는 데 주로 사용되는 새로운 유형의 규칙이었다.

구문 및 의미론

용어.

  • PSL 프로그램 — 각 규칙이 그래픽 모델에서 잠재력을 위한 템플릿인 규칙 모음입니다.
  • 규칙 — 원자와 관련된 표현식.규칙은 일반적으로 1차적 논리 함의 또는 선형 조합의 형태를 취한다.
  • 상수 - PSL 프로그램이 나타내는 우주의 실제 요소를 나타내는 문자열 또는 숫자.상수는 속성 또는 전체 엔터티를 나타낼 수 있다.
  • 변수 - 상수를 대체할 수 있는 식별자.
  • 항 - 상수 또는 변수.
  • 술어 — 고유한 이름과 그것이 수용하는 여러 인수에 의해 정의된 관계.
  • Atom — 용어 인수와 함께 술어.
  • Ground Atom - 모든 인수가 상수인 원자.

구문

PSL 모델은 일련의 가중 규칙과 제약조건으로 구성된다.PSL은 두 가지 유형의 규칙을 지원한다.논리 및 산술.[6]

논리 법칙은 단 하나의 원자 또는 체내의 원자의 결합과 단 하나의 원자 또는 머리 속의 원자의 분리가 있는 암시로 구성된다.PSL은 소프트 로직을 사용하기 때문에 하드 로직 연산자는 우카시오비츠 소프트 로직 연산자로 대체된다.논리 규칙 표현식의 예는 다음과 같다.

유사하다(A, B) & 하스라벨(A, X) -> 하스라벨(B, X) 

이 규칙은 다음을 의미하는 것으로 해석할 수 있다.만약 A와 B가 비슷하고 A가 X라는 라벨을 가지고 있다면, B도 X라는 라벨을 가지고 있다는 증거가 있다.

산술적 규칙은 원자의 두 선형 결합의 관계다.각 측면을 선형 결합으로 제한하면 결과 전위가 볼록하게 된다.다음과 같은 관계형 운영자가 지원된다.=,<=그리고>=.

유사하다(A, B) = 유사하다(B, A) 

이 규칙은 유사성이 이 모델에서 대칭이라는 개념을 나타낸다.

산술 규칙에서 일반적으로 사용되는 특징은 합계 연산이다.합계 연산은 복수의 원자를 집적하는 데 사용될 수 있다.사용할 때 원자는 비섬화 변수가 고정된 모든 가능한 원자의 합으로 대체된다.합계 변수는 변수에 다음 값을 접두사로 붙임으로써 만들어진다.+. 여우의 예:

하스라벨(A, +X) = 1.0 

X에 대해 가능한 값이 라벨1, 라벨2, 라벨3인 경우 위의 규칙은 다음과 같다.

하스라벨(A, 'label1') + 하스라벨(A, 'label2') + 하스라벨(A, 'label3') = 1.0 

이 두 규칙 모두 기업에 대해 가능한 모든 라벨의 합계를 1.0으로 강제한다.이러한 유형의 규칙은 특히 하나의 클래스만 선택할 수 있는 집단 분류 문제에 유용하다.

의미론

HL-MRF

PSL 프로그램은 데이터에 의해 매개변수화된 확률론적 그래픽 모델군을 정의한다.좀 더 구체적으로 말하면, 그것이 정의하는 그래픽 모델 계열은 힌지-손실 마코프 필드(HL-MRF)로 알려진 마코프 랜덤 필드의 특별한 등급에 속한다.An HL-MRF determines a density function over a set of continuous variables with joint domain using set of evidence , weights , and potential functions of the form where is a linear function and .관측된 데이터 분포는 다음과 같이 정의된다

Where is the partition function.이 밀도는 대수적으로 볼록한 함수로, y 의 접합 상태의 최대 후행추정을 찾는 PSL의 공통 추론 작업은 볼록한 문제다.이를 통해 PSL의 추론이 다항 시간 내에 달성될 수 있다.

열린 술어/닫힌 술어 - 닫힌 세계

PSL의 술어는 개방 또는 폐쇄로 라벨을 표시할 수 있다.

술어가 폐쇄 라벨로 표시되면 PSL은 폐쇄 세계 가정을 한다. PSL에 명시적으로 제공되지 않는 술어는 모두 거짓으로 가정한다.즉 폐쇄적인 세계 가정은 부분적으로 사실인 술어도 부분적으로 사실인 것으로 알려져 있다고 가정한다.For example, if we had the following constants in the data for representing people: and the following constant for movies: , and we provided PSL with the predicate data () g 이(가) 닫힌 것으로 표시된 다음 PSL은 이 데이터가 시스템에 명시적으로 제공되지 않았음에도 불구하고{ r 으로 가정할 것이다.

술어가 열린 것으로 표시되면 PSL은 닫힌 세계를 가정하지 않는다.대신에 PSL은 관찰되지 않은 인스턴스들을 집합적으로 추론하려고 시도할 것이다.

접지

데이터는 접지라고 불리는 과정에서 몇 가지 잠재적 기능을 인스턴스화하는 데 사용된다.그런 다음 HL-MRF를 정의하기 위해 잠재적 기능을 사용한다.

PSL의 접지 술어는 각 술어에 있는 변수를 데이터의 기존 상수로 가능한 모든 대체하는 과정으로, 그 결과 접지 원자의 집합인 ={ , } 그런 다음, 규칙의 술어를 위해 가능한 모든 지상 원자를 대체하여 지상 규칙을 만든다.

각각의 기본 규칙은 유도된 HL-MRF의 잠재적 제약조건이나 단단한 제약조건으로 해석된다. 논리적 규칙은 우카시오비츠 논리를 사용하여 부울 커넥티브의 연속적인 이완으로 해석된다.그라운드 논리적인 규칙은 그것의 분리적인 정상적인 형태로 변형된다.+ 은(는) 부정되지 않은 원자에 해당하는 변수의 지수 집합이며, - 마찬가지로 부정된 원자에 해당하는 지수 집합이 이격조항이다.그리고 그 논리적인 규칙은 불평등과 일치한다.

논리 규칙이 가중치를 적용하고 { ,} 로 강조 표시되면 잠재력

의 중량 매개변수로 HL-MRF에 추가된다

An arithmetic rule is manipulated to and the resulting potential takes the form .

인터페이스

PSL은 CLI, Java, Python의 세 가지 언어 인터페이스를 통해 사용할 수 있다.PSL의 명령줄 인터페이스(CLI)는 PSL을 사용하는 권장 방법이다.[7] 컴파일이 필요 없는 재현 가능한 형태로 일반적으로 사용되는 모든 형상을 지원한다.PSL은 자바로 작성되기 때문에 PSL 자바 인터페이스가 가장 광범위하며 사용자가 PSL의 핵심으로 직접 호출할 수 있다.[8] 자바 인터페이스는 메이븐 중앙 저장소를 통해 이용할 수 있다.[9] PSL Python 인터페이스는 PyPi를 통해 제공되며, 팬더 DataFrames를 사용하여 PSL과 사용자 간에 데이터를 전달한다.[11]

PSL은 이전에 Groovy 인터페이스를 제공했다.[12] PSL 2.2.1 릴리스에서는 더 이상 사용되지 않았으며, 2.2.0 릴리스에서는 제거될 예정이다.[13]

공식적인 PSL 구현의 개발자인 LINQS 연구소는 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. Retrieved 16 July 2020.
  2. ^ a b Bach, Stephen; Broecheler, Matthias; Huang, Bert; Getoor, Lise (2017). "Hinge-Loss Markov Random Fields and Probabilistic Soft Logic". Journal of Machine Learning Research. 18: 1–67.
  3. ^ Getoor, Lise; Taskar, Ben (2007). Introduction to Statistical Relational Learning. MIT Press. ISBN 978-0262072885.
  4. ^ "GitHub repository". Retrieved 26 March 2018.
  5. ^ Broecheler, Matthias; Getoor, Lise (2009). Probabilistic Similarity Logic. International Workshop on Statistical Relational Learning (SRL).
  6. ^ "Rule Specification". psl.linqs.org. LINQS Lab. December 6, 2019. Retrieved July 10, 2020.
  7. ^ Augustine, Eriq (15 July 2018). "Getting Started with PSL". Probabilistic Soft Logic. Retrieved 15 July 2020.
  8. ^ "PSL API Reference". Probabilistic Soft Logic. Retrieved 15 July 2020.
  9. ^ "Maven Repository: org.linqs » psl-java". mvnrepository.com. Retrieved 15 July 2020.
  10. ^ "pslpython: A python inferface to the PSL SRL/ML software". Python Package Index. Retrieved 15 July 2020.
  11. ^ Augustine, Eriq (6 December 2019). "PSL 2.2.1 Release". Probabilistic Soft Logic. Retrieved 15 July 2020.
  12. ^ "Maven Repository: org.linqs » psl-groovy". mvnrepository.com.
  13. ^ Augustine, Eriq (6 December 2019). "PSL 2.2.1 Release". Probabilistic Soft Logic. Retrieved 15 July 2020.
  14. ^ "linqs/psl-examples". Github. linqs. 19 June 2020.

외부 링크