NewBeeNLP原创出品

公众号专栏作者@上杉翔二

悠闲会 · 信息检索

最近发现微软关于搜索引擎和信息检索技术的一个课程:《智能信息检索》,虽然这个课程的比较早,技术上比较落后了,但是很多的基础检索、搜索引擎的想法仍然非常经典,不过时。这篇博文记录一些重点内容,详细课程可以去看raw video。

一、 搜索引擎概览——system,algorithms and challenges

搜索引擎主要流程如上图,从下到上主要有:

  • 「Web-Crawler抓取网页」。现有的网页总数超万亿,所以需要决定抓取哪些网页,并多长时间来更新网页(网页会有自己的更新与变动),特别是搜索公司只存快照(为了检索速度快,不可能对比所有网页的最新版本)+多服务器备份(防丢失以及多地服务时更快)。

  • 「page parser找超链接」,并决定抽取网页的什么信息。

  • 「index build倒排索引」。正排文档是指一个文档里面包含什么词。而倒排文档:这些词在哪些文档里面(对应用户用query去搜索时往往用短词)。用倒排的好处是搜索不用完全遍历,可以快速得到结果。值得注意的是,倒排里面应该存尽可能多的信息,这样可以方便对文档本身和query都做足够的数据分析。

  • 「caching存总是搜的query的热门结果」。这种对高频的处理能加快响应速度。

  • 「ranking排序返回给用户」。Ranking最大的问题的如何衡量“相关性”,最简单的有tf-idf,bm25等等。返回的结果只做topk,并不是排序所有的结果。

搜索引擎神话:

  1. 人们会被训练。即用户偏向使用容易被检索的query。

  2. 搜索无魔力。需要持续优化和发展。

  3. 大部分的网页并不会被检索到。

  4. 不容易转到另一个搜索系统,除非性能特别突出。

  5. 除了检索,搜索里面还设计到数据管理机器学习等等。

  6. 炫技不是王者,需要把简单做到极致。

  7. 学术和工业存在gap 。

  8. 任何领域都可以做搜索。

  9. 下一代搜索引擎是什么?还不知道,用户会给出答案。

搜索引擎有效的假设:

  1. 用户知道自己要找什么

  2. 找的东西可以被关键词表达

  3. 有文档存在是可以满足用户需求

  4. 文档中是包含检索的关键词

  5. 关键词足够好,可以把好坏区分开来

  6. 文档通过topk可以被排序出来

二、信息检索中的指标

主要介绍主流的检索指标:

  • 普通常用,Precision & Recall,F1。

  • 排序价值不一样,P@K,PR Curve,AP,MAP。

  • 只需要一个结果就行(导航类),RR,MRR。

  • 把最好的排到最前面就越好,NDCG。

  • 多样性:和话题有关alpha-nDCG,IA。

  • 其他:RBP,ERR,GAP。

三、网页搜索中的机器学习

上图是搜索中常用的技术,从下到上逐渐抽象。

  • 第一层主要是一些基础的技术如分类、聚类、LTR、链接分析、相似度学习等等。

  • 第二层可以利用第一层的基础技术去做一些复杂的事情,如query意图理解,匹配,排序,索引,反欺诈,日志挖掘等等。

  • 第三层是进一步的应用,如各种搜索,问答等等。

主要在第二层技术展开:

  • 「Query Understanding」。主要针对用户的query做三件事情,Query Reformulation:纠错。Query Classification:同义转换。Query Segmentation:切分。

  • 「Document Understanding」。主要是对网页本身的理解,Web Page Information Extraction,可以直接对网页的分块,原数据(标题时间)进行处理,也可以wrapper模版去找一些规则内容,text信息抽取等。或者可以建模话题即Web Page Topic Identification。对网页进行重要度衡量Page Importance Calculation,如pagerank这种计算网页重要度。Web Page Classification,基于语义和基于类型。

  • 「Query-Document Matching」。匹配模型简单如BM25,复杂有马尔科夫随机场,隐空间模型等等。

  • 「Learning to Rank」学习更好的排序,Crawling抓取网页并去重,Presentation如何有效合理的展示信息给用户,Anti-spam检查异常的行为,log mining则是利用离线日志去发展一些共性以帮助优化整个系统。

四、语义信息抽取:overview and basic techniques

语义信息抽取的目的是想把页面上的半结构化的数据变成结构化的,人可以理解的信息。主要可分一下子任务:

  • 命名实体识别

  • 实体层次结构

  • 属性抽取

  • 关系挖掘

  • 事件挖掘

五、网页信息聚合

各种不同表达方式的数据如何聚合。主要分为两步,一是从各个源做数据抽取(具体的做法和上一节的思路类似,比如从网页的layout中提取信息等),第二步就是做数据合并(同一类型放一起等等)。

六、 社会搜索和推荐

关于search一个很重要的概念是share,即不仅仅是为了search,也会需要share这些Information或者受别人的share(如用户share和专家share都算),甚至是大家一起搜索(如一起去旅游等这种社会搜索social search),如上图的query和community的关系。关于social search主要有三个重要点:

  • Awareness:知道自己是在做什么,在什么样的阶段。

  • Division of labor:怎么让很多人方便分工,做不一样的事情。

  • Persistence:怎么展示每个人的信息。

