登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

ideality

@linux c 编程@

 
 
 

日志

 
 
 
 

百度首席架构师揭密:算法是百度工程师的利器  

2010-04-11 17:31:06|  分类: 网站架构 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
        对于算法学习,我的建议还是多思考,多做项目和程序。在做的过程中肯定会遇到一些问题,这是正常的。好的程序员善于从问题和失败中学到东西,举一反三,设法避免以后出现同样或类似的错误。另外,还要善于从别人身上学习,有意识的进行思考和总结,这是比较有效的方式。
       百度面对的是海量的互联网数据,以及每天上亿次的检索请求。它要求百度能够收录和索引超过10亿的中文网页,并提供快速的检索服务。这只有高效率的算法才能完成。

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

   大家可以设想一下,百度有十亿以上的网页,如果要在一周甚至三天内处理一遍,平均每秒处理要多少个?每天1亿次的检索又意味着峰值时每秒要处理多少次检索?事实上,针对一个问题,我们可以想出很多的算法,但如果效率不高,是无法真正投入使用的。
  
    Web搜索引擎是一个很新的研究领域,因为从它诞生到现在不过10年左右的时间。学术界IR(Information Retrieval)领域的研究为搜索引擎提供了不少算法方面的理论基础模型,但这些理论距构建一个好的Web搜索引擎还有很大一段距离。这需要我们探索 和开发很多新的算法及系统。实际上,百度搜索引擎中的很多算法都极具创新性,而且都是基于实际应用的需求。这是和学术界研究工作的一个较大差异。学术界的 算法研究主要是为了解决某个学术方面的问题,不是太关注实用性,以及效率。
  
   举个例子来说,在传统的中文分词算法研究中,学术界最关注的是能达到多高的准确率,但对算法的运行速度上考虑的相对较少。可在百度,如果使用的分词算法速 度太慢,就根本无法应用。此外,百度面对的是Web上的大量数据,大部分传统的IR算法都会遇到信息爆炸的问题,我们需要想出很多新的方法来解决这些问 题。这对我们的工程师的算法提出了很高的要求。
 
   Web上的数据是不断变化的,用户的检索需求也是不断变化的。百度就是要在这不断变化的两者之间需找一个最佳匹配。所以百度的算法需要持续的进行改进,以 迅速适应这些变化。比如对搜索引擎来说有一个方面的技术很重要,就是判断一个网站是否在作弊的方法。由于那些针对搜索引擎作弊的人,如果能提高搜索引擎排 名,将获得巨大的经济利益,所以他们会不断使用各种方法去猜测百度算法中潜在的漏洞,进行攻击。这是一个很复杂的问题,而且仍在不断发展变化中。这就要求 我们能够迅速的发现这类问题,提出算法,并应用到百度搜索引擎中。在最短时间内消灭问题。否则作弊行为很快就会泛滥成灾。
  
   在百度,算法的应用是融入到研发部门每个人的工作中的。在这里,不是经理告诉工程师做什么,怎么做,用什么算法,而是需要工程师自己在某个领域去发现问 题,提出算法,评估效果,并不断改进。这要求每个工程师在算法上的基本功很强,并能灵活的加以应用,以解决实际问题。现在,百度有不少的程序员,他们大部 分的时间是用在发现问题,分析问题,思考解决问题的方法上。实际编写代码所花的时间并不多。
 
   有不少人觉得,现在的搜索引擎已经足够好了,算法上没有太多改进余地了。我不赞成这个观点。虽然每次CNNIC互联网用户调查的数据显示,超过90%的人 对搜索引擎提供的服务表示满意,但是第一次搜索就能找到满意结果的用户只有50%左右,很多用户都是在多次更换关键词之后才搜索到自己想要的结果。这说明 我们还有巨大的改进空间。让所有用户能在第一时间找到他们想要的信息,是我们的最终目标。

   可以说,搜索引擎开发中使用的基本算法大部分都在大学课程中涵盖了。对于一个人来说,在学校学习过这个算法,和能够灵活运用是两个概念。只有通过参与较多的项目开发和程序编写,将算法和应用相结合,才能在这方面得到较好的发展。
 
   对于算法学习,我的建议还是多思考,多做项目和程序。在做的过程中肯定会遇到一些问题,这是正常的。好的程序员善于从问题和失败中学到东西,举一反三,设法避免以后出现同样或类似的错误。另外,还要善于从别人身上学习,有意识的进行思考和总结,这是比较有效的方式。
  评论这张
 
阅读(704)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018