用机器学习更快了解用户(翻译)

英文博文的部分翻译。英文原文链接:https://erikbern.com/2017/12/12/learning-from-users-faster-using-machine-learning.html


几周前我产生了一个非常有意思的想法。通过假设一个例子来解释就是:你正在经营一个电子商务网站,你想优化购买的数量。并且假设,我们希望通过A/B测试或者基本的数据切片分割方法,来尽可能多的从用户本身得到相应经验,预测用户的转化情况,但有一个一直存在的问题就是有太多的不确定性因素。

我们怎样才能加速从用户身上学习经验的过程?特别是,是否有办法以某种方式结合其他数据进行预测?我觉得这是一个非常普遍的问题,所以我写出这个问题并附上一些不错的想法。

  • 简单模型

做了许多理论性学习,我希望可以在实践中尝试一下。我的想法是:通过大量外部数据,建立一个模型,判断是否某用户会购买一个产品。我们使用我们的机器学习模型,而不是使用实际的目标测度(人们购买此商品的比例)。因此,我们向模型中输入多种变量,然后来预测目标(用户是否购买此产品)。

我尝试了几种不同模型,其中最有效的是你能想到的一个非常基础的模型:线性回归。输入的是一些0-1变量,表示用户在浏览网页的过程中,是否点击了某页面,本次模型中一共有70个不同的页面(其中一些比较特殊的页面只有很少的用户点击)。预测得到一个二分类结果,表示用户是否购买该产品。通过计算最小均方误差,得到最终模型。

借助Keras框架,模型只需如下几行代码:

inputs = keras.layers.Input(shape=(X.shape[0],))inputs_dropout = keras.layers.Dropout(0.90)(inputs)outputs = keras.layers.Dense(1, activation='linear')(inputs_dropout)model = keras.models.Model(inputs=inputs, outputs=outputs)model.compile(optimizer=keras.optimizers.SGD(lr=1e-2), loss='mse')model.fit(X, y, batch_size=16, epochs=300)

  • 结果

通过随机选取三个点击我们网站的用户子集,对转化率进行A/B测试。具体过程在这里不进行叙述,我们想知道这三个子集之间的转化率是否不同。

首先来看最一般的方法,我们计算了完成整个点击流,最终购买产品的用户比例。绘制出带有置信区间的转化率图。当我们得到越来越多的数据时,每个群体的置信区间缩小:

接下来,我使用今年早些时候的数据训练模型,因此数据可能会超出我们之前的样本范围。画出同样的图像,但这里用预测值代替真实值。每个预测值都是通过每个用户是否点击这70个页面的数据得到的。我们可以看到,置信区间更紧,转化率曲线更平滑。

得到的这个结果非常好。在这个模型中,我们将置信区间缩小了近50%,这意味着我们计算出相应的统计指标可以提速4倍。如果我们针对更大量数据绘制出转化率和置信区间图像,可以看到用预测值得到的不确定性会持续变小。

  • 结论

这篇文章的结论非常有趣,值得思考。这个模型的一个缺点是方差的变化存在偏差。预测的转化率可能有更严格的置信区间,但它不再保证收敛到“正确”的值。这是可以接受的吗?我不知道。另一个问题是,随着时间的推移,数据分布会发生变化。例如,购买产品的页面转移流变化。

我还没有足够的时间来解决这些问题,也还不确定我是否会将这个模型用到真实场景中。这是一个有点不成熟的想法,希望得到反馈与讨论。


原文发布于微信公众号 - 机器学习养成记(chenchenwings)

原文发表时间:2017-12-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

你还在用“人工特征工程+线性模型”?

作者:李沐M 11年的时候我加入百度,在凤巢使用机器学习来做广告点击预测。当时非常惊讶于过去两年内训练数据如此疯狂的增长。大家都在热情的谈特征,每次新特征的...

40180
来自专栏杨熹的专栏

AI 在 marketing 上的应用

23530
来自专栏人工智能头条

机器学习安全不容忽视

10440
来自专栏量子位

详解个性化推荐五大最常用算法

允中 若朴 编译自 Stats&Bots 量子位 出品 | 公众号 QbitAI ? 推荐系统,是当今互联网背后的无名英雄。 我们在某宝首页看见的商品,某条上读...

40450
来自专栏机器之心

业界 | 谷歌推出神经网络可视化库Lucid,推进模型的可解释性工作(附GitHub)

30660

如何实现机器学习算法

在代码中实现一个机器学习的算法能够使你更加了解该算法以及其工作机理。

221100
来自专栏应兆康的专栏

11. 什么时候更改开发/测试集和评估指标

16810
来自专栏人工智能头条

深度学习在推荐领域的应用

19640
来自专栏智能算法

关于深度学习的框架、特征和挑战

在嵌入式系统上的深度学习 随着人工智能 (AI) 几乎延伸至我们生活的方方面面,主要挑战之一是将这种智能应用到小型、低功耗设备上。这需要嵌入式平台,能够处理高性...

34970
来自专栏PPV课数据科学社区

【学习】关于推荐系统中的特征工程

在多数数据和机器学习的blog里,特征工程 Feature Engineering 都很少被提到。做模型的或者搞Kaggle比赛的人认为这些搞featu...

55880

扫码关注云+社区

领取腾讯云代金券