0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解決復(fù)雜數(shù)據(jù)最近鄰問(wèn)題的通用方法

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:李倩 ? 2018-08-16 09:24 ? 次閱讀

如果你打算開(kāi)一家咖啡館,你一定想知道:“附近最近的一家咖啡館在哪?”了解這些信息有助于應(yīng)對(duì)商業(yè)競(jìng)爭(zhēng)。

這種現(xiàn)象是計(jì)算機(jī)科學(xué)中廣泛研究的問(wèn)題,稱為“最近鄰搜索”。它的問(wèn)題是,給定數(shù)據(jù)集和新的數(shù)據(jù)點(diǎn),數(shù)據(jù)集中哪個(gè)數(shù)據(jù)離新數(shù)據(jù)點(diǎn)最近?這個(gè)問(wèn)題出現(xiàn)的場(chǎng)景非常豐富,可以是基因搜索、圖像查詢,或者音樂(lè)推薦。

但是最近鄰問(wèn)題并不像咖啡館那么容易解決。過(guò)去幾十年,很多計(jì)算機(jī)科學(xué)家都在致力于尋找更好的解決辦法。與此同時(shí),他們還要解決隨之而來(lái)的復(fù)雜情況,例如不同數(shù)據(jù)集對(duì)“相近”有著不同的定義。

現(xiàn)在,一個(gè)五人小組提出了開(kāi)創(chuàng)性的解決辦法,他們?cè)趦善撐闹校ㄒ黄延?月發(fā)表,另一篇還未出爐)提出了解決復(fù)雜數(shù)據(jù)最近鄰問(wèn)題的通用方法。

麻省理工學(xué)院的計(jì)算機(jī)科學(xué)家、最近鄰搜索領(lǐng)域的重要任務(wù)Piotr Indyk表示:“這是首個(gè)用單一算法捕捉大量空間的結(jié)果?!?/p>

不同的距離

我們已經(jīng)習(xí)慣了用一種方法定義距離,常常會(huì)忽視其他方式。通常,我們用“歐幾里得距離”測(cè)量距離,即在兩點(diǎn)之間測(cè)量直線的距離。但在有些情況下,這樣的測(cè)量方式就說(shuō)不通了。例如在街道網(wǎng)格中,就需要用到“曼哈頓距離”了,直線距離5英里的目的地,可能需要走3英里之后轉(zhuǎn)90°,再繼續(xù)走4英里才能到達(dá)。

另外,還可以用非地理的術(shù)語(yǔ)表示距離。比如Facebook上的兩名用戶、兩部電影、兩組基因之間的距離怎么計(jì)算?在這些問(wèn)題上,“距離”表示的是兩個(gè)物體之間的相似程度。

有關(guān)距離的測(cè)量尺度有很多,例如兩組基因,生物學(xué)家會(huì)用“編輯距離(edit distance)”來(lái)比較二者。這樣一來(lái),兩組基因序列之間的距離就是從一組基因轉(zhuǎn)換到另一組所需要添加、刪除、插入、替換的數(shù)字。

編輯距離和歐幾里得距離是兩種完全不同的距離測(cè)量方法,二者是不能相互替代的。但是這樣的情況對(duì)研究最近鄰算法的科學(xué)家們來(lái)說(shuō)很棘手,能有效計(jì)算一種距離的算法在另一種情況下就無(wú)法工作了。

在夾縫中求生存

為了找到最近鄰,通常所用的方法是將數(shù)據(jù)分成好幾份。假設(shè)你的數(shù)據(jù)就像在牧場(chǎng)中吃草的奶牛,給分散在草場(chǎng)中的牛群畫(huà)不同的圓圈,現(xiàn)在進(jìn)來(lái)了一頭新奶牛,問(wèn)它會(huì)落在哪個(gè)圓圈里?可以肯定的是,這頭新奶牛的最近鄰一定也在這個(gè)圈里。

然后重復(fù)這一過(guò)程,不斷進(jìn)行細(xì)分。最終會(huì)得到一個(gè)只包含兩頭牛的區(qū)域,這樣就找到了最近鄰。

現(xiàn)在,算法能夠完成這一過(guò)程,好的算法還會(huì)將這一任務(wù)完成得又快又好。這里“好”的標(biāo)準(zhǔn)可以理解成,算法不會(huì)得出最近鄰與新數(shù)據(jù)不在一個(gè)圈子里的結(jié)果。

