確率的ソフトロジック

PSL
開発者LINQSラボ
初回リリース2011年9月23日 (2011年9月23日
安定版リリース
2.2.2 [1] / 2020年5月20日 ( 2020-05-20 )
リポジトリgithub.com/linqs/psl
書かれたジャワ
プラットフォームLinuxmacOSWindows
タイプ機械学習統計的関係学習
ライセンスApacheライセンス2.0
Webサイトpsl.linqs.org

確率的ソフトロジック(PSL)は、確率的および関係的領域をモデル化するための 統計的関係学習(SRL)フレームワークです。 [2]集合的分類エンティティ解決リンク予測オントロジーアラインメントなど、 さまざまな機械学習の問題に適用できます。PSLは、複雑な現象を簡潔に表現できる一階述語論理と、現実世界の知識に内在する不確実性と不完全性を捉える確率的グラフィカルモデルという2つのツールを組み合わせています。より具体的には、PSLは論理コンポーネントとして「ソフト」ロジックを使用し、統計モデルとしてマルコフ確率場を使用します。PSLは、最も可能性の高い答え(つまり、事後確率最大(MAP)状態)を見つけるための高度な推論手法を提供します。論理式の「ソフト化」により、推論はNP困難な演算ではなく、多項式時間演算になります。

説明

SRLコミュニティではグラフィカルモデル一階述語論理を組み合わせた複数のアプローチを導入し、リレーショナル構造を持つ複雑な確率モデルの開発を可能にしています。 このようなアプローチの注目すべき例としては、マルコフ論理ネットワーク(MLN)があります。 [3] MLNと同様に、PSLはリレーショナルドメインでの学習と予測のためのモデリング言語です(実装[4]も付属しています)。 MLNとは異なり、PSLは述語に[0,1]の間の区間のソフト真理値を使用します。 これにより、基礎となる推論を凸最適化問題として迅速に解決できます。 これは、集団分類リンク予測ソーシャルネットワークモデリング、オブジェクト識別/エンティティ解決/レコードリンクなどの問題に役立ちます

確率的ソフトロジックは、2009年にLise GetoorとMatthias Broechelerによって初めてリリースされました。 [5] この最初のバージョンは、エンティティ間の類似性に関する推論に重点を置いていました。PSLの後のバージョンでは、類似性に関する推論機能は維持されつつも、言語の一般化によってより表現力が豊かになりました。

2017年には、 PSLとその基盤となるグラフィカルモデルの詳細を説明したJournal of Machine Learning Researchの記事が、PSLの新しいメジャーバージョン(2.0.0)のリリースとともに出版されました。 [2] PSL 2.0.0の主な新機能は、主に制約の指定に使用される新しいタイプのルールとコマンドラインインターフェースでした。

構文と意味論

用語

  • PSL プログラム — グラフィカル モデル内のポテンシャルのテンプレートとなるルールのコレクション。
  • ルール — 原子を関連付ける表現。ルールは通常、一階論理的含意または線形結合のいずれかの形をとります。
  • 定数 — PSLプログラムが表現する宇宙における実数要素を表す文字列または数値。定数は属性またはエンティティ全体を表すことができます。
  • 変数 — 定数を代入できる識別子。
  • 項 — 定数または変数のいずれか。
  • 述語 — 一意の名前とそれが受け入れる引数の数によって定義される関係。
  • アトム — 述語とその用語引数。
  • グラウンド アトム — すべての引数が定数であるアトム。

構文

PSLモデルは、重み付けされた一連のルールと制約で構成されています。PSLは、論理ルールと算術ルールの2種類のルールをサポートしています。 [6]

論理規則は、本体に1つの原子または原子の論理積のみ、頭部に1つの原子または原子の論理和のみを含む含意で構成されます。PSLはソフトロジックを使用するため、ハードロジック演算子はŁukasiewiczのソフト論理演算子に置き換えられます。論理規則式の例を以下に示します。

同様に( A ,  B )  HasLabel ( A ,  X )  ->  HasLabel ( B ,  X )

この規則は次のように解釈できます: A と B が類似しており、A にラベル X がある場合、B にもラベル X があるという証拠があります。

算術規則は、2つの原子の線形結合の関係です。各辺を線形結合に制限することで、結果として得られるポテンシャルが凸型になることが保証されます。以下の関係演算子がサポートされています:=、、<=および>=

類似( A  B )  = 類似( B  A )

このルールは、このモデルでは類似性が対称的であるという概念をエンコードします。

算術規則でよく使われる機能の一つに、和演算があります。和演算は複数の原子を集約するために使用できます。和演算を使用すると、原子は、和演算の対象とならない変数が固定されているすべての原子の和に置き換えられます。和演算対象変数は、変数の先頭に. を付けることによって作成されます+。例:

HasLabel ( A ,  + X )  =  1.0

X の可能な値がlabel1label2label3である場合、上記のルールは次のルールと同等になります。

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

どちらのルールも、エンティティのすべてのラベルの合計が1.0になるように強制します。このタイプのルールは、1つのクラスしか選択できない 集合的な分類問題に特に役立ちます。

セマンティクス

HL-MRF

PSLプログラムは、データによってパラメータ化された確率的グラフィカルモデルの族を定義します。より具体的には、このプログラムが定義するグラフィカルモデルの族は、ヒンジロスマルコフ場(HL-MRF)として知られるマルコフ確率場の特別なクラスに属します。HL-MRFは、証拠、重み、およびの形のポテンシャル関数を用いて、結合領域を持つ連続変数の集合に対する密度関数を決定します。ここで、は線形関数、 です。観測データが与えられた場合の の条件付き分布は、次のように定義されます。 y y 1 y n {\displaystyle \mathbf {y} =(y_{1},\cdots ,y_{n})} [ 0 1 ] n {\displaystyle [0,1]^{n}} × × 1 × メートル {\displaystyle \mathbf {x} =(x_{1},\cdots,x_{m})} 1 {\displaystyle \mathbf {w} =(w_{1},\cdots ,w_{k})} ϕ ϕ 1 ϕ {\displaystyle \mathbf {\phi } =(\phi _{1},\cdots ,\phi _{k})} ϕ × y 最大 × y 0 d {\displaystyle \mathbf {\phi _{i}(\mathbf {x} ,\mathbf {y} )} =\max(\ell _{i}(\mathbf {x} ,\mathbf {y} ),0)^{d_{i}}} {\displaystyle \ell_{i}} d { 1 2 } {\displaystyle d_{i}\in \{1,2\}} y {\displaystyle \mathbf {y} } × {\displaystyle \mathbf {x} }

P y | × 1 Z y 経験 1 ϕ × 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} ))}

