PSL简介

一、什么是PSL

概率软逻辑(PSL)是由马里兰大学和加利福尼亚大学圣克鲁斯分校的统计关系学习组LINQS开发的机器学习框架。PSL是一种概率编程语言,并且在自然语言处理,社会网络分析和计算机视觉等许多领域都产生了不错的结果。它可以被应用在很多机器学习相关的问题上,如链路预测、实体对齐等

PSL结合了两个强大的理论的优势: 一阶逻辑,具有简洁地表示复杂现象的能力;概率图模型,可以捕捉真实世界知识中固有的不确定性和不完备性。细节上,PSL使用“软”逻辑作为其逻辑组成部分,以马尔可夫网络作为其统计模型。

一阶逻辑:

一阶逻辑(First Order Logic),简称FOL

包含的东西有常量(Constant symbol),谓词符号(Predicate symbol),函数符号(Function symbol),变量(Variable),连词(∧∨→↔),量词(Quantifiers,∃∀),例如:

Father(Mary) = Bob

father_of(Mary, Bob)

概率图模型(PGM):

概率图模型大致可以分为两种,directed graphical model(又称贝叶斯网络)和undirected graphical model(又称马尔可夫随机场)。贝叶斯网络由Judea

Pearl教授发明于上世界80年代,这项工作获得了2011年图灵奖。马尔可夫随机场最早被物理学家用于对原子进行建模,其中的代表作Ising model获得过诺贝尔奖。图灵奖+诺贝尔奖,PGM的重要性可见一斑。另外,PGM是将人工智能(AI)的研究热点从传统AI(如逻辑、推理、知识表示)转向机器学习的重要工作(其他起到这一作用的工作有支持向量机、决策树、boosting等)。概率图模型在实际中(包括工业界)的应用非常广泛与成功。这里举几个例子。隐马尔可夫模型(HMM)是语音识别的支柱模型,高斯混合模型(GMM)及其变种K-means是数据聚类的最基本模型,条件随机场(CRF)广泛应用于自然语言处理(如词性标注,命名实体识别),Ising模型获得过诺贝尔奖,话题模型在工业界大量使用(如腾讯的推荐系统)。等等。PGM优雅的理论。机器学习的一个核心任务是从观测到的数据中挖掘隐含的知识,而概率图模型是实现这一任务的一种很elegant,principled的手段。PGM巧妙地结合了图论和概率论。从图论的角度,PGM是一个图,包含结点与边。结点可以分为两类:隐含结点和观测结点。边可以是有向的或者是无向的。从概率论的角度,PGM是一个概率分布,图中的结点对应于随机变量,边对应于随机变量的dependency或者correlation关系。给定一个实际问题,我们通常会观测到一些数据,并且希望能够挖掘出隐含在数据中的知识。怎么用PGM实现呢?我们构建一个图,用观测结点表示观测到的数据,用隐含结点表示潜在的知识,用边来描述知识与数据的相互关系,最后获得一个概率分布。给定概率分布之后,通过进行两个任务:inference (给定观测结点,推断隐含结点的后验分布)和learning(学习这个概率分布的参数),来获取知识。PGM的强大之处在于,不管数据和知识多复杂,我们的处理手段是一样的:建一个图,定义一个概率分布,进行inference和learning。这对于描述复杂的实际问题,构建大型的人工智能系统来说,是非常重要的。

概率软逻辑中的软逻辑指 逻辑结构不需要被严格的限制为0或1,可以是0-1之间的某个值,例如下面的逻辑公式:

similarName(X,Y) -> sameEntity(X, Y)

它表达的逻辑意义可以理解为,如果X和Y具有相似甚至相同的name,那么我们可以说X和Y可能是同一个人,而similarName(X, Y)的结果是0-1之间的某个值,具体的逻辑符号通过以下形式定义:

与:A && B = max{A + B - 1, 0}

或:A || B = min{A + B, 1}

非:~A = 1 – A

如果将A、B的值严格限制为0或1,那上面的公式所表达的结果就和传统的逻辑规则一致。

