当前位置:聪少自媒体网 > 今日头条 > 正文

今日头条用户定向预估的实现方案

2020-10-05 今日头条 聪少自媒体

hello2018?LV22楼

首先这个问题比较有深度和思考。这里回答下。

首先直接回答楼主的问题:

1.采用的是什么存储

这个相信我们都知道大数据,那么头条的数据,相信没有阿里的多,既然阿里使用大数据框架都没有问题,所以头条也没有问题。那么它用什么存储这个也只能猜测,不出意外,肯定是用的hadoop相关组件,比如hbase或则hive。这二者可能都用到了。比如数据仓库hive用来存储多维度数据。

2.快速查询,楼主可能所说的应该是为什么能快速的推荐。这个他们有自己的推荐算法。

 今日头条的个性化推荐算法原理  如上图,有3篇文章,让3个用户投票(注:这3个用户是一类人,有相同属性(喜好和偏好)),那第4个用户应该被系统推荐的文章是那篇呢?第4个用户与前3个用户都是一类人,答案显而易见是第一篇文章。  没错,今日头条的个性化推荐算法原理就是基于投票的方法,其核心理念就是投票,每个用户一票,喜欢哪一篇文章就把票投给这篇文章,经过统计,最后得到结果很可能是在这个人群下最好的文章,并把这篇文章推荐给同人群用户过程就是个性化推荐,实际上个性化推荐并不是机器给用户推荐,而是用户之间在互相推荐,看起来似乎很简单,但实际上这需要基于海量的用户行为数据挖掘与分析。

那么他们的推荐具体用了哪些技术,如下图,首先需要有数据,然后各种处理

处理之后,在推荐系统中应用为什么那么快,其实如下,这些使用hadoop离线处理,对于过去信息处理,如下图。

当然相信也有实时处理,他们使用的是storm

昨天?20:48?

erbin?楼主?LV23楼

hello2018 发表于 2018-4-25 20:48

首先这个问题比较有深度和思考。这里回答下。

首先直接回答楼主的问题:

1.采用的是什么存储

我上面的表述可能不是很清楚,我说的是头条的广告投放后台系统,面向广告主使用的,支持广告主选择不同的用户定向组合进行投放广告,比如 男+北京+华为手机,并且根据广告主选择的定向组合条件实时给出头条能覆盖的人群数。

我的问题是 头条如何实现这个功能的?如何存下千万级(可能更多)的定向组合?或者是否需要存下所有的定向组合?又如何支持秒级的查询?

昨天?20:56?

hello2018?LV24楼

erbin 发表于 2018-4-25 20:56

我上面的表述可能不是很清楚,我说的是头条的广告投放后台系统,面向广告主使用的,支持广告主选择不同的 ...

这个原理首先对用户有多少,是可以事先统计好存储下来:比如男+北京+华为手机,这个例子,我们事先统计好男有多少用户,北京有多少用户,华为手机多少用户。这些用户数量都是固定的,然后条件组合,其实就是过滤的过程。由于这方面的技术头条并没有说,这里猜测如下:这里面有两个办法实现1.把所有的组合条件,都计算好,实现存储。

男+北京+华为手机这是一个组合,也可以视为一条记录

女+北京+华为手机这是一个组合

相信组合加起来也就是几百条或作上千条。

如果是这样实现的话,那就太简单了,因为这只是在数据库中查询一条数据记录而已。关系数据库就可以实现。这个效率那肯定也是相当的快。

唯一存在的问题就是,可能数据有所增减,不过这个也没有关系,修改量如果是实时的改变也不会太大。

2.第二个办法,也就是楼主认为的办法。

我每一个组合,都需要亿万条去统计,那么它是如何实现查询的,为什么这么快。

其实第一种方案,感觉效率更高。

对于第二个方案,如果每一个操作都去遍历查询,那么这个计算太惊人了,反映很快,这需要相当的技术。当然也是可以实现的。比如百度,谷歌查询,我们输入条件,毫秒级就可以出现结果。

hbase+es或则solr也可以实现。特别是如果rowkey设计好,应该也是可以的。

昨天?22:03?

erbin?楼主?LV25楼

hello2018 发表于 2018-4-25 22:03

这个原理首先对用户有多少,是可以事先统计好存储下来:比如男+北京+华为手机,这个例子,我们事先统计好 ...

谢谢你。组合条件里有一个是用户的装的App。也就是说我输入若干个App,需要返回装了其中任意一个App的用户数,这个组合数很大啊。或者这个能通过事先预计算搞定吗?

10?小时前?

willgo?LV36楼

三种方案:

1. 预聚合优点:线上查询响应快缺点:维度组合不能太高,预计算压力大,实时数据难以处理 比如:kylin

2. 明细查询优点:维度可以任意组合,处理实时数据难度相对较小缺点:线上查询压力大比如:palo/clickhouse/这类

3. 采用抽样估算处理 优点:查询速度快缺点:存在误差类似Google Analytics中的处理

广告主投递客群预估,只是一个量级预估,感觉第三种方案更靠谱头条怎么搞的就不知道了 哈哈。。。

10?小时前?

fly2015?LV47楼

我就知道这种方案 适合kylin但是实时更新确实做不到

8?小时前?

hyj8楼

willgo 发表于 2018-4-26 09:39

三种方案:

1. 预聚合优点:线上查询响应快缺点:维度组合不能太高,预计算压力大,实时数据难以 ...

大神能否详细说说,指教,预聚合,这个是指?

广告主投递客群预估,只是一个量级预估量级预估是指?

5?小时前?

erbin?楼主?LV29楼

fly2015 发表于 2018-4-26 11:51

我就知道这种方案 适合kylin但是实时更新确实做不到

kylin预计算的确查询速度快,不过这个场景下维度组合有点多啊。

3?小时前?

erbin?楼主?LV210楼

willgo 发表于 2018-4-26 09:39

三种方案:

1. 预聚合优点:线上查询响应快缺点:维度组合不能太高,预计算压力大,实时数据难以 ...

这个定向预估一定的误差是可以接受的,毕竟展示给客户看的也是到万级别了。不过抽样统计在这种大量条件组合的情况下能适用吗?不是很了解这个抽样的具体方式。转:

http://wsq.discuz.com/?siteid=264104844&c=index&a=viewthread&tid=24415&source=pcscan

聪少爱学堂聪少
聪少爱学堂创始人,梅州市鹏鑫网络科技有限公司CEO,09年开始踏入互联网,10年互联网行业经验,资深自媒体人,自媒体优秀导师,咪挺微商团对营销引流顾问,业务包含:精准引流技术/代引流精准粉,专业小红书,知乎,微博代运营。
  • 38988文章总数
  • 1491135访问次数
  • 建站天数
  • 合作伙伴