陈敏敏:大家好,我是精准化架构部门负责人,我们部门负责人还有另外一个。我讲千人千面与实时意图实践的相关东西。我们的基础化用了一些实时相关的从目前来讲,目的还是用得比较多的,我们看一下。在讲之前我先自我介绍,我主要是做推荐、营销架构方面的东西,我们也出本一本书,叫做技术内幕,也出口了台湾,在京东上面评价也是可以的。
下面进入我们的正题,我这边主要讲架构,架构我主要是从业务架构,我们推荐平台主要包含哪些东西场景方面,然后通过我们的实时意图想讲一下我们的基础架构和业务架构,但是可能讲的不全面,稍微带一点。
首先我讲讲数据怎么用,很多企业在数据采集方面可能还不是很重视,如果把数据采集做很方面,像我后面主要讲的推荐相关,它其实可以做很多东西,像广告投放,让外面更加精准华,可以做一些个性化搜索,可以调整商品的货架,更加高效,还可以做营销方面,七十从数据,挖掘出很多一些应用场景。其实我们这边主要还是从圈里,挖掘一些知识的数据,再接受一些商品、用户的一些数据,综合来做了一些应用。下面我们来看一下,我们的推荐的产品架构,一个业务架构。
我们推荐已经做两轮了,从开始的过滤,现在行业加了很多推荐方式。像我下面主要讲的,用户场景的一些信息推荐我在10月份讲,那时候用了18个相关的技术,我们也做了一些推荐。跟机构相关,因为很多用户购买这些是很明显的,特别像一些我们也挖掘了一些用户,能够等到推荐给用户。我们也挖掘出了一些TH的相关,这个主要是来解决,还有一些主题推荐也是比较流行的一个。从题目里面,可以关联到主题上面,可以跟世界相结合,一些热点。至于推什么,我们其实前期也是做了一个画像,后来我们做也是遇到了一些瓶颈,更新时间越来越短,后来也碰到一些瓶颈,当时的话,主要是想把画像更新,发现其实更新时间想要达到很好效果的话,还是很难的,一些实时相关的技术。后来架构的话,从技术层面主要是技术和应用架构像基础架构主要是在做平衡。下午我这碰到一个问题,你的办法和你的数据量,还有一个实时三者要平衡,就是说你没有办法保证这三种东西全部满足,这架构里面无论像CIP还是像别的,很多其实主要是在寻找一个平衡,它不像应用架构,应用架构一个抽象的,你把一些模块更加抽象。你很多架构是你主要考虑是一个平衡问题,把那几个点都平衡好。
我们也是在画像,遇到一些瓶颈的时候,慢慢延伸出一个用户议题。主要来捕捉用户的一些行为,给用户做一些更加精准化的推荐,也算是实时推荐一种。整个推荐算法,它其实关注东西比较多,有的是关注转换力,有些是交叉销售。tradein主要是提升用户的连续性,观点不一样像我们电商从首页到搜索页到详情页,每个页面用户行为是不一样的,有些是你要通过搜索页,根据不同的一些场景,我们可能会引用我们不同的算法,无论是主题推荐还是协同过滤,还是一些周期性能。我们这个东西到后面也会尽量调整,调整的话,代价也是比较大的,我们尽量让这个代价更少。
我们开发了一些后台系统,我们还是一号店首页,通过配置的方式,让它接入,我们这边有详情页,还有一号店的详情,它PC可以通过配置把不同的算法通过中间画像还是看的这种相似的配进来,最终生成我们这样一个栏位。
右上交通过我们后台系统配置出来的,我们像下面也是我们后台系统,我们可以让这个走画像还是走意图,过滤一些东西。可以从下面比较用户配置出来,如果走详情,有些数据比较稀缺没有商品,需要补一些,目前像一些天气也是瓦的比较齐,达到了商品身上,同时也在详情页标题也挖了相关的词,打到商品上。所以说本身商品数据也是比较全。
最后我们看一下我们的一个引擎,80页比较多,我这边先讲一个场景,后面主要讲意图。我们这边一个场景,主要是根据群体,我们会通过地址挖一些校园、小区、公司我们也做一些分析,一些学校购买的情况不一样,我们也做了一些细分,如果你是一个学生用户的话,可能你跑到一号店你可以你学校里面其他人买什么东西,把这部分群体好的东西也会推荐给你,看到你周围学校一些学生买的什么。
右下角我不是学生,我是已经工作的了,也可以看到小区旁边人买什么东西,这样的话,也达到这样一个千人千面。
像一些细节的话,像校园、公司我们也是花了不少精力,公司、小区都花了精力在做这一块。
我们再看一下后面主要的实时意图。这个是我们实时意图简单的图。我们数据两个地方,一个是从基本用户的一些浏览收藏,用户在上面做了一些行为以后,开始跟产品相关,把它转成跟利润相关,通过一些后续的服务去处理一些。
当然其实里面有个订单数据,我们也不是走的Kafka主要是推送,它的生产者是推的,它是一个推的模式。把订单接过去,也会遇到一些问题,所以说你们也可以想像,为什么我这个订单没有走入Kafka,我们用了一个一号店自主研发的,可能也是碰到了一些问题。
比较重要的,在里面实现了一些意图的计算,把那部分意图会存在里面,我们最后一个做一个实时推荐,你完成或者未完成,做一个优先排序,有会推到我们的自主研发的页面,是我们一号店自主研发的。
可能刚刚也讲到,订单也放到Kafka,它推拉模式,你拉它Kafka主要是拉取,推和拉的话,可能就像一个我反正我就推,一个像我控制速率,如果推模式,可能是一个最快,比较快的方式,但是它吞吐量也比较大,所以说像我这个订单如果没有实时的意图,可能我已经买了然后你再推这个东西,也会影响用户。像我从Kafka或者我这边也是订单高的时候,数据比较大的时候,那个时候订单已经完成了,但是你还在推订单可能会带来一些不好的商品列表。
其实像我们这边,最后一个就是实时推荐,像我们必要的,我们是把原始存在于我们一个缓存里面,这样可以更加自定义意图或者是一些数据。
这个是我们意图的计算过程,我们意图,主要也是采集了用户在网站上的使用,像他加车的时候是意图完成了一半。所以说,我们这边当用户在浏览、收藏、搜索时,我们会更新整个未完成的意图和完成一半的意图,这个更新简单的算法应该是在下面这种,我们每次用户有新的行为上来的时候,我们可能要把老的排除掉,这样会引入一个遗忘因子,可能你几天没有操作的话,可能对这个商品兴趣度慢慢变低,当我们最后在浏览、收藏的时候,完成一半和没有完成的时候,我们会更新整个商品。当这个商品和我当前模式相同的时候,跟前面的衰减,再加上我当前的意图。我当前意图浏览收藏全部不一样,浏览、收藏是14根据不同的行为,如果我这个意图,跟当前意图一样,而且跟前面也是一样的,那我可能就不用加上当前的,我只是把当前的衰竭一下,总共有三个,一个是跟当前一样,一个是跟当前行为不一样,一个是跟行为属于当前行为。遗忘因子后面会慢慢加入其他的,让它判断更加准确。
我通过意图来稍微介绍一下,技术架构,这个东西很多人也知道,一个比较常见的,最少一次、最多一次、恰好一次。最少一次消息可能会再次发送,当我最多一次的时候,我肯定要忍受系丢失的情况发生,在基础架构里面去寻找一个平衡,你怎么把这个东西平衡好,你可能要有一些业务,还有恰好一次,恰好一次实现的代价也高,目前系统也实现了,它也是目前系统里面比较拿点的个东西,一个是恰好一次,还有一个要说保证校区的顺序性,整个分布时期。
我们看一下实时框架,其实目前我们有些产品,也是随着一些业务产品上来,我们自然而然引用了一些,我们可以看到Kafka消息传递形式。我们可以看到,只是一个至少一次,如果恰好一次,要用另外一块。我们数据研发,一号店自主研发,同时实现了至少一次和最多一次。
我们来看一下一号店自主研发的列表,其实消息队列的话,开始把订单全部放在里面,是一个拉拢,我科一控制速录,像我订单我要最快时间知道,还是以推的方式比较好一点。像我们也引入了一些消息堆积,这样可以方便一些查询一些例子消息。可能跟Kafka还是有一些差距,现在消息队列也比较多,光推它就有组合,推中拉推、推中带拉这种,可能还会引入一些自己的。是我们一号店这边自主开发。
最后讲一下应用架构,前面主要是我们推荐意图里面的基础架构,最后是应用架构,跟前面不一样。还是一个抽象,怎么抽象?把一些模块,像我们意图里面把网页上各种行为,加浏览的东西,就要突出出来,比较好的,就是迭代模式,我们让它实现迭代,这样我们就可以把一些基础的浏览一些收藏的东西,可以屏蔽掉。当我需要搜集哪些商品时,我主要引入最后收藏的具体圈。我这个基础的分析,可以去实现我们迭代技术,我们具体的搜索,也会去实现相对介绍,具体的细节会在某一个收藏浏览里面实现。这样的话,让它更加抽象,我们后面也引入了不少一些应用架构,设计方面的东西,可能今天我就是稍微抛砖引玉讲一下,主要讲架构这个事情。架构从业务到基础到应用,我们这边可能都会涉及到一点,通过这个数据来阐述一下。
我这边差不多了。
8月30日下午,由七牛公司主办的主题为“数据重构未来”的“七牛·数据时代峰会”在上海国际时尚中心继续举行。一号店精准化部门架构负责人陈敏敏就一号店电商大数据的应用发表了自己的精彩观点,以下为现场实录: