实时机器学习

数据挖掘 机器学习 scikit-学习 预测建模
2022-02-20 16:35:03

我是 ML 世界的新手,但对它非常好奇和热情。也浏览了文章和一些实践。仍然有一个愚蠢的疑问。

在样本数据集(如虹膜或糖尿病或乳腺癌等)和练习中,我发现数据格式良好,可以被 ML 模型(算法)消化。但是,实际上,它远不止于此。

例如,亚马逊推荐(交叉销售)产品的功能。根据我之前的搜索和订单,它可能会研究几个特征并预测更多的项目。我很好奇 -

  1. 它是如何实时工作的?
  2. 我的产品搜索(它们不是数字)如何被输入到引擎盖下的 ML 模型中?

请分享你的想法。

问候,RB(使用 Python 3.6 和 NumPy、Scikit 和 Pandas 的最新 1 版本)

1个回答

好的,首先关于实时部分。

机器学习(尤其是监督学习)有两个部分

  1. 训练
  2. 预测

训练是一个复杂而缓慢的过程,您需要找出一个好的模型,然后用正确的数据对其进行训练……不简单且计算量大。

然而,预测要简单得多,因为通常(在神经网络的世界中)由神经网络中的一个简单的前向传递组成,而前向传递的核心是一堆矩阵乘法。因此,一旦建立并训练了一个模型,使用现有模型进行预测是非常快的,也可以使用新数据重新训练模型。

现在,关于文本搜索以及如何处理它们。有一个非常酷的想法叫做词嵌入,它只是将词转换为向量。想象一个二维网格(就像我们在学校学习的 x,y 坐标),现在想象垂直轴 (y) 表示某物的强大程度,y 值越高,它就越强大。现在假设 x 轴表示某物的性别。(假设负 x 表示男性,正 x 表示女性)。

现在最重要的是:国王。国王是男性(x=负值)和强大的(y=正值)。使用这两个坐标,从位置 0,0 开始,您可以有一个向量。

现在想想 Queen,在这种情况下,坐标将是 x=Positive 值和 y=Positive 值,现在您有了另一个向量。

现在想想斯巴达克斯这个词(他是古罗马的奴隶),所以这个词将有 x=Negative 和 y=Negative。

想到这里,突然间你不仅可以用数字来表示单词,还可以用向量来表示它们,这样你就有可能发现 King 和 Emperor 都是相似词。