七、信息检索中的排序

信息太多,并且相关的文档也很多,如果得到更好的目标返回是很重要的,以往的技术路线都是通用架构+各种规则和人工经验完成的。而排序学习目标就是设计一个模型来自动从数据中学习一个好的排序。分为三类:

  • Pointwise:降维成回归or分类。缺点1在于抹掉了文档的区别(如只要相关的即为1不相关即为-1等等),忽略了很多的信息;缺点2无法知道谁更好即位置信息。

  • Pairwise:定义文档之间的差别,可以解决point的第一个问题。

  • Listwise:解决文档的位置问题,有两条思路1在所有文档列表上做point或者pair。2学习每个排列的分布靠近真实的分布。缺点在于复杂度高(因为要比所有的排练可能)

未来可以做些什么?

  • Large scale:每天都可以得到很多数据如点击,怎么处理large

  • Robust:点击数据有噪声

  • Online,incremental,active:如何实时线上优化

  • Transfer:如何迁移到各个小p,而不用每次都专门标很多的数据

  • Structural:相关性不是所有,如diversity,此时的whole-page relevance也很重要

八、情感分析与意见挖掘

情感分析与意见挖掘,可以应用在商业系统,购物推荐,公共管理,网页广告等方面。情感可以用以下公式来定义:

即谁来表达,向谁表达,取向性(正负)。

具体的流程如上图会先标POS,即命名实体识别如CRF去识别出Holder等,然后针对文本常见词去除,然后得到特征分析观点,即最后做取向性分类。可以在document(全文),sentence(句子),expresstion(词)三个粒度上做。

sentiment analysis与topic classification的区别:

  • Single word:单个词决定就能决定取向,但是话题不行其需要很多词的出现

  • Invertible:加个否定取向就可变

  • Contextual:词在不同的情况不一样

  • Compositional:组合分概念,可正可负

  • Target dependent:针对对象的不一样,成分也会不一样

  • Topic dependent:与话题本身的正负有关

九、 网页实体搜索和知识挖掘

如何把网页中的知识抽取和集成起来。

  • Object-level vertical search。Web object==entity。基于对象的搜索不再搜网页,而是搜某个对象(如人物或者产品),垂搜是对特定领域的处理,更关注这个领域的特点和细节。

  • Object-level general search。更通用的搜索方式。

十、 视觉检索

图像/视频的多媒体检索。分为两个步骤,先提取视觉特征,然后再检索。提特征分为Global feature-based和Local feature-based,由于课程比较早,现在一般不用视频里面的算法了。检索过程主要需要解决的问题就是如何解决Semantic gap,更多的多媒体文章可以看博主以前的博客:传送门[1]

十一、大规模图上的排序

怎么在大规模的图上进行排序,metadata是指图上的节点和边都有信息(如网页自己的各种属性,网页间有各种形态的超链接)。常用的图有社交图,引用图,共现图,电话图,网格图等等,特点在于大规模,很稀疏,信息多,可能还带有外部知识(如某个点要比其他更重要)。所以重要的目标就是如何利用这些信息去排序(节点排序,边排序,图排序)。

  • 仅仅用图的结构如何排序?HITS和PageRank。

  • 利用图的节点和边信息如何排序?Personalized PageRank,Topic-sensitive PageRank。

  • 更多的外部信息(如人的标定某些点更重要)如何排序?LiftHITS等。

十二、搜索相关性

主要讨论的就是relevance,即document和query如何matching,主要可以分为五类(其他三类在前面的课程多少提过,Query reformulation,dependency model,latent space不做展开):

  • Matching witch Translation Model。由于不同人写的东西可能是属于不同的语言的,所以希望完成从document和query里面进行translation。可从Word-based,phrase-based,syntax-based三层角度去做。但是会有不同于一般机器翻译的三个问题:1training data:用query的话,语料库词会比文档还多(千奇百怪的web发明),可以使用title-document。2document field:会有很多的信息如何用。3Translation model:该用什么样的model。

  • Matching with Topic Model。topic=a group of words with weights,即word-topic-document,概率图模型比较流行。

十三、从物理世界建构智能——移动计算及普适计算的前沿

数据是由直接和间接人生成的,反映着很多的信息,怎么保护隐式,怎么聚合多来源信息,如何速度快如何实时,如何节能省电,如何去获取这些数据。设备的Size决定了人如何和设备进行交互,主要有三种:

  • 厘米级:手机。

  • 分米级:平板。

  • 米级:电脑

普适计算应该是帮助人去完成一些事情,去扩展人的能力,尽可能让人感受不到。

十四、知识加成下的信息检索

如果没有common sense是很难理解信息的,所以很需要knowledge的帮助。主要有几种常用的:

  • Wordnet。语言学的意义,普通人很难get。

  • wikipedia。大家都能edit,比较乱,很多无用信息。

  • Freebase。人edit的,但是比较偏不够广泛。

  • Probase。比较普适的。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)

本文参考资料

[1]

传送门: https://nakaizura.blog.csdn.net/article/details/107898237

