知识图谱表示与建模


知识表示

  1. 客观事物的机器标示定义客观实体的机器指代或指称
  2. 一组本体约定和概念模型定义用户描述客观事物的概念和类别体系
  3. 支持推理的表示基础提供机器推理的模型与方法
  4. 用于高效计算的数据结构
  5. 人可理解的机器语言 只是表示必须接近人的认知

语义网络

三元组(节点1、联想弧、节点2)

缺点 :无形式化语法、无形式化语义

描述逻辑

互联网本体语言(OWL)

互联网时代语义网知识表示框架

RDF && RDFS




标准栈


表示组:URI/IRI、XML、RDF

推理组:RDF-S、本体OWL、规则RIF、统一逻辑

RDF

主语和宾语看成节点,谓语看成边

支持不同的序列化格式:RDF/XML、Turtle、N-Triple

采用开放世界假设、分布式定义的只是可以合并

RDFS(RDF Schema)
  • rdf:type :个体的类
  • rdfs:subClassof :类的父类
  • rdfs:subPropertyof :属性的父属性
  • rdfs:domain :属性的定义域
  • rdfs:range :属性的值域

OWL语言

(1)等价性声明:

exp:xxx owl:equivalentClass exp:yyy 类等价

exp:xxx owl:equivalentProperty exp:yyy 属性等价

exp:xxx owl:sameIndividualAs exp:yyy 实例等价

(2)属性传递性声明:

exp:ancestor owl:TransitiveProperty 传递关系

a exp:ancestor b&& b exp:ancestor c-> a exp:ancestor c

(3)属性互逆声明:

exp:ancestor owl:inverseof exp:descendant exp:ancestorexp:descendant互逆

(4)属性的函数性声明:

exp:hasMother rdf:type owl:FunctionalProperty exp:hasMother是一个函数

(5)属性的对称性声明:

exp:friend rdf:type owl:SymmetricProperty 对称属性

exp:xx exp:friend exp:yy== exp:yy exp:friend exp:xx

(6)属性的全称限定说明:

exp:Person owl:allValuesFrom exp:Women

exp:Person owl:onProperty exp:hasMother

exp:hasMother在主语属于 exp:Person类的条件下,宾语的取值只能来自于 exp:Women

(7)属性的存在限定声明:

exp:SemanticWebPaper owl:someValuesFrom exp:AAAI

exp:SemanticWebPaper owl:onproperty exp:publishedIn

exp:publishedIn在主语属于 exp:SemanticWebPaper类的条件下,宾语的取值部分来自于 exp:AAAI

(8)属性的基数限定声明(声明一个属性的基数):

exp:Person owl:cardinality "1" ^^xsd:integer

exp:Person owl:onProperty exp:hasMother

exp:hasMother在主语属于 exp:Person类的条件下,宾语的取值只能有一个,“1”的数据类型声明为xsd:integer(基数约束,属于属性的局部约束)

(9)相交的类声明:

exp:Mother owl:intersectionOf_tmp

_tmp rdf:type rdfs:Collection

_tmp rdfs:member exp:Person

_tmp rdfs:member exp:HasChildren

_tmp是临时资源,是一个容器,拥有两个成员:exp:Person&& exp:HasChildren

上述说明 exp:Motherexp:Person&& exp:HasChildren两个类的交集


知识图谱查询语言

SPARQL

SPARQL知识图谱查询基本构成
  • 变量、RDF中的资源,以 ?$ 代替
  • 三元组模板,在 WHERE 子句中列出关联的三元组模板
  • SELECT 子句中指示要查询的目标变量

查询示例:

PREFIX exp: http://www.example.org/
SELECT ?student
WHERE {
	?student exp:studies exp:CS328 .
}
常见查询算子
  1. OPTIONAL 可选算子
SELECT ?student ?mail
WHERE {
	?student exp:studies exp:CS328 .
OPTIONAL {
    ?student foaf:mbox ?email .
    }
}

OPTIONAL 关键字指示如果没有邮箱则依然返回学生姓名,邮箱处空缺

  1. FILTER 过滤算子
SELECT ?module ?name ?age
WHERE {
    ?student exp:studies ?module .
    ?student foaf:name ?name .
OPTIONAL {
        ?student exp:age ?age
FILTER (?age>25)
	}
}

查询学生姓名、选修课程及年龄,且年龄需大于25

  1. UNION 并算子
SELECT ?student ?mail
WHERE {
    ?student foaf:mbox ?email .
	{ ?student exp:studies exp:CS328 .}
    UNION { ?student exp:studies exp:CS909 }
}

查询选修课程 CS238 和 CS909 的学生姓名及邮件,邮件值必回,无邮件值则不返回


语义Markup表示语言

  1. JSON-LD(基于JSON表示和传输链接数据)
    JSON-LD有语义网的风格
{
	"http://schema.org/name": "Manu Sporny",
	"http://schema.org/url": { "@id":"http://manu.sporny.org/" },
	"http://schema.org/image": { "@id":"http://manu.sporny.org/images/manu.png" },
	}
  1. RDFa
    RDFa可以I将三元组嵌入在XHTML文档中,引入名字空间,在已有标签中加入RDFa相应属性
<div xmlns:dc="http://purl.org/dc/elements/1.1/" about="http://www.example.com/books/wikinomics">
	<span property="dc:title">Wikinomics</span>
	<span property="dc:creator">Mr Right</span>
	<span property="dc:date">2006-09-02</span>
</div>
  1. HTML5 Microdata
    自定义词汇表、带作用域的键值对给DOM做标记
<section itemscope itemtype="http://data-vocabulary.org/Person">
	<h1 itemprop="name">Andy</h1>
	<p><img itemprop="photo" src="http://www.example.com/photo.jpg"></p>
    <a itemprop="url" href="http://www.example.com/blog">My Blog</a>
</section>

知识图谱的向量表示方法

将知识图谱中的实体和关系映射到低维连续的向量空间

词向量表示法

将词映射到向量空间

独热编码

稀疏性强,向量维度大

词袋模型

记录每个词在文本中出现的次数

词向量

产生词向量的三种手段:

  • Count-based 记录词的出现次数
  • Predictive 可以通过上下文预测中心词 or 通过中心词预测上下文
  • Task-based 对词向量在任务中的表现效果对词向量进行学习

开源工具:word2vec 中的 CBoW && Skip-gram

CBoW(连续词袋模型)

主要思想:通过上下文预测中心词 -> 训练出的词向量也包含上下文信息

Skip-gram

主要思想:通过中心词预测上下文

知识图谱嵌入

三元组 (h, r, t) ,其词向量需要符合:
schema与知识图谱的关系_三元组
优点

  • 提高应用时的计算效率
  • 增加下游应用设计的多样性:更适用于机器学习算法
  • 作为预训练,为下游模型提供语义支持

主要方法

  • 转移距离模型:将衡量向量化后的知识图谱中三元组的合理性问题,转化成衡量头实体和尾实体的距离问题。 得分函数:利用关系把头实体转移到尾实体的合理性的函数
  • 语义匹配模型:挖掘向量化后的实体和关系的潜在语义。 RESCAL模型:将知识图谱编码为一个三维张量,由张量分解出一个核心张量和一个因子矩阵。核心张量中每个二维矩阵切片代表一种关系,因子矩阵中每一行代表一个实体。
  • 考虑附加信息的模型:额外考虑实体类型 例如:(Rome, IsA, city),(Italy, IsA, Country)