语义搜索
语义搜索简介
目录
文档检索 vs. 数据检索
不同搜索模式之间的技术差异可以分为
对用户需求的表示 (query model)
对底层数据的表示 (data model)
匹配方法 (matching technique)
信息检索(IR)支持对文档的检索(document retrieval)
通过轻量级的语法模型(lightweight syntax-centric model)表示用户的检索需求和资源的内容,即目前占主导地位的关键词模式:词袋模型(bag-of-words)
对主题搜索 (topic search)效果很好,即给定一个主题检索相关的文档
但不能应对更加复杂的信息检索需求
数据库 (DB)和知识库专家系统 (Knowledge-based Expert System)可以提供更加精确的答案(data retrieval)
使用表达能力更强的模型来表示用户的需求
利用数据之间内在的结构和语义关联
允许复杂的查询
返回精确匹配查询的具体答案
语义模型
语义关注的是能用于搜索的资源的含义 (meaning)。
这些含义是通过语义模型构建的
语言学模型 (Linguistic model)
对词语级别的关系建模
分类系统 (taxonomies), 同义词库 (thesauri)
概念模型 (Conceptual model)
对论域 (universe of discourse)中的语法元素(syntactic element)的关系建模
解析(Interpretation):从语法元素到论域的映射
表达能力 (expressivity)
语言和建模结构的数量
形式化 (formality)
解析过程是可计算的(computable)
DB和KB系统属于重量级语义搜索系统
对语义显式的和形式化的建模,例如ER图
RDF(S)和OWL中的知识模型 (knowledge model)主要为语义的数据检索系统
基于语义的IR系统属于轻量级的语义搜索系统
轻量级的语义模型,例如分类系统或者辞典
语义数据 (RDF) 嵌入文档或者与文档关联
是基于语义的文档检索系统
语义搜索 – 流程图
搜索模式趋向一致
趋势:结构化和语义数据的可用性越来越高
数据Web搜索
在更大的Web场景中检索语义数据和推理
利用Web上的RDF数据和OWL本体
采用传统上应用于IR领域的,扩展性较好的方法,来处理Web数据的质量问题,和与长文本描述相关的数据元素。
文档Web搜索
数据库和语义搜索技术被应用到IR系统中,以便在搜索过程中结合运用日益增加的,高度结构化和表达能力强的数据。
趋同:
在搜索中用到的数据
在搜索中用到的技术
语义数据搜索
语义Web——数据Web
数据以结构化的形式发布和链接在一起
数据的含义和关系在形式化的模型中有详细说明:
不同的场景(actors)有一个公共的术语词汇表
精确的术语含义的说明
语义是基于标准化的逻辑语言,从而确保明确的形式化解析
W3C联盟完成语言和协议的标准化
利用链接数据进行搜索
难点1 — 可扩展性
对链接数据的有效利用要求基础架构能扩展和应用在大规模和不断增长的内链数据上
难点2 — 异构性
对数据Web的有效利用要求有效的机制:
整合数据源(补充RDF链接)
从不同数据源中找到与查询相关的数据
合并来自不同数据源的查询结果
难点3 — 不确定性
用户需求的表示不完整
用户不能完全地描述需求
用户事先不能准确地了解自己的需求
对链接数据的有效利用需要有效的机制:
• 以不精确的方式匹配需求和数据
• 并对结果进行排序
• 足够灵活以应对条件的变化!
最佳实践
语义Web搜索引擎
Gateways: Swoogle, Waston
实体搜索: Sigma on Sindice, FalconS
数据Web搜索:SWSE, Hermes (SearchWebDB)
三元组存储
基于IR: Sindice, FalconS...
单一数据结构和查询算法, 针对文本数据进行排序检索来优化
高度可压缩,可访问
排序是组成部分
不能处理简单的select, joins等操作
基于DB: Oracle的RDF扩展,DB2的SOR
各种索引和查询算法,以适应各种 对结构化数据的复杂查询
空间开销和访问的局限性
没有集成对检索结果的排序
能够完成复杂的selects, joins,... (SQL, SPARQL)
能应对高动态场景(许多插入/删除)
原生存储 (Native stores): Dataplore, YARS, RDF-3x
高度可压缩,可访问
类似IR的检索排序
类似DB的selects和joins
可在亚秒级时间内在单台机器上完成对TB级数据的查询
高动态(许多插入/删除操作)
没有事务,恢复等
存储和索引 (Semplore)
重用IR索引来索引语义数据
IR索引基于以下概念
文档
字段(field),例如,标题,摘要,正文...
词语(terms)
Posting list和Position list
深入逻辑结构—索引虚拟文档
增量索引—处理当前索引
基于块的索引扩展
所以 , 块尺寸越小,所需的移动就越少。但是 , 块越小越好?
搜索性能下降
更多的块需要更多的随机访问,来定位这些块
索引大小的开销
同时,更多的块需要更多的空间开销
权衡索引更新,搜索和索引大小!
排序和索引
一个基本的数据结构: Ascending Integer Stream (AIS)
四种基本操作
基础的检索: (f, t)
归并排序: m(S1, op, S2)
概念表达式计算(Concept Expression Evaluation): λ(C)
λ( AmericanFilm ∩ “war” )=m( (type, AmericanFilm), ∩, (text, “war”) )
关系扩展(Relation Expansion): ⋈(S1, R, S2) Needs Implementation
如何找到复杂查询的答案
不同的查询种类(结构化查询)
!缓存可以大大地提高效率.
!精心设计的查询功能的优化算法也可以缩短
!效率和查询表达式的复杂程度之间总是有一个折衷
排序原则
质量传播 (quality propagation): 一个元素的分数可以看成是其质量(quality)的度量,质量传播即通过更新这个分数同时反应该元素的相邻元素的质量。
例如: 当查找匹配关键字“战争”的美国总统的接班人时,肯尼迪应该排在前面,因为他的前任总统艾森豪威尔与“战争”紧密相关。
如何将排序紧密结合到基本操作中?
从DBpedia收集的混合的查询数据集
QS1包含500个简单的关键字查询
QS2包括1,242个具有类型约束的简单结构化查询
QS3有287个具有一个关系的混合查询
QS4根据10位用户提供的问题收集20个查询
高效和可扩展的数据Web搜索
基于结构的分区和查询处理
基于结构的索引和分区
将结构上相似的节点聚合到一起
结构上相似的节点在硬盘上被连续的存储
结构感知(Structure-aware)的查询处理
两阶段匹配
1)只检索出匹配所查询的结构的数据
2)通过剪枝(pruning)减少join和IO
为图结构数据(RDF)建立结构化索引
结构索引由称为扩展(extensions)的类和它们之间的关系组成
扩展中的资源具有相同的结构,即具有相同的 (传入和传出)路径
结构索引的建立基于互模拟 (bisimulation)
结构索引是更精细的结构描述(模式)
使用结构索引做结构匹配
在答案空间里检索和join:用结构索引匹配查询
产生一组所包含的数据元素匹配查询中的结构的结构索引
根据匹配的结构索引计算最终答案
剪枝仅包含非标识(non-distinguished)变量的的树形查询部分
在资源空间检索和join:验证答案空间匹配中的元素是否也匹配具体的查询实体,即常量和标识(distinguished)变量
优点:降低IO开销和union和join操作的次数
在多数据源,多存储库的场景下搜索
Hermes – Pay-as-you-go数据Web搜索框架
知识融合工作流程
知识融合主流方法分类
基于全局的阈值(threshold)
基于局部的结构特征
知识融合的主要挑战
效率
大多数现有的研究集中于提高精确度和召回率,而忽视了效率
增量整合
不断演变的数据和匹配结果
运行时整合
整合查询结果集合
索引 (Indexing)
Extract literal attribute values of entities as theirbasic features
Extract also their neighbors’ basic features astheir extended features (optional)
分块 (Blocking)
直观: 共享稀有特征 (rare features)的实体更可能是同一个实体
根据文档频率 (document frequency)来排序每个实体的特征
每个保留的倒排索引列表对应一个分块
聚类 (Clustering)
紧致集合 Compact Set (CS)
在一个CS中的实体互为最近邻
稀疏邻居 Sparse Neighborhood (SN)
The aggregated neighborhood growth values are low enough
基于CS & SN原则在每个分块中进行聚类
复杂度: O(n^3)
联合查询处理
结论
语义Web搜索有多种研究原型
有些应用IR技术以增强扩展性
复杂的查询也被诸如Hermes这样的搜索引擎支持,这些引擎结合基于倒排索引的数据访问,IR排序和复杂查询处理的数据库技术
可靠的答案,等价于 能扩展到数十亿级的三元组
数据质量依然是一个问题
对高质量映射进行增量的,pay-as-you-go方式的计算和维护
集成IR和DB排序以处理复杂查询
混合搜索
“下一代语义搜索系统结合了一系列技术,从基于统计的IR排序方法,有效索引和查询处理的数据库方法,到推理的复杂推理技术等等”
混合的语义搜索系统
结合文本,结构化和语义数据
以整体的方式管理不同类型的资源
支持结果为信息单元(文档,数据)的集成的检索
混合搜索 数据模型
混合搜索 查询和数据模型
DB和IR的轻量级集成
资源(查询)图
数据(查询)图 (概念,个体 (或者变量),关系,属性)
文档(查询)图 (文档概念,文档(或者变量),超链接,关键词)
标注
系统架构 (CE 2 )
线下步骤
数据图存储与DBMS中,除Entldx中的三元组(个体,关键词,”xxx”)外
Doc图存储在Docldx中, 注释存储在Anntldx中
线上步骤
将混合查询分解为一组原子查询(atomic queries) (步骤1)
使用DB和IR引擎执行原子查询(步骤2)
根据生成的查询树合并部分结果
对最后的答案排序
OPT(发生概率表)存储(部分)结果
查询分解和执行
答案合并
原生混合搜索系统 – 挑战
可扩展的混合存储模型
内置 (in-built)混合join处理
Top-k混合join
模糊混合join
混合排序模型
IR排序
DB排序
IR和DB集成
结论
下一代的网络搜索是混合搜索,将内容单元提供给复杂的信息需求!
需要关注IR,DB和语义Web
一些初步的想法
DB和IR的轻量级集成
原生混合搜索模型
从头构建混合搜索
定制索引和存储
在匹配中紧密嵌入排序,定制查询评估
语义搜索的交互范式
高效搜索数据Web需要用户知道
网络数据源
数据的模式
包含的数据
支持的结构化查询语言
数据网络的有效利用需要一个简单的搜索范例,允许外行用户以直观透明的方式查询和浏览数据网页!
交互范式
自然语言接口
基于表单的查询接口
基于可视化的查询接口
基于关键词的查询接口
混合的查询接口
结合自然语言,关键词,表单,分面(facets)和形式化查询
查询,数据和结果的可视化
动机 – 解读复杂的信息需求
语义搜索支持表现形式丰富的信息需求
如何捕捉用户的信息需求?
多样化的查询,使用不同的语法 vs.
有限但直观的查询
表达能力至关重要!
支持用户以直观的方式指定信息需求也至关重要!
如何以一种直观的方式支持复杂的信息需求?
解读复杂信息需求-最佳方法
自然语言问题的翻译
用户是否总是要指定精确的问题?
模糊的信息需求?
将关键词翻译成结构化查询 (如XML、SQL等)
如何使用复杂的结构
将关键词转化为基于本体的查询
基于模板的机制缺乏灵活性
具有两个以上关键词的查询需要大量的模板
一种基于本体的查询解释的通用方法
将关键词解释为合取查询
通用方法的一个实例
用户提问一组关键词
系统查询
Conjunction of terms的形式为 x : C x , y : R
其中,C是一个concept,R是一个role,x和y是从一个变量名集合
中选择的变量,或者从一个individuals集合中选择的individuals
系统资源模型
OWL DL知识库
本体实体处于individuals集合,数据值,概念,数据范围,对象属性和数据属性的不相交的并集中
实体之间的连接被术语公理和断言获取(概念,属性成员)
步骤1- 将关键词映射为本体实体
匹配
关键词对应本体实体
“ 健壮的”匹配函数
句法的变体
拼写的变体
实现了的匹配函数
本体元素索引
利用关键词对索引进行模糊搜索
按照句法相似性返回本体实体
步骤2 – 发掘本体实体间的连接
基于元素递归遍历的KB探索
步骤3 – 从连接中导出DL合取查询
Top-k关键词查询 - 工作流程
线下: 汇总,评分,术语扩展
线上: 查询计算,查询处理
摘要图生成 (Graph Summarization)
目标:保留足够的信息来计算查询所需的元素和结构,同时减少探索空间
摘要图 (结构索引)捕获实体类之间的关系,从而保留原始数据图的结构信息
关键词映射和摘要图扩充
摘要图捕获查询结构的信息
在线扩充从关键词映射中获得的元素和分数
扩充的摘要图图包含查询元素的更多信息
Top-k图探索
从关键词元素N k 开始,对图进行代价导向(cost-directed)的探索
从N k 开始探索所有可能的不同路径
在每一步中,从成本最低的队列中取cursor (“路径”)进行探索
当找到连接元素nc时,
从n k 到n c 的路径被合并以构建查询图
调用Top-k将查询图添加到候选列表中
当候选列表的最高代价 (排名为k的查询图的代价)被发现低于可用队列中尚待探索的路径所能达到的最低可能代价时,Top-k终止
将查询图映射到合取查询
通过充分利用映射规则获得合取查询
•每个value vertex v vertex 一个常量
•每个class vertex c vertex 一个独特的变量
•每个A-edge e(c vertex , v vertex ) 一个查询谓词 e[var(c vertex ), term(v vertex )]
•每个 R-edge e(c vertex1 , c vertex2 ) 一个查询谓词 e[var(c vertex1 ), var(c vertex2 )]
将所有查询变量视为不同的
可以为用户提供特定的机制来选择可区分的变量
由用户选择的查询最终被翻译为查询引擎支持的查询形式(SPARQL)以检索查询答案
评估 – 效果
12位用户在DBLP上提供30个关键词查询,以及自然语言信息需求描述
Reciprocal Rank = 1/r,其中r是正确查询的排序
如果查询符合信息需求,则该查询是正确的
信息需求可以在大多数情况下被解释,特别是当路径长度,匹配分数以及图表元素的流行性被并入评分函数(C3)时
评估 – 性能
与基于图索引的双向搜索和搜索的比较 (1000 BFS,1000 METIS,300 BFS,300 METIS)
测量查询计算的时间+处理几个查询的时间,直到找到10个答案
比双向搜索更胜一筹,至少一个数量级
与基于索引的方法相比,表现相当好
查询解析 – 理解用户的需求
Web数据图摘要生成
目标:保留足够的信息来计算查询的元素和结构,同时减少搜索空间
模式图捕获实体类之间的关系,从而保留原始数据图的结构信息
关键词映射和图扩充
摘要图(模式图)捕获查询结构的信息
在线扩充从关键词映射中获得的元素和分数
扩充的摘要图包含查询元素的更多信息
Top-k 图计算
从关键词元素N k 开始,对图进行代价导向(cost-directed)的探索
探索从N k 开始的所有可能的不同路径
在每一步中,从代价最低的队列中取cursor (“路径”)进行探索
当找到连接元素N c 时,
从N k 到N c 的路径被合并以构建查询图
调用Top-k将查询图添加到候选列表中
当候选列表的最高成本 (排名为k的查询图的成本)被发现低于可用队列中尚待探索的路径所能达到的最低可能成本时,Top-k终止
通过映射规则获得合取查询
打分排序
分面搜索系统
几乎没有预先定义的分面
不支持动态分面
不支持动态的值聚类
处理大型的,集成的,未知的数据集预定义的分面是不可能的!
只有少数最佳的分面和值是可见的或可访问的,基于计数的简单分面无效
使用语义数据进行分面搜索
如何在语义环境中定义分面?
根据RDF-Triples定义分面和值
分面可以被看作是一个在当前结果集中的资源的属性
这些属性的object是分面的值
结合搜索和浏览
动机:用户的知识是不明确的
基本假设
模糊知识将通过分面优化和扩展进入
具体的知识将作为查询输入
支持 搜索和浏览的合并处理
动态的值分区
高级分面搜索特征
特定领域的方面,分面值和计数
分面根据它们的起点分组
全面的浏览支持
通过浏览可以达到每个分面的值;没有值被跳过
动态的分面和值的聚类
对flat值聚类;对non-flat值使用类层次结构
分面是基于当前的,outgoing属性
支持flat和non-flat的分面值
分面排序
可能有大量分面
需要分面排序和分面隐藏
但是,目前的排序机制不支持我们的搜索过程
排序标准: 浏览能力
分面应该以非常小的,相等的进度“引导”用户
路径应该引向 (单个)感兴趣的项
在每个步骤:用户可以直观和明显 (用最少的必需知识)的选择一个给定的聚类
结论
表达式(expressive)关键字查询
基于本体的查询解析
Top-k关键字查询在汇总图上的解析
使用映射信息扩展到多个数据源场景
动态分面计算w.r.t结果
分面排序和值划分