收藏 分享(赏)

高级查询与信息检索.ppt

上传人:weiwoduzun 文档编号:5627593 上传时间:2019-03-10 格式:PPT 页数:78 大小:651.50KB
下载 相关 举报
高级查询与信息检索.ppt_第1页
第1页 / 共78页
高级查询与信息检索.ppt_第2页
第2页 / 共78页
高级查询与信息检索.ppt_第3页
第3页 / 共78页
高级查询与信息检索.ppt_第4页
第4页 / 共78页
高级查询与信息检索.ppt_第5页
第5页 / 共78页
点击查看更多>>
资源描述

1、1,第22章: 高级查询与信息检索,决策支持系统 数据分析 OLAP SQL中的扩展合计特性 Windowing 和ranking 数据挖掘 数据仓库 信息检索系统 包括Web搜索,2,决策支持系统,决策支持系统基于联机事务处理系统搜集的数据进行企业决策. 企业决策的例子: 库存什么物品? 保险费改成多少? 向谁送广告? 用于决策的数据的例子: 零售交易细节 顾客情况(收入, 年龄, 性别, 等等),3,决策支持系统: 概述,利用专门工具及SQL扩充功能可简化数据分析任务 任务例 对每个产品类别及每个地区, 上一季度的总销售额是多少? 与去年同期的比较如何? 对每个产品类别及每个顾客类别作同上

2、分析 统计分析软件包(如S+)可与数据库建立接口 统计分析是一个很大的领域, 这里不讨论 数据挖掘是指从大型数据库中自动发现知识(形如统计规则和模式). 数据仓库汇集来自多个数据源的信息, 并按统一的模式在单个场地存储. 对从多个部门(可能位于多个场地)生成数据的大型企业很重要 数据也可以从外部购买,4,数据分析与OLAP,合计函数对大量数据进行综合 联机分析处理 (OLAP) 交互式数据分析, 允许联机地(延迟可忽略)以不同方式对数据进行综合和观察 能以维属性和度量属性建模的数据称为多维数据. 给定用于数据分析的关系, 我们可以将它的某些属性标识为度量属性, 因为它们是某种数值的度量, 并且

3、可以在其上进行合计. 例如, sales关系的number属性就是一个度量属性, 因为它度量了销售数量. 关系的某些其他属性被标识为维属性, 因为它们定义了在其上观察度量属性及度量属性上的汇总的维度.,5,由item-name和color组成的sales交叉表,上面的表是交叉表的一例(cross-tab), 也称为透视表(pivot-table). 交叉表是指 一个维属性的值形成行标题, 另一个维属性的值形成列标题 其它维属性列在顶部 单元格中是度量属性的(合计)值.,6,交叉表的关系表示,交叉表可表示为关系 值all 用于表示合计 SQL:1999标准实际上是用null代替 all 后面详及

4、.,7,三维数据立方体,数据立方体是交叉表的多维推广 不可能观察到三维对象的整体 但可用交叉表作为数据立方体的视图,8,联机分析处理,改变交叉表中所用维的操作称为旋转(pivoting) 假定分析人员想对给定size值(如large)而非所有size的总和, 观察item-name 和color 上的交叉表. 这种操作称为切片(slicing). 有时也称为切块(dicing), 特别是当给定多个维的值时. 从细粒度数据到粗粒度数据的切换操作称为上卷(rollup). 从粗粒度数据到细粒度数据的切换操作称为下钻(drilldown).,9,维层次,维属性上的层次: 可以从不同细节层次观察维 例

5、如: DateTime维可以用来按小时, 天, 星期, 月, 季度, 年来汇总,10,有层次的交叉表,交叉表可以很容易扩展以处理层次 可以在层次上下钻或上卷,11,OLAP实现,最早的OLAP系统用内存中的多维数组存储数据立方体, 称为多维OLAP(MOLAP)系统. 用关系数据库实现OLAP称为关系OLAP(ROLAP)系统 在内存中存储一些汇总, 基本数据和其他汇总存储在关系数据库中, 这样的混合系统称为混合OLAP (HOLAP)系统.,12,OLAP实现(续),早期的OLAP系统预先计算所有可能的合计以便提供联机响应 这样做对空间和时间的需求很高 group by有2n 种组合 只需预