は分配関数です。この密度は対数凸関数であるため PSLにおける一般的な推論タスクである、の結合状態の事後推定値の最大値を求めることは凸問題です。これにより、PSLにおける推論は多項式時間で実行可能です。 Z y y 経験 1 ϕ × y {\displaystyle Z(\mathbf {y} )=\int _{\mathbf {y} }\exp(\sum _{i=1}^{k}w_{i}\phi _{i}(\mathbf {x} ,\mathbf {y} ))} y {\displaystyle \mathbf {y} }

オープン/クローズド述語 -- 閉世界仮定

PSL の述語は、オープン述語またはクローズ述語としてラベル付けできます。

述語に「closed」というラベルが付けられると、PSLは閉世界仮定を立てます。つまり、PSLに明示的に提供されていない述語はすべて偽であると仮定されます。言い換えれば、閉世界仮定は、部分的に真である述語は部分的に真であるとも知られていると仮定します。例えば、人物を表すデータに以下の定数があり、映画を表すデータに以下の定数があり、PSLに述語データを提供し、その述語に「closed」というラベルが付けられていたとします。このデータがシステムに明示的に提供されていなくても、 PSLは であると仮定します。 { l c e B o b } {\displaystyle \{アリス、ボブ\}} { v 1つの t 1つの r } {\displaystyle \{アバター\}} { r 1つの t n グラム l c e v 1つの t 1つの r 0.8 } {\displaystyle \{rating(アリス,アバター)=0.8\}} r 1つの t n グラム {\displaystyle 評価(\cdot )} { r 1つの t n グラム B o b v 1つの t 1つの r 0 } {\displaystyle \{rating(ボブ,アバター)=0\}}

述語がオープンとラベル付けされている場合、PSLは閉世界仮定を行いません。代わりに、PSLは観測されていないインスタンスを集合的に推論しようとします。

接地

データは、グラウンディングと呼ばれるプロセスにおいて、複数のポテンシャル関数をインスタンス化するために使用されます。生成されたポテンシャル関数は、HL-MRFを定義するために使用されます。

PSLにおける述語のグラウンディングとは、各述語の変数をデータ内の既存の定数に可能な限り置換し、グラウンドアトムの集合を作成するプロセスです。次に、ルール内の述語をグラウンドアトムに可能な限り置換することで、グラウンドルールを作成します。 y { y 1 y n } {\displaystyle \mathbf {y} =\{y_{1},\cdots ,y_{n}\}}

各基本規則は、誘導されたHL-MRFにおいて、潜在的制約または厳密な制約として解釈されます。論理規則は、Łukasiewicz論理を用いてブール結合子の連続的な緩和として翻訳されます。基本論理規則は、その選言標準形に変換されます。選言節において、否定されないアトムに対応する変数のインデックスの集合を 、同様に否定されるアトムに対応するインデックスの集合を とします。すると、論理規則は不等式にマッピングされます。 + {\displaystyle I^{+}} {\displaystyle I^{-}}

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

論理規則が重み付けされ、指数化されると、潜在的な {\displaystyle w} d { 1 2 } {\displaystyle d\in \{1,2\}}

ϕ y 最大 { 1 + y 1 y 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}}

は、重みパラメータ で HL-MRF に追加されます {\displaystyle w}

