向量將死,哈希是 AI 未來
人工智能是建立在向量算法的基礎上的,但最新的進展表明,對于某些 AI 應用程序而言,它們可以使用其他二進制來表示(例如神經(jīng)哈希),以提供更小的內存占用和更快的反饋速度。
事實上,人工智能的許多領域都可以從向量變?yōu)榛诠5慕Y構,帶來飛躍的提升。本文將簡要介紹哈希背后的應用邏輯,以及它為什么可能會成為 AI 的未來。
哈希
哈希函數(shù)(Hash function):一個哈希函數(shù)H(x)可用于將任意大小的數(shù)據(jù) x 映射成固定大?。ㄍǔ_x256bit)的值。返回值(映射后的值)又稱為哈希值(hash values)、摘要(digests)或哈希(simply hashes)。
哈希在數(shù)據(jù)的準確性識別、數(shù)據(jù)存儲大小、性能、檢索速度等方面具有突出的優(yōu)勢。更重要的是,它們本質上是概率性的,因此多個輸入項可以共享相同的哈希值。
在向量表示中,浮點數(shù)往往是首選的數(shù)據(jù)表示形式,盡管它們在本質上比哈希更絕對,但它們卻并不精確。
浮點數(shù)
要了解 AI,首先需要了解計算機是如何表示非整數(shù)數(shù)字的。
對于微小的數(shù)值變化(關于向量計算),二進制表示也可以有很大的不同,這些數(shù)值變化對模型預測幾乎沒有影響。
例如:取 0.65 vs 0.66 在 float64(64 位浮點)二進制中可以分別用這兩個二進制數(shù)表示:
11111111100100110011001100110011001100110011001100110011001101
11111111100101000111101011100001010001111010111000010100011111
從這里可以非常清楚看到,雖然從 0.65 到 0.66 僅僅只有 1% 的大小變化,但是轉化為二進制后,在 64 位數(shù)字中就有 25 位是不同的,差別巨大。
對于神經(jīng)元來說,這聽起來像是一件愚蠢的事情,人類的大腦肯定不會這樣工作,它們顯然不會使用浮點二進制表示來存儲數(shù)字,除非有人可以記住圓周率小數(shù)點后六萬多位。
事實上,我們的大腦神經(jīng)網(wǎng)絡是非常形象的,在處理復雜的小數(shù)和分數(shù)方面非常擅長。但是,當我們算到一半或四分之一時,就會立即想象出一些東西,比如半杯水、四分之一杯水或者披薩等其他東西,可能根本沒有想到尾數(shù)和指數(shù)。
一個常用的提高浮點運算速度和使用更少空間的方法是將分辨率降低到 float16(16位),甚至是float8 (8位),它們的計算速度非???,但缺點是,它會造成分辨率的明顯下降。
由于浮點數(shù)運算很慢,所以它真的沒有一點優(yōu)勢嗎?
答案是否定的。芯片硬件和它們的指令集被設計來提高效率,并使更多的計算并行處理,而 GPU 和 TPU 現(xiàn)在正在被廣泛使用,因為它們處理基于浮點的矢量算法更快。
神經(jīng)哈希
事實證明,二進制的計算速度比基于浮點數(shù)的算術快得多。那么,如果可以在局域敏感的二進制哈希空間中表示 0.65 和 0.66,這能使模型在推理方面更快嗎?
研究表明,有一系列哈希算法的確可以做到這一點,它被稱為局部敏感哈希(LSH)。原始項越接近,其哈希中的位也越接近相同。
不過,這個概念并不是什么新鮮事,只是最新的技術發(fā)現(xiàn)了更多的優(yōu)勢。從歷史上來看,LSH 使用了諸如隨機投影、量化等技術,但它們的缺點是需要較大的哈??臻g來保持精度,因此其優(yōu)點在某種程度上被抵消了。
對于單個浮點數(shù)來說這是微不足道的,但是具有高維數(shù)(多個浮點數(shù))的向量呢?
因此,神經(jīng)哈希的新技巧是用神經(jīng)網(wǎng)絡創(chuàng)建的哈希替換現(xiàn)有的 LSH 技術,以此得到的哈希值可以使用非??焖俚?Hammin 距離計算來估計它們的相似度。
這聽起來雖然很復雜,但實際上并不太難??傮w來看,神經(jīng)網(wǎng)絡就是優(yōu)化了一個哈希函數(shù),具體表現(xiàn)如下:
與原始向量相比,幾乎完美地保留了所有的信息;
生成比原始向量尺寸小得多的哈希;
計算速度明顯更快;
也就是說,以一種較小的二進制表示,它不僅可用于非??焖俚倪壿嬘嬎?,并且信息分辨率也是幾乎不變的,是一個兩全其美的解決方案。
一般研究用于密集信息檢索近似最近鄰 (ANN)時,往往可以使用向量表示來搜索信息,這樣可以幫助用戶找到概念上相似的一些東西。但是,哈希中的局部敏感性卻擁有更加強大的優(yōu)勢。
密集信息檢索
互聯(lián)網(wǎng)時代,數(shù)據(jù)庫是不可計數(shù)的,但搜索索引卻寥寥無幾,而且大多數(shù)索引都是基于相同的老技術,這主要是因為歷史上語言是一個基于規(guī)則的問題。
標記、同義詞、詞干提取、詞形還原等問題占據(jù)了許多天才的整個職業(yè)生涯,但仍未完全解決。
谷歌創(chuàng)始人拉里佩奇(Larry Page)曾說過,在我們的有生之年,“搜索”并不能得到解決。
想想看,這一代如此絕頂聰明的人,投資數(shù)十億美元為何還得不到解決?
很明顯,搜索技術落后于數(shù)據(jù)庫主要是由于語言問題,我們在過去幾年中看到了語言處理方面的革命,而且還在加速。并且從技術角度來看,我們還將看到基于神經(jīng)的哈希消除搜索和數(shù)據(jù)庫技術的障礙。
參考來源:https://medium.com/@hamishogilvy/vectors-are-over-hashes-are-the-future-of-ai-98c4dc33d8ee
? Copyright 2013 南京奧特賽人工智能技術研發(fā)有限公司 版權所有 備案號:蘇ICP備19032300號-1 蘇公網(wǎng)安備32011602010459 技術支持:科威鯨網(wǎng)絡