在PSL模型中,这些具体的逻辑公式将成为马尔科夫网络的特征,并且网络中的每个特征都会与一个权重相关联,决定它在特征之间相互作用的重要性。权重可以手动设置或是基于已有真实数据通过学习算法学习得到。PSL还提供了复杂的推理技术,同时利用软逻辑的特点将知识推理的复杂度优化到多项式时间,而不再是一个NP-HARD问题。

二、PSL的用途

下面通过一个实体分类的例子来介绍PSL的用途,程序的主要功能是根据已有的事实数据去推测每个人的居住地,主要有以下3个步骤:

[if !supportLists]1.[endif]定义一个隐含模型

[if !supportLists]2.[endif]为模型提供数据

[if !supportLists]3.[endif]推理发现未知数据

模型的定义:在PSL中模型是通过一组逻辑规则去表示的,一般定义在*.psl文件中

10:Knows(P1,P2) & Lives(P1,L) -> Lives(P2,L) ^2

20:Knows(P2,P1) & Lives(P1,L) -> Lives(P2,L) ^2

2:~Lives(P,L) ^2

以上模型直观上表达了,相互认识的人更有可能居住在相同的地方以第一条规则为例,规则开头的整数代表该规则所占权重,规则尾部的平方数是用于平滑权重的。

装载数据:PSL模型中的规则由一系列谓词构成,而谓词最终将会被对应于该条逻辑的具体数据所替换,通过*.data文件定义了数据的路径

predicates:

Knows/2: closed

Lives/2: open

observations:

Knows : ../data/test/knows_obs.txt

Lives : ../data/test/lives_obs.txt

targets:

Lives : ../data/test/lives_targets.txt

truth:

Lives : ../data/test/lives_truth.txt

predicates部分列举出了我们所定义规则中的所有谓词(Knows,Lives),关键词open表示该谓词对应的事实数据没有被完全观测到,希望得到推理补全。closed表示该谓词对应的事实数据是完整的,它将会作为预测推理的依据。在我们的例子中,我们已经充分观察到任意两个人之间知否相互认识。因此,Knows都是封闭的谓词。但是我们只了解某些人认识(或不认识)某些人,希望来推断其他人之间相互认识的情况。

Predictes数据位置/data/lives_obs.txt、/data/likes_obs.txt

Open推测关系数据数据位置/data/knows_obs.txt

Targets目标检测数据 数据位置/data/knows_targets.txt

Truths实际数据关系数据位置/data/knows_truths.txt

observations部分列出了每个谓词对应的事实数据文件的路径

knows_obs.txt文件内容如下:

AC

BC

DA

DB

其中每一行表示一条观测数据,第一行表示A认识B,即A和B存在Knows关系;

lives_obs.txt文件内容如下:

A哈尔滨

B哈尔滨

其中每一行表示一条观测数据,第一行表示A居住在哈尔滨,即A和哈尔滨存在lives关系。

targets部分指向的文件用于定义模型需要预测的所有可能出现的关系,

lives_targets.txt文件内容如下:

C哈尔滨

D哈尔滨

其中每一行表示一条待预测的关系,需要由psl模型根据观测数据以及规则给出关系成立的具体概率值(0-1之间)。

truth部分表示对于那些open的predicates将要进行预测的真实结果,可以用来评价模型的预测结果以及训练参数。

推理预测:基于以上模型和数据我们就可以使用PSL进行推理预测,它帮我们完成了所有细节上的工作。

4.PSL在某些领域的应用成果

我们在LINQS团队主页上选取了一篇医学研究方向的论文为例(https://linqspub.soe.ucsc.edu/basilic/web/Publications/2014/fakhraei:tcbb14/)。该论文主要将PSL模型应用在了药物靶标相互作用识别预测上,该模型的主要逻辑是:相似的药物倾向于作用在相同的靶标上,同时相似的靶标也倾向于被同一种药物影响。以下是该模型在现有数据集的应用结果和目前该领域state-of-the art的Perlman`s方法的比较。


QA:

[if !supportLists]1.[endif]Knows/2: open中2代表该规则参数个数

[if !supportLists]2.[endif]能否适用中文?

存在编码问题,实验后发现对于某些中文字符存在编码不兼容的问题

参考资料:https://github.com/linqs/psl

http://psl.linqs.org/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容