Map Reduce 操作和线性代数之间的联系

计算科学 算法
2021-12-25 23:55:00

我对计算机科学感兴趣MapReduce操作。我想用数学做类比,尤其是线性代数。

  1. 减少

首先,我们是否可以说“ Reduce”运算可以转换为线性形式,即我从一个向量开始,然后从初始向量的坐标得到一个标量?

但是线性形式根据定义是线性的,计算机科学中的归约是否总是如此?

  1. 地图

其次,我们是否可以说“ Map”可以翻译为内同态,即我们从一个初始向量(如计算机科学中的列表)开始,我们也得到一个向量作为输出。

如果我采取“ Map”操作和f一个功能,我有:

f[x1,x2...,xn]=[f(x1),f(x2),...,f(xn)]

我可以这样写:

f[X]=f[i=1nxiei]=i=1nxif(ei)=i=1nxiFijej=[f(x1),f(x2),...,f(xn)]

所以我得到:f(xj)=i=1nFijxiFij称为变化基矩阵endomorphism "f"

但我没有得到上面的这种关系,众所周知的基础变化(矩阵Fij) 和坐标成 2 个基础:

xj=Fijxi

我不知道如何在线性代数和“Map,Reduce”操作之间建立正确的联系?

如果有人可以帮助概念化这些操作,那就太好了。

谢谢

PS:如有必要,请不要犹豫将此问题转移到数学交流社区。

1个回答

MapReduce 和线性代数之间确实没有明显的联系。确实,某些线性代数运算可以写成 MapReduce 运算,但反之则不然。

我认为举一个 MapReduce 打算做什么的例子很有用。假设您正在寻找最近的咖啡店,并且您有一个包含您所在城镇所有企业的数据库。然后“地图”操作将从数据库中提取所有咖啡店企业,提取它们的位置,并计算到您当前位置的距离。然后,“减少”操作将采取这些操作中的最小值,让您获得最近的咖啡店。

显然,“映射”阶段不是从数据库条目到距离的线性变换;“减少”操作(取最小值)也不是线性操作。