i社区用户: 密码:
搜索:
首页| 资讯| 信息化| 视频| 专题| 创业| 企业中心| 企业博客| 职场| 周报全文| 方案中心 |电子杂志
市场会展| Blog| i社区| 社区联盟| RSS| 直播 | 发行| wiki |i| 下载| 英才招聘|CIO文库
IT两会 | 互联网年会
产品中心| 笔记本|台式机| DIY|数码| 服务器|网络通信| 手机|软件|显示器|信息安全|存储|组网| 动漫
人物 | 互联网 | 信息安全 | 网络通信 | 消费电子 | 行业应用 | 会展信息 | 科技前沿 | 数字生活 | 更多>>
 
百度首席架构师揭密:算法是百度工程师的利器
 
 
2006-04-05 17:22:43
 
  周利民  
     “工欲善其事,必先利其器”,对于百度工程师来说,算法就是他们解决难题的利器。


      为什么这么说?因为百度搜索
引擎研发的各个环节都离不开算法。我们需要快速,准确、实用、创新和不断改进的算法来满足用户的需求。


    百度面对的是海量的互联网数据,以及每天上亿次的检索请求。它要求百度能够收录和索引超过10亿的中文网页,并提供快速的检索服务。这只有高效率的算法才能完成。

    百度招聘的工程师在加入公司后,有一道入门练习题,就是编写一个数据扫描分析程序,要求写出的程序能在1分钟之内扫描分析完千万量级的数据,才算及格。高水平的程序员可以利用高效的算法在10秒以内解决问题,甚至只要六七秒。但如果没用对算法,花一星期的时间,也做不到1分钟之内。

    大家可以设想一下,百度有十亿以上的网页,如果要在一周甚至三天内处理一遍,平均每秒处理要多少个?每天1亿次的检索又意味着峰值时每秒要处理多少次检索?事实上,针对一个问题,我们可以想出很多的算法,但如果效率不高,是无法真正投入使用的。


      Web搜索引擎是一个很新的研究领域,因为从它诞生到现在不过10年左右的时间。学术界IR(Information Retrieval)领域的研究为搜索引擎提供了不少算法方面的理论基础模型,但这些理论距构建一个好的Web搜索引擎还有很大一段距离。这需要我们探索和开发很多新的算法及系统。实际上,百度搜索引擎中的很多算法都极具创新性,而且都是基于实际应用的需求。这是和学术界研究工作的一个较大差异。学术界的算法研究主要是为了解决某个学术方面的问题,不是太关注实用性,以及效率。


   举个例子来说,在传统的中文分词算法研究中,学术界最关注的是能达到多高的准确率,但对算法的运行速度上考虑的相对较少。可在百度,如果使用的分词算法速度太慢,就根本无法应用。此外,百度面对的是Web上的大量数据,大部分传统的IR算法都会遇到信息爆炸的问题,我们需要想出很多新的方法来解决这些问题。这对我们的工程师的算法提出了很高的要求。


      Web上的数据是不断变化的,用户的检索需求也是不断变化的。百度就是要在这不断变化的两者之间需找一个最佳匹配。所以百度的算法需要持续的进行改进,以迅速适应这些变化。比如对搜索引擎来说有一个方面的技术很重要,就是判断一个网站是否在作弊的方法。由于那些针对搜索引擎作弊的人,如果能提高搜索引擎排名,将获得巨大的经济利益,所以他们会不断使用各种方法去猜测百度算法中潜在的漏洞,进行攻击。这是一个很复杂的问题,而且仍在不断发展变化中。这就要求我们能够迅速的发现这类问题,提出算法,并应用到百度搜索引擎中。在最短时间内消灭问题。否则作弊行为很快就会泛滥成灾。


    在百度,算法的应用是融入到研发部门每个人的工作中的。在这里,不是经理告诉工程师做什么,怎么做,用什么算法,而是需要工程师自己在某个领域去发现问题,提出算法,评估效果,并不断改进。这要求每个工程师在算法上的基本功很强,并能灵活的加以应用,以解决实际问题。现在,百度有不少的程序员,他们大部分的时间是用在发现问题,分析问题,思考解决问题的方法上。实际编写代码所花的时间并不多。


    有不少人觉得,现在的搜索引擎已经足够好了,算法上没有太多改进余地了。我不赞成这个观点。虽然每次CNNIC互联网用户调查的数据显示,超过90%的人对搜索引擎提供的服务表示满意,但是第一次搜索就能找到满意结果的用户只有50%左右,很多用户都是在多次更换关键词之后才搜索到自己想要的结果。这说明我们还有巨大的改进空间。让所有用户能在第一时间找到他们想要的信息,是我们的最终目标。


    可以说,搜索引擎开发中使用的基本算法大部分都在大学课程中涵盖了。对于一个人来说,在学校学习过这个算法,和能够灵活运用是两个概念。只有通过参与较多的项目开发和程序编写,将算法和应用相结合,才能在这方面得到较好的发展。


    对于算法学习,我的建议还是多思考,多做项目和程序。在做的过程中肯定会遇到一些问题,这是正常的。好的程序员善于从问题和失败中学到东西,举一反三,设法避免以后出现同样或类似的错误。另外,还要善于从别人身上学习,有意识的进行思考和总结,这是比较有效的方式。

本文刊登于《程序员》杂志2006年四期特别策划《算法的力量》,转载请注明来源。

 
   
  (网页编辑:石头  
   
   
   
 
 
  搜索相关内容  百度    
      如果您对“百度首席架构师揭密:算法是百度工程师的利器”有任何疑问要咨询,或者您对我们专家的解答有任何疑义,请您点击以下的链接提交意向单,我们的编辑和信息化专家将会很快为您做出回答,您提供的信息经过审核后将有机会出现在我们的网页上。
专家介绍
     
 搜索相关内容
 点击排行
网易开放战网和魔兽世界...
传网易魔兽世界审批受阻...
中国红十字基金会及罗志...
消息称陈晓薇与九城续约两年
摸奶门女主角QQ日志描述...
明公关 暗不为 戴尔电脑...
家电以旧换新:1台旧电...
网易内部邀请全体员工测...
李日强:网易魔兽已内测 ...
他们支持“绿坝”筑防
相关文章
  发表评论  您的姓名   您的Email   发布  
   
  推荐文章  您朋友的电子邮件地址: 立即发送  
关于我们 | 客服热线 | 广告服务 | 招聘信息 | 法律声明 | 投稿指南 | 联系方式 
Copyright(C) ccw.com.cn,All rights reserved
中国计算机世界出版服务公司内容版权所有
京ICP证010182