设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

你是如何被微信广告选中的?微信广告引擎与社交传播算法实践(5)

发布时间:2017-09-01 14:08 所属栏目:19 来源:InfoQ
导读:前面我们已经知道了两个好友对自己的影响,那么多个好友又是如何互相影响呢?这里我们就引入了传播力模型来对这个问题建模求解。 传统的影响力模型有许多种,这里我列了最为常见的独立级联模型。它的原理是这样的,

前面我们已经知道了两个好友对自己的影响,那么多个好友又是如何互相影响呢?这里我们就引入了传播力模型来对这个问题建模求解。

传统的影响力模型有许多种,这里我列了最为常见的独立级联模型。它的原理是这样的,一个用户每个好友都对自己有一个影响力,这个影响力可以用前面我们提到的方法计算出来。初始时刻,已经有一些人是被激活的,这些人就是种子用户,具体的选择我后面会说到。然后,一个用户的每个已经被激活的好友,根据他们之前的影响力去计算一个激活概率,轮流去激活该用户。这样子迭代下去直到每轮没有新激活用户位置。

传统独立级联模型直接应用会存在图中说的一些问题,所以改为上图中下面的形式(示意),但这样直接做还会存在工程上的问题。主要在于广告系统的时延要求是十分低的,假如用户有 5000 个好友,分布在几百台存储机器上,要在 20ms 内读完,这几乎是不可能完成的事情。

那么这种读扩散的方式不行,我们就换一个思考,采用写扩散的方式。当用户的一个点赞评论数据接收到之后,我们放入消息队列之后,然后社交扩散模块取出,根据关系链,权威度,传播力在内存中计算他对每个好友的影响,然后再告知所有好友这个信息。但是,假如是一一告知,5000 个好友就要 5000 次网络调用,这个开销也是接受不了的。所以,我们会根据路由规则和机器列表,将属于一台机器的用户合并起来写入,最小化网络调用。

完成这些之后,当一个用户来拉取广告时候,只需要一次网络调用,就可以拿到好友对他的影响力了。

注:目前为了引入更多的特征做实时推荐,我们已经将上面架构改为基于图形数据库的形式,架构上更加复杂和巧妙,之后会有文章专门再介绍。

社交传播节奏控制

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读