网页搜索技术简介2014年09月04日技术分享季,点亮思维每一季Pagenumber1•搜索引擎概述•搜索引擎关键技术检索系统索引系统网络爬虫相关性•引擎的评测与改进议题Pagenumber2搜索引擎概述•解决的问题:海量数据中从查找你想要的数据•数据来源:网页抓取,分析•数据处理:筛选,去重,排序,存储•数据检索:分词,检索互联网技术皇冠上的明珠Pagenumber3搜索引擎概述搜索引擎应用了哪些技术?•分布式计算:用于大规模离线网页排序/分析•分布式存储:用于网页数据存储,(url库,正文库,anchor库,倒排,正排,摘要,快照)•自然语言处理(文章分词/检索语意分析/检索树构建),机器学习(相关性模型调优)•高性能检索(实时检索服务,IO/CPU/网络架构)•……….其他相关技术Pagenumber4搜索系统架构•通用搜索系统主要是包括四大系统:检索系统,索引系统,爬虫系统,和相关性•检索系统:根据用户输入的检索串,实时找出检索最相关的内容•索引系统:离线网页的倒排/顺排构建,网页选取/去重/离线打分,网页数据存储….•爬虫系统:互联网数据选取/抓取•相关性:检索串和文章的相关度,索引文章选取,网页抓取的优先级……,全方位介入到搜索的各个角落检索系统索引系统爬虫系统相关性Pagenumber5•检索串分析:把用户输入的检索串进行分词和语意分析,分解成检索语法树中国恒大(中国||中华||china)&恒大(中国&恒大)||(中华&恒大)||(china&恒大)检索串表示为多个词组的交集,如果有同义词,可以进行同义词扩展。检索树其他特性:IDF信息,检索时新性判断,检索主题分类(体育/新闻/视频…)检索系统Pagenumber6•检索:核心是一个倒排求交并进行排序的过程•倒排表:词语到文章的映射(中国&恒大)=doc5检索系统Pagenumber7•检索难点:短时间内,完成超长倒排的求交过程。在线检索系统,文章数量从几百亿到上千亿不等。高频词,可能在数10亿个网页中存在,如何求交?检索系统Pagenumber8•并行求交:倒排表进行多次拆分,分布到不同的机器上。求交的时候下发语法树,所有机器对同一个语法树进行求交操作。求交结果进行多次合并排序,最终返回用户。•一次检索会涉及到集群的所有机器,能量开销大检索系统Pagenumber9•检索性能:检索开销巨大,需要优化检索性能到极限(CPU/内存/IO)。关键指标:文章装机量,QPS•文章装机量:单机能够装载的文章数。集群在线文章更多,长尾检索效果更好,但是倒排长度更长,会降低QPS•QPS:单机能够承载的检索次数上限,制约整个集群的检索能力,QPS提高能够降低检索成本求交过程需要进行全方位的优化,提升求交性能!•一次检索会涉及到集群的所有机器,能量开销大检索系统Pagenumber10文章索引优化:继续挖掘优化:块压缩?变长编码,差分编码…..检索系统URL求交过程优化:(1)倒排表按照文章质量以及和词语相关度进行了离线排序(2)倒排表进行多路归并,寻找词语倒排表交集其他优化方法:建立倒排二级索引,Bitmap直接表示文章增加单机文章装机量:固态硬盘,异步IO,CPU绑定,无锁编程…….检索系统Pagenumber12•存储:url库,正文库,链接库,用户行为数据….•计算:抽取、反垃圾、排重、选取、顺排、倒排、链接计算、锚文本计算•索引选取:从离线存储库中的几千亿网页选取优质数据到在线库。(几百亿到上千亿不等)•顺排倒排:对网页进行分词,建立倒排表。倒排是词语到文章的映射,顺排是文章到词语的映射。索引系统Pagenumber13•计算:依赖大规模分布式计算MR(Infrastructure)•索引选取计算:从离线存储库中的几千亿网页选取优质数据进入到在线库。(几百亿到上千亿不等)•选取规则:•黑白名单:命中白名单直接进入选择•分类规则:网站首页,用户点击或者展现过的页面,第三方优质数据…..,更多细化的规则保证选择优质数据•网页打分:根据用户行为数据(点击/展现/浏览日志),网页权威度特征(PR,DR)和网页质量进行综合打分索引系统白黑名单分类规则网页打分Pagenumber14打分模型:针对网页评分,建立合适的打分模型•非线性模型:指数模型,对数模型,分段模型……•线性模型:value=权重*A+权重*B,多数会对权重和数据进行归一化处理,具体的取值可以通过多次训练获得模型参数:(1)用户行为数据(点击/展现/浏览日志),浏览器数据非常关键,可以收集到非常长尾的网页数据!(2)网页质量特征:pagerank,qualityrank(网页质量),domainrank(主站质量)….(3)网页内容特征:url深度,分光镜(内容分类),编码格式….索引系统Pagenumber15•问题:如何选取1000亿网页中得分前100亿的网页?根据上一轮网页打分,可以得出网页的得分分布状态例:在这20篇文章中,找出得分排名前10的文章,可以知道阈值是3•每天都有新的数据,如何在时新性和成本达成妥协?(1)时新性数据直接实时进入实时索引系统。(2)常规数据每天分批计算,每天上线1/N数据,N天完成全量索引更新索引系统得分12345文章篇数53345Pagenumber16•网络爬虫是搜索引擎的数据源头,直接决定数据质量和收录。它负责发现/下载/更新网页数据。数据是搜索质量的基础。•调度:从Url库中选择需要抓取的url•抓取:下载网页数据•抽取:把下载网页分析为结构化的数据,URL/正文/锚文本/链接库网络爬虫SPIDER数据仓库(URL/正文/链接库)SCHEDULE抽取WEBUrl网页数据Pagenumber17•调度:下载配额是受到下载机器/出口带宽/对方网站配额等多个因素制约的,下载能力非常有限。需要从Url库中选取最有价值的url进行下载•调度原则:链接分类配额+配额内打分排序•网页分类:(1)网站首页:必选(2)新抓页面:资源倾斜(3)更新索引页:资源倾斜(4)更新内容页:少量更新网络爬虫Pagenumber18链接打分规则•新抓页面:URL外形因子/Pagerank/所在网页目录质量…•更新页面:发现新链接数/子链接数/页面变化周期/pagerank/url深度……•Url外形例子:://tech.ifeng.com/a/20140831/40780368_0.shtml=1更浅的目录,更规则的字符,更少的特殊符号都代表更好的Url外形网络爬虫Pagenumber19Pagerank:网页排名,又称网页级别,佩奇排名。一个链接的pagerank排名由指向它的链接所决定。整个网络的pagerank经过多次迭代趋向稳定•Pagerank公式:SEO优化经常关注到这一点,但是大量垃圾网站的相互指向,容易导致整一批网站被判定为垃圾或者作弊,反而导致站点被惩罚性降级!千万不要和坏人做朋友!网络爬虫Pagenumber20网页抓取:从互联网抓取网页数据的过程。•抓取压力:抓取压力非常关键,太大的压力会导致对方封禁爬虫的IP地址。下载压力原则是做到全天均衡而稳定,考虑对方站点的业务状态。•如何去估算对方站点允许的下载压力?(1)站点Alexa排名(2)站点PV站点压力是一个反复调整的过程,如果不幸被对方站点封禁了,就需要转入到匿名下载。网络爬虫Pagenumber21问题:如果从求交完成的文章中,选出最优的10篇文章返回给用户?相关性:对求交结果进行排序,完成最优选择!介绍的重点。相关性全面深入到搜索引擎的各个细节,query分析,求交排序,离线索引选取,倒排构建,爬虫链接选择,反垃圾等等环节相关性Pagenumber22求交结果排序的关键因子:(1)文本相关性:衡量query和网页的文本近似度(2)网页权威度:考虑网页和所在站点的权威性,如百度知道/wiki等所属页面会大幅提权(3)网页时新性:时新网页会有提权,特别对于新闻类网页(4)点击模型:用户点击数据实际上就是对网页进行人工标注。Query实际上可以作为网页的标注信息。相关性Pagenumber23文本相关性:不同位区的文本重要性不同(1)anchor标注文本(2)文章标题(3)文章meta字段,注释信息(4)文章正文SEO优化的同学注意了!相关性Pagenumber24(1)锚文本/标题完全匹配,可以获取很高的提权(2)标题部分命中也可能比正文获得更高的排位(3)文章内容其实没有你想象的重要……相关性Pagenumber25常用的文本相关性算法:BM25余弦相似度://matpalm.com/resemblance/simhash/在算法基础上,可以用更多自定义特征来进行提权降权相关性Pagenumber26评测方法DCG测试:针对一定量query,人工标注评价和标注相关网页。通过对标注网页的召回率和排序的打分,得出DCG测试得分。自动化测试可以使用这个指标来评测新特性的效果。翻页率:90%以上的搜索请求可以在第一页即可获取结果领先引擎召回率:对比占领先地位的搜索引擎结果,观察每天的召回率人工评比:每隔一定周期请专业人士做人工评测如何改善搜索质量:(1)数据是搜索的核心(2)坏例分析引擎的评测与改进Pagenumber27LongWayToGo欢迎提问分享若愿参与分享,请联系TDC辛盛如有任何疑问,请咨询HR周赟/段小芳谢谢