近些年來(lái),科學(xué)家們提出了多種分割數(shù)據(jù)的算法。對(duì)于低維數(shù)據(jù)(即每個(gè)數(shù)據(jù)點(diǎn)僅由少量的值定義,例如牧場(chǎng)中牛的位置),算法在解決最近鄰問(wèn)題時(shí)會(huì)生成Voronoi圖。

對(duì)于高維數(shù)據(jù)(每個(gè)數(shù)據(jù)點(diǎn)可能有成百上千個(gè)值),Voronoi圖要計(jì)算起來(lái)就十分費(fèi)力了。所以科學(xué)家們用“局部敏感哈希(LSH)算法”對(duì)數(shù)據(jù)進(jìn)行分割,這種算法于1998年由Indyk和Rajeev Motwani共同提出。LSH算法是隨機(jī)對(duì)數(shù)據(jù)進(jìn)行分類的,這使得它速度很快,但精確度較低。算法最終并不是找到確切的最近鄰點(diǎn),而是告訴你最近鄰與已有數(shù)據(jù)的確切距離。(可以想象成在電影推薦時(shí),推薦結(jié)果并不是最佳的,而是那些還不錯(cuò)的。)

上世紀(jì)90年代末,計(jì)算機(jī)科學(xué)家們提出的LSH算法以特殊的距離尺度對(duì)最近鄰問(wèn)題給出大致的解決方案。這些LSH算法都非常具體,無(wú)法通用。

“你可以為歐幾里得距離或曼哈頓距離設(shè)計(jì)非常高效的算法。但是我們沒(méi)有一種技術(shù)能在多種距離上通用,”Indyk說(shuō)道。

受制于這種困境,科學(xué)家們想了一種應(yīng)變方法:通過(guò)嵌入,在沒(méi)有好的算法的距離標(biāo)準(zhǔn)之上“覆蓋”一種距離尺度。但是這樣的結(jié)果往往不準(zhǔn)確,有的時(shí)候嵌入根本無(wú)法完成。所以他們?nèi)孕枰氤鲆环N合適的通用方法。

驚人的結(jié)果

在這項(xiàng)新研究開(kāi)始之際,科學(xué)家們回過(guò)頭思考當(dāng)初具體的最近鄰算法追求的目標(biāo)是什么。他們提出了一個(gè)更寬泛的問(wèn)題:對(duì)距離尺度來(lái)說(shuō),阻礙一款好的最近鄰算法出現(xiàn)的原因是什么?

他們想原因可能與在尋找最近鄰時(shí)復(fù)雜的“擴(kuò)展圖(expander graph)”有關(guān)。擴(kuò)展圖是一群由線條連接起來(lái)的點(diǎn)。這些圖都有它們自己的距離尺度,圖中兩點(diǎn)之間的距離是你從一點(diǎn)到另一點(diǎn)所經(jīng)過(guò)的最少線段??梢詫⑵湎胂蟪缮缃?a href="http://ttokpm.com/v/tag/1722/" target="_blank">網(wǎng)絡(luò)中的各種人脈關(guān)系。

擴(kuò)展圖有兩個(gè)明顯矛盾的特點(diǎn):它聯(lián)系廣泛,所以如果想切斷與某一點(diǎn)的聯(lián)系,就要切斷之間的線段。但同時(shí),大多數(shù)點(diǎn)都和其他的點(diǎn)相連。所以,最終有些點(diǎn)會(huì)越來(lái)越遠(yuǎn)。

這樣的特征造成的結(jié)果是,在擴(kuò)展圖上可以很快地進(jìn)行最近鄰搜索,而將數(shù)據(jù)點(diǎn)分割的過(guò)程可以看成將最近的兩點(diǎn)分開(kāi)。

“任何分割擴(kuò)展圖的方法都會(huì)切斷很多線,分開(kāi)很多相近的點(diǎn),”論文作者之一Waingarten說(shuō)道。

從左至右:Alexandr Andoni、Ilya Razenshteyn、Erik Waingarten

2016年夏天,Andoni、Nikolov、Razenshteyn和Waingarten認(rèn)為,是不可能存在對(duì)最近鄰算法有效的擴(kuò)展圖的。但他們真正想證明的是,好的最近鄰算法同樣也不存在于其他距離尺度中。

