2016 年 11 月 18 日- 20 日,由 CSDN 重磅打造的年终技术盛会 —— “2016 中国软件开发者大会”(Software Developer Conference China 2016,简称 SDCC 2016)在北京京都信苑饭店隆重举行。本届大会云集了100多位国内外顶尖专家和技术大牛,共设新趋势和新实践2大主题会场,14个技术专题。面向国内外的中高端技术人员,聚焦最前沿技术及一线的实践经验,助力企业的技术升级和改造、全面提升技术人员的综合实力。
ThoughtWorks中国区CTO徐昊、Erlang之父JoeArmstrong、华为PaaS首席系统工程师俞岳、一点资讯算法总监王元元等参会并做主题演讲。
他表示,个性化分发时代,基于海量数据的机器学习算法让分发效率显著提高,但往往算法提供的内容对用户的价值并没有相应的提高,一点资讯通过全球首创的“搜索+推荐”兴趣引擎沉淀高质量内容,并使用机器+人工的“人机智能”技术引领价值阅读,从而实现用户体验的提升。
以下为演讲的节选:
大家好,今天很高兴能够站在这里跟大家分享一点资讯对内容分发的一些想法。人工智能在整个内容分发行业,正在发挥越来越重要的作用。目前,一点资讯的DAU日活达到4800万,用户日均阅读20万的文章。在这如此大规模的日活和用户操作行为下,我们收集了海量的用户数据。这些数据也构成了利用人工智能技术提升内容分发效率的重要的数据基础。
流量时代追求效率背后隐藏着价值危机
从传统门户时代演变到现在算法驱动的个性化分发时代,流量是不变的主题。无论是流量获取,还是流量变现,效率始终是这场流量战争中的关健。
从过去的实践中可以看到,随着用户规模的不断增加,我们使用的算法,包括特征和模型的复杂度不断地提升,可以明显地看到一点:用户的使用时长,包括次日留存率,都有一个非常稳定的上升过程。效率可以被我们定义的各种各样的数据指标来描述,比如点击率、停留时长。这些指标在一定程度上反映了用户的满意度,但是这些指标与也经常与用户体验背离。事实上,我们很难去获取用户对当前向其分发的内容的全面感受,这是算法需要优化但又看不到的目标。
迎合人性弱点的算法推荐不利于内容价值延伸及用户留存
这个给我们的启示就是,我们需要做一个更有价值,对于用户来说更容易满足它多元化需求的产品,不仅包括有趣、有料的爆点内容,也包括有用、有品的细分内容平台。
那么是什么原因导致算法在获得效率的时候巨大提升,同时带来了价值的降低?
影响算法结果的最根本的两个要素是数据和目标。
先从数据谈起,海量数据来源于用户与内容的交互行为,海量数据不一定意味着特别高的价值,如果我们每天仅提供几十篇最热门的文章,基于一点资讯上的2.9亿用户,这也会产生海量的数据。但仅基于这些数据,效率提升的天花板非常明显,再怎么优化,用户关心的就那么几条内容。在整个优化过程中,我们需要不断引入各个领域的专家、专业知识,引导用户生成更具价值的数据,再通过算法或者模型学习到这些价值,再提供给用户。除了专家知识,也需要积极引导用户表达兴趣,完全基于人性弱点的被动反馈往往很慢也很获取到用户真正的兴趣,综合考虑了短期成本和长期收益的满足和试探机制,是增加海量数据价值的又一关键。
算法的第二个要素是它学习的目标。算法特别擅长优化单一指标,比如点击率,但事实上用户对内容有多种反馈,比如停留、分享、收藏等,当然还有一些负向的反馈,比如“不喜欢”、“踩”,甚至投诉。一个标题党的文章往往有很高的点击率,但它的不喜欢,踩也很多,只优化点击很容易让标题党泛滥,结合多种目标同时优化可以显著降低标题党的流行程度。
另外,算法容易预测短期指标,难以预测长期指标。长期留存率是个特别好的优化目标,但基于当前数据你很难预测准。单纯优化短期指标,会带来短期流量的显著增加,但用户的次日或者7日留存不一定能有相应幅度的提升。而将长期的指标拆解成一些可优化的目标或者目标序列则是解决长期指标优化的关键。还有,现在大部分情况下,业绩追求的是用户指标的优化,但是内容平台是一个非常庞大的生态系统,尤其在自媒体的加入并参与后。如果只考虑用户,忽略了自媒体作者的话,很容易造成劣币驱良币,好的写手不再发文,伴随而至的,是有多元化需求的用户也会慢慢流失,最终系统留下的可能就是一些忠诚度较低的用户。
充分利用海量数据和专家知识提升效率和价值
一次推荐一般需要经过召回,排序,策略几个阶段,召回是指从特别大的一个内容候选集合中挑选出用户可能感兴趣的文章,排序需要对这些用户感兴趣的文章做精确的估计,判断用户的点击可能性,策略阶段更多从用户的体验出发进行的一些规则控制,在排序阶段我们更多的关注是提升我们的效率,在召回阶段需要更多的考虑价值。
一点的排序模型最早使用的是基于海量动态特征的GBDT,GBDT没有特别好的实时更新方法,我们使用了实时的动态特征来弥补这一点,动态特征更新非常容易并行,使用也非常的方便。除了更新慢以外,GBDT的特征维度不能太高,这对GBDT的特征工程有了更高的要求,在GBDT里面实现的特征大部分都是一些基于动态特征组合而来的超级特征,不能使用大量的ID特征,这非常不利用精确捕捉和区分一些长尾信号。
为了解决这些问题,我们开始使用了基于大规模离散特征的在线逻辑回归,之前放在动态特征里面的组合特征直接作为模型的特征实时进行更新,从效果上看,尤其在点击率这块,提升还是非常显著的。这两个模型或者说原始的特征最终被我们融合在一起使用,融合的方法我们也经过了一些的摸索,从简单的线性组合,到将GBDT的叶子节点特征加入在线线性模型,再到利用DNN直接将GBDT使用的超级特征,一些重要的ID特征embedding表示,和海量的交叉特征一块使用,超级特征和一些embedding特征先经过几层的神经网络充分交叉,最后再与海量的交叉特征放在一块做出最后的预测。
算法还需被动反馈和主动引导相结合
第一个问题,我们需要试探的的兴趣一定是目前不确定性最大,确定以后又对用户的收益最大的兴趣,我们结合了自顶向下和顺藤摸瓜的策略,根据整体人群画像的特点训练了这样的一个试探模型;第二个问题,我们优先选择了在兴趣区分上信息增益比较大的内容;第三个问题,我们用经典的linUCB来平衡试探的收益和代价,事实上,我们可以按照用户切分流量,使用所有的用户行为,独立更新每个用户的兴趣偏好。
今天我的演讲就在这里,现在我们整个内容分发行业,很多公司都在做同样的事情,有很多的方法和技巧。在现阶段,我们在关注流量本身的同时,需要更多的关注流量的构成,思考如何能够提供给用户更多元,更有价值的内容。谢谢大家!