2012总结

我想写些有营养的东西。

2012年我主要在做两个项目,一个是网站联盟,另外一个是页游平台。按顺序介绍一下。

(1)网站联盟

大家都知道网站联盟主要是为一些中小企业和中小网站解决做广告和投广告的问题,比如我们熟知的Google Adsense。但是,我们很少思考背后的一些经济学原理,为什么它能work?为什么这个模式能为Google创造数以百亿计美元的收入?

我们先从一个比较有趣的例子讲起。不知道大家平时有没有“落pub”(白话,就是去酒吧的意思),有一些比较出名的pub,它会偶尔举行一种叫“Lady’s Night”的party,这次去台湾的西门町也有一间。这种party只要求女士穿上小礼服,或者比较性感的服装,就可以进去免费享用酒水,而男士则需要支付一笔比较高的费用,才能进场。接下来一件神奇的事情发生了,美女们会被免费的酒水吸引进来,而男士们则为了认识美女,纷纷慷慨解囊,这反过来又会吸引更多的美女来找高富帅。最后的结果是,酒吧的老板每天躺在床上数钱,他只要定期(不能太频繁,会失去新鲜感)举行这种party,就会有白花花的钞票滚进他的房间。

为什么举这个例子?其实这跟网站联盟的模式是如出一辙的(如果用它的搜索广告来类比,会更贴切)。网站主(女士)来赚广告费(免费的酒水),而广告主(男士)则通过支付广告费(入场费)来物色理想的推广渠道(美女)。越来越多的网站加盟会吸引越来越多的广告商进驻,而越来越多的广告商进驻反过来又会吸引越来越多的网站加盟。

我们把这种市场,称作“双边市场”。这里我不给出严格定义,有兴趣的同学可以自行wiki。Google的这个模式,由于实现了高度的自动化,直接成本只有服务器等硬件的添置,间接成本是系统的研发费用,而吸纳广告商和网站的边际成本几乎为零。它就如同印钞机一般,每天为其带来大量收入。其实我们发现,很多互联网的产品,都是双边市场的产物,我们熟悉的还有Yahoo、Facebook等。

要做好一个像Google Adsense一样的网盟,是非常难的,下面的这些工作,是我参与的,并且是比较主要的方面,这里稍微总结下。

第一,智能广告。这里主要是通过计算网站与广告的相关性,推送最匹配网站内容的广告。一个网站多多少少会有一些文字,就算是flash网站,网站主要也会通过往header里增加keywords和description,来实现SEO。我们利用统计语言模型,对这些文字进行分词,并归一化处理(TF*IDF),得到一个描述网站的向量。广告方面,我们可以为每种广告素材定义一组关键词,这些关键词应该是最能够描述广告的内容(或者跟广告的目标用户有关)。通过计算网站的向量与不同广告关键词的相关性,并排序,就可以确定应该推送什么样的广告。有的同学会觉得,用户可能需要自己选广告,智能广告的做法不一定符合用户的需求。在这里,我可以很肯定地跟大家说,就算我们不用相关性匹配算法,只是随机推送,这个推送过程也是需要我们来控制,而不是用户。原因在于,在实际情况中,绝大部分商家是有广告预算(budget)的,他们会考虑广告对销售比率(advertising-to-sales ratio,即负的需求广告弹性和需求价格弹性的比率),来决定广告单价以及预算。当一个广告的广告费用完了,我们就不能再推送这个广告了。如果是用户选广告,会变成什么样?他面临的问题将会是经常看到广告404(无法显示),而需要频繁地登陆系统来更换广告,这是不合理的。说到这里,其实我们需要拓宽一下智能广告的外延,它不仅仅要控制广告的匹配,还要控制广告的投放节奏。这就需要我们实时统计所有服务器上的广告展示和点击数据(在一个分布式的系统里,同一广告的数据可能散落在不同的机器上),并做好预估。这个工作由我的两个同事完成,这里不展开了。

第二,广告反作弊。这是一项重要而困难的工作。为什么重要,因为商家做广告是为了提高销售额,而那些作弊的展示点击,是没有任何广告效果的。这种靠机器或人为的欺诈流量不但对广告主的利益造成极大的损害,还会最终破坏整个经济系统。为什么困难,因为作弊对于我们来说,基本上是个黑盒。你无法直接观察到谁在作弊,也无法证明谁在作弊(尤其是作弊的量),每个网站都会认为自己没有作弊。我们只能依靠一些数据,一些empirical的准则来“猜测”某个网站可能在作弊。另外,关于广告反作弊的做法,在业界是个并不公开的技术。作弊与反作弊是个博弈的过程,决定了这方面的资料(尤其是细节)非常难搜索得到,只能靠我们自己不断地摸索和积累经验。通过一些规则和阈值检测,可以把一部分明显作弊的网站揪出来。但要做到有效的话,我至今仍然无法做担保。后来曾经尝试过把一些机器学习的方法运用到反作弊的程序,但我必须承认,效果并不理想。如果说传统的人工指标能达到60分,那么机器学习的方法最多只能得61分。应该说,是我对作弊的特征和维度掌握得不够充分,光有算法其实干不了什么事。