他們證明的方法是在這些距離尺度中嵌入擴(kuò)展尺度。這樣一來(lái),他們可以確定這些尺度有類似擴(kuò)展圖的無(wú)法工作的特征。

這四位科學(xué)家找到普林斯頓大學(xué)的Assaf Naor,他是一名數(shù)學(xué)家,同時(shí)也是計(jì)算機(jī)科學(xué)家,此前的研究非常適合回答有關(guān)擴(kuò)展圖的問(wèn)題。他們?cè)儐?wèn)了有關(guān)擴(kuò)展圖嵌入到其他距離類型中的問(wèn)題,但答案并非所期望的那樣,Assaf給出了完全相反的回答。

Naor證明,擴(kuò)展圖并不能嵌入到多種距離尺度中,研究者將這一論斷作為基礎(chǔ),接著這個(gè)邏輯鏈條開(kāi)始思考:如果擴(kuò)展圖不能嵌入到其他尺度,那么一個(gè)好的數(shù)據(jù)分割方法一定存在(因?yàn)樗麄冏C明擴(kuò)展圖的特征是阻礙良好數(shù)據(jù)分割的障礙)。因此,良好最近鄰算法可能存在。

他們將發(fā)現(xiàn)結(jié)果寫在第一篇論文中,而第二篇論文本月也即將發(fā)表。Waingarten表示:“第一篇論文證明了確實(shí)存在一種方法能良好地進(jìn)行數(shù)據(jù)分割,但沒(méi)有給出如何快速完成的方案。在第二篇論文中會(huì)詳細(xì)解釋?!?/p>

同時(shí),這項(xiàng)新研究第一次用通用的方法對(duì)高維數(shù)據(jù)進(jìn)行最近鄰搜索。“任何尺度空間都可以用該算法實(shí)現(xiàn)最近鄰搜索,”Waingarten說(shuō)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4587

    瀏覽量

    92501
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1200

    瀏覽量

    24619