6、先计算某些合计, 其他合计可以在需要时从预先计算的合计结果计算得到 可以从(item-name, color, size)上的合计计算出(item-name, color)上的合计 除了少数“非可分解” 合计, 如中位数 比从头开始计算廉价 计算多种合计时有若干优化方法 可以从(item-name, color, size)上的合计计算出(item-name, color)上的合计 可以利用基本数据的一次排序计算 (item-name, color, size), (item-name, color)和(item-name)上的合计,13,扩展合计,SQL-92的合计功能很有限 许多有用的合计

7、要么很难要么不可能说明 数据立方体 复杂合计 (中位数, 方差) 二元合计 (相关性, 回归曲线) 排位查询 (“根据总分对学生排位”) SQL:1999的OLAP扩展提供了若干合计函数来解决上述限制 已被一些数据库支持, 包括Oracle和 IBM DB2,14,SQL:1999中的扩展合计功能,cube操作对指定属性的每个子集计算group by的并集 例如: 考虑查询select item-name, color, size, sum(number) from sales group by cube(item-name, color, size)这将计算出sales关系的八个不同分组合计

8、的并集: (item-name, color, size), (item-name, color), (item-name, size), (color, size), (item-name), (color), (size), ( ) 其中( ) 表示空的group by列表. 对每个分组, 未出现在分组中的属性在结果中为null.,15,扩展合计功能(续),如前所述的交叉表的关系表示可以如下计算, 只是用null 代替allselect item-name, color, sum(number) from sales group by cube(item-name, color) 函数gr

9、ouping()可作用于属性 若属性值是代表all的空值, 则返回1; 其他情况返回0. select item-name, color, size, sum(number), grouping(item-name) as item-name-flag, grouping(color) as color-flag, grouping(size) as size-flag, from sales group by cube(item-name, color, size) 在select子句中可使用函数decode() 来将这种空值替换为all之类的值 例如将第一个查询中的item-name 替换

10、成 decode( grouping(item-name), 1, all, item-name),16,扩展合计功能 (续),rollup构造可生成在指定属性列表的每个前缀上分组合计的并集 例如 select item-name, color, size, sum(number) from sales group by rollup(item-name, color, size) 生成四种分组的并集: (item-name, color, size), (item-name, color), (item-name), ( ) Rollup可用于产生在多个层次上的合计. 例如, 假设表item

11、category(item-name, category) 给出了每件产品的类别. 则select category, item-name, sum(number) from sales, itemcategory where sales.item-name = itemcategory.item-name group by rollup(category, item-name)将给出按产品和按类别的层次汇总.,17,扩展合计功能(续),在单个group by子句中可以使用多个rollup和cube 各自产生分组列表的集合, 这些集合的笛卡尔积给出总的分组列表的集合 例如, select it

12、em-name, color, size, sum(number) from sales group by rollup(item-name), rollup(color, size)生成分组item-name, () X (color, size), (color), () = (item-name, color, size), (item-name, color), (item-name), (color, size), (color), ( ) ,18,排位,排位需与order by声明一起使用. 给定关系student-marks(student-id, marks), 求每个学生的排

13、位.select student-id, rank( ) over (order by marks desc) as s-rank from student-marks 如果想按名次有序输出则还需要一个额外的order by子句select student-id, rank ( ) over (order by marks desc) as s-rank from student-marks order by s-rank 排位可能留下空隙. 例如: 若两个学生有相同的最高分, 则两人的排位都为1, 下一排位为3 dense_rank 不留空隙, 则上例中下一稠密排位为2,19,排位(续),排