第三,流量商系统。这个子系统的由来其实又要从另外一个东西说起。在台湾,7-eleven和星巴克是同一个老板,都属于统一集团。很多地方,你会看到它们是挨在一起建的,并且两家店的前面摆上一堆桌椅,供客人品尝咖啡和食品。他们的咖啡原料是一样的,而你在7-eleven买的咖啡,可以拿到星巴克那边坐下来享用,反之亦然。接下来注意了,重点是这里——7-eleven的咖啡要比星巴克的便宜很多。

我们知道,所有商品的定价策略都有一个共同点,那就是攫取消费者剩余。每个消费者,他对同一个商品(注意,是同一个)愿意支付的价格是不一样的。比如说同样一杯咖啡,有的人愿意付50元,有的人觉得30元都有点贵。假如这杯咖啡的成本是20元,你会怎样为它定价?显然,我们可以统一定价为30元,这样绝大部分的人都购买得起,我能从每个人身上赚到10块,虽然不多,但薄利多销,也还行;你也可以选择定价为50元,这样我就能从购买的人身上赚到30块,但问题是会损失一部分不愿支付高价格的客人。更好的方法是什么?我可以对愿意支付50元的客人定价为50元,对只愿意付30元的客人定价为30元,这样我就能从两类客人中赚取最大的利润,实现利益最大化。

这就是7-eleven和星巴克的定价策略和商业秘密。实际上从消费者走进7-eleven或者星巴克开始,商家就已经把他们区分成两类的消费群体,一类是只愿意支付低价格的顾客(7-eleven),另外一类是愿意支付高价格的顾客(星巴克)。这个事情,大部分顾客本身并不知情,他们会觉得进星巴克买咖啡显得小资一点,而进7-eleven则显得平民化一点。商家利用这个心理因素,对两边的同一种商品(咖啡)实行差异化的定价,从而谋取最大的利润。这种定价策略,我们称之为“价格歧视”(实际上价格歧视分别有3种类型,有兴趣的同学可以自行wiki)。

回到流量商系统,其实我们做这个事情的目的也是一样的。在原有联盟里面,我们对广告(主要是游戏类)实施的是统一定价,无论按点击还是展示。相对其他的一些联盟来说,这个价格确实不具备竞争力。这样子,很多比较不错的流量商(有大型网站,也有其他一些三方联盟)不愿意来我们联盟投广告,或者投两天发现收益不好,就流失了。我们为了买这些比较好的流量,实际上需要支付他们一个更高的价格。通过这样的手段,我们就区分出相对较好和相对一般的流量,并且在流量商的群体里,通过不同的合作方式(包月,按效果,按流量),进一步实施差异化的广告定价策略。后来这样的价格歧视手段,还被用到普通站长(相对流量商而言,原来模式下产生的称之为普通站长)那里,例如通过活动的方式,对推广效果比较好的网站实施佣金翻倍的政策。

不过,这样的做法也是有很多问题的。首先,站在生产者的角度看,购买流量商的边际成本相对高很多。我们在跟流量商合作的时候,实际上是人工维护的。所以每销售一份广告单,都需要消耗一定的人力成本,并且整个合作期,都需要人工维护,直到合同结束。这是一笔无形而又不小的开销。另外,随着业务的发展,我们发现流量商除了在价格上与普通站长有差异,其他大部分东西,都与普通站长大同小异。所以最后的结果是,我们为了实施价格歧视,几乎重新做了一套完全一样的网盟系统。这样的做法不但耗费开发资源,而且在两个系统有业务交叉,数据错综复杂的情况下,还大大增加了技术的维护成本,其系统复杂度也是可想而知。

说到这里,我想插一个话题。实际上我们一开始的目标是做一个有一定规模的网站联盟,不一定说能做到跟百度联盟竞争的程度,但希望有一定的市场占有率。但实际做了之后发现,按点击付费的联盟广告市场我们根本做不起来。马太效应告诉我们,一旦市场被某个一家独大的企业占领,那么后来者基本上是没什么机会了,只能沦为长尾。按7:2:1的比例划分,70%的是大哥,20%是二哥,其余的加起来大概只能占到10%,CPU市场就是这样一个典型的分布。因为大哥已经把问题解决得很好,市场本身不是个蓝海(这个阶段大家都在争相解决问题,而没有一个人能很好地解决),甚至红海都已经过了。那些市场的后来者,没有解决新的问题,没有创造新的价值,是不可能占到哪怕一丁点有意义的市场份额的,最后的结果只能退出。这也是我们网盟从一开始的以流量为目标,后来转向以ROI为目标的根本原因,实际上是退出竞争市场,重新回到营销推广职能的无奈之举。