原文標(biāo)題:終于,「最近鄰搜索」有通用方法了

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python實(shí)現(xiàn)k-近鄰算法

    k-近鄰算法簡(jiǎn)述k-近鄰算法(kNN)采用測(cè)量不同特征值之間的距離方法進(jìn)行分類。工作原理:首先存在一個(gè)樣本數(shù)據(jù)集合(訓(xùn)練樣本集),并且樣本集中每個(gè)數(shù)
    發(fā)表于 10-10 10:32

    復(fù)雜數(shù)據(jù)采集系統(tǒng)使用少量組件

    DN24- 復(fù)雜數(shù)據(jù)采集系統(tǒng)使用少量組件
    發(fā)表于 07-25 13:55

    利用變體隊(duì)列實(shí)現(xiàn)任意復(fù)雜數(shù)據(jù)集合傳遞(很方便)

    利用變體隊(duì)列實(shí)現(xiàn)任意復(fù)雜數(shù)據(jù)集合傳遞(很方便),大家可以看看。原創(chuàng)是來(lái)自@zhihuizhou 【labview我來(lái)告訴你】實(shí)現(xiàn)任何LabVIEW數(shù)據(jù)類型集合的簡(jiǎn)潔方式。我在此基礎(chǔ)上加了一些,方便大家理解這樣的好處。
    發(fā)表于 02-11 15:39

    Python實(shí)現(xiàn)k-近鄰算法

    k-近鄰算法簡(jiǎn)述k-近鄰算法(kNN)采用測(cè)量不同特征值之間的距離方法進(jìn)行分類。工作原理:首先存在一個(gè)樣本數(shù)據(jù)集合(訓(xùn)練樣本集),并且樣本集中每個(gè)數(shù)
    發(fā)表于 01-04 14:03

    改進(jìn)的共享型最近鄰居聚類算法

    聚類效果往往依賴于密度和相似度的定義,并且當(dāng)數(shù)據(jù)的維增加時(shí),其復(fù)雜度也隨之增加。該文基于共享型最近鄰居聚類算法SNN,提出了一種改進(jìn)的共享型最近鄰居聚類算法RSNN,
    發(fā)表于 05-16 11:38 ?11次下載

    改進(jìn)GP分形理論的最近鄰序列預(yù)測(cè)算方法

    改進(jìn)GP分形理論的最近鄰序列預(yù)測(cè)算方法:針對(duì)現(xiàn)有的時(shí)間序列分析和預(yù)測(cè)算法中主觀性太強(qiáng)的缺點(diǎn),借助分形理論對(duì)時(shí)間序列作有效的分析。
    發(fā)表于 01-03 17:00 ?12次下載

    復(fù)雜數(shù)字邏輯系統(tǒng)的Verilog

    復(fù)雜數(shù)字邏輯系統(tǒng)的Verilog
    發(fā)表于 11-01 17:03 ?0次下載

    Spark下的并行多標(biāo)簽最近鄰算法

    隨著大數(shù)據(jù)時(shí)代的到來(lái),大規(guī)模多標(biāo)簽數(shù)據(jù)挖掘方法受到廣泛關(guān)注。多標(biāo)簽最近鄰算法ML_KNN是一種簡(jiǎn)單高效、應(yīng)用廣泛的多標(biāo)簽分類方法,其分類精度
    發(fā)表于 11-22 17:32 ?1次下載
    Spark下的并行多標(biāo)簽<b class='flag-5'>最近鄰</b>算法

    路網(wǎng)環(huán)境下的最近鄰查詢技術(shù)

    最近鄰查詢作為基于位置服務(wù)的重要支持性技術(shù)之一,引起了眾多學(xué)者的廣泛關(guān)注和深入研究,相對(duì)于歐式空間而言,路網(wǎng)環(huán)境下的最近鄰查詢更貼近人們的生活,有著更重要的研究意義.路網(wǎng)環(huán)境下龐大的數(shù)據(jù)量和復(fù)
    發(fā)表于 12-18 14:14 ?0次下載
    路網(wǎng)環(huán)境下的<b class='flag-5'>最近鄰</b>查詢技術(shù)

    最近鄰的隨機(jī)非線性降維

    針對(duì)線性降維技術(shù)應(yīng)用于具有非線性結(jié)構(gòu)的數(shù)據(jù)時(shí)無(wú)法得到令人滿意的結(jié)果的問(wèn)題,提出一種新的著重于保持高維空間局部最近鄰信息的非線性隨機(jī)降維算法( NNSE)。該算法首先在高維空間中通過(guò)計(jì)算樣本點(diǎn)之間
    發(fā)表于 12-23 11:45 ?0次下載

    分析大型復(fù)雜數(shù)據(jù)集的三大實(shí)用建議

    為了把這十幾年來(lái)總結(jié)的經(jīng)驗(yàn)分享給其他開(kāi)發(fā)者,他特意撰文提出了一些分析大型復(fù)雜數(shù)據(jù)集的實(shí)用建議。
    的頭像 發(fā)表于 05-10 14:51 ?4505次閱讀

    高維空間逼近最近鄰評(píng)測(cè)

    最近鄰方法是機(jī)器學(xué)習(xí)中一個(gè)非常流行的方法,它的原理很容易理解:鄰近的數(shù)據(jù)點(diǎn)是相似的數(shù)據(jù)點(diǎn),更可能屬于同一分類。然而,在高維空間中快速地應(yīng)用
    的頭像 發(fā)表于 05-29 08:33 ?4839次閱讀
    高維空間逼近<b class='flag-5'>最近鄰</b>評(píng)測(cè)

    一種基于自然最近鄰的密度峰值聚類算法

    的聚類方法。該算法首先根據(jù)自然最近鄰的定義,給出新的局部密度計(jì)算方法來(lái)描述數(shù)據(jù)的分布,揭示內(nèi)在的聯(lián)系;然后設(shè)計(jì)了兩步分配策略來(lái)進(jìn)行樣本
    發(fā)表于 04-08 11:18 ?12次下載
    一種基于自然<b class='flag-5'>最近鄰</b>的密度峰值聚類算法

    DN24-復(fù)雜數(shù)據(jù)采集系統(tǒng)使用的組件很少

    DN24-復(fù)雜數(shù)據(jù)采集系統(tǒng)使用的組件很少
    發(fā)表于 04-30 10:10 ?0次下載
    DN24-<b class='flag-5'>復(fù)雜數(shù)據(jù)</b>采集系統(tǒng)使用的組件很少

    針對(duì)大規(guī)模高維數(shù)據(jù)最近鄰檢索方法

    ;其次提岀基于貪心隊(duì)列的近鄰簇篩選方法減小了計(jì)算復(fù)雜度,加快了近鄰檢索速度;最后提出面量化方法用于近似計(jì)算候選
    發(fā)表于 05-10 16:45 ?3次下載