摘要
数据经常以流的方式传输,这使得现今的现有的基于batch的方案失去了效率。
所有我们提出了OLSH.
这种方式有两个好处:1,只要新到来的数据参与了哈希函数的学习。
2,同时这也保持了旧数据点的语义关联。
特别的是:为了学习更精确的哈希码,离散的标签映射到连续空间,在这里数据点之间
的语义相关信息可以被正确地度量。
然后我们提出了OLSH的优化方式,每一轮的时间复杂度只和新到来的数据有关。
关于OLSH的贡献
- OLSH使用一种在线的方式学习哈希函数。
- OLSH探索了一种连续的潜在语义空间,在这个语义空间相似度可以被准确地度量。
提出OLSH
-
提出连续潜在语义空间
为了高效,我们提出了直接把哈希码映射到标签空间。但是由于标签的离散性,直接为
不同类的语义建模是困难的。因此,我们首先把离散的标签映射到一个连续的潜在语义
空间内,在这个空间内各个点的语义距离可以度量地更准确。
-
独立地学习哈希函数
然后我们独立地学习哈希函数,哈希函数的学习错误定义为:
-
整体的目标函数
优化过程
-
B-step
我们只考虑第t批哈希化的数据,这样我们就能够得到式子:
然后我们把它展开:
这种形式的话,就直接使用Appendix1的方法求得第t批次的数据.
然后和之前的数据合并起来形成哈希码数据集B.
-
C-step
我们只考虑映射C.这样我们就能得到下列的式子:
然后我们就可以通过求导梯度为0的方式得到C:
其中,
所以训练C的时间复杂度只和新到达的数据规模有关。
-
U-step
同理,关于U的式子可以定义为:
可以通过求导梯度为0的方式得到U:
同上,训练的时间复杂度只和新到达的数据规模有关。
-
W-step
关于W1的式子可以定义为:
同理,我们也可以得到求W2的式子:
同上,训练的时间复杂度只和新到达的数据规模有关。
为了降低计算
的时间复杂度
其中,计算的时间复杂度是
特征空间的维度是很高的,所以直接乘计算起来就很耗费时间。
由于α只带来微不足道的修改,
这里我们可以直接采用Sherman-Morrison-Woodbury公式:
在这个式子里,
整体的算法
Appendix1
让我们来考虑这种格式下,离散地计算哈希码:
其中,
计算方法如下,其实就是纯手算,一列一列地计算哈希码,计算某一列的时候使用除这一列
之外的其他所有列:
是B的某一行,B'是之外的。
是Q的某一行,Q'是之外的。
是W的某一行,W'是之外的。
..........................(1)
其中,
...........................................(2)
将(1)和(2)带入到总的式子里,得到
这样就可以计算出当前列的哈希码为