算術規則を に操作すると、結果として得られるポテンシャルは という形式になります y 0 {\displaystyle \ell (\mathbf {y} )\leq 0} ϕ y 最大 { y 0 } d {\displaystyle \phi (\mathbf {y} )=(\max\{\ell (\mathbf {y} ),0\})^{d}}

インターフェース

PSLは、CLIJavaPythonの3つの異なる言語インターフェースで利用できます。PSLのコマンドラインインターフェース(CLI)は、PSLを使用するための推奨される方法です。 [7] コンパイルを必要としない再現可能な形式で、一般的に使用されるすべての機能をサポートしています。PSLはJavaで書かれているので、PSL Javaインターフェースは最も拡張性が高く、ユーザーはPSLのコアを直接呼び出すことができます。 [8] Javaインターフェースは、Maven中央リポジトリから利用できます。 [9] PSL PythonインターフェースはPyPi [10]から利用でき、 pandas DataFrames を使用してPSLとユーザーの間でデータをやり取りします。 [11]

PSLは以前Groovyインターフェースを提供していました。 [12] これはPSLの2.2.1リリースで非推奨となり、2.3.0リリースで削除される予定です。 [13]

公式PSL実装の開発元であるLINQSラボは、PSLのサンプル集を整備しています。 [14] これらのサンプルは、合成データセットと実世界のデータセットの両方を網羅しており、PSLを用いた学術論文からの例も含まれています。以下は、このリポジトリから抜粋した、ソーシャルネットワークにおける関係性を推論するために使用できる簡単なサンプルです。各ルールには、その背後にある直感的な理由を説明するコメントが添えられています。

/* 同じ場所に住んでいる人は、お互いを知っている可能性が高くなります。 */ 
20 :  Lived ( P1  L )  &  Lived ( P2  L )  &  ( P1  ! =  P2 )  ->  Knows ( P1  P2 )  ^ 2

/* 同じ場所に住んでいない人々は、お互いを知っている可能性は低いです。 */ 
5 :  ( P1 L1 )に住んでいて( P2 L2 )住んでいて、 ( P1 ! = P2 )( L1 ! = L2 )である-> ! ( P1 P2 ) ^ 2 を知っている                

/* 同じような興味を持つ二人は、お互いを知っている可能性が高くなります。 */ 
10 :  Likes ( P1  X )  &  Likes ( P2  X )  &  ( P1  ! =  P2 )  ->  Knows ( P1  P2 )  ^ 2

/* 同じサークルの人々はお互いを知っている傾向があります (推移性)。 */ 
5 :  Knows ( P1  P2 )  &  Knows ( P2  P3 )  &  ( P1  ! =  P3 )  ->  Knows ( P1  P3 )  ^ 2

/* お互いを知っていることは対称的です。 */ 
Knows ( P1  P2 )  =  Knows ( P2  P1 )  

/* デフォルトでは、2人の任意の人がお互いを知らないと仮定します(負の事前確率)。 */ 
5 :  ! Knows ( P1 ,  P2 )  ^ 2

参照

参考文献

  1. ^ “PSL 2.2.2”. GitHub . 2020年7月16日閲覧
  2. ^ ab Bach, Stephen; Broecheler, Matthias; Huang, Bert; Getoor, Lise (2017). 「ヒンジロスマルコフ確率場と確率的ソフトロジック」. Journal of Machine Learning Research . 18 : 1– 67.
  3. ^ Getoor, Lise ; Taskar, Ben (2007). 統計的関係学習入門. MIT Press. ISBN  978-0262072885
  4. ^ 「GitHubリポジトリ」。GitHub 2018年3月26日閲覧
  5. ^ Broecheler, Matthias; Getoor, Lise (2009). 確率的類似性論理. 統計的関係学習に関する国際ワークショップ (SRL).
  6. ^ 「ルール仕様」。psl.linqs.org . LINQS Lab. 2019年12月6日. 2020年7月10日閲覧
  7. ^ Augustine, Eriq (2018年7月15日). 「PSL入門」.確率的ソフトロジック. 2020年7月15日閲覧
  8. ^ 「PSL APIリファレンス」。確率的ソフトロジック。 2020年7月15日閲覧
  9. ^ 「Mavenリポジトリ: org.linqs » psl-java」. mvnrepository.com . 2020年7月15日閲覧
  10. ^ "pslpython: PSL SRL/MLソフトウェアへのPythonインターフェース". Pythonパッケージインデックス. 2020年7月15日閲覧
  11. ^ Augustine, Eriq (2019年12月6日). 「PSL 2.2.1 リリース」.確率的ソフトロジック. 2020年7月15日閲覧
  12. ^ 「Mavenリポジトリ: org.linqs » psl-groovy」。mvnrepository.com
  13. ^ Augustine, Eriq (2019年12月6日). 「PSL 2.2.1 リリース」.確率的ソフトロジック. 2020年7月15日閲覧
  14. ^ "linqs/psl-examples". Github . linqs. 2020年6月19日.
  • YouTubeでのPSLに関するビデオ講義
「https://en.wikipedia.org/w/index.php?title=Probabilistic_soft_logic&oldid=1322751315」より取得