14、位可以在数据分组内进行. “求每个组内学生的排位.”select student-id, section, rank ( ) over (partition by section order by marks desc) as sec-rank from student-marks, student-section where student-marks.student-id = student-section.student-id order by section, sec-rank 单个select子句中可以出现多个rank子句 排位是在group by子句/合计之后进行的 练习: 求前n

15、 名学生 对“top-n”查询, 许多系统提供特殊的(非标准的)语法 按不同课程的总分排位 给定关系student-course-marks(student-id, course, marks),20,排位(续),SQL:1999中的其他排位函数: percent_rank (如果有分组, 可求组内排位) 对n个元组中的第r名定义为(r 1)/(n 1) cume_dist (cumulative distribution)排在本元组前面的元组(含本元组)数在总元组数中所占比例 row_number 对元组排序并求行号(当出现重复元组时行号有不确定性) SQL:1999允许用户说明nulls

16、first或nulls lastselect student-id, rank ( ) over (order by marks desc nulls last) as s-rank from student-marks,21,排位(续),给定常数n, 排位函数ntile(n) 以排好序的(各组中)元组为输入, 并将他们分成具有相同元组数的n个桶. 例如, 我们可以对雇员按工资排序, 然后用ntile(3)找出每个雇员属于哪个档次(垫底三分之一, 中间三分之一, 或头三分之一), 并计算出各档次中雇员工资总和:select threetile, sum(salary) from ( selec

17、t salary, ntile(3) over (order by salary) as threetile from employee) as s group by threetile,22,Windowing,例如: “给定每个日期的销售值, 为每天计算那一天及前一天和后一天的平均销售额” 这种移动平均查询被用来消除随机偏差. 与分组不同的是, 同一元组可存在于多个窗口中 SQL中的窗口说明: 元组的次序, 每条元组的窗口大小, 聚合函数 例如给定关系sales(date, value)select date, sum(value) over (order by date between

18、rows 1 preceding and 1 following) from sales 其他窗口定义例: between rows unbounded preceding and current rows unbounded preceding range between 10 preceding and current row 从当前行值10到当前值之间的所有行 range interval 10 day preceding 不含当前行,23,窗口(续),可以在划分内部分窗口 例如给定关系transaction(account-number, date-time, value), 其中va

19、lue为正数代表存款, 为负数代表取款 “求出每个帐户在该帐户上每一次事务之后的总余额”select account-number, date-time, sum(value) over (partition by account-number order by date-time rows unbounded preceding) as balance from transaction order by account-number, date-time,Copyright: Silberschatz, Korth and Sudarshan,24,数据挖掘,25,数据挖掘,广义地说, 数据

20、挖掘是半自动地分析大型数据库以找出有用的模式的过程 和人工智能中的知识发现一样, 数据挖掘可以发现统计规则和模式 与机器学习不同的是, 要处理主要存储在磁盘上的大量数据. 从数据库中发现的某些类型的知识可以用一个规则集合表示. 例如: “年薪超过$50,000的年轻女性最有可能买跑车” 其他类型的知识可表示为方程或预测函数 通常需要一定的人工干预 数据预处理, 选择挖掘何种类型的模式, 后处理以发现崭新模式,26,数据挖掘的应用,基于过去历史的预测 基于某些属性(收入, 工作种类, 年龄, )和过去的历史预测一个信用卡申请者是否引发高信用风险 预测客户是否会改变其品牌忠诚度 预测客户是否会响应

21、“垃圾邮件” 预测电话卡的使用模式是否会是欺诈的 预测机制例: 分类 给定一个包含分属不同种类的项目的训练集, 以及一个新的未知种类的项目, 预测它属于那个种类 回归公式 给定未知函数的一个参数值到函数结果的映射集合, 对一个新参数值预测函数结果,27,数据挖掘的应用(续),描述性模式 关联 找出经常被顾客同时买的书. 如果一个新顾客买了一本这样的书, 建议他也购买其他的. 其他类似应用: 照相机附件, 衣服, 等. 关联也可被用作发现因果关系的第一步 例如接触化学品X与癌症的关联, 或者新药与心脏病问题 聚类 例如在一被污染水井周围区域伤寒病例被聚类 聚类对发现疫病一直很重要,28,分类规则

