大数据相关业务

来源:互联网 发布:罗斯科的画 知乎 编辑:程序博客网 时间:2024/05/17 08:01

搜索引擎

Google三驾马车GFS,MapReduce,Bigtable初衷就是用于搜索领域。

1.搜索引擎涉及以下3部分:

1).爬虫——数据收集中心,一个互联网世界的缩影
2).索引系统——分析整理爬虫收集到的资源,为检索系统提供数据
3).检索系统——从预处理好的资源里挑选出用户最满意的结果最快最好的展现

2.架构图:

这里写图片描述

这里写图片描述

3.基于MapReduce的建库系统(建库流)

• 目的:建立供检索使用的索引和摘要
• 输入:网页
• 输出:索引和摘要
• 处理:多轮map-reduce
• 页面分析和处理(parser-extractor)
• 页面属性小库输出(splitter)
• 小库正排转倒排(invert-index)
• 小库合并大库(index merge)

这里写图片描述

4.快速判重— —布隆过滤器(Bloom Filter)

• 由一个很长的二进制向量和一系列随机映射函数组成
• 布隆过滤器可以用于检索一个元素是否在一个集合中
• 优点是空间效率和查询时间都远远超过一般的算法,缺点是有
一定的误识别率

1). 给定数据(2,4,1,12,9,7,6)如何对它排序?
(1).方法1:基本的排序方法包括冒泡,快排等。
(2).方法2:使用BitMap算法
所谓的BitMap是一个位数组,跟平时使用的数组的唯一差别在于操作的是位。首先是开辟2个字节大小的位数组,长度为12(该长度由上述数据中最大的数字12决定的),然后,读取数据,2存放在位数组中下标为1的地方,值从0改为1,4存放在下标为3的地方,值从0改为1….最后,读取该位数组,得到排好序的数据是:(1,2,4,6,7,9,12)。

(3). 方法2的问题:
• 当数据类似(1,1000,10万)只有3个数据的时候,显然用方法2,
时间复杂度和空间复杂度相当大,但是当数据比较密集时该方法就会显
示出来优势。
• 下一个问题?(对有重复的数据进行判重?)
• 2,4,1,12,2,9,7,6,1,4

2).Bloom Filter
• 需要的是一个位数组(这个和位图有点类似)和k个映射函数(和Hash
表类似)
• 布隆过滤器的误判率和这k个映射函数的设计有关
• 布隆过滤器在很多场合能发挥很好的效果,比如:网页URL的去重,垃
圾邮件的判别,集合重复元素的判别,查询加速

广告系统

这里写图片描述

• 搜索广告点击计费(CPC)
• 展示广告展现计费(CPM)
• 淘宝客(CPS)

1.搜索广告

这里写图片描述

这里写图片描述

1).
(1).搜索广告
• 参与的三方:网民、广告主、搜索平台
(2).广告触发:keyword Targeting
• 广告主和网民通过关键词表达需求
• 网民输入的query和广告主购买的keyword进行匹配
(3).CTR预估:机器学习
• 点击率用于广告的排序和推左
• 保护网民的利益和提升搜索引擎的收益
(4).广告排序:关键词广告拍卖机制
• 每一次的广告展现都是一次动态的拍卖
• 排序函数:ctr*bid

2).
(1).Query Analysis
• 纠错、同义变换、改写
• 切词、提取主题词
• 意图分析
(2).User Server
• Cookie
• Session

3).
(1).Broad Match Sever
• 实现宽泛匹配
• 宽泛匹配的相关性很重要
(2).Index Server
• 实现精确匹配、短语匹配
• 各种业务过滤功能
• 查找广告倒排索引
(3).Ad Server
• 正排表查找广告物料:创意标题、描述、 URL

4).
(1).CTR Server
• 实现CTR预估功能,输入

2.淘宝广告系统简介

这里写图片描述

推荐系统架构

1.NetFlix推荐架构

这里写图片描述

这里写图片描述

• 界面UI那一块包含3块东西:1) 通过一定方式展示推荐物品(物品标题、
缩略图、简介等);2) 给的推荐理由;3) 数据反馈改进个性化推荐;
• 关于用户数据的存放地方:1)数据库/缓存用来实时取数据;2) hdfs文
件上面;

2.三种推荐方式

这里写图片描述

这里写图片描述

推荐引擎的构建来源于不同的数据源(也就是用户的特征有很多种类,例如统计的、行为的、主题的)+不同的推荐模型算法,推荐引擎的架构可以试多样化的(实时推荐的+离线推荐的),然后融合推荐结果(人工规则+模型结果),融合方式多样的,有线性加权的或者切换式的等

3.HULU推荐架构

这里写图片描述

4.优酷推荐架构

这里写图片描述