网站联盟的部分就总结到这里吧,当然,除了上面提到的,还有很多细节方面的工作需要处理,为了避免流水帐,这里就不展开了。

(2)页游平台

接下来简短地说一下一个新的项目,页游平台。去年的11月到现在,我在这个项目上的主要工作,包括系统的设计,前台所有的功能,还有推荐系统的研发。从功能上来说,这个项目其实主要做的是一个导航网站,用户(页游玩家)来到我们平台,我们为他免费提供游戏排行和推荐,开服信息,礼包领取等服务,而客户(页游运营商)则需要支付相应的广告费用,来购买这些用户的注意力。所以说到本质上去,这也是一个双边市场。如何给用户推荐他喜欢的游戏,吸引用户点击游戏链接,可以说是新项目最需要解决的一个问题。

一般来说,推荐算法有分好几种。最简单的,我们按照受欢迎程度排序。那就是,哪些游戏最多人点击,最多人关注,我们给用户推荐。这种推荐方法在很多情况下还是很work的,因为大部分用户都喜欢关注热点。新闻是一个典型例子,无论对足球是否热爱,在世界杯举行其间大部分人还是会更多关注这方面的报道。当然也有不work的时候,比如国内某个以卖书起家的B2C电商,就经常给我推荐热销书,像《别告诉我你懂PPT》这类。而实际上我在那里买的书主要以技术和学术为主,偶尔买一些关于技术哲学或者创业的书,但从来没购买过一些教大家实用技能的书。这样的推荐会让我感觉有点突兀。所以按热门程度推荐的问题就是,你无法挖掘每个用户的持久兴趣,因而无法做个性化的推荐。

在业界,做推荐系统一般分两个方向。第一个我们称为“基于内容推荐系统”(Content-based system),这种方法主要做的事情是将物品(item)划分成若干个维度,比如以电影来说,它有导演,题材,演员,类型甚至各种不同的标签,这么多个维度,我们需要根据用户过往的喜好,推荐相关程度高的电影。比如用户看的电影很多都是周星驰主演的,我们给他推荐更多的周星驰电影;用户喜欢看动作片的,我们给他推荐更多的动作片,成龙的,李连杰的,都可以。这个方法也很work,主要工作是找到这些item的特征向量,计算相关性。不过也有个不足的地方,就是它无法发现一些隐蔽的关联性。最典型的例子,就是啤酒与尿布的市场营销案例,啤酒与尿布这两个风马牛不相及的物品,你无法从表面找到它们共同或相似的维度,但放在一起却能增加销售。

说到这里,就要引出另外一种推荐系统,我们称为“协同过滤推荐系统”(Collaborative filtering system)。这种方法主要是通过统计大量用户的行为(如点击,购买),建立“用户-用户”模型或“物品-物品”模型,再运用相似性算法做推荐。这种推荐系统能够很好地挖掘物品的潜在相关性,从而能够做出更出色的推荐。就以上面的啤酒与尿布为例,大量的统计记录显示,男士在帮妻子购买尿布的同时会购买啤酒,这就是一种潜在的相关性,我们无法从物品本身的属性来找到这样的相关性,而需要从一个侧面——消费者的行为,来做挖掘。Amazon的商品推荐用的就是“物品-物品”协同过滤算法,而Google News则是在这个算法的基础上,增加了Information filter的工序,使得推荐能够适应新闻的实时性。

页游平台的部分就到这里吧,不往下写了,再写就变成一篇分享了。

2012年是成长的一年,虽然中间经历过一些事情,情绪上有些波动。但静下心来思考,确实学到了不少东西,因为我有机会去做一些竞争性市场的产品(起码原来是)。这点是非常重要的,为什么?因为只有做竞争性市场的产品,才可能让一个人变得优秀,才可能让一个人高速成长,独当一面。如果只是做内部系统,职能性或者辅助性的系统,那么,我毫不忌讳地说,连这个可能性都不会有。做职能性系统的最大问题是,你能产生的市场很大程度上依附于你服务的产品,你能发挥的空间非常小。举个例子,我们做活动,活动的成功与否很大程度上依赖于产品本身的受欢迎程度,跟你的能力绝对没有多大关系。只有接触真实的市场,你才会不断看到自己的不足,不断改进,不断寻找正确的方向,做正确的事情。



2013年1月