END -

聊聊互联网秋招总结 & 经验分享

2021-06-23

啥?!BM25 比语义向量检索效果好?

2021-06-22

2021最新 上海互联网公司排名

2021-06-20

Keras正式从TensorFlow分离:结束API混乱与耗时编译

2021-06-18

微软亚研院 | 智能信息检索综述相关推荐

  1. 微软亚研院CV大佬代季峰跳槽商汤为哪般?

    整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 近日,知乎上一篇离开关于MSRA(微软亚洲研究院)和MSRA CV未来发展的帖子讨论热度颇高,这个帖子以MSRA CV执行研究主任 ...

  2. 微软亚研院:如何看待计算机视觉未来的走向?

    本文分享自百度开发者中心微软亚研院:如何看待计算机视觉未来的走向? 先说一个现象:在深度学习的驱动下,计算机已经在多个图像分类任务中取得了超越人类的优异表现.但面对一些不寻常的图像,以"深度 ...

  3. 无需Grouping,中科大和微软亚研院提出Group-Free的三维物体检测方法,性能远超之前最好方法。...

    ©PaperWeekly 原创 · 作者|刘泽 学校|微软亚洲研究院实习生 研究方向|计算机视觉与深度学习 无需 Grouping,中科大和微软亚研院提出 Group-Free 的三维物体检测方法,性 ...

  4. 传微软亚研院停招国防七子+北邮实习生,18所「实体清单」高校也在劫难逃?...

      转载于 新智元   编辑:桃子 时光 snailnj [新智元导读]听说微软亚洲研究院要停招国防七子及北邮学生了?根据北邮人论坛上讨论,事实却是如此.那么,究竟为何? 一觉醒来,着实大睁眼. 网传 ...

  5. 微软亚研院创研论坛CVPR2020分享会 圆桌会议 内容小记

    微软亚研院创研论坛CVPR2020分享会 圆桌会议 内容小记 今天观看了微软亚研院举办的 创研论坛 CVPR2020 论文分享会,分享会邀请了计算机视觉领域多个子领域的大佬们分享已发表的CVPR202 ...

  6. 微软亚研院:CV领域2019年重点论文推荐

    点击我爱计算机视觉标星,更快获取CVML新技术 微软亚洲研究院是国内顶级CV研究机构,众多CV黑科技的诞生地,2020年始,亚研院盘点了2019年CV领域重点论文,大部分附有开源代码,希望对大家有帮助 ...

  7. 微软亚研院副院长周明:从语言智能到代码智能

    11月6日上午,在中国中文信息学会和中国计算机学会联合创办的"语言与智能高峰论坛"上,微软亚洲研究院副院长周明,以<从语言智能到代码智能>为题,介绍了智能代码理解和生成 ...

  8. 微软亚研院20周年独家撰文:数据智能的现在与未来

    文:微软亚洲研究院软件分析组 来源:雷锋网 摘要:今年是微软亚洲研究院(MSRA)20周年,站在这个大节点上,MSRA副院长张冬梅以及她的团队写了这篇有关数据智能的文章,对该领域的发展和未来进行梳理. ...

  9. 微软亚研院提出用于语义分割的结构化知识蒸馏 | CVPR 2019

    作者 | CV君 来源 | 我爱计算机视觉 今天跟大家分享一篇关于语义分割的论文,刚刚上传到arXiv的CVPR 2019接收论文<Structured Knowledge Distillati ...

最新文章

  1. Boosting 简介--A (small) introduction to Boosting
  2. 加速OA系统实施的四大要素
  3. ul ol li的序号编号样式
  4. Codeforces Round #257 (Div. 2) B. Jzzhu and Sequences
  5. 边缘化搭建 DotNet Core 2.1 自动化发布和部署(下)
  6. ZOJ3385 - Hanami Party (贪心)
  7. oracle 分页查询
  8. 如何选择bfs和dfs
  9. 随想录(qemu仿真linux kernel)
  10. C#用户进行LDAP验证并返回员工信息
  11. POJ 1182 食物链(带权并查集)
  12. 我当 DevOps 的一年
  13. kodi资源_手把手教您设置KODI播放器,3分钟打造家庭影院级媒体库,流畅播放NAS里的原盘电影!...
  14. OpenAI发布DALL·E 2
  15. 数据安全技术落地经验浅谈和分类分级实施
  16. 用python画满天星_Python用27行代码绘制一幅满天星
  17. 乐理入门: 二、时值、节奏、节拍
  18. 基础//页面布局——三栏布局1
  19. c++中如何把任意类型的指针转化为void*
  20. 密码算法测试向量——AES

热门文章

  1. SAP License:雾里看花系列——做管理还要懂SAP吗?
  2. 实操|风控规则的监控与自动化策略生成
  3. Python入门学习笔记(2)
  4. Docker 系列之 常用镜像
  5. sklearn-数据预处理scale
  6. 面向对象程序设计简介
  7. 句子迷,语录,俞凌雄 2
  8. intrinsicContentSize和Content Hugging Priority
  9. 用 Python 分析上网记录,发现了很多不可思议的事
  10. PIE SDK矢量数据空间索引的创建