这篇文章介绍了一个叫做MSCN的方法,这是一个应用于集合的深度学习网络,文章使用这个方法去做查询的基数估计。
文章将输入处理为集合的形式,具体大概是这个形状:
像table set里每个元素(即一个向量)代表一个对应的表和在这个表中采样的位图,join set表示链接的集合,predicate set表示谓词的集合。这里有一些值得注意的点:
1.使用集合可以避免产生对称性问题,对于任意排列在集合的角度上来说其实都是等价的
2.对于一张表进行采样时,会有一个固定的数目,如文章中设置为1000,通过这个采样构成的位图也会作为输入信息进行训练,而对于同一种表,即使对于不同的谓词,采样的个体都是一样的,这样可以通过学习获取不同谓词间的关联,而在进行推理时,同样对这些样本进行采样获取对应谓词的位图,然后作为输入进行推理
3.这里对三类集合用了三个共享参数的MLP,然后对三个MLP的输出再用一个MLP进行加权
总体来说这篇文章用的方法不算是非常新的方法,但是对于特征处理的很多思路值得借鉴,然后这项工作可以处理不同表之间关系,这相对之前工作也是一个进步