DL&ML基础学习六

Google发表的<The Case for Learned Index Structures>论文采用神经网络取代数据库经典的索引方法例如B-Tree/Hash-Index/Bloom FIlter,论文中先是使用很native的两层前馈神经网络来学习已经排序的records数据的分布情况,而结果是比BTree索引慢了两个数量级.作者分析出了四条原因,其中有两条值得思考.一个是神经网络的loss function是要最小化平均误差但是对于索引来说这种评判标准并不是最标准的,最小和最大误差更重要一些.第二是B树这种回归树是用if-statement结构来一步步细化地分割搜索空间可以精确的判断某个点的具体信息,而神经网络是一种概率模型易于学习到总体数据的分布概率情况但是对于每一条record就不是很容易得出其精确信息,这是统计学本身的特点:总体是有概率分布规律的但是局部则是随机的.但是对于索引问题就是需要细化到局部。实际本论文中的思想借鉴与前人经验,使用MOE的方法

渐渐发现,论文之间的思想是在借来借去的。word2vec中的神经网络模型的结构又应用到了code2vec和graph2vec中。而word2vec的tricky(以标签概率为输出目标更新网络权重而以中间层的连接矩阵为所取)和auto-encoder的tricky(用来压缩一个输入,然后再把压缩后的结果解压回去。在训练完成之后,你可以把解压的网络扔掉,只使用压缩的网络)几近相同。这两个都是神经网络做无监督学习的基本思路,通过某个不是最终目标的指标来优化神经网络,而之后去除后面部分只保留想得到的最终内容。这种思想或许可以应用到encoder-decoder上面,训练好编解码模型之后只取encoder最终状态的中间隐藏层向量作为我们想得到的而不涉及到decoder解码部分。此外,node2vec论文则是借助于word2vec的SkipGram模型实现,并且还有struct2vec论文

kernel function第一次听说是在SVM中,可以借助于kernel function高效地从低维线性不可分直接变化到高位线性可分,功力深厚。单从形式来看,实际上就是也不过是对原空间中的点的内积的某个函数变换从而得到高维对应的点的内积形式从而实现了低维内积就可以运算高维内积的效果,从而可以实现将低维数据映射到高维空间中进行操作。两种内积之间的对应关系实际反应高维空间中数据的空间形状,由函数K和其参数控制着。




神经网络索引论文讲解:http://xunzhangthu.org/2017/12/21/papernotesthecaseforlearnedindexstructure/

kernel function讲解: https://blog.csdn.net/baimafujinji/article/details/79372911

猜你喜欢

转载自blog.csdn.net/ingwfj/article/details/79723347