@buptzym
2016-05-09T07:33:47.000000Z
字数 2547
阅读 2550
性价比最简单的定义,是性能与价格的比值。性能越好,价格越低,性价比越高。
价格是相对容易衡量的,通常指金钱。当然广义的成本还包括购买的时间和精力成本。但网购极大地压低了后两者的成本,因此我们认为价格就是金钱。
性能却难以衡量,因为不同的人对产品的需求不同。如产品的实际功能,品牌溢价,附加属性。打个比方,一块机械表售价高达几十万,可能还没有路边几十块钱的电子表更准确。
因此,不同门类的性价比比较是没有意义的,我们就只考虑同一门类,两件商品的性价比。
如何评估正确性?将其挂在网上,做A/B测试,购买者多的产品,性价比更高。
从上面的定义和测试规则可以看出,性价比高的产品,就是同一类目的两个产品,在曝光程度一致的情况下,销量大的那款。
影响产品销量的因素有三种:用户,卖家和买家。现实情况远比理想的要复杂。卖家可能会通过促销手段大量打广告,从而获得更高的关注度;也可能恶意刷单,从而将销量排在前面引起人们注意。
例如:A,B俩个不同款的钢琴,A打了广告,3000万人曝光看到,最后销量10万,B没打广告,5万人通过搜索找到,最后销量4万。显然B的销量更好一些。这是一种典型的“点击偏见”(Click Bias)”。
因此,为了保证得到纯净的训练数据,还需要做以下的努力:
识别虚假刷单行为的方法超过了本文讨论的范畴,但广告转化率是相对容易获得的。
因此,我们一般能获取到该商品的广告投入,但如何求相同广告投入下的单位销量呢?直接相除是不行的。否则投入100元广告的产品,要比没有投入广告的产品,单位销量大了无穷倍。
此处可以考虑一个下面的曲线:

因此,对不同的门类,我们能够估计出两个点A,B,在AB之间的广告效益是线性的。因此可以直接相除。另外,广告对广告出现之前的销量没有贡献,而其贡献也会随着时间指数形式衰减。
我们还没有考虑到,商家对某一品牌做的长期广告投入,这很难量化,但这种投入已经蕴含于品牌溢价中,可以作为产品性价比的一部分。
因此我们考虑一个时间窗口内,将该产品的销量,归一化为同一广告投入下的销量。
另外,如果广告投入难以量化,但广告投入可以排序时,我们就能借助搜索引擎的一些方法:如果A链接比B靠前,而B的点击量比A多,那么B和A形成了点击偏置,那么就可以将这样的“偏置对”作为训练数据。
假设我们有网购平台上的全部信息,包括用户的点击日志,翻页行为,购买记录。
这是一个有监督的学习过程。但这是回归还是分类问题?
如果是分类问题
如果仅需对两件产品,分析其哪个性价比更高,这是典型的分类问题。但如果有很多商品,两两比较的复杂度是否可以接受?
如果是回归问题
如果用回归模型,则可以做出性价比的数值评估,那么很多个产品的性价比,直接比较即可。
而从这个问题来看,回归模型其实是预测销量。
但回归模型对商品的属性依赖很大,母婴类的模型,不能直接迁移到数码类上。反而把问题复杂化了。
如果是排序问题(2016.5.8修改)
排序是另一种机器学习的目标,它比回归要弱,因为不需要输出准确的性价比值,但比分类要强,排好序之后,两个商品的性价比直接比较即可。
排序是需要设计一个模型,使得当ABCDE的顺序发生错乱时,引入loss代价。通过模型的训练,将多个候选商品的“排序特征”输入排序模型,经过模型预测,返回商品的排列顺序。
例如电脑内存,CPU,硬盘,显存容量等能够量化的指标,产品本身的上架日期,产品类型,也可以直接作为重要的性能参数参与训练。
性价比要看时间点,因为产品的价格和市场都在改变,因此需要在一个时间窗口进行分析。如一个月,一周,甚至一天。
分析用户购买商品的行为,他会从一个入口,进入商品的主页面里。之后可能会停留一段时间(浏览和翻页),但也可能切换到其他页面,可能查看了评论并翻页(ajax请求),查看图片并翻页(ajax请求)等等,我们罗列如下:
除此之外,注意到我们在对比两件商品时,经常会在几个页面之间来回切换。但浏览器是否将切换事件发送给后台服务器,尚不确定。
另外,时间序列也值得分析,用户可能在短时间内集中查看了该商品,或者在较长的时间周期内一直关注该产品。这也有所区别。
以上是对一个用户行为的总结。而后台记录了大量的用户行为,那么,该商品的浏览量,收藏量,加入购物车量,购买量的都可以获得。
同样,我们还能对每个用户进行建模,例如通过该用户的历史购物行为,获取其购物的参数,如频度,常用价格区间。
最终,能够获取该产品上千维的特征向量。可以通过经验,设定一些参数的权重,如加入购物车的权重为3,购买为10,浏览为1,从而方便类似梯度下降的算法快速收敛。
其目标,就是同一门类的一组产品,输入参数到排序模型中,生成的排序结果,尽可能接近归一化的销量排序。
排序模型有三种评估方式:pointwise, pairwise和listwise。pointwise并不适用,pairwise可以考虑两两之间的评估,但考虑到我们的需求,对产品列表进行性价比排序,靠前的产品性价比更高,购买者更多,那么对三方都有帮助,因此可以采用listwise。
Listwise主要的算法包括:AdaRank、SVM-MAP、ListNet、LambdaMART等。
(未完待续)