22、,分类规则用来将新对象归类. 例如, 给定一新汽车保险申请人, 他/她应该被划归低风险, 中等风险还是高风险? 上面例子的分类规则可以利用多种知识, 如申请人的教育层次, 薪水, 年龄等. person P, P.degree = masters and P.income 75,000 P.credit = excellent person P, P.degree = bachelors and (P.income 25,000 and P.income 75,000) P.credit = good 规则不一定是精确的: 可能有误分类 分类规则可以简洁地表示为决策树.,29,决策树,30,决

23、策树的构造,训练集: 数据样本,其中每个元组的分类情况已知. 考虑信用风险例: 假设在根节点选择学位degree 作为划分属性. 由于学位可取的值很少, 可以为每个值建立一个子节点. 在根节点的每个子节点处, 根据需要做进一步的分类. 例中的划分使用收入income 定义的. 由于收入是连续值属性, 可以选择一定数目的区间, 并为每个区间建立一个子节点. 不同分类算法使用不同的方法来选择各节点上的划分属性和值区间. 一般地 树的不同分支可能生长到不同的高度. 同一层上的不同节点可能使用不同划分属性.,31,决策树的构造 (续),贪婪式自顶向下生成决策树. 树的每个内节点基于一个划分属性以及划分

24、条件将数据分组 稍候详细介绍如何选择划分属性/条件 算法是贪婪的: 选择是一次性做出的, 且不会随树的进一步生成而重新选择 一个节点上的数据在下列情形不做划分 要么所有(或几乎所有)数据项都属于同一类 要么所有属性都考虑过了, 无法作进一步的划分. 这种节点即构成叶子节点. 否则选择一个划分属性对该节点上的数据作进一步划分.,32,最佳分裂,思想: 对不同属性和划分条件进行评估, 选择最能改善训练集“纯度”者 初始训练集是由来自不同类别的实例组成的混合体, 因此较为“不纯” 例如: 如果学位能准确地预测信用风险, 则按学位划分就能导致每个子节点只含有属于同一类别的实例 即, 子节点是“纯的”

25、训练实例集合S的纯度可以用多种方式定量测算. 记号: 类别数目 = k, 实例数目 = |S|, 类别i 中实例所占比例= pi. 用Gini指数测量纯度 Gini (S) = 1 - 当所有实例都属于同一类, Gini 值为0; 当每个类都有相同数目的实例, Gini值达到最大值(1 1 /k).,33,最佳分裂 (续),纯度的另一种测度是熵, 定义如下entropy (S) = 当集合S分裂成若干个集合 Si, i = 1, 2, , r, 我们可以如下测量分裂结果的纯度: purity(S1, S2, , Sr) = 集合S分裂成集合 Si, i = 1, 2, , r, 后带来的信息增

26、益Information-gain(S, S1, S2, ., Sr ) = purity(S) purity(S1, S2, Sr),34,最佳分裂 (续),分裂的“代价” 的测度: Information-content(S, S1, S2, , Sr) = 信息增益比 = Information-gain (S, S1, S2, , Sr)Information-content (S, S1, S2, , Sr) 能产生最大信息增益比的就是最佳分裂 连续值属性 可以某种对分类有意义的方式排序 例如整数和实数 范畴值属性 没有有意义的排序(例如country, school/univers

27、ity, item-color),35,寻找最佳分裂,范畴值属性: 多路分裂, 每个值有一个子节点 有时可能产生过多子节点 二元分裂: 尝试所有可能的将值分成两个集合的分裂, 选择最佳者 连续值属性 二元分裂: 对实例按该属性值排序, 尝试以每个值作为分裂点 例如若值为1, 10, 15, 25, 则在下列各处分裂: 1, 10, 15 选择产生最佳分裂的值 多路分裂: 更加复杂, 见参考文献 对同一属性作一系列二元分裂可产生大致等价的效果,36,决策树构造算法,Procedure GrowTree(S) Partition(S); Procedure Partition(S) if (pur

28、ity(S) p or |S| s) then return; for each attribute A evaluate splits on attribute A; Use best split found (across all attributes) to partition S into S1, S2, ., Sr, for i = 1, 2, , r Partition(Si);,37,决策树构造算法(续),存在许多算法来 减少CPU 代价 当处理内存放不下的数据集时减少I/O代价 改进分类的准确性 决策树可能过度适合, 即, 对给定训练集过于适合 可将决策树的具有过少训练实例的分

