从技术创新到商业成功,百度在这五年间完成了从搜索引擎到互联网平台的华丽转身
2006 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2010
│ │ │ │ │
MP3事件 框计算提出 阿拉丁平台 凤巢系统上线 移动布局
2006 2009.8 2009.12 2009.4 2010
这是百度历史上最关键的五年。在李彦宏的带领下,百度不仅在与Google的竞争中站稳脚跟,更通过一系列技术创新确立了在中国互联网的霸主地位。框计算、阿拉丁、凤巢三大技术体系的建立,奠定了百度未来十年的发展基础。
2009年8月18日,李彦宏在百度技术创新大会上首次提出”框计算”(Box Computing)概念。这个看似简单的”框”,背后蕴含着百度对搜索引擎未来形态的深刻理解。
概念演进时间线:
2008.Q4: 内部讨论"即搜即得"概念
│ - 李彦宏提出"最简单可依赖"理念
│ - 俞军(产品副总裁)主导需求调研
│
2009.Q1: 技术预研,确定架构方向
│ - 王梦秋(搜索产品技术总监)组建项目组
│ - 确定"需求识别+资源调度"双核心架构
│
2009.Q2: 原型系统开发
│ - 完成10个垂类的Demo验证
│ - 内部测试准确率达到85%
│
2009.8.18: 李彦宏正式发布框计算
│ - 百度世界大会现场演示
│ - 同步发布开发者接入计划
│
2009.Q4: 全面上线部署
- 日均处理需求3亿次
- 接入合作伙伴超过500家
李彦宏的战略思考:
在2009年的内部会议上,李彦宏明确指出:”搜索的未来不是给用户10条蓝色链接,而是直接给出答案。框计算就是要让用户在一个框里解决所有问题。” 这一理念的提出,比Google的Knowledge Graph早了3年。
核心理念:
技术挑战与突破:
早期应用场景:
框计算的核心是准确理解用户意图。在王梦秋的技术团队领导下,百度构建了当时业界最先进的多层次需求识别系统。
需求识别架构:
┌─────────────────────────────────────────────┐
│ 用户查询输入 │
└────────────────┬────────────────────────────┘
│
┌──────────▼──────────┐
│ Query预处理层 │
│ - 分词/纠错/扩展 │
│ - 同义词识别 │
│ - 拼音转换 │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ 意图识别层 │
│ - 分类器/模式匹配 │
│ - 概率打分 │
│ - 冲突消解 │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ 需求解析层 │
│ - 实体识别/关系抽取 │
│ - 槽位填充 │
│ - 上下文理解 │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ 服务路由层 │
│ - 资源调度/优先级 │
│ - 负载均衡 │
│ - 容错处理 │
└─────────────────────┘
关键技术突破:
# 特征提取示例(实际使用C++实现)
class FeatureExtractor:
def extract(self, query, context):
features = {
# 查询特征
'query_length': len(query),
'query_entropy': self.calc_entropy(query),
'has_question_word': self.has_qword(query),
# 实体特征
'has_location': self.detect_location(query),
'has_time': self.detect_time(query),
'has_person': self.detect_person(query),
'has_number': self.detect_number(query),
# 用户特征
'click_history': self.get_user_clicks(context.user_id),
'search_frequency': self.get_search_freq(context.user_id),
'preferred_categories': self.get_user_categories(context.user_id),
# 上下文特征
'session_queries': self.get_session_info(context.session_id),
'time_of_day': context.timestamp.hour,
'day_of_week': context.timestamp.weekday(),
'device_type': context.device_type,
'location_city': context.location.city
}
return self.normalize_features(features)
一级分类(5大类) 二级分类(28类) 样例
├── 导航类 ├── 网站导航 "百度"
│ ├── 应用导航 "QQ下载"
│ └── 服务导航 "12306"
├── 信息类 ├── 百科知识 "什么是GDP"
│ ├── 新闻资讯 "今日新闻"
│ ├── 问答求助 "怎么做红烧肉"
│ └── 学术文献 "机器学习论文"
├── 交易类 ├── 商品购买 "iPhone价格"
│ ├── 服务预订 "酒店预订"
│ └── 票务查询 "北京到上海机票"
├── 下载类 ├── 软件下载 "photoshop下载"
│ ├── 文档下载 "简历模板"
│ └── 媒体下载 "周杰伦歌曲"
└── 娱乐类 ├── 视频观看 "变形金刚在线"
├── 音乐收听 "听歌"
└── 游戏娱乐 "斗地主"
核心算法创新
意图识别算法(王梦秋团队原创):
Score(intent|query) = α·P_pattern(intent|query) +
β·P_ml(intent|query) +
γ·P_context(intent|query)
其中:
- P_pattern: 基于模式匹配的概率
- P_ml: 基于机器学习的概率
- P_context: 基于上下文的概率
- α,β,γ: 动态调整的权重参数
框计算需要协调海量的计算资源和服务接口,在系统架构师孙云峰的带领下,百度设计了业界领先的分布式资源调度系统。
调度系统架构:
┌───────────────────────────────────────────────────┐
│ 调度中心(Master Scheduler) │
│ - 全局资源视图 │
│ - 调度决策引擎 │
│ - 容灾切换控制 │
├───────────────┬───────────────┬───────────────────┤
│ 任务队列 │ 资源池 │ 监控系统 │
│ - 优先级排序 │ - CPU/内存 │ - 实时监控 │
│ - 负载均衡 │ - 网络带宽 │ - 告警机制 │
│ - 任务分片 │ - 存储IO │ - 自动恢复 │
└───────┬───────┴───────┬───────┴───────┬───────────┘
│ │ │
┌───▼───┐ ┌───▼───┐ ┌───▼───┐
│ IDC1 │ │ IDC2 │ │ IDC3 │
│北京机房│ │上海机房│ │广州机房│
└───────┘ └───────┘ └───────┘
核心调度算法:
资源调度得分算法:
Score = W1 × ResourceAvailability +
W2 × NetworkLatency^(-1) +
W3 × HistoricalPerformance +
W4 × LoadBalance
其中:
- ResourceAvailability: 资源可用性(CPU、内存、带宽)
- NetworkLatency: 网络延迟(用户到机房)
- HistoricalPerformance: 历史性能指标
- LoadBalance: 负载均衡因子
性能优化策略:
L1 Cache(本地缓存) - 命中率: 60% - 延迟: <1ms
↓ Miss
L2 Cache(分布式缓存) - 命中率: 25% - 延迟: <10ms
↓ Miss
L3 Cache(持久化缓存) - 命中率: 10% - 延迟: <50ms
↓ Miss
Backend Service - 命中率: 5% - 延迟: <200ms
综合缓存命中率: 95%
平均响应时间: 8ms
# 异步任务处理示例
class AsyncProcessor:
def process_query(self, query):
# 同步处理:关键路径
critical_result = self.sync_process(query)
# 异步处理:非关键路径
self.async_queue.push({
'log_analysis': self.analyze_log,
'update_stats': self.update_statistics,
'train_model': self.incremental_train
})
return critical_result
降级级别定义:
Level 0(正常): 全部功能可用
Level 1(轻度): 关闭个性化推荐
Level 2(中度): 关闭实时计算,使用缓存
Level 3(重度): 只提供基础搜索功能
Level 4(紧急): 静态页面 + 基础结果
触发条件:
- CPU使用率 > 80% → Level 1
- 响应时间P99 > 500ms → Level 2
- 错误率 > 1% → Level 3
- 系统崩溃风险 → Level 4
资源调度创新点:
实际运行指标(2010年): | 指标 | 数值 | 说明 | |——|——|——| | 日均调度任务 | 50亿次 | 包含所有框计算请求 | | 资源利用率 | 75% | 行业平均50% | | 故障恢复时间 | <3秒 | 自动故障转移 | | SLA可用性 | 99.99% | 全年停机<53分钟 | | 调度延迟P50 | 2ms | 调度决策时间 | | 调度延迟P99 | 10ms | 包含远程调度 |
为了构建开放生态,百度制定了详细的应用接入标准:
接入协议规范:
<!-- 框计算应用描述文件示例 -->
<application>
<name>天气预报服务</name>
<version>1.0</version>
<provider>中国气象局</provider>
<triggers>
<pattern>.*天气.*</pattern>
<pattern>.*温度.*</pattern>
</triggers>
<api>
<endpoint>http://api.weather.com/query</endpoint>
<method>GET</method>
<response_format>JSON</response_format>
</api>
<display>
<template>weather_card</template>
<priority>high</priority>
</display>
</application>
质量控制体系:
阿拉丁平台于2009年12月正式发布,这是李彦宏亲自推动的战略项目。项目由技术总监赵世奇负责,旨在将互联网的”暗网”数据(占互联网信息总量的80%)结构化并开放给用户。
项目背景与意义:
李彦宏在2009年的内部讲话中指出:”传统爬虫只能抓取表层网页,而大量有价值的数据藏在数据库后面。阿拉丁要做的,就是照亮这些’暗网’数据。”
数据处理架构:
数据接入层 处理层 存储层 服务层
│ │ │ │
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│数据源接入│ ───────> │数据清洗 │ ───────> │结构化存储│ ─────> │查询服务 │
│·API对接 │ │·去重消噪 │ │·分布式DB│ │·实时检索│
│·爬虫抓取│ │·格式转换 │ │·索引构建│ │·API输出 │
│·人工录入│ │·质量校验 │ │·缓存层 │ │·展示渲染│
└─────────┘ └──────────┘ └──────────┘ └──────────┘
↑ ↑ ↑ ↑
数据提供方 ETL Pipeline HBase/MySQL 前端应用
Schema设计体系:
赵世奇团队设计了灵活的Schema体系,支持各类结构化数据:
// 阿拉丁通用数据模型(ADM - Aladdin Data Model)
{
// 元数据
"meta": {
"entity_type": "movie", // 实体类型
"entity_id": "aladdin_movie_12345", // 全局唯一ID
"source": "douban", // 数据源
"update_time": "2010-01-01T12:00:00Z",
"quality_score": 0.95, // 数据质量评分
"version": "1.0"
},
// 基础信息(必填)
"basic_info": {
"name": "盗梦空间",
"name_en": "Inception",
"director": "克里斯托弗·诺兰",
"actors": ["莱昂纳多·迪卡普里奥", "玛丽昂·歌迪亚"],
"release_date": "2010-09-01",
"rating": 9.3,
"rating_count": 1234567
},
// 结构化数据(选填)
"structured_data": {
"box_office": {
"global": "8.36亿美元",
"china": "4.6亿人民币"
},
"duration": 148, // 分钟
"genre": ["科幻", "悬疑", "惊悚"],
"language": ["英语", "日语", "法语"],
"awards": ["奥斯卡最佳摄影奖", "奥斯卡最佳视觉效果奖"]
},
// 媒体资源
"media_resources": {
"poster": "http://img.baidu.com/poster/12345.jpg",
"trailer": "http://video.baidu.com/trailer/12345.mp4",
"stills": ["still1.jpg", "still2.jpg"],
"clips": ["clip1.mp4", "clip2.mp4"]
},
// 关联数据
"relations": {
"similar_movies": ["movie_23456", "movie_34567"],
"franchise": "诺兰悬疑三部曲",
"director_works": ["movie_11111", "movie_22222"]
}
}
数据处理技术栈:
class DataCleaner:
def clean(self, raw_data):
# 1. 去重处理
unique_data = self.deduplicate(raw_data)
# 2. 数据标准化
normalized = self.normalize(unique_data)
# 3. 缺失值处理
filled = self.fill_missing(normalized)
# 4. 异常值检测
validated = self.validate(filled)
# 5. 质量评分
scored = self.quality_score(validated)
return scored if scored.quality > 0.7 else None
数据质量保障体系:
| 质量维度 | 检查项 | 标准 | 权重 |
|---|---|---|---|
| 完整性 | 必填字段覆盖率 | >95% | 30% |
| 准确性 | 与权威源对比 | >90% | 25% |
| 时效性 | 更新延迟 | <24小时 | 20% |
| 一致性 | 多源数据一致 | >85% | 15% |
| 可用性 | 链接有效率 | >98% | 10% |
核心数据类型覆盖(2010年):
阿拉丁平台提供了完整的API体系,支持数据提供方快速接入:
API架构层次:
┌─────────────────────────────────────┐
│ 应用层API │
│ (搜索结果、推荐、统计) │
├─────────────────────────────────────┤
│ 数据层API │
│ (提交、更新、删除、查询) │
├─────────────────────────────────────┤
│ 管理层API │
│ (认证、权限、配额、监控) │
└─────────────────────────────────────┘
RESTful接口规范:
# 数据提交接口
POST /api/v1/data/submit
Content-Type: application/json
Authorization: Bearer {token}
{
"data_type": "structured",
"source": "partner_id",
"content": {...},
"timestamp": "2010-01-01T00:00:00Z"
}
# 响应格式
{
"status": "success",
"data_id": "uuid",
"message": "Data submitted successfully"
}
接口性能指标: | 接口类型 | QPS限制 | 响应时间 | 成功率要求 | |———|———|———-|————| | 数据提交 | 1000 | <500ms | >99.5% | | 数据查询 | 10000 | <100ms | >99.9% | | 批量操作 | 100 | <5s | >99% |
阿拉丁平台建立了严格的数据质量控制体系:
质量控制流程:
数据接入 → 自动校验 → 人工审核 → 上线测试 → 正式发布
│ │ │ │ │
格式检查 规则校验 抽样检查 灰度发布 全量上线
自动化质量检测:
合作伙伴分级体系:
┌────────────────────────────────────────┐
│ 战略合作伙伴 │
│ (官方机构、行业领导者) │
├────────────────────────────────────────┤
│ 认证合作伙伴 │
│ (优质内容提供方) │
├────────────────────────────────────────┤
│ 普通合作伙伴 │
│ (一般数据源) │
└────────────────────────────────────────┘
激励机制设计:
2009年4月,凤巢系统正式上线,这是百度广告技术的重大升级。系统架构师王湛主导了核心匹配算法的设计。
匹配算法演进:
第一代(2009.4):关键词精确匹配 + 简单扩展
│
第二代(2009.10):语义相似度 + 用户行为
│
第三代(2010.6):机器学习 + 实时特征
核心算法框架:
class AdMatcher:
def __init__(self):
self.keyword_index = InvertedIndex()
self.semantic_model = Word2Vec()
self.user_model = UserProfiler()
def match(self, query, user_context):
# 1. 关键词匹配
keyword_ads = self.keyword_index.search(query)
# 2. 语义扩展
semantic_ads = self.semantic_expand(query)
# 3. 用户意图理解
user_intent = self.user_model.predict_intent(
query, user_context
)
# 4. 综合排序
candidates = self.merge_and_rank(
keyword_ads, semantic_ads, user_intent
)
return candidates[:MAX_ADS]
匹配策略优化:
点击率(CTR)预估是凤巢系统的核心技术,直接影响广告收入和用户体验。
CTR预估模型演进:
2009 Q2: Logistic Regression (LR)
↓
2009 Q4: LR + 特征工程优化
↓
2010 Q2: GBDT + LR组合模型
↓
2010 Q4: 在线学习 + 实时更新
特征工程体系:
特征类别:
├── 广告特征
│ ├── 广告ID、类别、创意
│ ├── 历史CTR、转化率
│ └── 广告主信息
├── 查询特征
│ ├── 查询词、长度、类型
│ ├── 查询频率、商业价值
│ └── 语义向量表示
├── 用户特征
│ ├── 人口属性(年龄、性别)
│ ├── 行为序列(搜索、点击)
│ └── 兴趣标签
└── 上下文特征
├── 时间(小时、星期、节假日)
├── 位置(省市、商圈)
└── 设备(PC、移动)
模型训练流程:
# CTR预估模型训练示例
class CTRModel:
def __init__(self):
self.lr_model = LogisticRegression()
self.gbdt_model = GradientBoostingClassifier()
def feature_engineering(self, raw_data):
features = []
# 基础特征
features.extend(self.extract_basic_features(raw_data))
# 交叉特征
features.extend(self.cross_features(raw_data))
# 统计特征
features.extend(self.statistical_features(raw_data))
return features
def train(self, training_data):
X = self.feature_engineering(training_data)
y = training_data['clicked']
# GBDT特征转换
gbdt_features = self.gbdt_model.fit_transform(X, y)
# LR模型训练
X_combined = np.hstack([X, gbdt_features])
self.lr_model.fit(X_combined, y)
def predict(self, query, ad, user):
features = self.extract_features(query, ad, user)
ctr_score = self.lr_model.predict_proba(features)[0][1]
return ctr_score
在线学习机制:
向海龙作为百度商业产品负责人,主导了凤巢系统的商业化设计。
广告竞价机制:
广义第二价格(GSP)拍卖模型:
┌────────────────────────────────────────┐
│ 广告主A:出价10元,质量度0.8 → 8分 │
│ 广告主B:出价8元,质量度1.0 → 8分 │
│ 广告主C:出价6元,质量度1.2 → 7.2分 │
└────────────────────────────────────────┘
排序:A=B > C
A的实际扣费 = (B的综合得分/A的质量度) + 0.01 = 10.01元
质量度体系:
收入优化策略:
收入 = Σ(点击量 × 点击单价)
= Σ(展现量 × CTR × CPC)
优化维度:
1. 展现量:扩大广告库存
2. CTR:提升匹配和创意质量
3. CPC:优化竞价机制
百度构建了多层次的反作弊系统,保护广告主利益:
反作弊架构:
┌─────────────────────────────────────────────┐
│ 实时检测层 │
│ (规则引擎 + 异常检测) │
├─────────────────────────────────────────────┤
│ 离线分析层 │
│ (机器学习 + 模式识别) │
├─────────────────────────────────────────────┤
│ 人工审核层 │
│ (案例分析 + 策略调整) │
└─────────────────────────────────────────────┘
作弊识别技术:
处罚机制:
2010年,百度开始大规模布局移动互联网,移动搜索成为首要战场。
移动搜索挑战:
PC搜索 → 移动搜索 转型挑战:
┌──────────────────────────────────────┐
│ 屏幕尺寸:19寸 → 3.5寸 │
│ 输入方式:键盘 → 触屏 │
│ 网络环境:宽带 → 2G/3G │
│ 使用场景:固定 → 移动 │
│ 交互方式:鼠标 → 手指 │
└──────────────────────────────────────┘
技术适配方案:
class MobileTranscoder:
def transcode(self, pc_page):
# 1. DOM树简化
simplified_dom = self.simplify_dom(pc_page)
# 2. CSS适配
mobile_css = self.adapt_css(simplified_dom)
# 3. 图片压缩
compressed_images = self.compress_images(
simplified_dom.images
)
# 4. JS优化
optimized_js = self.optimize_javascript(
simplified_dom.scripts
)
return self.generate_mobile_page(
simplified_dom,
mobile_css,
compressed_images,
optimized_js
)
2010年9月,百度移动开放平台正式发布,为开发者提供完整的移动应用解决方案。
平台架构:
┌────────────────────────────────────────────┐
│ 百度移动开放平台 │
├────────────────────────────────────────────┤
│ 应用分发 │ 能力开放 │ 变现支持 │
│ - 应用商店 │ - 地图API │ - 广告SDK │
│ - 搜索分发 │ - 语音API │ - 支付接口 │
│ - 推荐算法 │ - 云存储 │ - 数据分析 │
└────────────────────────────────────────────┘
核心能力开放:
手机百度APP采用了创新的Hybrid架构,兼顾性能和灵活性。
客户端架构设计:
┌─────────────────────────────────────┐
│ Native层 │
│ (性能关键模块、系统能力) │
├─────────────────────────────────────┤
│ Hybrid层 │
│ (业务逻辑、动态更新) │
├─────────────────────────────────────┤
│ Web层 │
│ (内容展示、轻交互) │
└─────────────────────────────────────┘
技术特点:
// Hybrid桥接示例
BaiduBridge = {
// Native调用JS
callJS: function(method, params) {
return window[method](params);
},
// JS调用Native
callNative: function(module, method, params) {
return window.webkit.messageHandlers[module]
.postMessage({
method: method,
params: params
});
}
};
百度在移动生态建设上进行了多方面探索:
生态布局:
百度移动生态(2010)
├── 搜索入口
│ ├── 手机百度
│ └── 移动搜索
├── 内容平台
│ ├── 百度贴吧
│ ├── 百度知道
│ └── 百度百科
├── 工具应用
│ ├── 百度地图
│ ├── 百度输入法
│ └── 百度浏览器
└── 开发者服务
├── 移动统计
├── 应用分发
└── 广告联盟
战略合作:
数据成果(2010年底): | 指标 | 数值 | |——|——| | 移动搜索日活 | 3000万 | | 手机百度用户 | 5000万 | | 移动流量占比 | 15% | | 合作应用数 | 10万+ | | 开发者数量 | 5万+ |
2006-2010年是百度从搜索引擎公司向平台型公司转型的关键时期。通过框计算、阿拉丁、凤巢三大技术体系的建立,百度不仅在技术上实现了重大突破,更在商业模式上完成了闭环。移动互联网的早期布局,为百度在下一个十年的竞争中占得先机。
关键成就:
技术积累:
这一时期奠定的技术基础,为百度后续的AI转型提供了坚实支撑。下一章,我们将看到百度如何在2011-2015年间完成平台化转型,并开始在人工智能领域进行战略布局。
下一章:第三章:平台化转型(2011-2015)
上一章:第一章:创世纪(2000-2005)
返回目录:首页