29、支剪掉 修剪子树时, 使得某内节点变成叶节点 该节点对应的类别设为具有多数实例的类别 可利用训练集的一部分实例构造决策树, 再利用其余实例测试决策树, 从而进行修剪 将第二步中导致误分类的子树剪掉,38,其它分类方法,其它类型的分类法 神经元网络分类 Bayesian分类 神经元网络分类利用训练数据来训练人工神经元网络 在AI中有广泛研究, 这里不论 Bayesian分类法利用贝叶斯定理p(d | cj ) p(cj) p(cj | d) =p(d) 其中 p(cj | d) = 实例d 属于类别cj 的概率 p(d | cj) = 给定类别cj 时产生实例d 的概率p(cj) = 类别cj

30、出现的概率p(d) = 实例d 出现的概率,39,朴素Bayesian分类器,Bayesian分类器需要 计算 p(d | cj) 预计算 p(cj) p(d) 可忽略, 因为对所有类都是相同的 为简化任务, 朴素Bayesian分类器假设属性具有独立分布, 因此估计p(d | cj ) = p(d1| cj ) * p(d2| cj ) * .* (p(dn | cj ) 每个 p(di|cj) 可根据每个类cj 的di 值上的直方图估计 直方图从训练实例计算得到 多属性上的直方图计算和存储代价更高,40,回归,回归处理一个值的预测, 而不是一个类. 给定一个变量集合X1, X2, , Xn

31、 的值, 我们希望预测变量Y的值. 一种方法是推出系数a0, a1, a1, , an 使得 Y = a0 + a1 * X1 + a2 * X2 + + an * Xn 找出这样一个线性多项式的过程称为线性回归. 一般地, 找出一个拟合给定数据的曲线的过程也称为曲线拟合. 拟合只能是近似的 因为数据中的噪声, 或者 因为数据间的关联不是严格的多项式关系 回归的目标是找到给出可能的最佳拟合的系数.,41,关联规则,零售商店经常对人们购买的不同物品间的关联感兴趣. 买面包的人很可能也买牛奶 买Database System Concepts 这本书的人很可能也买Operating System

32、Concepts这本书. 关联信息有多种使用方法. 例如当顾客买了某本书时, 网上书店可以推介关联书籍. 关联规则:bread milk DB-Concepts, OS-Concepts Networks 左边: 前提, 右边: 结论 一条关联规则必须有一个相关的种群, 它包含一个实例集合 例如商店的每笔交易(销售)是一实例, 所有交易的集合构成种群,42,关联规则(续),规则具有相关的支持度以及可信度. 支持度用来度量种群的多少比例同时满足规则的前提和结论. 例如假设仅0.001% 的交易包含牛奶和螺丝起子. 则规则milk screwdrivers 的支持度很低. 我们一般希望规则有合理的

33、较高支持度 低支持度的规则没啥用处 可信度用来度量当前提为真时结论有多大可能为真. 例如: 如果包含面包的交易中有80%也包含牛奶, 那么规则bread milk 具有可信度80%. 我们一般希望规则有合理的较高可信度. 低可信度的规则没有什么意义. 注意bread milk 的可信度可能与milk bread 的可信度很不一样, 尽管他们具有相同的支持度.,43,寻找关联规则,我们一般只对具有足够高的支持度的关联规则感兴趣 (如支持度为2% 或更高) 朴素算法 考虑有关项目的所有可能的集合. 对每个集合找出其支持度(即数数看有多少交易包含集合中所有项). 频繁项目集: 具有足够高支持度的集合

34、 利用频繁项目集生成关联规则. 从项目集A 生成规则A - b b, 对每个b A. 规则的支持度 = support (A). 规则的可信度 = support (A ) / support (A - b),44,求支持度,少量项集: 通过单趟扫描交易集合即可确定所有项集的支持度 为每个项集维护一个计数, 初始值为0. 当取到一交易, 对每个包含于该交易的项集, 将计数加1. 频繁项集: 扫描结束时具有高计数的项集 大量项集: 若内存不足以保存所有项集的计数, 使用多次扫描, 每趟扫描中只考虑某些项集. 优化: 一旦因计数(支持度)太小而删除一个项集, 则它的所有超集都不需要考虑了. a p

35、riori 技术求频繁项集: Pass 1: 计算所有只有1个项目的集合的支持度. 删除具有低支持度的项 Pass i : 候选项集: 所有i-1 项集为频繁项集的i 项集 计算所有候选项集的支持度 当没有候选时停止,45,其他类型的关联,基本关联规则有若干局限性 与预期概率的偏离更有趣 例如, 如果许多人购买面包, 并且许多人购买谷类食物, 那么会预期不少人两者都购买(prob1 * prob2) 我们对项集之间的正相关和负相关都感兴趣 正相关: 同现概率比预期的高 负相关: 同现概率比预期的低 序列关联/相关 例如, 每当债券上涨, 股票价格就连续两天下跌 与时态模式的偏离 例如, 偏离稳

36、定增长 例如, 冬装销量在夏季减少 不值得惊奇, 是已知模式的一部分. 寻找与利用过去模式所预测的值的偏离,46,聚类,聚类: 直观地说就是在给定数据中寻找点的分组, 使得相似的点位于同一组中 相似性可用多种距离来定义 例如: 给定k, 根据点与组的距心的平均距离极小化来分成k个集合 距心: 各维的坐标是所有点相应坐标的平均值. 另一种: 极小化组中每一对点之间的平均距离 统计学中已有深入研究, 但都是针对小数据集的 数据挖掘系统目标在于可以处理大数据集的聚类技术 例如: Birch 聚类算法,47,层次式聚类,生物分类例 注意: 这里的分类classification不同于前述的预测机制ch

37、ordata mammalia reptilia leopards humans snakes crocodiles 其它例子: Internet目录系统 (如Yahoo) 结团聚类算法 先构造小cluster, 再将小cluster结合成更大的cluster, 如此反复 分解聚类算法 从包含所有数据项的单个cluster开始, 反复精化 (分解)成较小的cluster,48,聚类算法,已有聚类算法可处理大数据集 例如Birch算法 主要思想: 利用内存中的R-树存储待聚类的点 每次将一个点插入到R-树中, 如果与某个现有cluster的距离小于预先指定的, 则合并之 如果产生了很多叶节点以至

38、不能放入内存, 合并现有的相近的cluster 第一轮之后在R-树的叶子层可能产生大量cluster 合并之以减少cluster 数目,49,协作过滤,目标: 基于以下来预测一个人可能感兴趣的电影/书籍/ 该人过去的偏好 具有类似的过去的偏好的其他人 这些人对新电影/书籍/的偏好 基于重复聚类的一种方法 基于对电影的偏好来对人聚类 然后基于被同一聚类的人所喜欢来对电影聚类 再次基于对(新创建的)电影(聚类)的偏好来对人聚类 重复上面过程直至平衡 上述问题是协作过滤的一个实例, 其中用户协作完成过滤信息的任务以找出有意义的信息,50,其他类型的挖掘,文本挖掘: 数据挖掘对文本文档的应用. 例如

39、对网页聚类以找出相关网页 对一个用户访问的网页聚类以组织其访问历史 自动分类网页以形成Web目录 数据可视化系统帮助用户可视地检查大量数据并发现模式 例如地图, 图表, 颜色编码 例如地图上的问题位置以红色显示 可以在一个屏幕上可视地编码大量信息 人类善于发现可视模式,Copyright: Silberschatz, Korth and Sudarshan,51,数据仓库,52,数据仓库,大型机构具有复杂的内部组织, 并且将不同模式的数据存储在不同地点和不同操作型(事务处理)系统 数据源通常只存储当前数据, 而非历史数据 公司决策要求所有的机构数据具有统一视图, 包括历史数据 数据仓库是从多个

40、数据源搜集来的, 以一个统一模式存储的, 位于单一场地的信息存储体(档案) 大大简化查询, 允许研究历史趋势 将决策支持查询负载从事务处理系统移出,53,数据仓库,54,数据仓库的组成,何时及如何搜集数据 源驱动的体系结构: 数据源连续地或周期性地(如利用夜间)传送新信息到数据仓库 目的地驱动的体系结构: 数据仓库周期性地向数据源请求新信息 保持数据仓库与数据源完全同步(如使用两阶段提交) 过于昂贵 数据仓库里有些稍微过时的数据通常没问题 周期性地从联机事务处理(OLTP) 系统下载数据/更新 用什么模式 模式集成,55,数据仓库的组成(续),数据清洗 例如纠正地址错误 例如拼写错误, 邮编错

41、误 从不同源合并地址列表并消除重复 为每户家庭只保存一个地址 如何传播更新 数据仓库模式可能是数据源模式的(物化)视图 物化视图更新的高效技术 综合什么数据 原始数据量可能太大以至不那改你联机存储 聚合值(总和/分总和)经常足以满足要求 对原始数据的查询经常可以被查询优化器转换为利用聚合值的查询,56,数据仓库模式,57,数据仓库模式,数据仓库数据通常是多维的, 具有很大的事实表 维的例子: 商品标识, 销售日期/时间, 销售发生的商店, 顾客标识 度量的例子: 所销售商品数量, 商品价格 维值通常用小整数编码并通过维表映射到完全值 产生的模式称为星型模式 更复杂的模式结构 雪花模式: 多层维

42、表 星座: 多个事实表,Copyright: Silberschatz, Korth and Sudarshan,58,信息检索,59,信息检索系统,信息检索(IR)系统所用数据模型比数据库系统简单 信息组织为文档集合 文档是非结构化的, 没有模式 信息检索基于用户输入的诸如关键字或文档样例来查找相关文档 例如, 查找包含词组“database systems”的文档 甚至可以用于非文本数据(如图像)所具有的文本描述 Web文档上的IR 现在极为重要 例如google, altavista, ,60,信息检索系统(续),与数据库系统的不同之处 IR系统不处理事务更新(包括并发控制与恢复) 数据

43、库系统处理结构化数据, 具有定义数据组织的模式 IR系统处理某些数据库系统通常不讨论的查询问题 根据关键字的近似搜索 根据相关度估计的检索答案排位,61,关键字搜索,在完全文本检索中, 每个文档中的所有单词都被认为是关键字. 我们用术语项来指称文档中的词语 信息检索系统通常允许利用关键字和逻辑连接词and, or, not 来形成查询表达式 And 是隐含的, 即使不显式说明 基于对查询的相关度的估计进行文档排位是关键的 相关性排位基于下列因素 项频率 查询关键字在文档中的出现频率 逆文档频率 1/ n(t ) 查询关键字在多少文档中出现n(t ) 较少 给关键字更多重要度 指向文档的超链 指

44、向文档的链接较多 文档更重要,62,利用项的相关性排位,TF-IDF(项频率/逆文档频率)排位: 令 n(d ) = 文档d 中的项数 n(d, t ) = 项t 在文档d 中的出现数 n(t ) = 包含项t 的文档数 则文档d 相对于项t 的相关度 Log是为了避免对频繁项赋予过多权值 而文档d 相对于查询Q 的相关度,63,利用项的相关度排位(续),多数系统对上述模型进行了改进 出现在标题, 作者列表, 节标题等等中的词应给予较高的重要性 在文档中首次出现很晚的词应给予较低的重要性 删除极其普通的词, 如 “a”, “an”, “the”, “it” 等 称为stop words Pro

45、ximity: 若查询中的关键词在文档中在一起出现, 该文档具有比它们分开出现更高的重要性 按相关性得分递减的次序返回文档 通常只返回前面少数文档, 而非所有,64,利用超链接的相关性,在Web上使用关键词查询时, 文档数是巨大的(数十亿) 如果只考虑词项频率, 与一个查询相关的文档数目可能巨大 使用词项频率很容易造成 “spamming” 例如一个旅游代理可能在他的网页中加入许多词组“travel agent”的出现, 从而使其网页的排位很高 很多时候人们都是在热门站点寻找网页 思想: 利用Web站点的热门程度(如: 多少人访问它)来给匹配给定关键词的站点网页排位 问题: 难以找出站点的实际

46、热门度 解决方法: 下一片子,65,利用超链接的相关性(续),解决方法: 利用指向一个站点的超链接数目作为站点热门程度或威信的度量 只计算来自每个站点的一个超链接 (为什么?) 热门程度度量是针对网站的, 而非针对个别网页 多数超链接都指向站点的根 网站热门度计算比网页热门度计算代价更小 求精 当基于指向网站的链接来计算威信时, 对来自本身具有高威信的站点的链接赋予较大权重 这是循环定义 建立并求解联立线性方程组 上述思想是Google的 PageRank排位机制的基础,66,利用超链接的相关性(续),与对人的威信进行排位的社会网络理论的联系 例如美国总统具有高度威信, 因为很多人都认识他 被

47、多个高威信的人所认识的人也有较高威信 基于Hub和authority的排位 hub 是存储了指向许多(关于某个主题的)网页的链接的网页 authority是包含某个主题的实际信息的网页 基于所指向的authorities的威信可以计算每个网页的hub威信 基于指向它的hub的威信可以计算每个网页的authority威信 同样地, 威信定义是循环的, 可以通过求解线性方程得到 利用authority威信来排位对某一查询的返回结果,67,基于相似度的检索,基于相似度的检索 检索与给定文档相似的文档 相似度可以根据共同的词来定义 例如, 在A中找出k 个具有最高r(d, t) 的词项, 并用这些词项

48、找出其他文档的相关度; 每个词项带有权重weight of r (d,t) 相似度可用来精化关键词查询的结果集合 用户从被关键词查询返回的文档中选择一些相关文档, 系统找出与这些文档相似的其他文档,68,同义词与多义词,同义词 例如文档: “motorcycle repair”, 查询: “motorcycle maintenance” 需要认识到“maintenance” 和 “repair”是同义词 系统能够扩展查询为 “motorcycle and (repair or maintenance)” 多义词 例如“object” 作为名词/动词具有不同意义 可从上下文消除歧义 (一定程度上) 利用同义词来自动扩展查询可能带来问题 需要理解用户想要的意义以推出同义词 或者和用户验证同义词 同义词可能也有其他意义,69,文档索引,倒排索引将每个关键词Ki 映射到一个包含该关键词的文档集合 Si 文档用标识符标识 倒排索引可以记录 关键词在文档中的位置以允许基于接近度的排位 用关键词的出现次数来计算TF and 运算: 找出包含所有K1, K2, ., Kn 的文档 交集, S1 S2 . Sn or 运算: 至少包含一个K1, K2, , Kn 的文档 并集, S1 S2 . Sn,. 保持每个Si 是有序的以允许通过归并实现高效交/并运算 “not” 也能通过归并列表高效实现,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报