對其它申請的交叉引用
本申請是在2014年9月23日由nigelduffy提交的名稱為“visualinteractivesearch”的美國申請no.14/494,364(代理檔案號:gnfn3120-2)的部分繼續(xù)申請,該申請根據(jù)35u.s.c119(e)要求在2014年5月15日由nigelduffy提交的名稱為“visualinteractivesearch”(代理檔案號gnfn3120-1)的美國臨時申請no.61/994,048的權(quán)益。上述兩個申請針對它們的教導(dǎo)在此通過引用而被并入本文。
本發(fā)明總體上涉及用于以交互和可視的方式搜索數(shù)字文檔的工具。數(shù)字文檔的示例包括:照片、產(chǎn)品描述或網(wǎng)頁。例如,該工具可以被用在移動設(shè)備上以搜索可用于經(jīng)由在線零售商銷售的家具。
更具體而言,本發(fā)明涉及具有相關(guān)性反饋的文檔檢索。
背景技術(shù):
當(dāng)前的計算機(jī)搜索技術(shù)允許用戶執(zhí)行查詢并用有序的結(jié)果列表來對那些查詢進(jìn)行響應(yīng)。查詢可以是結(jié)構(gòu)化查詢語言、自然語言文本、語音或參考圖像的形式。但是,返回的結(jié)果經(jīng)常沒有滿足用戶的搜索目標(biāo)。用戶然后繼續(xù)細(xì)化或修改查詢以試圖更好地實現(xiàn)期望的目標(biāo)。
技術(shù)實現(xiàn)要素:
在此描述的系統(tǒng)使用具有相關(guān)性反饋的新穎的迭代搜索技術(shù)來解決這一挑戰(zhàn)。
粗略地描述,一種數(shù)據(jù)庫,在該數(shù)據(jù)庫中要被搜索的文檔的目錄已經(jīng)被嵌入到嵌入空間中。數(shù)據(jù)庫標(biāo)識嵌入空間中的文檔中的每對文檔之間的距離,該距離對應(yīng)于文檔對之間的不相似性的預(yù)定測量。向用戶呈現(xiàn)來自嵌入空間內(nèi)的初始(i=0)候選空間的n0個候選文檔的初始(i=0)集合,該初始集合具有比初始候選空間少的文檔??梢曰诔跏妓阉鞑樵儊斫⒊跏己蜻x空間,初始搜索查詢可以是文本的,語言的或視覺的,例如,經(jīng)由原型圖像。然后,對于從第一次迭代(i=1)開始的每個第i次迭代,用戶從文檔的當(dāng)時文檔選擇文檔的第i個被選擇的子集(被稱為文檔的第(i-1)個集合),并且響應(yīng)于選擇,系統(tǒng)幾何地約束嵌入空間以標(biāo)識第i個候選空間,從而使得第i個候選空間中的文檔比第(i-1)個候選空間中的文檔在嵌入空間中集體地更靠近第i個被選擇的子集中的文檔。系統(tǒng)向用戶呈現(xiàn)來自第i個候選空間的ni>1個候選文檔的第i個集合,并且該過程重復(fù)下一次迭代,其中用戶從向用戶呈現(xiàn)的當(dāng)時集合選擇文檔的新子集。最終,用戶對當(dāng)時集合中的文檔中的一個或多個文檔感到滿意,并且作為響應(yīng),系統(tǒng)對文檔采取動作。以這種方式,用戶可以交互地細(xì)化搜索,以便更精確地對預(yù)期的搜索目標(biāo)編碼。
提供本發(fā)明的上述發(fā)明內(nèi)容是為了提供對本發(fā)明的一些方面的基本理解。本發(fā)明內(nèi)容并非旨在標(biāo)識本發(fā)明的關(guān)鍵或重要元件或描繪本發(fā)明的范圍。其唯一目的是作為稍后呈現(xiàn)的更詳細(xì)描述的序言以簡化形式呈現(xiàn)本發(fā)明的一些概念。在權(quán)利要求書、說明書和附圖中描述了本發(fā)明的特定方面。
附圖說明
將相對于本發(fā)明的具體實施例并且將對附圖進(jìn)行參考來描述本發(fā)明,其中:
圖1示出了可以在其中實現(xiàn)本發(fā)明的各方面的示例環(huán)境。
圖2是可以被用來實現(xiàn)本發(fā)明的各方面的計算機(jī)系統(tǒng)的簡化框圖。
圖3至圖7以及圖10a示出了被嵌入在2維嵌入空間中的文檔。
圖8是根據(jù)本發(fā)明的系統(tǒng)的實施例的各種組件的框圖。
圖9是示出了根據(jù)本發(fā)明的系統(tǒng)可以通過其進(jìn)行的各種邏輯階段的流程圖。
圖10b在布局空間中示出了來自圖10a的某些文檔。
圖11示出了能夠搜索鞋的一個實施例。
圖12是根據(jù)本發(fā)明一個方面的用于實體產(chǎn)品的購買的搜索方法的流程圖。
圖13是根據(jù)本發(fā)明一個方面的用于數(shù)字產(chǎn)品的購買的搜索方法的流程圖。
圖14是根據(jù)本發(fā)明一個方面的用于標(biāo)識然后被用于產(chǎn)生實體產(chǎn)品的數(shù)字內(nèi)容的搜索方法的流程圖。
圖15是根據(jù)本發(fā)明一個方面的用于標(biāo)識用于共享的內(nèi)容的搜索方法的流程圖。
圖16是示出了在圖18的實施例中在移動設(shè)備和服務(wù)器之間傳遞的消息的示圖。
圖17示出了在一個實施例中的約束數(shù)據(jù)庫的內(nèi)容。
圖18是根據(jù)本發(fā)明的系統(tǒng)的移動設(shè)備實施例的各種組件的框圖。
圖19示出了其中針對主題域?qū)W習(xí)嵌入的實施例的相關(guān)部分。
具體實施方式
呈現(xiàn)以下描述以使本領(lǐng)域任何技術(shù)人員能夠?qū)崿F(xiàn)和使用本發(fā)明,并且在特定應(yīng)用及其要求的上下文中提供。對所公開的實施例的各種修改對于本領(lǐng)域技術(shù)人員來說將是顯而易見的,并且在不脫離本發(fā)明的精神和范圍的情況下,可以將在此定義的一般原理應(yīng)用于其它實施例和應(yīng)用。因此,本發(fā)明不旨在限于所示出的實施例,而是符合與在此公開的原理和特征相一致的最寬范圍。
在本發(fā)明的實施例中,系統(tǒng)可以具有幾個方面,并且不同的實施例不需要實現(xiàn)所有這些方面:1)用于創(chuàng)建初始查詢的模塊,2)用于獲得滿足初始查詢的候選結(jié)果的集合的模塊,3)用于確定候選結(jié)果之間的距離或相似度的模塊或者用于將候選結(jié)果嵌入到向量空間中的模塊,4)用于對候選結(jié)果的區(qū)分性集合進(jìn)行子選擇的模塊,5)用于在2個維度中對候選結(jié)果進(jìn)行排列的模塊,6)用于獲得關(guān)于候選結(jié)果的用戶輸入的模塊,7)用于細(xì)化搜索查詢以并入關(guān)于用戶輸入的信息的模塊,所述關(guān)于用戶輸入的信息被編碼為相對于3的嵌入或距離測量的幾何或距離約束,8)用于迭代地獲得滿足從用戶輸入累積的幾何或距離約束和初始查詢的候選結(jié)果的集合的模塊。
圖8是根據(jù)本發(fā)明的系統(tǒng)的實施例的各種組件的框圖。它包括嵌入模塊820,嵌入模塊820計算源文檔到嵌入空間中的嵌入,并且將嵌入信息與文檔的標(biāo)識相關(guān)聯(lián)地寫入文檔目錄數(shù)據(jù)庫816中。用戶交互模塊822接收來自用戶的查詢和查詢細(xì)化輸入(諸如相關(guān)性反饋),并將它們提供給查詢處理模塊824。在一個實施例中,用戶交互模塊822包括計算機(jī)終端,而在另一實施例中,它僅包括某些網(wǎng)絡(luò)連接組件,系統(tǒng)通過這些網(wǎng)絡(luò)連接組件與外部計算機(jī)終端通信。查詢處理模塊824將查詢解釋為對嵌入空間的幾何約束,并且縮窄或以其它方式修改目錄以開發(fā)滿足幾何約束的候選文檔的集合。這些被寫入到候選空間數(shù)據(jù)庫826中。在此使用的候選空間也是嵌入空間,并且例如可以構(gòu)成目錄816的嵌入空間的一部分。在一些實施例中,查詢處理模塊還可以在嵌入空間中執(zhí)行候選文檔的重新嵌入。區(qū)分性選擇模塊828然后從候選空間826選擇文檔的區(qū)分性集合,并且經(jīng)由用戶交互模塊822將其呈現(xiàn)給用戶。用戶交互模塊822然后可以從用戶接收進(jìn)一步的細(xì)化查詢,如上所述地對其進(jìn)行處理,或者它可以接收用戶提交指示,在這種情況下,系統(tǒng)針對用戶的所選擇的文檔采取一些動作830,諸如為用戶打開文檔,進(jìn)行進(jìn)一步的搜索細(xì)化,將用戶的選擇的文檔處理為針對由文檔表示的產(chǎn)品的訂單,將用戶的選擇的文檔處理為用于遞送由文檔表示的數(shù)字產(chǎn)品的訂單,將用戶的選擇的文檔處理為由要被制造和運(yùn)送的文檔表示的產(chǎn)品的訂單,或者將用戶的選擇的文檔處理為用于與由文檔表示的其它數(shù)字內(nèi)容共享的請求。
注意,在一些實施例中,用戶細(xì)化輸入可以不要求對候選空間的進(jìn)一步幾何約束,而是可以僅涉及從現(xiàn)有候選空間826選擇文檔的不同的區(qū)分性集合以呈現(xiàn)給用戶。此外,在各種實施例中,候選空間數(shù)據(jù)庫可以不被實現(xiàn)為單獨(dú)的數(shù)據(jù)庫,而是可以按照各種方式與文檔目錄嵌入空間816組合。在一些實施例中,候選空間也可以是隱式的而不是物理的。
圖9是示出了根據(jù)本發(fā)明的系統(tǒng)可以通過其進(jìn)行的各種邏輯階段的流程圖。最初,在步驟910中,將數(shù)字文檔的目錄(如在此使用的,包括圖像,文本,網(wǎng)頁,目錄條目和文檔的部分)嵌入在嵌入空間中并存儲在數(shù)據(jù)庫中。雖然這一文檔群組在這里被稱為“目錄”,但是對該術(shù)語的使用并不旨在將該群組限制為可能在零售商店可能提供的目錄類型中找到的文檔。在數(shù)據(jù)庫中,在嵌入空間中的每對文檔之間標(biāo)識對應(yīng)于該文檔對之間的不相似性的預(yù)定測量的距離。在步驟912中,可選地處理初始查詢以產(chǎn)生滿足查詢結(jié)果的文檔的初始候選空間。初始查詢例如可以是常規(guī)文本查詢。初始候選空間在文檔的完整目錄內(nèi)并且可選地小于文檔的完整目錄。在步驟913中,從初始候選空間導(dǎo)出數(shù)字文檔的初始集合。文檔的這一初始集合是初始候選空間的子集。(如在此使用的,術(shù)語“子集”僅僅是指“真”子集)。為了在下文中方便地描述迭代搜索過程,初始候選空間在此有時被稱為“i=0”候選空間。類似地,文檔的初始集合在此有時被稱為“i=0”集合。在一個實施例中,文檔的初始集合被選擇為目錄的區(qū)分性子集,而在另一實施例中,文檔的初始集合不是區(qū)分性的。在步驟914中,向用戶標(biāo)識文檔的初始集合。在一個實施例中,這可以包括向用戶可視地顯示初始集合中的文檔的表示。
在步驟915中,開始迭代搜索過程。為了便于描述,在此從迭代1開始連續(xù)地對迭代進(jìn)行編號,并且通常每個迭代為迭代數(shù)'i'。有時參考第0次迭代,其指代i=0候選空間和i=0文檔集合。
在第i次迭代開始之前,向用戶呈現(xiàn)來自先前迭代(i-1)的文檔集合。如果i=1,那么文檔的這個集合來自步驟914的文檔的初始(i=0)集合。如果i>1,那么文檔的這個集合是在先前迭代的步驟923中呈現(xiàn)給用戶的文檔的第(i-1)個集合。
在第i次迭代開始時,在步驟916中,用戶提供關(guān)于文檔的第(i-1)個集合中的文檔的相對反饋。優(yōu)選地,相對反饋采取從第(i-1)個集合對文檔的子集的用戶選擇的形式,其中對文檔的選擇意味著用戶認(rèn)為:該文檔比來自第(i-1)個集合的未被選擇的文檔更與搜索目標(biāo)相關(guān)。在第i次迭代中被選擇的子集在此被稱為第i個被選擇的子集,并且來自第(i-1)個集合的未被選擇的那些文檔有時在此被統(tǒng)稱為第i個未被選擇的子集。
在步驟918中,以在此別處描述的方式從相對反饋導(dǎo)出幾何約束的集合。在第i次迭代中導(dǎo)出的幾何約束的集合被稱為幾何約束的第i個集合。
在步驟920中,將幾何約束的第i個集合應(yīng)用于嵌入空間以形成第i個候選空間,并且在步驟922中,選擇候選文檔的第i個集合作為在第i個候選空間中的文檔的子集。在一個實施例中,文檔的第i個集合被選擇為第i個候選空間的區(qū)分性子集,而在另一實施例中,文檔的第i個集合不是區(qū)分性的。在步驟923中,向用戶呈現(xiàn)文檔的第i個集合以用于可選的進(jìn)一步細(xì)化。在步驟924中,如果用戶對候選結(jié)果中的一候選結(jié)果滿意,則用戶指示提交該結(jié)果。如果用戶輸入指示進(jìn)一步細(xì)化,那么邏輯返回到步驟915以進(jìn)行搜索循環(huán)的下一次迭代。如果未指示進(jìn)一步細(xì)化,那么在步驟926中,系統(tǒng)關(guān)于用戶選擇的文檔采取動作。
注意,至少步驟910,912和914可以按照任何順序發(fā)生。在一個實施例中,步驟910與其余步驟分開地在后臺中連續(xù)地發(fā)生,并且與其余步驟異步地更新嵌入空間中的文檔目錄。
一般來說,圖9的邏輯以及在此的所有序列和流程圖可以使用處理器、通過包括現(xiàn)場可編程集成電路的專用邏輯硬件、或者通過組合專用邏輯硬件和計算機(jī)程序而被實現(xiàn),處理器使用存儲在可由計算機(jī)系統(tǒng)訪問并且可由處理器執(zhí)行的存儲器中的計算機(jī)程序而被編程。流程圖中的每個塊或者邏輯順序中的階段描述了可以在硬件中或在一個或多個計算機(jī)系統(tǒng)上執(zhí)行的一個或多個計算處理上運(yùn)行的軟件中實現(xiàn)的邏輯。在一個實施例中,流程圖中的每個步驟或者邏輯順序中的階段示出或描述了單獨(dú)的軟件模塊的功能。在另一實施例中,步驟的邏輯由分布在多于一個模塊中的軟件代碼例程來執(zhí)行。另外,作為在此使用的術(shù)語,“模塊”可以包括一個或多個“子模塊”,所述子模塊本身在此被認(rèn)為構(gòu)成“模塊”。與本文的所有流程圖和邏輯順序一樣,應(yīng)當(dāng)理解,許多步驟可以被組合、并行執(zhí)行或按照不同順序被執(zhí)行而不影響所實現(xiàn)的功能。在一些情況下,如讀者將理解的那樣,步驟的重新布置只有在也做出某些其它改變時才將實現(xiàn)相同的結(jié)果。在其它情況下,如讀者將理解的那樣,步驟的重新布置將僅在滿足某些條件時才實現(xiàn)相同的結(jié)果。此外,將理解,本文的流程圖和邏輯順序僅示出了與理解本發(fā)明相關(guān)的方面,并且將理解,在特定實施例中,用于實現(xiàn)該實施例的其它功能的多個附加步驟可以是在所示的那些步驟之前、之后和之間執(zhí)行。
在一些實施例中,在移動設(shè)備上執(zhí)行對新的或已更新的約束的開發(fā)和維護(hù),而在服務(wù)器上維護(hù)嵌入空間中的文檔目錄,該服務(wù)器通過包括wi-fi或蜂窩數(shù)據(jù)鏈路或兩者的網(wǎng)絡(luò)而與移動設(shè)備是分開的。總體布置仍然執(zhí)行圖9的步驟(其具有如在此別處所述的變型),但是該布置體現(xiàn)了在兩個節(jié)點(diǎn)之間的特定的和高度有利的功能分配。具體來說,如在此別處所指出的,維護(hù)和更新約束所需的存儲器和計算資源是最小的,足以允許在諸如電話或平板電腦之類的移動設(shè)備上而不是在服務(wù)器上執(zhí)行和維護(hù)約束管理。
圖18是根據(jù)本發(fā)明的系統(tǒng)的這樣的移動設(shè)備實施例的各種組件的框圖。在這個實施例中,服務(wù)器1810具有先前被嵌入到嵌入空間中的可訪問的文件目錄1816。服務(wù)器1810還包括候選空間標(biāo)識模塊1824,其可訪問文檔目錄1816。通過將初始查詢和當(dāng)時(then-current)的約束集合應(yīng)用到文檔目錄1816中的文檔,候選空間標(biāo)識模塊在搜索的每次迭代時確定候選空間。得到的候選空間被臨時存儲在候選空間數(shù)據(jù)庫1826中。在實施例中,候選空間數(shù)據(jù)庫包含指向文檔目錄數(shù)據(jù)庫1816中的文檔而不是任何實際文檔的指針。服務(wù)器1810還可選地包括區(qū)分性選擇模塊1828,其從候選空間1826選擇文檔的區(qū)分性集合以用于傳輸給移動設(shè)備1812。
移動設(shè)備1812包括用戶交互模塊1822,用戶交互模塊1822在每次迭代時向用戶呈現(xiàn)文檔的集合,并且接收關(guān)于該集合的用戶反饋。用戶交互模塊1822將用戶反饋轉(zhuǎn)發(fā)給約束管理模塊1832,約束管理模塊1832管理約束數(shù)據(jù)庫1834的內(nèi)容。如果用戶交互模塊1822接收到用戶提交指示,則它通知動作模塊1830,動作模塊1830對于用戶的選擇的文檔采取一些行動,諸如在此別處關(guān)于圖8所提及的動作。
圖17示出了一個實施例中的約束數(shù)據(jù)庫1834的內(nèi)容。它包含后進(jìn)先出堆棧,其中每個級別對應(yīng)于搜索的相應(yīng)迭代。每個第i級存儲足夠的信息以標(biāo)識響應(yīng)于查看呈現(xiàn)給用戶的文檔的集合而由用戶的第i次迭代反饋所導(dǎo)致的幾何約束。在一個實施例中,在針對該迭代的堆棧條目中描述對搜索的每次迭代有效的所有約束。在其中約束是累積性的另一實施例中,在針對該迭代的堆棧條目中僅僅描述了在每個迭代中添加的約束集合,所有適用于該堆棧條目的其它約束則由于它們存在于與先前迭代對應(yīng)的堆棧條目中而被暗含。通常,每個堆棧條目在對應(yīng)的迭代處“標(biāo)識”可應(yīng)用的約束的集合。
在圖17的實施例中,針對每個第i次迭代的堆棧條目僅包含兩個字段:一個字段1710,標(biāo)識在第i次迭代中用戶從文檔的集合選擇的、呈現(xiàn)給用戶的所有文檔,以及第二字段1712,標(biāo)識在第i次迭代中呈現(xiàn)給用戶但是用戶沒有選擇的所有文檔。在第一字段1710中標(biāo)識的文檔在此有時被稱為用戶從文檔的集合選擇的文檔的第i個被選擇的子集,并且在第二字段1712中標(biāo)識的文檔在此有時被稱為用戶從文檔的集合選擇的文檔的第i個未被選擇的子集。對第i個被選擇的子集的用戶選擇指示:用戶認(rèn)為與第i個未被選擇的子集中的文檔相比,被選擇的文檔與目標(biāo)更加相關(guān)。
在圖17的實施例中,為了說明清楚起見,假設(shè)在每次迭代時僅向用戶呈現(xiàn)三個文檔,并且用戶僅選擇其中之一。對于迭代1,向用戶呈現(xiàn)文檔a,b和c,并且用戶選擇文檔a。對于迭代2,向用戶呈現(xiàn)文檔d,e和f,并且用戶選擇文檔d。對于迭代3,向用戶呈現(xiàn)文檔g,h和i,并且用戶選擇文檔g。對于迭代4,向用戶呈現(xiàn)文檔j,k和l,并且用戶選擇文檔j。系統(tǒng)解釋每個條目以針對在堆棧的對應(yīng)級中標(biāo)識的每對文檔定義單獨(dú)的幾何約束,其中在第一字段1710中標(biāo)識該對中的一個文檔,并且在第二字段1712中標(biāo)識該對的另一個文檔。因此,堆棧的級別1使用對(a,b)來定義一個約束并且使用對(a,c)來定義另一個約束。堆棧的級別2使用對(d,e)來定義一個約束并且使用對(d,f)來定義另一個約束,等等。實際約束是:為了滿足約束,候選文檔x必須在嵌入空間中離該對的第一文檔比離該對的第二文檔更近。因此,堆棧的級別1定義了如下約束:候選文檔x在嵌入空間中必須離a比它離b更近、并且在嵌入空間中必須離a比它離c更近。這些約束出于本討論的目的而被縮寫為
d(x,a)<d(x,c)和d(x,a)<(x,b),
其中'd'意指嵌入空間中的距離。類似地,堆棧的級別2定義了如下約束:候選文檔x必須在嵌入空間中必須離d比它離e更近并且在嵌入空間中必須離d比它離f更近。這些約束出于本討論的目的而被縮寫為
d(x,d)<d(x,f)和d(x,d)<dd(x,e),
等等??梢钥闯?,如果迭代i中的第一字段1710標(biāo)識pi文檔,并且迭代i中的第二字段1712標(biāo)識qi文檔,那么每次迭代i的內(nèi)容定義總共pi*qi個約束,每個約束個用于第一字段1710中的文檔和第二字段1712中的文檔的一個組合。應(yīng)當(dāng)理解,在不同實施例中可以使用表示在每次迭代中添加的約束的其它方式。
圖16是示出在圖18的實施例中的移動設(shè)備和服務(wù)器之間傳遞的消息的主要類型的示圖。在這一實施例中,移動設(shè)備1812充當(dāng)服務(wù)器1810的客戶端。它管理與用戶的交互,并更新和維護(hù)約束數(shù)據(jù)庫1834中的約束。服務(wù)器1810維護(hù)目錄,但是不保留關(guān)于用戶的搜索的狀態(tài)(雖然它可以記錄它以用于以后的離線處理)。
最初,在框1610中,移動設(shè)備1812經(jīng)由用戶迭代模塊1822從用戶接收初始查詢。在消息1612中,它將初始查詢轉(zhuǎn)發(fā)到服務(wù)器1810。在框1614中,服務(wù)器1810中的候選空間標(biāo)識模塊1824將查詢應(yīng)用于文檔的集合1816以確定初始候選空間。在框1616中,服務(wù)器1810中的區(qū)分性選擇模塊1828從當(dāng)時候選空間確定文檔的區(qū)分性集合,但在另一實施例中,在框1616中選擇的集合不一定是有區(qū)分性的。通過消息1618,服務(wù)器1810將所選擇的集合返回給客戶端移動設(shè)備1812,并且丟棄它在框1614和1616中所使用的約束或查詢。消息1618包括呈現(xiàn)給用戶和維護(hù)約束所需的所有信息,比如文檔圖像、關(guān)于文檔的元數(shù)據(jù)以及它們在嵌入空間中的嵌入的指示。在框1620中,移動設(shè)備1812例如通過顯示每個文檔的圖像來向用戶呈現(xiàn)集合。在框1622中,以用戶選擇在框1620中呈現(xiàn)給用戶的一個或多個文檔的形式,移動設(shè)備1812從用戶接收相關(guān)性反饋。在框1624中,約束管理模塊1832基于用戶的反饋來確定新的幾何約束,并且在框1626中,它用新的約束來更新約束數(shù)據(jù)庫1834。在消息1628中,移動設(shè)備1812然后將來自約束數(shù)據(jù)庫1834的當(dāng)時的約束集合(其包含關(guān)于搜索狀態(tài)的所有相關(guān)信息)與來自框1610的初始查詢一起被發(fā)送給服務(wù)器。該過程現(xiàn)在循環(huán)返回框1614,其中服務(wù)器1810將初始查詢和當(dāng)時的幾何約束集合應(yīng)用于文檔的集合1816以導(dǎo)出下一候選空間。
正如可以看出的那樣,關(guān)于給定用戶的搜索,服務(wù)器1810是無狀態(tài)的。這有若干益處:1)減少服務(wù)器上的負(fù)載,2)很容易通過添加更多的服務(wù)器來進(jìn)行擴(kuò)展——因為查詢交互的每次迭代可以去往不同的服務(wù)器,3)由于服務(wù)器是無狀態(tài)的,所以系統(tǒng)更健壯,因此例如如果服務(wù)器出故障,則狀態(tài)被保留在移動設(shè)備上。另外,由于存儲在約束數(shù)據(jù)庫1834中的約束在當(dāng)前和所有先前搜索迭代期間對用戶的反饋進(jìn)行了完全編碼,所以它們只需要最小的存儲和管理。
如上所提及,消息1618包括文檔圖像。盡管這些通常不大,但是可以實現(xiàn)許多高速緩存方案,其將保留客戶端1812上的目錄項目。這些高速緩存方案包括高速緩存流行項目或基于人口統(tǒng)計信息或搜索歷史被預(yù)測為用戶感興趣的項目的方法。還可以通過預(yù)測在搜索的后續(xù)迭代中可能需要呈現(xiàn)哪些項目來將項目預(yù)取到客戶端1812上。
數(shù)字文檔的嵌入
如在此使用的,由嵌入模塊820在步驟910中將數(shù)字文檔嵌入到“嵌入空間”中,該“嵌入空間”是在其中表示文檔的幾何空間。在一個實施例中,嵌入空間是向量空間,其中文檔的特征定義其在向量空間中相對于原點(diǎn)的“位置”。該位置通常被表示為從原點(diǎn)到文檔的位置的向量,并且該空間具有基于向量中的坐標(biāo)數(shù)量的維度數(shù)量。向量空間處理向量和可以對那些向量執(zhí)行的操作。在另一實施例中,嵌入空間是度量空間,其不具有位置、維度或原點(diǎn)的概念。不是相對于任何特定原點(diǎn),而是相對于彼此來保持度量空間中的文檔之間的距離。度量空間處理對象以及這些對象之間的距離以及可以對那些對象執(zhí)行的操作。出于當(dāng)前討論的目的,這些對象是重要的,因為存在對向量空間和度量空間進(jìn)行操作的許多有效算法。例如,度量樹可以用于快速地標(biāo)識彼此“靠近”的對象。在下面的討論中,我們將對象嵌入到向量空間和/或度量空間中。在向量空間的上下文中,這意味著我們定義一個將對象映射到某個向量空間中的向量的函數(shù)。在度量空間的上下文中,這意味著我們定義這些對象之間的度量(或距離),這允許我們將所有這些對象的集合視為度量空間。注意,向量空間允許使用包括歐幾里德距離的距離(發(fā)散)的各種標(biāo)準(zhǔn)測量。其它實施例可以使用其它類型的嵌入空間。
如在此使用的,“嵌入”是將文檔映射到嵌入空間中的映射。通常,它是將要被嵌入的文檔的潛在大量的特征作為輸入的函數(shù)。對于一些嵌入,映射可以由人創(chuàng)建和理解,而對于其它嵌入,映射可以是非常復(fù)雜和非直觀的。在許多實施例中,后一類型的映射由基于訓(xùn)練示例的機(jī)器學(xué)習(xí)算法來開發(fā),而不是被顯式地編程。
讓我們首先考慮在向量空間中的嵌入。為了在向量空間中嵌入文檔目錄,我們將每個文檔與一個向量相關(guān)聯(lián)。然后使用向量上的距離的標(biāo)準(zhǔn)測量來確定在這樣一個空間中的兩個文檔之間的距離。
將數(shù)字文檔嵌入向量空間中的目標(biāo)是將直觀相似的文檔彼此靠近地放置。有很多方法來實現(xiàn)這一點(diǎn)。例如,嵌入文本文檔的一種常見方式是使用詞袋(bag-of-words)模型。詞袋模型維護(hù)一個字典。字典中的每個單詞被賦予一個整數(shù)索引,例如,單詞aardvark可以被賦予索引1,并且單詞zebra可以被賦予索引60,000。通過對該文檔中每個字典單詞的出現(xiàn)次數(shù)進(jìn)行計數(shù)來處理每個文檔。創(chuàng)建一個向量,其中在第i個索引處的值是第i個字典單詞的計數(shù)。該表示的變型以各種方式對計數(shù)進(jìn)行標(biāo)準(zhǔn)化。這種嵌入捕獲關(guān)于內(nèi)容的信息,并因此捕獲文檔的含義。具有相似單詞分布的文本文檔在此嵌入空間中彼此靠近。
存在各種各樣的可以將文檔嵌入到向量空間中的手段。例如,可以使用例如尺度不變特征變換(sift)來處理圖像以標(biāo)識共同出現(xiàn)的特征,然后對其進(jìn)行分箱并且被使用在與上述的詞袋嵌入類似的表示中。特別感興趣的是使用深層神經(jīng)網(wǎng)絡(luò)或其它深度學(xué)習(xí)技術(shù)所產(chǎn)生的嵌入。例如,神經(jīng)網(wǎng)絡(luò)可以通過針對在訓(xùn)練數(shù)據(jù)的大型集合上的維度降低的測量來執(zhí)行梯度下降從而學(xué)習(xí)適當(dāng)?shù)那度?。作為另一示例,可以基于?shù)據(jù)來學(xué)習(xí)內(nèi)核并且基于該內(nèi)核來導(dǎo)出距離。同樣,可以直接學(xué)習(xí)距離。這些方法通常使用大型神經(jīng)網(wǎng)絡(luò)來將文檔、單詞或圖像映射到高維向量。備選地,人們可以使用具有諸如多維縮放或隨機(jī)鄰近嵌入之類的算法的示例來學(xué)習(xí)嵌入。到向量空間中的嵌入也可以經(jīng)由內(nèi)核被隱式地定義。在這種情況下,可以從不生成或使用顯式向量,而是通過在原始空間中執(zhí)行內(nèi)核操作來執(zhí)行向量空間中的操作。
特別感興趣的其它嵌入捕獲關(guān)于文檔的日期和時間信息,例如,拍攝照片的日期和時間。在這樣的情況下,如果在不同星期的同一天,或在同一個月但不同年份拍攝圖像,則可以使用將圖像定位得更靠近的內(nèi)核。例如,在圣誕節(jié)附近拍攝的照片可以被認(rèn)為是相似的——即使它們在不同的年份拍攝并且因此在它們的時間戳之間具有大的絕對差。通常,這樣的內(nèi)核可以通過簡單地查看時間戳之間的差異來捕獲除此之外可用的信息。
類似地,捕獲地理信息的嵌入可能是感興趣的。這樣的嵌入可以考慮與文檔相關(guān)聯(lián)的地理元數(shù)據(jù),例如,與照片相關(guān)聯(lián)的地理標(biāo)記。在這些情況下,可以使用捕獲僅僅兩個位置之間的英里差之外的更多信息的內(nèi)核或嵌入。例如,它可以捕獲照片是否在同一城市、同一建筑物或同一國家拍攝。
通常嵌入將以多種方式考慮文檔。例如,可以根據(jù)與該產(chǎn)品相關(guān)聯(lián)的元數(shù)據(jù)、該產(chǎn)品的圖像以及該產(chǎn)品的評論的文本內(nèi)容來嵌入產(chǎn)品。這種嵌入可以通過為文檔的每個方面開發(fā)內(nèi)核并以某種方式(例如,經(jīng)由線性組合)組合這些內(nèi)核而被實現(xiàn)。
在許多情況下,將需要非常高的維度空間來捕獲文檔之間的直觀關(guān)系。在這些情況中的一些情況下,可以通過選擇將文檔嵌入在空間中的歧管(彎曲表面)上而不是嵌入到任意位置中來減少所需的維度。
最后,值得注意的是,不同的嵌入在文檔目錄的不同子集上可能是適當(dāng)?shù)?。例如,在搜索過程的每次迭代時重新嵌入候選結(jié)果集合可能是最有效的。以這種方式,可以將子集重新嵌入以捕獲該子集中的變化的或感興趣的最重要的軸。
為了將數(shù)字文檔目錄嵌入到度量空間中,需要將該目錄與距離(或度量)相關(guān)聯(lián)。下面我們討論定義數(shù)字文檔之間的距離的一些方法。
數(shù)字文檔之間的距離和相似性
嵌入空間中的兩個文檔之間的“距離”“對應(yīng)于”文檔之中的不相似性的預(yù)定測量。優(yōu)選地,它是不相似性的測量的單調(diào)函數(shù)。通常它等于不相似性的測量。示例距離包括曼哈頓距離,歐幾里德距離和漢明距離。
存在測量數(shù)字文檔之間的距離(或不相似性)的各種各樣的方法,并且這些可以被組合以產(chǎn)生新的距離測量。一個重要的概念是可以通過這樣的相似性或距離測量來捕獲數(shù)字文檔之間的直觀關(guān)系。例如,一些有用的距離測量將包含相同人物的圖像放置在彼此靠近的相同位置中。同樣,一些有用的測量將討論相同主題的文檔放置為彼此靠近。當(dāng)然,存在著許多軸,數(shù)字文檔可以沿著這些軸直觀地相關(guān),從而使得(相對于該距離)與給定文檔靠近的所有文檔的集合可以是相當(dāng)多樣的。例如,描述安東尼和克婁巴特拉之間的關(guān)系的歷史文本可能與其它歷史文本、關(guān)于埃及的文本、關(guān)于羅馬的文本、關(guān)于安東尼和克婁巴特拉的電影、以及愛情故事相似。這些類型的差異中的每一種構(gòu)成相對于原始?xì)v史文本的不同軸。
這樣的距離可以按照各種方式而被定義。一種典型的方式是通過嵌入到向量空間中。其它方式包括經(jīng)由內(nèi)核來編碼相似性。通過將文檔的集合與距離相關(guān)聯(lián),我們有效地將這些文檔嵌入到度量空間中。直觀上相似的文檔在這個度量空間中將是靠近的,而直觀上不相似的文檔將相距很遠(yuǎn)。還要注意,可以學(xué)習(xí)內(nèi)核和距離函數(shù)。事實上,在搜索的每次迭代時學(xué)習(xí)有關(guān)文檔子集的新的距離函數(shù)可能是有用的。
注意,無論在何處使用距離來測量文檔之間的不相似性,內(nèi)核都可以被用來測量文檔之間的相似性,反之亦然。特別而言,在下文中,例如在約束的定義中我們將參考距離的使用。然而,可以改為直接使用內(nèi)核,而不需要將它們轉(zhuǎn)換成距離。
內(nèi)核和距離可以按照各種方式組合。以這種方式可以利用多個內(nèi)核或距離。每個內(nèi)核可以捕獲關(guān)于文檔的不同信息,例如,一個內(nèi)核可以捕獲關(guān)于一件首飾的視覺信息,而另一個捕獲價格,并且再一個捕獲品牌。
還要注意,嵌入可以是特定于給定域的,諸如產(chǎn)品的給定目錄或內(nèi)容的類型。例如,學(xué)習(xí)或開發(fā)專用于男鞋的嵌入可能是適合的。這樣的嵌入將捕獲男鞋之間的相似性,對于男士襯衫來說是不知情的。
數(shù)據(jù)庫組織
在本發(fā)明的實施例中使用的諸如數(shù)據(jù)庫816和826之類的數(shù)據(jù)庫可以使用通常可用的裝置或其它相關(guān)技術(shù)來將數(shù)據(jù)存儲在例如關(guān)系數(shù)據(jù)庫、文檔存儲、鍵值存儲中。在每種情況下,原始文檔內(nèi)容(或指向它們的指針)可以被存儲并與它們的高維表示或相對于其它文檔的距離的測量集合相關(guān)聯(lián)。
為了實現(xiàn)可擴(kuò)展和快速的搜索性能,索引結(jié)構(gòu)是關(guān)鍵。當(dāng)將文檔嵌入在向量空間中時,可以使用例如kd樹來構(gòu)建索引。當(dāng)文檔與距離度量相關(guān)聯(lián)并因此被嵌入在度量空間中時,可以使用度量樹。
將在此描述的數(shù)據(jù)庫存儲在一個或多個非臨時性計算機(jī)可讀介質(zhì)上。如在此使用的,在數(shù)據(jù)庫是否被布置在計算機(jī)可讀介質(zhì)“上”或“中”之間不意在區(qū)別。另外,如在此使用的,術(shù)語“數(shù)據(jù)庫”不一定意味著任何結(jié)構(gòu)的統(tǒng)一。例如,當(dāng)一起被考慮時,兩個或更多個單獨(dú)的數(shù)據(jù)庫仍構(gòu)成在此使用的術(shù)語“數(shù)據(jù)庫”。
初始查詢
在步驟912中呈現(xiàn)給系統(tǒng)的初始查詢可以使用各種標(biāo)準(zhǔn)技術(shù)而被創(chuàng)建和評估。例如,查詢可以被呈現(xiàn)為通過鍵盤或通過語音輸入的一組關(guān)鍵詞;查詢可以是通過鍵盤或通過語音輸入的自然語言短語或句子;或者查詢可以是表示音頻信號、圖像、視頻或者是可以尋找相似的音頻信號、圖像、視頻或文本的原型的一段文本。通過已知的各種手段可以有效地評估這樣的初始查詢,例如搜索關(guān)系數(shù)據(jù)庫或使用反向索引。
初始查詢還可以被設(shè)計為僅僅返回結(jié)果的隨機(jī)集合。
初始查詢也可以為空,即,不施加約束。
用于初始查詢的其它接口允許分面搜索。分面搜索為用戶提供了一種約束沿著一組軸的搜索的手段。例如,分面搜索可以提供允許用戶約束可接受價格范圍的滑塊。
標(biāo)識候選結(jié)果
從初始查詢和后續(xù)用戶輸入創(chuàng)建的搜索約束被用于標(biāo)識候選結(jié)果集合。這可以使用各種手段而被實現(xiàn)。例如,可以針對關(guān)系數(shù)據(jù)庫執(zhí)行初始查詢,從而將結(jié)果嵌入向量或度量空間中。然后,可以使用例如kd樹或度量樹來對這些結(jié)果編索引,并且搜索這些結(jié)果以標(biāo)識既滿足初始查詢又滿足約束的候選。備選地,也可以將初始查詢轉(zhuǎn)換為應(yīng)用于嵌入文檔的集合的幾何約束。在這種情況下,組合初始查詢和用戶輸入兩者所暗含的約束的幾何表示,并且使用適當(dāng)?shù)乃饕齺順?biāo)識滿足兩組約束的嵌入文檔。
如在此使用的,嵌入空間上的“幾何約束”是在嵌入空間中用公式描述的約束,而不是僅僅通過對個體文檔或文檔特征編目以包括或排除。優(yōu)選地,基于與用戶已經(jīng)看過的至少兩個文檔的距離(或相似性)來定義幾何約束。例如,這樣的約束可以被表示為“與文檔b相比與文檔a更相似的所有文檔”。
在向量嵌入空間中,例如,可以按照定義超曲面的指定函數(shù)的形式來描述約束。超曲面一側(cè)上的文檔滿足約束,而另一側(cè)上的文檔不滿足約束。超平面可以根據(jù)點(diǎn)積或內(nèi)核而被定義,并且對于固定向量x和候選z,要求k(x,z)>0。同樣,圓錐約束對于一些常數(shù)c可能要求k(x,z)>c。在度量嵌入空間中,可以按照例如文檔之間的距離的函數(shù)的形式來描述約束。因此,在度量嵌入空間中,幾何約束可以采用例如“與文檔x相距在指定距離內(nèi)的所有文檔”的形式,或者“到文檔a的距離小于到文檔b的距離的所有文檔”的形式。在一個實施例中,為度量空間定義的超平面采取“m超平面”的形式,如在此使用的,“m超平面”由度量空間中的兩個點(diǎn)a和b定義如下:
由點(diǎn)a和b指定的m超平面將度量空間(x,d)劃分為兩個集合a和b,其中:
a={x:x中的x從而使得d(a,x)<=e*d(a,b)*d(b,x)+f*d(b,x)+h*d(a,b)+i}
b=x\a
其中e,f,g,h和i是不全等于零的實值常數(shù)。
認(rèn)為僅對位于度量空間的分區(qū)a或b中的規(guī)定分區(qū)中的那些文檔滿足幾何約束。
還可以使用集合操作(例如,聯(lián)合、交集)來組合幾何約束以定義更復(fù)雜的幾何約束。它們也可以通過采用所討論的任何示例約束的變換而被創(chuàng)建。例如,對于給定文檔x,y和w,可以采用距離的多項式函數(shù),例如d(x,z)*d(x,z)+d(y,z)<d(w,z),并且只有滿足函數(shù)的那些文檔z被認(rèn)為滿足幾何約束。
注意,可以獨(dú)立于距離來使用內(nèi)核,并且可以根據(jù)內(nèi)核、內(nèi)核的多項式、內(nèi)核的變換或內(nèi)核的組合來直接表示約束。
在一個實施例中,用戶搜索序列的每次迭代標(biāo)識新的約束,并且在該迭代處的結(jié)果集合由所有約束的組合效果來定義。例如,如果約束被表示為超曲面,其中只有在超曲面的a側(cè)上的那些候選被認(rèn)為滿足約束,那么在給定迭代處的結(jié)果集合可以被認(rèn)為是在所有約束超曲面的a側(cè)的交集內(nèi)的所有那些候選文檔。
在各種實施例中,(由用戶指示的或者被轉(zhuǎn)換為幾何約束的)約束可以是“硬的”或“軟的”。硬約束是在解(solution)必須滿足所有硬約束的條件的意義上必須滿足的約束。軟約束是如下約束,這些約束不需要被滿足,但是對于候選解不滿足的每個軟約束,可能對候選解處罰。如果這種處罰的累積太大,則在特定實施例中可以拒絕該解。在一些實施例中可以放松約束,例如,可以通過將硬約束與處罰相關(guān)聯(lián)來將硬約束轉(zhuǎn)換為軟約束,并且軟約束可以減少它們的處罰。
一種可以表示幾何約束的方式是維護(hù)所有無序的文檔對的列表。列表中的每個條目將是對(a,b),其中a表示一個文檔,b表示另一個文檔。(注意,對(b,a)也可出現(xiàn)在列表中)。每個條目被理解為意指候選必須離該對中的第一元素比離第二元素更靠近。因此,該對的兩個元素在此有時被稱為“錨文檔”。例如,對于文檔c,對(a,b)將與約束d(a,c)<d(b,c)相關(guān)聯(lián)。實數(shù)可以與每對相關(guān)聯(lián)。在硬約束的情況下,該數(shù)可以是0或1,其中1意指必須滿足約束,而0意指不需要滿足約束。備選地,在軟約束的情況下,數(shù)字可以是表示與破壞該約束相關(guān)聯(lián)的處罰的任何實數(shù)??梢园凑掌渌绞嚼缡褂孟∈璞硎緛砭S護(hù)此信息。一種替代方案是僅維護(hù)與非零實數(shù)相關(guān)聯(lián)的那些對。
在步驟918中從用戶的相對反饋導(dǎo)出的幾何約束的每個集合的目標(biāo)是進(jìn)一步縮窄或修改先前的候選空間,以形成更好地接近用戶期望目標(biāo)的新候選空間。在每次迭代時,系統(tǒng)具有的關(guān)于用戶期望目標(biāo)的信息以用戶的相對反饋的形式被提供,用戶的相對反饋以文檔選擇的形式被提供。因此,一般來說,幾何約束的每個第i個集合標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的一些預(yù)定義的定義,與在第(i-1)個候選空間中的文檔相比,第i個候選空間中的文檔在嵌入空間中集體地更靠近在第i個被選擇的子集中的文檔。這意味著集體接近度的預(yù)定義的定義被定義為使得:如果在嵌入空間中d(a,x)<d(b,x),則候選文檔x至少被認(rèn)為與文檔b相比更靠近文檔a。
對于其中第i個被選擇的子集或第i個未被選擇的子集或兩者可以包含多于一個文檔的一個實施例,集體接近度的預(yù)定義的定義被進(jìn)一步定義,從而使得:如果在嵌入空間中離在給定被選擇的子集中的最遠(yuǎn)文檔比離在給定未被選擇的子集中的最近文檔更靠近的在給定候選空間中的文檔的部分大于在嵌入空間中離在給定被選擇的子集中的最遠(yuǎn)文檔比離在給定未被選擇的子集中的最近文檔更靠近的在特定先前候選空間中的文檔的部分,則與在特定先前候選空間中的文檔相比,在給定候選空間中的文檔集體地更靠近給定被選擇的子集中的文檔。
對于其中第i個被選擇的子集或第i個未被選擇的子集或兩者可以包含多于一個文檔的另一實施例,集體接近度的預(yù)定義的定義被進(jìn)一步定義,從而使得:如果在給定候選空間中的所有文檔y以及第i個被選擇的子集中的a和在第i個未被選擇的子集中的b的所有文檔對(a,b)上其中d(a,y)<d(b,y)的實例的計數(shù),小于在特定先前候選空間中的所有文檔x以及所有文檔對(a,b)上其中d(a,x)<d(b,x)的實例的計數(shù),其中針對給定候選空間中的文檔y的總數(shù)與特定先前候選空間中的文檔x的總數(shù)之間的任何差異對每個計數(shù)進(jìn)行歸一化,則與在特定先前候選空間中的文檔相比,在給定候選空間中的文檔集體地更靠近在給定的被選擇的子集中的文檔。
對于其中第i個被選擇的子集或第i個未被選擇的子集或兩者可以包含多于一個文檔的又一實施例,集體接近度的預(yù)定義的定義被進(jìn)一步定義,從而使得:如果在第i個被選擇的子集中的所有文檔a上的平均而言離在第i個被選擇的子集中的文檔a比在第i個未被選擇的子集中的所有文檔b上的平均而言離在第i個未被選擇的子集中的文檔b更靠近的在給定候選空間中的文檔的部分小于在第i個被選擇的子集中的所有文檔a上的平均而言離在第i個被選擇的子集中的文檔a比在第i個未被選擇的子集中的所有文檔b上的平均而言離在第i個未被選擇的子集中的文檔b更靠近的在特定先前候選空間中的文檔的部分,則與特定先前候選空間中的文檔相比,給定候選空間中的文檔更靠近給定的被選擇的子集中的文檔。如在此使用的術(shù)語“平均”包括平均值和中值,并且可選地還包括加權(quán)。
對于其中第i個被選擇的子集或第i個未被選擇的子集或兩者可以包含多于一個文檔的又一實施例,集體接近度的預(yù)定義的定義被進(jìn)一步定義,從而使得:如果在給定候選空間中的所有文檔y以及在第i個被選擇的子集中的a和在第i個未被選擇的子集中的b的所有文檔對(a,b)上與其中d(a,y)≥d(b,y)的每個實例相關(guān)聯(lián)的處罰的聚合,小于在特定先前候選空間中的所有文檔x以及在所有文檔對(a,b)上與其中d(a,x)≥d(b,x)的每個實例相關(guān)聯(lián)的處罰的聚合,其中針對給定文檔w滿足d(a,w)≥d(b,w)的每個實例與相應(yīng)的處罰值預(yù)先相關(guān)聯(lián),則與特定先前候選空間中的文檔相比,在給定候選空間中的文檔集體地更靠近在給定的被選擇的子集中的文檔。如在此使用的,“聚合”包括總和、百分比或其它歸一化,其中進(jìn)一步包括附加的正數(shù)不會減少總聚合。
使用幾何約束的優(yōu)點(diǎn)在于:在實施例中,維護(hù)和更新約束所需的存儲器和計算資源取決于約束的數(shù)量而不是目錄大小。這將例如允許在諸如電話或平板電腦的移動設(shè)備上而不是在服務(wù)器上執(zhí)行和維護(hù)約束管理。
區(qū)分性結(jié)果集合
搜索查詢可能是不明確的或不足的,因此滿足查詢的文檔可能是非常多樣的。例如,如果初始查詢針對“紅色禮服”,則結(jié)果在其長度、領(lǐng)口、袖子等方面可以是相當(dāng)不同的。模塊的這個方面對結(jié)果的區(qū)分性集合進(jìn)行子選擇。直觀上來講,目標(biāo)是向用戶提供結(jié)果的集合,從而使得這些結(jié)果的選擇或取消選擇向搜索算法提供最具信息性的反饋或約束??梢詫⑦@個步驟認(rèn)為是標(biāo)識“信息性的”結(jié)果的集合、或者“多樣化的”結(jié)果的集合、或者“區(qū)分性的”結(jié)果的集合。執(zhí)行步驟918的區(qū)分性選擇模塊828以按照多種方式中的任何一種來選擇結(jié)果的區(qū)分性子集。
在一個實施例中,結(jié)果的子集可以是區(qū)分性的,因為它提供用戶可以選擇的多樣的不同種類的反饋。例如可以如在vanleuken等人的“visualdiversificationofimagesearchresults”,www'09proceedingsofthe18thinternationalconferenceonworldwideweb,第341-350頁(2009)中那樣來選擇多樣化圖像,通過引用并入本文。選擇這個多樣化的集合以便向用戶提供在下一次迭代時對查詢進(jìn)行細(xì)化的各種方式。存在可以用來標(biāo)識這樣的集合的各種方式。例如,可以執(zhí)行最遠(yuǎn)的第一次遍歷,其逐步地標(biāo)識“最”多樣化的結(jié)果的集合。最遠(yuǎn)的第一次遍歷只需要一個距離度量,并且不需要嵌入。也可以用結(jié)果的集合對最遠(yuǎn)的第一次遍歷進(jìn)行初始化;然后,隨后的結(jié)果與那個初始集合最不同。
用于選擇候選結(jié)果的區(qū)分性子集的其它手段包括使用像pca(主要組件分析)或內(nèi)核pca的算法來標(biāo)識完整結(jié)果集合中的變化的關(guān)鍵軸。區(qū)分性子集然后被構(gòu)造為包含位于沿著這些最大區(qū)分性軸的多個點(diǎn)處的文檔。
用于選擇候選結(jié)果的區(qū)分性子集的另一手段可以使用聚類算法來選擇候選結(jié)果的區(qū)分性子集。這種機(jī)制可以使用諸如k均值或k中心點(diǎn)之類的的聚類算法來標(biāo)識候選結(jié)果內(nèi)的相似文檔的聚類。請參閱http://en.wikipedia.org/wiki/k-means_clustering(2015年4月29日訪問)和http://en.wikipedia.org/wiki/k-medoids(2015年4月29日訪問),兩者通過引用并入本文。然后將從每個聚類選擇一個或多個代表性文檔以產(chǎn)生區(qū)分性子集。具體而言,當(dāng)使用k中心點(diǎn)時,每個聚類的中心可以被用作該聚類的代表之一。
另一種手段可以考慮由用戶對給定文檔進(jìn)行選擇或取消選擇而產(chǎn)生的約束的集合。約束的這一集合可以根據(jù)其將產(chǎn)生的候選結(jié)果而被考慮??梢赃x擇區(qū)分性子集以使得通過選擇該區(qū)分性子集中的任何文檔而產(chǎn)生的候選結(jié)果集合盡可能不同。
如在此使用的,文檔群組中的特定文檔的集合的“區(qū)分性”是作為集合中的任何文檔的用戶選擇結(jié)果而被排除的、在群組中的最少數(shù)量的文檔。也即是說,如果特定集合中的不同文檔的用戶選擇導(dǎo)致排除了群組中不同數(shù)量的文檔,那么在此集合的“區(qū)分性”被認(rèn)為是那些數(shù)量中的最少者。注意,文檔的區(qū)分性集合、或者公式——文檔的用戶選擇通過所述公式來確定要排除哪些文檔、或者兩者應(yīng)當(dāng)被選擇,以使得通過選擇區(qū)分性集合中的任何文檔而排除的文檔的集合的聯(lián)合等于整個文檔群組。
同樣如在此使用的,文檔群組中的大小為n的文檔的集合的“平均區(qū)分性”是在該文檔群組中的所有大小為n的文檔的集合上的該集合的區(qū)分性的平均值。同樣如在此使用的,如果第一集合的區(qū)分性大于第二集合的區(qū)分性,則一個特定文檔的集合可以比另一個文檔的集合“更有區(qū)分性”。
優(yōu)選地,執(zhí)行步驟918的選擇模塊828從當(dāng)前候選空間826選擇n1>1個文檔的集合,其比候選空間中的大小為nl個文檔的集合的平均區(qū)分性更有區(qū)分性。甚至更優(yōu)選地,執(zhí)行步驟918的選擇模塊828選擇這樣一個集合:該集合至少與當(dāng)前候選空間中的大小為n1個文檔的其它集合的90%一樣有區(qū)分性,或者在一些實施例中與全部其它集合一樣有區(qū)分性。
還要注意,并非所有實施例都需要執(zhí)行選擇候選的區(qū)分性子集的步驟918。在一些實施例中,用戶交互模塊822向用戶呈現(xiàn)從候選集合隨機(jī)選擇的或以某種其它方式被選擇的文檔子集是足夠的。在這樣的實施例中,區(qū)分性選擇模塊828被簡單地用選擇模塊所替換。
可以選擇被選擇的子集以平衡區(qū)分性與滿足軟約束。例如,如果使用軟約束,那么每個文檔變成與其破壞的每個約束的處罰相關(guān)聯(lián)??梢赃x擇被選擇的子集以利用該子集的區(qū)分性來權(quán)衡被選擇的子集中的所有候選的總處罰。具體而言,具有最小處罰的文檔可以優(yōu)先地被包括在被選擇的子集中——即使它降低了區(qū)分性。
在一些情況下,參見下文,可以使用機(jī)器學(xué)習(xí)算法來管理和更新約束。具體而言,這可以包括主動學(xué)習(xí)算法或賭博機(jī)算法。這些算法在每次迭代時標(biāo)識“信息性”(或區(qū)分性)的示例。當(dāng)這些算法被用來管理約束時,它們對信息性示例的標(biāo)識可以被用作區(qū)分性子集,或者被用作用于確定區(qū)分性子集的基礎(chǔ)。賭博機(jī)算法是特別感興趣的,因為它們試圖通過標(biāo)識區(qū)分性示例來權(quán)衡最大化獎勵(即,找到目標(biāo)文檔)。
在初始查詢之前或之后,用于選擇區(qū)分性子集的上述技術(shù)中的任何一種也可以被用于選擇要向用戶呈現(xiàn)的候選文檔的初始集合。
結(jié)果呈現(xiàn)
在步驟920中由用戶交互模塊822向用戶呈現(xiàn)的區(qū)分性結(jié)果的目的是向用戶提供在其中用于細(xì)化查詢約束的框架。
例如,結(jié)果可以被呈現(xiàn)為二維網(wǎng)格。結(jié)果應(yīng)該以一種允許用戶認(rèn)識到這些結(jié)果之間的潛在距離(如使用距離測量或嵌入所定義的)的方式而被放置在該網(wǎng)格上。這樣做的一種方式是確保相對于距離測量彼此遠(yuǎn)離的結(jié)果在網(wǎng)格上也彼此遠(yuǎn)離地被顯示。另一種方式是例如使用多維縮放(mds)來將嵌入空間投影到兩個維度上(例如,參見:jingyang等人的“semanticimagebrowser:bridginginformationvisualizationwithautomatedintelligentimageanalysis”,proc.ieeesymposiumonvisualanalyticsscienceandtechnology(2006),通過引用并入本文)。還有一種方式是在嵌入空間中對軸進(jìn)行子選擇并沿著那些軸對結(jié)果進(jìn)行定位。
預(yù)期的其它布局包括不在網(wǎng)格上的2維組織(可能包括重疊的結(jié)果),與2維組織類似的3維組織。多維組織類似于2維和3維組織,具有圍繞一個或多個軸旋轉(zhuǎn)的能力。通??梢允褂胢維布局,其中m>1。在嵌入空間具有維度的實施例中,在呈現(xiàn)布局中的維度的數(shù)量不需要與嵌入空間中的維度的數(shù)量相同。其它布局包括分層組織或基于圖形的布局。
布局空間中的文檔放置應(yīng)指示嵌入空間中的文檔之間的關(guān)系。例如,布局空間中的文檔之間的距離應(yīng)當(dāng)與嵌入空間中的相同文檔之間的距離(單調(diào)地,如果不是線性地)對應(yīng)。此外,如果三個文檔在嵌入空間中共線,則有利地它們在布置空間中也被共線地放置。具體而言,在布局空間中與系統(tǒng)將其標(biāo)識為用戶查詢的最可能的目標(biāo)的候選文檔(在此被稱為主要候選文檔)的共線性指示在嵌入空間中與主要候選文檔的共線性。
然而,應(yīng)當(dāng)理解,嵌入空間通常具有非常大量的維度,并且在高維度空間中,實際上非常少的點(diǎn)是共線的。因此,在實施例中,在布局空間中共被線呈現(xiàn)的文檔僅指示嵌入空間中的“基本上”共線性。如在此使用的,如果嵌入空間使得每個文檔在空間(比如向量空間)中具有一個位置,那么如果在嵌入空間中由三個文檔所形成的三角形的最大角度大于160度則在嵌入空間中該三個文檔被認(rèn)為是“基本上共線的”。如果嵌入空間使得文檔在嵌入空間中不具有位置,但是它們確實彼此具有距離(例如,對于度量空間),那么如在此使用的,如果嵌入空間中的群組中的文檔對之間的兩個最小距離之和等于嵌入空間中的群組中的文檔對之間的最大距離,則三個文檔的群組被認(rèn)為是共線的。如果兩個最小距離之和超過最大距離不超過10%,則這三個文檔被認(rèn)為是“基本上共線的”。如在此使用的,“共線性”和“基本上共線性”不包括重合或基本重合的微不足道的情況。
用戶輸入
用戶交互模塊822向用戶提供用戶接口(ui),所述用戶接口(ui)允許用戶以各種方式提供輸入。例如,用戶可以點(diǎn)擊單個結(jié)果以選擇它,或者可以在單個結(jié)果的方向上滑動以取消選擇它。類似地,用戶可以一次選擇或取消選擇多個結(jié)果。例如,這可以使用每個結(jié)果上的切換選擇器而被完成。用戶還可以通過在結(jié)果的方向上滑動來隱式地選擇一個結(jié)果集合,這指示了對于“結(jié)果在該方向上”的結(jié)果的期望。在這種情況下,“在該方向上”意味著主要結(jié)果和正被滑動的結(jié)果之間的差異應(yīng)當(dāng)被放大。也即是說,結(jié)果的下一個集合應(yīng)該更像正被滑動的結(jié)果,而不像“主要結(jié)果”??梢酝ㄟ^允許用戶“從”一個結(jié)果滑動“到”另一個結(jié)果來概括這個概念。在這種情況下,新結(jié)果應(yīng)該更像“到”結(jié)果,而不像“從”結(jié)果。
另外,ui可以向用戶提供(例如,經(jīng)由雙擊或捏合)以指定結(jié)果的下一集合應(yīng)該比所顯示的任何其它結(jié)果更像特定結(jié)果的能力。也即是說,用戶選擇所顯示的結(jié)果之一以指示該結(jié)果優(yōu)于所顯示的所有其它結(jié)果。然后,這可以被編碼為約束集合,為每個未被選擇的文檔指示未來的候選(在嵌入空間中)應(yīng)該與未被選擇的文檔相比更靠近被選擇的文檔。在這種形式的反饋中,用戶選擇文檔以指示它們比未被選擇的文檔與用戶的期望目標(biāo)“更相關(guān)”,這種形式的反饋在此有時被稱為“相對反饋”。它不同于更傳統(tǒng)的“分類反饋”,在分類反饋中需要用戶選擇相關(guān)的和不相關(guān)的候選。然而,在許多情況下,相關(guān)文檔非常罕見,以致于可能沒有這樣的文檔可供用戶選擇。相反,在此的系統(tǒng)的實施例允許相對反饋,其中用戶標(biāo)識可能實際上不與目標(biāo)嚴(yán)格相關(guān)但仍提供有效信息以指導(dǎo)進(jìn)一步搜索的比較相關(guān)的候選。相對反饋和分類反饋都可以被認(rèn)為是“相關(guān)性反饋”的形式。
對相對反饋進(jìn)行編碼的一種方式是作為對嵌入空間的幾何約束的集合。對于每個未被選擇的圖像b,創(chuàng)建形式為d(a,c)<d(b,c)的約束,其中a是被選擇的圖像,c是對其應(yīng)用約束的候選圖像(d是在嵌入空間中的距離)。然后候選c僅當(dāng)它滿足d(a,c)<d(b,c)時滿足約束。以這種方式,單擊生成多個約束。這些約束可以被組合,例如使得組合的約束是它們的交集,并且可以給其它候選文檔賦予排名(rank),所述排名是候選所破壞的約束中的個體約束的數(shù)量的單調(diào)函數(shù)(較小的排名指示與用戶目標(biāo)的較大的相似性)。備選地,通過將每個這樣的約束與處罰相關(guān)聯(lián),可以將約束用作軟約束。在這一備選中,可以向另外的候選文檔給予排名,該排名是與候選所破壞的所有個體約束相關(guān)聯(lián)的處罰的總和的單調(diào)函數(shù)。在另外的實施例中,可以取決于約束的年齡(在迭代搜索中在多早施加約束)來確定排名。在一個實施例中,這可以通過取決于首先施加給定約束的迭代數(shù)量來確定(或修改)與每個給定約束相關(guān)聯(lián)的處罰從而來實現(xiàn)。在一個實施例中,處罰可以被設(shè)計為隨著約束的年齡增加,而在另一實施例中,處罰可以被設(shè)計為隨著約束的年齡而減小。
可以擴(kuò)展該方法以允許用戶選擇更相關(guān)的多個圖像。這個反饋可以被解釋為使得每個被選擇的圖像比每個未被選擇的圖像更相關(guān)。在一個實施例中,系統(tǒng)然后可以創(chuàng)建與一個被選擇文檔和一個未被選擇文檔的每一對對應(yīng)的不同約束。創(chuàng)建總共p*q個約束,其中p是被選擇的文檔的數(shù)量,q是未被選擇的文檔的數(shù)量。約束可以具有形式d(ai,c)<d(bj,c),i=1...p和j=1...q。
ui可以提供反向能力,即,它可以允許用戶選擇較不相關(guān)的圖像而非較為相關(guān)的圖像,并且上面的描述將被適當(dāng)?shù)匦薷摹?/p>
ui還可以提供指定結(jié)果的下一個集合應(yīng)當(dāng)像特定選擇但比結(jié)果的當(dāng)前被選擇的集合更多樣化的能力。
此外,ui可以向用戶提供移除先前添加的約束的能力。在一個實施例中,約束的堆棧(或歷史)被維護(hù)。ui為用戶提供了從堆棧彈出約束并因此移除先前添加的約束的能力。甚至更具體而言,當(dāng)每條用戶反饋被提供為單個優(yōu)選圖像時,即,被選擇的圖像優(yōu)于未被選擇的圖像時,ui可以顯示被選擇的圖像的序列,并允許用戶移除單個(先前被選擇的圖像)及其相關(guān)聯(lián)的約束,或者可以允許用戶通過順序地從堆棧彈出圖像(及其相關(guān)聯(lián)的約束)來回到先前的狀態(tài)。這可以通過“返回按鈕”或通過在用戶接口上顯示堆棧而被實現(xiàn)。
ui還可以為用戶提供用于指定提供相似多樣化圖像的不同集合的能力。
ui還可以為用戶提供用于提供多種不同種類的反饋的能力。
細(xì)化查詢
系統(tǒng)然后并入用戶的輸入以創(chuàng)建經(jīng)細(xì)化的查詢。經(jīng)細(xì)化的查詢包括關(guān)于初始查詢的信息和從用戶到目前為止所進(jìn)行的細(xì)化的迭代序列導(dǎo)出的信息。這個經(jīng)細(xì)化的查詢可以被表示為將后續(xù)結(jié)果聚焦在嵌入空間的區(qū)域內(nèi)的幾何約束集合。同樣,它可以被表示為距離約束集合,它的交集定義了細(xì)化的候選結(jié)果集合。它也可以被表示為通過所有可能結(jié)果的集合的路徑。
例如,經(jīng)細(xì)化的查詢可以包括要求后續(xù)結(jié)果在被選擇的候選結(jié)果之一的指定距離內(nèi)的約束?;蛘撸?jīng)細(xì)化的查詢可以包括要求后續(xù)結(jié)果更靠近一個候選結(jié)果而非更靠近另一個候選結(jié)果的約束(相對于距離度量)。這些約束以各種方式與先前標(biāo)識的約束組合。例如,可能要求候選滿足所有這些約束,或者可能要求候選滿足所有約束中的一定數(shù)量的約束,或者在軟約束的情況下,它們可以對它們所破壞的每個約束的處罰負(fù)責(zé)。
管理約束和細(xì)化查詢的另一種方式是使用機(jī)器學(xué)習(xí)算法,見下文。
用戶可以指定不兼容的約束。根據(jù)本發(fā)明的系統(tǒng)可以具有放松、收緊、移除或修改它確定為不適當(dāng)?shù)募s束的能力。
可以放松或移除約束的一種方式是利用用戶反饋。具體而言,ui可以為用戶提供移除先前添加的約束或者從歷史中彈出約束即“退回”的手段。
系統(tǒng)可以放松或收緊約束的另一種方式是在軟約束的上下文中。具體而言,如果幾何約束被視為軟約束,即,對每個被破壞的約束負(fù)責(zé)處罰,那么這些處罰對于每個約束可以是不同的。特別地,較舊的約束可能比較新的約束具有更小或更大的處罰。在這里,較新的約束是在最近的迭代中添加的約束,而較舊的約束是在較早的迭代中添加的約束。無論在何處用處罰實現(xiàn)軟約束,候選結(jié)果繼而可以是具有在所有這樣的約束上求和的較小總處罰的文檔。然后,候選結(jié)果集合是其總處罰小于某一預(yù)定值的所有文檔,或者只有具有最小總處罰的n個文檔,其中n是預(yù)定義的整數(shù)。
用于對查詢進(jìn)行細(xì)化的機(jī)器學(xué)習(xí)
可以使用機(jī)器學(xué)習(xí)算法來更新和維護(hù)幾何約束。在這樣的實施例中,用戶的反饋被視為對其應(yīng)用機(jī)器學(xué)習(xí)算法的訓(xùn)練數(shù)據(jù),并且該應(yīng)用的結(jié)果產(chǎn)生用戶期望目標(biāo)的模型(在此有時也被稱為假設(shè)),所述模型在某些情況下是幾何約束。然而,所得到的約束通常不直接根據(jù)用戶的反饋來表示。也即是說,所得到的模型確實顯式地測試候選文檔和用戶已經(jīng)為其提供反饋的文檔之間的距離,而不是該關(guān)系是間接的或隱含的。
雖然許多機(jī)器學(xué)習(xí)算法學(xué)習(xí)將文檔分類成兩類或更多類,例如相關(guān)或不相關(guān),但一些算法根據(jù)文檔的相關(guān)性對順序文檔進(jìn)行排名。這樣的算法的示例包括rankboost(freund等人的“anefficientboostingalgorithmforcombiningpreferences,”journalofmachinelearningresearch4(2003)37頁)或排名感知器(collins等人的“convolutionkernelsfornaturallanguage,”inadvancesinneuralinformationprocessingsystems,第625-632頁(2001)),兩者通過引用并入本文。這樣的算法使用反饋或訓(xùn)練示例,其中僅提供有序的信息。具體來說,它們利用訓(xùn)練數(shù)據(jù),其中文檔(示例)不被分類為相關(guān)或不相關(guān),而是相對于它們的相對相關(guān)性而進(jìn)行排名。
當(dāng)在圖9的上下文中查看時,排名順序?qū)W習(xí)算法有時將在步驟914中開發(fā)的幾何約束稱為“假設(shè)”或“模型”。因此在排名順序?qū)W習(xí)算法的這種情況下在步驟914中的幾何約束的開發(fā)涉及基于與來自先前迭代的反饋相組合的用戶反饋來訓(xùn)練或更新當(dāng)前的假設(shè)或模型。在步驟920中向用戶呈現(xiàn)的候選的子集通常將是基于當(dāng)前假設(shè)的一些有限數(shù)量的最高排名文檔。這不一定是“區(qū)分性”子集。然而,一些學(xué)習(xí)算法也自然地將信息性或區(qū)分性文檔標(biāo)識為它們的假設(shè)開發(fā)過程的一部分。這些通常是如下文檔:當(dāng)文檔被標(biāo)記為相關(guān)或不相關(guān)并被添加到訓(xùn)練集合中時,文檔將最大程度地改進(jìn)模型。對于這些類型的學(xué)習(xí)算法,選擇區(qū)分性子集的步驟918僅涉及選擇在步驟916中已經(jīng)被自然標(biāo)識的文檔,并且在步驟920中向用戶呈現(xiàn)的候選子集確實是區(qū)分性的。
使用機(jī)器學(xué)習(xí)算法來更新和維護(hù)幾何約束的一種方式是使用分類算法,諸如支持向量機(jī)(例如,tong等人的“supportvectormachineactivelearningforimageretrieval”,inproceedingsoftheacminternationalconferenceonmultimedia,12頁,acm出版社,2001,通過引用并入本文;或tieu等人的“boostingimageretrieval,”internationaljournalofcomputervision56(1/2),第17-36頁,2004,2003年7月16日接受,通過引用并入本文)。支持向量機(jī)在嵌入空間中維護(hù)單個超平面。支持向量機(jī)的變型可以使用主動學(xué)習(xí)不僅用以每次迭代時標(biāo)識新約束,而且還用于在每次迭代時選擇候選文檔的信息性集合。
備選地,我們可以使用所謂的“在線學(xué)習(xí)算法”(http://en.wikipedia.org/wiki/online_machine_learning,2015年4月29日訪問)或所謂的“多臂賭博機(jī)”學(xué)習(xí)算法(http://en.wikipedia.org/wiki/multi-armed_bandit,2015年4月29日訪問),其中任一種都可以被用來實現(xiàn)相同的結(jié)果。這兩篇文檔均通過引用并入本文。
在線學(xué)習(xí)算法,作為在此使用的術(shù)語,維護(hù)基于訓(xùn)練數(shù)據(jù)逐步地更新的模型或假設(shè)。也即是說,這些算法不需要訪問完整的訓(xùn)練數(shù)據(jù)集合,或者在本上下文中不需要訪問完整的用戶反饋的集合。當(dāng)呈現(xiàn)新的訓(xùn)練數(shù)據(jù)時,這些算法可以更新他們的模型或假設(shè),而不必用先前見過的訓(xùn)練數(shù)據(jù)對系統(tǒng)進(jìn)行重新訓(xùn)練。相反,這些算法維護(hù)僅基于最近的反饋集合來逐步地進(jìn)行更新的模型或假設(shè)。因此,它們可以需要基本上更少的存儲器和/或計算資源,從而允許它們例如在移動設(shè)備上被執(zhí)行。在本說明書的上下文中,假設(shè)可以被用來表示幾何約束。例如,它可以表示嵌入空間中的超平面,或者它可以表示目錄中的項目的加權(quán)組合,其中具有較大權(quán)重的項目被理解為更接近目標(biāo)項目。用戶的反饋被解釋為在線學(xué)習(xí)算法用來學(xué)習(xí)的訓(xùn)練數(shù)據(jù)。也即是說,在線學(xué)習(xí)算法基于該反饋更新其假設(shè)(幾何約束)。在一個實施例中,在線學(xué)習(xí)算法使用“具有專家建議的預(yù)測(predictionwithexpertadvice)”框架(cesa-bianchi等人,prediction,learning,andgames,劍橋大學(xué)出版社,2006,通過引用并入本文)。在這種情況下,每個目錄項目(文檔)被解釋為專家并被分配權(quán)重。最初,這些權(quán)重全都是相同的。每個目錄項當(dāng)與相關(guān)聯(lián)的距離組合時可以被理解為提供目錄的排序。具體而言,對于目錄項目a,可以向目錄中的所有其它項目(例如,x)分配對應(yīng)于它們的距離的數(shù)字,例如,d(a,x)。然后可以使用該數(shù)字即d(a,x)對目錄中的項目進(jìn)行排序。對于候選集合,與目錄項目(例如,a)對應(yīng)的每個專家推薦對該項目的選擇,例如,x,它在該集合中排名最高,即,它是d(a,x)為最小的項目。然后根據(jù)用戶是否選擇該專家的排名最高的項目來增加或減少每個專家的權(quán)重。迭代地進(jìn)行用戶正在搜索的項目往往將比任何其它項目更正確(即,從候選集合推薦正確的項目),并因此將獲得最大的權(quán)重。該一般方法的許多變型是可能的。一般來說,在線學(xué)習(xí)算法也不提供產(chǎn)生區(qū)分性子集的自然方式。然而,它們可以與各種其它手段組合,這樣做包括基于pca的手段、聚類方法、或者可以選擇高度區(qū)分性子集的包括強(qiáng)力搜索方法的任何其它手段。
多臂賭博機(jī)算法與“具有專家意見的預(yù)測”框架密切相關(guān)。與在線學(xué)習(xí)算法類似,這些算法維護(hù)一個基于用戶反饋逐步地更新的假設(shè)。它們不是維護(hù)完整的用戶反饋集合,而是僅基于最近的反饋來更新它們的假設(shè)。同樣,這意味著這些算法可能需要較少的計算資源,并且因此可以在移動設(shè)備上被執(zhí)行。這將允許在移動設(shè)備上而不是在單獨(dú)的服務(wù)器上管理約束。這些算法同樣維護(hù)專家集合(被稱為“臂”),并設(shè)法標(biāo)識好的專家。關(guān)鍵區(qū)別(在當(dāng)前設(shè)置中)是:在每個回合中,這些算法選擇一個或多個“臂”(或?qū)<?來播放(play)。在本上下文中,“播放”意味著呈現(xiàn)給用戶。選擇臂以便平衡兩個目標(biāo):播放好的臂,并學(xué)習(xí)哪些臂是好的。然后,用戶反饋被解釋為對所選擇的臂的獎勵——例如,如果用戶點(diǎn)擊可以轉(zhuǎn)化為高獎勵的臂之一。在下面描述一種可以適于維護(hù)和更新幾何約束并且選擇候選的子集的方式。顯然,其它適配也可以是有效的。同樣,目錄中的每個項目(文檔)與臂(專家)相關(guān)聯(lián)。每個臂與其獎勵的估計(即,其作為查詢的解的適合性)和該估計的置信區(qū)間(確定性值)相關(guān)聯(lián)。最初,所有的獎勵估計是相等的,并且所有的確定性是相同的。在搜索過程的每次迭代中,選擇一個或多個臂作為“區(qū)分性集合”并呈現(xiàn)給用戶。用戶點(diǎn)擊其中一個候選,并且向相應(yīng)的臂提供高獎勵。向其它候選提供低獎勵。更新相應(yīng)的獎勵估計。隨著已經(jīng)收集了更多的數(shù)據(jù)來估計其獎勵,候選集合中的每個臂的確定性增加?,F(xiàn)在,算法選擇另一個候選集合(臂),從而使得集合包含高獎勵的或者包含關(guān)于它們的獎勵具有較大不確定性的或者包含兩者的臂。迭代地進(jìn)行,用戶的搜索目標(biāo)將獲得高度肯定的高獎勵估計并被標(biāo)識為最佳臂。
標(biāo)識接下來的結(jié)果
給定要被搜索的文檔之間的距離(不相似性測量),或者將這些文檔嵌入到向量空間中或嵌入到歧管上,存在可以被用來對文檔目錄進(jìn)行索引且因此允許快速搜索的各種數(shù)據(jù)結(jié)構(gòu)。這樣的數(shù)據(jù)結(jié)構(gòu)包括度量樹、kd樹、r樹、通用b樹、x樹、球樹、位置敏感哈希和反向索引。
系統(tǒng)使用這樣的數(shù)據(jù)結(jié)構(gòu)的組合來基于經(jīng)細(xì)化的查詢來標(biāo)識候選結(jié)果的下一集合。
使用幾何約束的優(yōu)點(diǎn)是它們可以與這樣的高效數(shù)據(jù)結(jié)構(gòu)一起被使用,以標(biāo)識在目錄的大小上是子線性的時間上的下一個結(jié)果。
學(xué)習(xí)距離
用戶行為數(shù)據(jù)可以由根據(jù)本發(fā)明的系統(tǒng)收集并被用來改進(jìn)或?qū)iT化搜索體驗。具體而言,表達(dá)距離或相似性的許多方式可以被參數(shù)化,并且這些參數(shù)可以被擬合。例如,使用內(nèi)核的線性組合所定義的相似性可以具有基于用戶行為數(shù)據(jù)調(diào)諧的該線性組合的系數(shù)。以這種方式,系統(tǒng)可以適應(yīng)個體(或社區(qū)或上下文)相似性的概念。
類似地,可以獨(dú)立于搜索方法來學(xué)習(xí)這樣的內(nèi)核或距離。也即是說,它們可以在以不同方式收集的數(shù)據(jù)上被學(xué)習(xí)。這種數(shù)據(jù)可以與在搜索過程期間捕獲的數(shù)據(jù)組合或可以不與在搜索過程期間捕獲的數(shù)據(jù)組合。
特別感興趣的是使用深度學(xué)習(xí)(例如,具有多于3層的神經(jīng)網(wǎng)絡(luò))來學(xué)習(xí)距離或相似性。
在一些實施例中,專門針對特定應(yīng)用來學(xué)習(xí)距離。例如,一個實施例使用該方法來搜索潛在的伙伴(例如,在約會網(wǎng)站上)可以學(xué)習(xí)捕獲面部相似性的內(nèi)核。它還可以學(xué)習(xí)基于人們的facebook簡檔來捕獲興趣的相似性的內(nèi)核。對這些內(nèi)核(或距離)進(jìn)行專門學(xué)習(xí)以解決相關(guān)聯(lián)的搜索問題,并且可能在該問題之外沒有實用性。圖19示出了其中專門針對主題域來學(xué)習(xí)距離的實施例的相關(guān)部分。
參考圖19,在步驟1910中,定義主題域。主題域的示例包括服裝,首飾,家具,鞋,附件,度假租賃,房地產(chǎn),汽車,藝術(shù)品,照片,海報,印刷品,家居裝飾,一般實體產(chǎn)品,數(shù)字產(chǎn)品,服務(wù),旅行套裝,各種其它項目類別的任意項目。在步驟1912中,被認(rèn)為是在主題域內(nèi)的一個或多個項目被標(biāo)識,并且被認(rèn)為是在主題域外的一個或多個項目被標(biāo)識。在步驟1914中,提供訓(xùn)練數(shù)據(jù)庫,其僅包括被認(rèn)為是在主題域內(nèi)的文檔。這個訓(xùn)練數(shù)據(jù)庫包括第一項目,但不包括第二項目。在步驟1916中,僅根據(jù)所提供的訓(xùn)練數(shù)據(jù)來學(xué)習(xí)嵌入——即,不基于被認(rèn)為在主題域外的任何文檔來學(xué)習(xí)嵌入。機(jī)器學(xué)習(xí)算法可以被用來學(xué)習(xí)這種嵌入。在步驟1918中,使用所學(xué)習(xí)的嵌入來將文檔的目錄嵌入到嵌入空間中。優(yōu)選地,嵌入到嵌入空間中的文檔的目錄本身限于主題域內(nèi)的文檔。稍后的處理可以繼續(xù)圖9的步驟912或步驟914或其變型,如在此述。
一些說明
圖3示出了被嵌入在2維空間中的文檔的集合。本發(fā)明的各方面設(shè)想將文檔嵌入在大維度的空間中,因此兩個維度僅用于說明的目的??臻g310包含文檔,例如321,322。每對文檔在它們之間具有距離330。
圖4示出了來自圖3的文檔的集合,此外還示出了圓形幾何約束410。這個圓內(nèi)部的那些文檔例如421,422被認(rèn)為滿足約束。本發(fā)明的各方面以這樣的幾何約束的形式表達(dá)查詢和用戶輸入。滿足約束的文檔是查詢的當(dāng)前結(jié)果。當(dāng)用戶提供進(jìn)一步輸入時,可以添加附加約束,或者可以添加或移除現(xiàn)有約束。
圖5示出了來自圖3的文檔的集合,此外還示出了非圓形幾何約束510。本發(fā)明的各方面設(shè)想了任意形狀的幾何約束、以及這種約束的聯(lián)合、交集和差異。
圖6示出了可以響應(yīng)于用戶輸入來更新圖4的圓形約束的手段。原始圓形約束610可以通過增加其半徑以產(chǎn)生圓形約束620、或者通過減小其半徑以產(chǎn)生約束630來進(jìn)行修改。這些修改響應(yīng)于用戶輸入而被完成。滿足這些約束的文檔的集合將隨著約束被修改從而減少或擴(kuò)展被考慮用于向用戶顯示的圖像集合而改變。
圖7示出了可以選擇用于呈現(xiàn)給用戶的文檔的區(qū)分性子集的手段。突出顯示的文檔例如711,712彼此不同并且與包含在圓形約束區(qū)域中的其它文檔不同。
圖10a示出了嵌入空間中的文檔的集合,其中查詢處理模塊824已經(jīng)將集合縮窄到圓1020內(nèi)的那些文檔,并且已經(jīng)標(biāo)識出主要結(jié)果文檔1018。此外,區(qū)分性選擇模塊828已經(jīng)選擇了文檔1010,1012,1014和1016作為向用戶呈現(xiàn)的區(qū)分性集合??梢钥闯?,在嵌入空間中,文檔1012,1018和1016基本上是共線的,并且文檔1010,1018和1014基本上是共線的。
圖10b示出了系統(tǒng)可以如何在布局空間中呈現(xiàn)文檔的集合。(虛線是隱含的,而不是可見的。)文檔的特定位置不一定與嵌入空間中的位置匹配,部分是因為空間的維度已經(jīng)減小。然而,在嵌入空間中基本上共線的文檔在布局空間中是共線的。特別來說,如果圖10a中的虛線表示候選文檔沿著其而不同的嵌入空間中的維度,則文檔在圖10b中的布局空間中的布置指示那些相同的維度。此外,沿著布局空間中的共線性的每條線的文檔之間的相對距離也指示嵌入空間中的相對距離。
圖11示出了能夠搜索鞋的一個實施例。這一實施例在移動設(shè)備1101上。在此實施例中,維護(hù)目錄并且在服務(wù)器上標(biāo)識候選結(jié)果,同時在移動設(shè)備上維護(hù)約束。通過應(yīng)用被訓(xùn)練來捕獲鞋之間的視覺相似性的神經(jīng)網(wǎng)絡(luò),將鞋嵌入高維空間中。使用對關(guān)于鞋的元數(shù)據(jù)(例如,其品牌)進(jìn)行比較的內(nèi)核來對嵌入做出其它的貢獻(xiàn)。主要結(jié)果被顯著地顯示為左上角1102中的大圖像。最靠近嵌入空間1103中的主要結(jié)果(即,最相似)的鞋子被顯示為最靠近主要結(jié)果。然后顯示滿足當(dāng)前約束的結(jié)果的區(qū)分性集合。在不同實施例中,這些約束可以是硬約束或軟約束,或者一些可以是硬約束而其它是軟約束。注意,這些結(jié)果維護(hù)顯著的多樣性,例如,嵌入空間最遠(yuǎn)的(并且顯示為距離主要結(jié)果最遠(yuǎn)的)鞋1104與主要結(jié)果不同的顏色、但是相同的品牌。這個實施例維護(hù)約束的堆棧。每個約束要求:與一個未被選擇的圖像相比,候選更靠近用戶選擇的圖像。因此,在每次迭代處,可以添加多個約束,例如11。在一個實施例中,這些約束被視為軟約束,因為每個候選對于每個被破壞的約束都遭受處罰。候選結(jié)果是那些具有較小處罰的結(jié)果。在該實施例中,在1105處顯示所選圖像的堆棧,其中最舊的用戶選擇在左側(cè),而較新的用戶選擇在右側(cè)。用戶可以點(diǎn)擊此堆棧中的任何圖像。這將從堆棧彈出所有圖像(及其相關(guān)聯(lián)的約束)到被點(diǎn)擊的圖像的右邊。這具有使用戶返回到先前搜索狀態(tài)的效果,該先前搜索狀態(tài)由在選擇被點(diǎn)擊的圖像之前有效的約束集合來定義。
優(yōu)于現(xiàn)有系統(tǒng)的優(yōu)點(diǎn)
在此描述的方法的各種實施例可以產(chǎn)生優(yōu)于現(xiàn)有系統(tǒng)的以下優(yōu)點(diǎn)中的一個或多個:
·實施例不必限于文檔的單個固定層級。更具體而言,實施例不需要明確確定描述文檔目錄的分類法。也不需要將文檔聚類到靜態(tài)層級中。也即是說,用戶可以執(zhí)行的細(xì)化的序列不需要被約束為在一些預(yù)定義的分類或?qū)蛹壷锌s窄或拓寬。
·實施例可以是非常靈活的,并且可以應(yīng)用于圖像、文本、音頻、視頻和許多其它類型的數(shù)據(jù)。
·與使用分類或標(biāo)簽相比而言,使用文檔之間的相似性或距離的概念更容易表達(dá)關(guān)于文檔之間的關(guān)系的直覺。
·以視覺方式對候選結(jié)果進(jìn)行選擇和取消選擇是用于在移動設(shè)備或平板電腦上執(zhí)行搜索的更容易的接口。
·根據(jù)幾何約束對查詢細(xì)化進(jìn)行編碼允許更靈活的用戶交互。具體而言,在實施例中,用戶不需要熟悉預(yù)定義的標(biāo)記本體,也不需要熟悉被用來對約束進(jìn)行組合的查詢邏輯。
此外,在實施例中,這樣的幾何約束可以對特征標(biāo)記或注釋過程中的錯誤更加健壯。
·逐步細(xì)化搜索的能力有助于良好的用戶體驗。
·候選結(jié)果的區(qū)分性子集的使用使得更有效地使用了有限的顯示空間。顯示器上的雜波被最小化,同時捕獲在完整結(jié)果集合中可用的高比例的信息,并且為用戶提供各種選項以對查詢進(jìn)行細(xì)化。
·假定距離、嵌入和相似性可以是機(jī)器學(xué)習(xí)的,使用這種方法的系統(tǒng)可以提供將搜索體驗專門化到個人、群體、文化和文檔類別的能力。
·與基于內(nèi)容的圖像檢索(cbir)技術(shù)相比,本發(fā)明的實施例可以更適合于搜索的逐步細(xì)化。具體而言,用戶可以拍攝照片并使用cbir系統(tǒng)來標(biāo)識相關(guān)或高度相似的照片。然而,如果用戶對結(jié)果不滿意,則cbir系統(tǒng)不向他們提供改進(jìn)搜索目標(biāo)的方式。
示例1
一種實現(xiàn)方式允許用戶搜索個人照片的目錄。用戶最初被顯示任意照片(主要結(jié)果),例如,最近拍攝或查看過的照片。這被顯示在來自目錄中的3×3網(wǎng)格的照片的中心。每張照片被選擇為靠近(下面定義)主要結(jié)果,但是相對于主要結(jié)果沿著不同的軸而彼此不同。例如,如果主要結(jié)果是與家人上周在家拍攝的照片,則其它照片可以是:a)與家人去年在家的照片,b)與家人上周在戶外的照片,c)沒有家人的上周在家的照片等。在一些情況下,系統(tǒng)可以在主要結(jié)果的相對側(cè)上放置兩張照片,這兩張照片沿著相同的軸但是它們的位置沿著該軸彼此不同。例如,放置在左側(cè)的照片可以比主要結(jié)果中更顯著地示出家庭成員a,而放置在右側(cè)的照片可以比主要結(jié)果中更不顯著地示出家庭成員a。
用戶選擇9張照片中的一張,然后其成為主要結(jié)果。然后,這被布局在更新后的再次“靠近”它但彼此不同的3×3網(wǎng)格的照片中。
如果在任何時候用戶雙擊主要結(jié)果,則“靠近”的定義改變?yōu)椤拜^小規(guī)?!?下面定義)。如果用戶使用“捏出”手勢,則“靠近”的定義改變?yōu)椤拜^大規(guī)模”,并且更新結(jié)果集合。
以這種方式,用戶可以導(dǎo)航照片的目錄以找到特定的照片。
在這一示例中,照片可以被認(rèn)為相對于多個標(biāo)準(zhǔn)是相似的,包括:
·照片的gps位置
·照片的時間
·照片的顏色內(nèi)容
·照片是在室內(nèi)還是室外拍攝的
·照片中是否有人
·照片中是誰
·照片中的人是快樂還是悲傷
·照片中描述的活動
·照片中包含的對象
還有很多其它的。這些標(biāo)準(zhǔn)被捕獲到數(shù)值“距離”中,或者作為在一些空間中定位照片的向量。在后一種情況下,可以使用相似性或距離的標(biāo)準(zhǔn)概念,例如,點(diǎn)積或歐幾里得距離。在實施例中,可以應(yīng)用歸一化函數(shù),以便沿著不同軸的距離彼此相當(dāng)。
當(dāng)用戶導(dǎo)航照片的目錄時,用戶正在搜索的“規(guī)?!备淖儭_@個規(guī)模指定結(jié)果集合中的照片有多“靠近”主要結(jié)果。更確切地說,結(jié)果集合中的所有照片必須具有小于某個閾值的“距離”。隨著規(guī)模增大或減小,該閾值增大或減小。
關(guān)于上述步驟來考慮該示例:
·嵌入:對于個人照片的用戶目錄中的每張照片,產(chǎn)生具有與例如經(jīng)度、緯度、時間、星期幾、面部的數(shù)目、給定活動是否被描述以及其它更多對應(yīng)的索引的向量。
·初始查詢:在這種情況下,初始查詢?yōu)榭?,也即是說所有照片都是候選結(jié)果,呈現(xiàn)給用戶的那一個是任意的。
·初始查詢作為幾何約束:初始查詢產(chǎn)生幾何約束的空集合
·將幾何約束應(yīng)用于嵌入照片集合以標(biāo)識滿足約束的那些,即候選結(jié)果
·使用最遠(yuǎn)的第一次遍歷來從候選結(jié)果選擇9張照片的區(qū)分性子集。
·9張照片以3×3網(wǎng)格呈現(xiàn)給用戶
·用戶選擇其中一張照片來指示希望看到與那張相似的更多照片。
·處理用戶選擇的照片以產(chǎn)生新的幾何約束,該幾何約束可以被表示為嵌入空間中的被選照片周圍的球體。將這個新約束添加到當(dāng)前約束集合。組合的約束是到目前為止所選擇的所有照片周圍的球體的交集。
示例2
另一實現(xiàn)方式關(guān)注于搜索附件(服裝、家具、公寓、首飾等)。在這一實現(xiàn)方式中,用戶使用文本、語音或者用原型圖像作為初始查詢進(jìn)行搜索。例如,用戶使用文本條目來搜索“棕色錢包”。搜索引擎通過標(biāo)識多樣化可能結(jié)果集合來進(jìn)行響應(yīng),例如,各種類型和各種色調(diào)的棕色的錢包。這些結(jié)果被布置在二維布置(例如,網(wǎng)格)中,由此更相似的結(jié)果被定位成彼此更靠近,并且更不同的結(jié)果被定位成彼此相對遠(yuǎn)離。然后,用戶例如使用單選按鈕來選擇一個或多個圖像。然后,由搜索引擎使用圖像選擇來定義嵌入空間中的“搜索方向”或向量,沿著該向量可以獲得進(jìn)一步的結(jié)果。
關(guān)于上述步驟來考慮這一示例:
·嵌入:對于附件目錄中的每個條目,使用經(jīng)過訓(xùn)練以區(qū)分附件的深度學(xué)習(xí)技術(shù)來產(chǎn)生向量。
·初始查詢:在這種情況下,初始查詢是一種文本搜索,其將進(jìn)一步的結(jié)果縮窄到整個目錄的一部分內(nèi)。這個限制是初始候選結(jié)果的集合。
·初始查詢作為幾何約束:初始查詢產(chǎn)生幾何約束的空集合
·幾何約束被應(yīng)用于受限集合中的嵌入附件集合(即,初始候選結(jié)果),以標(biāo)識滿足約束的那些,即候選結(jié)果
·使用最遠(yuǎn)的第一次遍歷從候選結(jié)果選擇9個目錄條目的多樣化子集。
·9個目錄條目以3×3網(wǎng)格被呈現(xiàn)給用戶
·用戶選擇一個目錄條目來指示希望看到與那個相似的更多附件。
·處理用戶選擇的附件以產(chǎn)生新的幾何約束,該幾何約束可以被表示為嵌入空間中的所選附件周圍的球體。將這個新約束添加到當(dāng)前約束集合。組合的約束是到目前為止所選擇的所有附件周圍的球體的交集。
一些變型
文檔在諸如向量空間或度量空間之類的嵌入空間中被編碼(經(jīng)由距離)。搜索作為查詢細(xì)化的序列繼續(xù)進(jìn)行。將查詢細(xì)化編碼為向量空間或度量空間上的幾何約束。顯示區(qū)分性候選結(jié)果以向用戶提供添加區(qū)分性約束的能力。用戶輸入(例如,選擇或取消選擇結(jié)果)被編碼為幾何約束。
這種方式的變型對于讀者而言是顯而易見的。例如,可以在初始查詢被處理之后嵌入文檔,并且可以僅嵌入滿足查詢的那些文檔。類似地,可以在過程中的任何點(diǎn)處使用不同嵌入來重新嵌入文檔。在這種情況下,將在新的嵌入中重新解釋幾何約束。
可以在具有非幾何約束的任何點(diǎn)處增補(bǔ)幾何約束。在這種情況下,可以按照一種直截了當(dāng)?shù)姆绞絹磉^濾候選結(jié)果,以便僅選擇滿足非幾何約束的那些。以這種方式,可以用分面搜索、文本或語音輸入來增補(bǔ)交互。在過程的每次迭代中,幾何約束可以與非幾何約束集合一起被管理。
示例實現(xiàn)方式可以通過這些步驟來繼續(xù)進(jìn)行:
1.從用戶獲得原型圖像(至少1個)的集合;
2.從原型圖像標(biāo)識集合中距離小于閾值t的所有圖像;
3.標(biāo)識在(2)中收集的圖像的區(qū)分性子集;
4.以二維布局向用戶呈現(xiàn)圖像的區(qū)分性子集;
5.如果用戶對所呈現(xiàn)的圖像之一感到滿意,則接收對這種滿意的指示并針對所選擇的圖像采取期望的動作;
6.如果用戶尚未滿意,則從用戶獲得更像所期望結(jié)果的所呈現(xiàn)圖像的選擇;
7.產(chǎn)生經(jīng)修訂的原型圖像的集合;
8.減小閾值t;
9.轉(zhuǎn)到2。
可以從與計算機(jī)系統(tǒng)交互的用戶的觀點(diǎn)或者與用戶交互的計算機(jī)系統(tǒng)的觀點(diǎn)或者這兩者來觀察上述方法。
該概念可以被概括為指代“數(shù)字文檔”而不是圖像,其中數(shù)字文檔除了圖像之外還包括數(shù)字目錄中的音頻、視頻、文本、html、多媒體文檔和產(chǎn)品列表。
該概念還可以被概括為使得在步驟1獲得的初始集合作為用戶在另一信息檢索系統(tǒng)或搜索引擎內(nèi)執(zhí)行搜索(查詢)的結(jié)果而被獲得。
該概念還可以被概括為使得不是在步驟8減小閾值,而是用戶接口提供減小或增加閾值或使其維護(hù)不變的能力。
該概念還可以被概括為使得在步驟1和步驟6存在原型圖像的兩個集合,并且在步驟2,系統(tǒng)標(biāo)識距離小于第一集合的閾值t1并且大于第二集合的t2的圖像。
該概念還可以被概括為使得在步驟6的一次迭代中,用戶沿著至少一個軸的第一子集選擇圖像,并且在步驟6的另一次迭代中,用戶沿著至少一個軸的第二子集選擇圖像,其中軸的第二子集包含未被包括在軸的第一子集中的至少一個軸。
示例使用
圖9的搜索方法(包括在此提及的它的所有變型)可以用于各種目的,其中幾個在下面進(jìn)行概述。
圖12是用于購買實體產(chǎn)品的圖9的搜索方法的流程圖,所述實體產(chǎn)品比如服裝、首飾、家具、鞋、附件、房地產(chǎn)、汽車、藝術(shù)品、照片、海報、印刷品和家居裝飾。在此提及的所有變型可以與圖12的方法一起被使用。
最初,在步驟1210中,將數(shù)字文檔的目錄嵌入在嵌入空間中并存儲在數(shù)據(jù)庫中。在數(shù)據(jù)庫中,在嵌入空間中的每對文檔之間標(biāo)識與由該對文檔表示的產(chǎn)品之間的不相似性的預(yù)定測量對應(yīng)的距離。在步驟1212中,可選地處理初始查詢以產(chǎn)生滿足查詢結(jié)果的文檔的初始(i=0)候選空間。初始查詢例如可以是常規(guī)文本查詢。初始候選空間在文檔的完整目錄內(nèi)并且可選地小于文檔的完整目錄。在步驟1213中,從初始候選空間導(dǎo)出數(shù)字文檔的初始集合。文檔的這個初始(i=0)集合是初始候選空間的子集。在一個實施例中,文檔的初始集合被選擇作為目錄的區(qū)分性子集,而在另一個實施例中,文檔的初始集合不是區(qū)分性的。在步驟1214中,向用戶標(biāo)識文檔的初始集合。在一個實施例中,這可以包括向用戶可視地顯示初始集合中的文檔的表示。在步驟1215中,搜索過程以一個迭代的開始而開始,為了方便起見該迭代在這里被編號為迭代1。
在每個第i次迭代開始之前,向用戶呈現(xiàn)來自先前迭代(i-1)的文檔的集合。如果i=1,那么文檔的這個集合是來自步驟1214的文檔的初始(i=0)集合。如果i>1,則文檔的這個集合是在先前迭代的步驟1223中呈現(xiàn)給用戶的文檔的第(i-1)個集合。
在第i次迭代開始時,在步驟1216中,用戶提供關(guān)于文檔的第(i-1)個集合中的文檔的相對反饋。優(yōu)選地,相對反饋采取用戶選擇來自文檔的第(i-1)個集合的子集的形式,其中對文檔的選擇意味著:與由來自第(i-1)個集合的未被選擇的文檔表示的產(chǎn)品相比,用戶認(rèn)為由該文檔表示的產(chǎn)品與搜索目標(biāo)更相關(guān)。在第i次迭代中被選擇的子集在此被稱為第i個被選擇的子集,并且來自第(i-1)個集合的未被選擇的那些文檔在此有時被統(tǒng)稱為第i個未被選擇的子集。在步驟1218中,以在此別處描述的方式從相對反饋導(dǎo)出幾何約束的集合。在第i次迭代中導(dǎo)出的幾何約束集合被稱為幾何約束的第i個集合。
在步驟1220中,將幾何約束的第i個集合應(yīng)用于嵌入空間以形成第i個候選空間,并且在步驟1222中,選擇候選文檔的第i個集合作為在第i個候選空間中的文檔子集。在一個實施例中,文檔的第i個集合被選擇作為第i個候選空間的區(qū)分性子集,而在另一個實施例中,文檔的第i個集合不是區(qū)分性的。在步驟1223中,向用戶呈現(xiàn)文檔的第i個集合以供可選的進(jìn)一步細(xì)化。在步驟1224中,如果用戶輸入指示期望進(jìn)一步細(xì)化,那么邏輯返回到步驟1215以進(jìn)行搜索循環(huán)的下一次迭代。否則,用戶指示進(jìn)行提交,并且在步驟1226中,系統(tǒng)針對用戶選擇的文檔采取動作。
然后,圖12中的“采取動作”步驟1226涉及:(1)響應(yīng)于選擇標(biāo)識的對象的用戶輸入,系統(tǒng)將該項目添加到意愿列表,將其添加到購物車,或者進(jìn)行購買對話(步驟1228);以及(2)系統(tǒng)(可能在稍后的時間)接受來自用戶的付款,以及直接或使用諸如fedex、ups或郵政服務(wù)之類的第三方運(yùn)送公司將項目運(yùn)送給用戶(步驟1230)。接受付款并進(jìn)行運(yùn)送的步驟可以按照任何順序被執(zhí)行。對于免費(fèi)產(chǎn)品,可能不需要付款。相應(yīng)的子模塊被包括在動作模塊830(圖8)中。
圖13是用于購買例如電影,音樂,照片或書籍的數(shù)字產(chǎn)品的圖9的搜索方法的流程圖。在此提及的所有變型可以與圖12的方法一起被使用。
最初,在步驟1310中,將數(shù)字文檔的目錄嵌入在嵌入空間中并存儲在數(shù)據(jù)庫中。在數(shù)據(jù)庫中,在嵌入空間中的每對文檔之間標(biāo)識與由該對文檔表示的數(shù)字產(chǎn)品之間的不相似性的預(yù)定測量對應(yīng)的距離。在步驟1312中,可選地處理初始查詢以產(chǎn)生滿足查詢結(jié)果的文檔的初始(i=0)候選空間。初始查詢例如可以是常規(guī)文本查詢。初始候選空間在文檔的完整目錄內(nèi)并且可選地小于文檔的完整目錄。在步驟1313中,從初始候選空間導(dǎo)出數(shù)字文檔的初始集合。文檔的這個初始(i=0)集合是初始候選空間的子集。在一個實施例中,文檔的初始集合被選擇作為目錄的區(qū)分性子集,而在另一個實施例中,文檔的初始集合不是區(qū)分性的。在步驟1314中,向用戶標(biāo)識文檔的初始集合。在一個實施例中,這可以包括向用戶可視地顯示初始集合中的文檔的表示。在步驟1315中,搜索過程以一個迭代的開始而開始,為了方便起見該迭代在這里被編號為迭代1。
在每個第i次迭代開始之前,向用戶呈現(xiàn)來自先前迭代(i-1)的文檔集合。如果i=1,那么文檔的這個集合是來自步驟1314的文檔的初始(i=0)集合。如果i>1,那么文檔的這個集合是在先前迭代的步驟1323中呈現(xiàn)給用戶的文檔的第(i-1)個集合。
在第i次迭代開始時,在步驟1316中,用戶提供關(guān)于文檔的第(i-1)個集合中的文檔的相對反饋。優(yōu)選地,相對反饋采取用戶選擇來自文檔的第(i-1)個集合的子集的形式,其中對文檔的選擇意味著:與由來自第(i-1)個集合的未被選擇的文檔表示的數(shù)字產(chǎn)品相比,用戶認(rèn)為由該文檔表示的數(shù)字產(chǎn)品與搜索目標(biāo)更相關(guān)。在第i次迭代中被選擇的子集在此被稱為第i個被選擇的子集,并且來自第(i-1)個集合的未被選擇的那些文檔在此有時被統(tǒng)稱為第i個未被選擇的子集。在步驟1318中,以本文別處描述的方式從相對反饋導(dǎo)出幾何約束的集合。在第i次迭代中導(dǎo)出的幾何約束集合被稱為幾何約束的第i個集合。
在步驟1320中,將幾何約束的第i個集合應(yīng)用于嵌入空間以形成第i個候選空間,并且在步驟1322中,選擇候選文檔的第i個集合作為在第i個候選空間中的文檔的子集。在一個實施例中,文檔的第i個集合被選擇作為第i個候選空間的區(qū)分性子集,而在另一個實施例中,文檔的第i個集合不是區(qū)分性的。在步驟1323中,向用戶呈現(xiàn)文檔的第i個集合以供可選的進(jìn)一步細(xì)化。在步驟1324中,如果用戶輸入指示期望進(jìn)一步細(xì)化,那么邏輯返回到步驟1315以進(jìn)行搜索循環(huán)的下一次迭代。否則,用戶指示進(jìn)行提交,并且在步驟1326中,系統(tǒng)針對用戶選擇的文檔采取動作。
然后,圖13中的“采取動作”步驟1326涉及:系統(tǒng)(可選地并且可能在稍后的時間)接受來自用戶的付款(步驟1328),以及使用一些分發(fā)數(shù)字內(nèi)容的手段例如電子郵件或流式傳輸向用戶提供內(nèi)容(步驟1330)。接受付款和提供內(nèi)容的步驟可以按照任何順序被執(zhí)行。對于免費(fèi)產(chǎn)品,可能不需要付款。相應(yīng)的子模塊被包括在動作模塊830(圖8)中。
圖14是用于標(biāo)識隨后用于產(chǎn)生實體產(chǎn)品的數(shù)字內(nèi)容的圖9的搜索方法的流程圖。例如,數(shù)字內(nèi)容可以包括圖像的目錄,隨后可以將其打印在海報、t恤或馬克杯上。這里提及的所有變型可以與圖12的方法一起被使用。
最初,在步驟1410中,將數(shù)字文檔的目錄嵌入在嵌入空間中并存儲在數(shù)據(jù)庫中。在數(shù)據(jù)庫中,在嵌入空間中的每對文檔之間標(biāo)識與由該對文檔表示的數(shù)字內(nèi)容之間的不相似性的預(yù)定測量對應(yīng)的距離。在步驟1412中,可選地處理初始查詢以產(chǎn)生滿足查詢結(jié)果的文檔的初始(i=0)候選空間。初始查詢例如可以是常規(guī)文本查詢。初始候選空間在文檔的完整目錄內(nèi)并且可選地小于文檔的完整目錄。在步驟1413中,從初始候選空間導(dǎo)出數(shù)字文檔的初始集合。文檔的這個初始(i=0)集合是初始候選空間的子集。在一個實施例中,文檔的初始集合被選擇作為目錄的區(qū)分性子集,而在另一個實施例中,文檔的初始集合不是區(qū)分性的。在步驟1414中,向用戶標(biāo)識文檔的初始集合。在一個實施例中,這可以包括向用戶可視地顯示初始集合中的文檔的表示。在步驟1415中,搜索過程以一個迭代的開始而開始,為了方便起見該迭代在這里被編號為迭代1。
在每個第i次迭代開始之前,向用戶呈現(xiàn)來自先前迭代(i-1)的文檔集合。如果i=1,那么文檔的這個集合是來自步驟1414的文檔的初始(i=0)集合。如果i>1,那么文檔的這個集合是在先前迭代的步驟1423中呈現(xiàn)給用戶的文檔的第(i-1)個集合。
在第i次迭代開始時,在步驟1416中,用戶提供關(guān)于文檔的第(i-1)個集合中的文檔的相關(guān)性反饋。優(yōu)選地,相關(guān)性反饋采取用戶選擇來自第(i-1)個集合的文檔子集的形式,其中文檔的選擇意味著:與由來自第(i-1)個集合的未被選擇的文檔表示的數(shù)字內(nèi)容相比,用戶認(rèn)為由該文檔表示的數(shù)字內(nèi)容與搜索目標(biāo)更相關(guān)。在第i次迭代中被選擇的子集在此被稱為第i個被選擇的子集,并且來自第(i-1)個集合的未被選擇的那些文檔在此有時被統(tǒng)稱為第i個未被選擇的子集。在步驟1418中,以本文別處描述的方式從相關(guān)性反饋導(dǎo)出幾何約束的集合。在第i次迭代中導(dǎo)出的幾何約束集合被稱為幾何約束的第i個集合。
在步驟1420中,將幾何約束的第i個集合應(yīng)用于嵌入空間以形成第i個候選空間,并且在步驟1422中,選擇候選文檔的第i個集合作為在第i個候選空間中的文檔子集。在一個實施例中,文檔的第i個集合被選擇作為第i個候選空間的區(qū)分性子集,而在另一個實施例中,文檔的第i個集合不是區(qū)分性的。在步驟1423中,向用戶呈現(xiàn)文檔的第i個集合以供可選的進(jìn)一步細(xì)化。在步驟1424中,如果用戶輸入指示期望進(jìn)一步細(xì)化,那么邏輯返回到步驟1415以進(jìn)行搜索循環(huán)的下一次迭代。否則,用戶指示進(jìn)行提交,并且在步驟1426中,系統(tǒng)針對用戶選擇的文檔采取動作。
然后,圖14中的“采取動作”步驟1426涉及由系統(tǒng)執(zhí)行的以下步驟:
·將所選數(shù)字內(nèi)容添加到購物車或意愿列表,或者以其它方式基于所選內(nèi)容記錄用戶購買產(chǎn)品的意圖(步驟1428)。這一步驟也可以包括記錄用戶對特定種類的產(chǎn)品(例如,馬克杯或鼠標(biāo)墊)的選擇。
·接受來自用戶的付款(步驟1430)
·基于所選擇的內(nèi)容來制造實體產(chǎn)品,例如,通過在實體制品上再現(xiàn)該內(nèi)容(步驟1432)
·將實體產(chǎn)品運(yùn)送給用戶或者通過運(yùn)送服務(wù)將其運(yùn)送(步驟1434)。
在各種實施例中,接受付款的步驟可以在制造步驟之后或者在運(yùn)送步驟之后執(zhí)行。此外,相應(yīng)的子模塊被包括在動作模塊830(圖8)中。優(yōu)選地,上述實施例的唯一目的是標(biāo)識內(nèi)容以實現(xiàn)實體產(chǎn)品的制造和購買。
圖15是用于標(biāo)識用于共享的內(nèi)容的圖9的搜索方法的流程圖。例如,嵌入空間中的數(shù)字文檔可以包括用戶的個人照片或其它媒體的目錄。本文提及的所有變型可以與圖15的方法一起被使用。
最初,在步驟1510中,將數(shù)字文檔的目錄嵌入在嵌入空間中并存儲在數(shù)據(jù)庫中。在圖15的實施例中,目錄可以是例如個人照片的用戶庫。在數(shù)據(jù)庫中,在嵌入空間中的每對文檔之間標(biāo)識與由該對文檔表示的內(nèi)容之間的不相似性的預(yù)定測量對應(yīng)的距離。在步驟1512中,可選地處理初始查詢以產(chǎn)生滿足查詢結(jié)果的文檔的初始(i=0)候選空間。初始查詢例如可以是常規(guī)文本查詢。初始候選空間在文檔的完整目錄內(nèi)并且可選地小于文檔的完整目錄。在步驟1513中,從初始候選空間導(dǎo)出數(shù)字文檔的初始集合。文檔的這個初始(i=0)集合是初始候選空間的子集。在一個實施例中,文檔的初始集合被選擇作為目錄的區(qū)分性子集,而在另一個實施例中,文檔的初始集合不是區(qū)分性的。在步驟1514中,向用戶標(biāo)識文檔的初始集合。在一個實施例中,這可以包括向用戶可視地顯示初始集合中的文檔的表示。在步驟1515中,搜索過程以一個迭代的開始而開始,為了方便起見該迭代在這里被編號為迭代1。
在每個第i次迭代開始之前,向用戶呈現(xiàn)來自先前迭代(i-1)的文檔的集合。如果i=1,那么文檔的這個集合是來自步驟1514的文檔的初始(i=0)集合。如果i>1,那么文檔的這個集合是在先前迭代的步驟1523中呈現(xiàn)給用戶的文檔的第(i-1)個集合。
在第i次迭代開始時,在步驟1516中,用戶提供關(guān)于文檔的第(i-1)個集合中的文檔的相對反饋。優(yōu)選地,相對反饋采取用戶選擇來自第(i-1)個集合的文檔子集的形式,其中文檔的選擇意味著:與由來自第(i-1)個集合的未被選擇的文檔表示的內(nèi)容相比,用戶認(rèn)為由該文檔表示的內(nèi)容與搜索目標(biāo)更相關(guān)。在第i次迭代中被選擇的子集在此被稱為第i個被選擇的子集,并且來自第(i-1)個集合的未被選擇的那些文檔在此有時被統(tǒng)稱為第i個未被選擇的子集。在步驟1518中,以本文別處描述的方式從相對反饋導(dǎo)出幾何約束的集合。在第i次迭代中導(dǎo)出的幾何約束集合被稱為幾何約束的第i個集合。
在步驟1520中,將幾何約束的第i個集合應(yīng)用于嵌入空間以形成第i個候選空間,并且在步驟1522中,選擇候選文檔的第i個集合作為在第i個候選空間中的文檔的子集。在一個實施例中,文檔的第i個集合被選擇作為第i個候選空間的區(qū)分性子集,而在另一個實施例中,文檔的第i個集合不是區(qū)分性的。在步驟1523中,向用戶呈現(xiàn)文檔的第i個集合以供可選的進(jìn)一步細(xì)化。在步驟1524中,如果用戶輸入指示期望進(jìn)一步細(xì)化,那么邏輯返回到步驟1515以進(jìn)行搜索循環(huán)的下一次迭代。否則,用戶指示進(jìn)行提交,并且在步驟1526中,系統(tǒng)針對用戶選擇的文檔采取動作。
然后,圖15中的“采取動作”步驟1526涉及由系統(tǒng)執(zhí)行的以下步驟:
·從用戶接受關(guān)于共享手段的信息,例如,電子郵件,twitter,facebook(步驟1528)
·從用戶接受關(guān)于應(yīng)該與其共享所述項目的一個或多個第三方的信息(步驟1530)
·共享選擇項目項目(步驟1532)。
從用戶接受關(guān)于共享手段的信息的步驟可以在從用戶接受關(guān)于應(yīng)該與其共享所述項目的一個或多個第三方的信息的步驟之前或之后執(zhí)行。此外,對應(yīng)的子模塊被包括在動作模塊830(圖8)中。同樣,優(yōu)選地,上述實施例的唯一目的是標(biāo)識要被共享的內(nèi)容。
計算機(jī)環(huán)境
圖1示出了可以在其中實現(xiàn)本發(fā)明的各方面的示例環(huán)境。該系統(tǒng)包括經(jīng)由諸如因特網(wǎng)之類的網(wǎng)絡(luò)114而彼此連接的用戶計算機(jī)110和服務(wù)器計算機(jī)112。服務(wù)器計算機(jī)112具有可訪問的數(shù)據(jù)庫816,其標(biāo)識與諸如在向量空間中的相對距離和/或它們位置之類的嵌入信息相關(guān)聯(lián)的文檔。在各種實施例中,用戶計算機(jī)110還可以具有標(biāo)識相同信息的可訪問的數(shù)據(jù)庫118或者可以不具有這樣的數(shù)據(jù)庫118。
最初,嵌入模塊820(其例如可以是服務(wù)器計算機(jī)112或是單獨(dú)的計算機(jī)系統(tǒng)或是在這樣的計算機(jī)上運(yùn)行的進(jìn)程)分析文檔的目錄以提取關(guān)于文檔的嵌入信息。例如,如果文檔是照片,則嵌入模塊820可以包括神經(jīng)網(wǎng)絡(luò)并且可以使用深度學(xué)習(xí)來從照片導(dǎo)出嵌入圖像信息。
備選地,嵌入模塊820可以導(dǎo)出圖像分類(可在其上放置給定照片的軸)的庫,每一個都與用于在給定照片中識別給定照片是否滿足(或以什么概率)那個分類的算法相關(guān)聯(lián)。然后,嵌入模塊820可以將其預(yù)先開發(fā)的庫應(yīng)用于新近提供的照片的較小集合(比如當(dāng)前在用戶計算機(jī)110上的照片)以便確定適用于每張照片的嵌入信息。無論哪種方式,嵌入模塊820將用戶可以搜索的文檔目錄的標(biāo)識寫入數(shù)據(jù)庫816中,每個標(biāo)識與其嵌入信息相關(guān)聯(lián)。
在又一個實施例中,嵌入模塊820寫入數(shù)據(jù)庫816中的嵌入信息可以從外部源提供或者手動輸入。
可以按照多種不同的方式來實現(xiàn)上述迭代標(biāo)識步驟。在一個實施例中,當(dāng)用戶迭代地搜索期望的文檔時,所有計算都發(fā)生在服務(wù)器計算機(jī)112上。操作用戶計算機(jī)110的用戶僅通過瀏覽器看到所有結(jié)果。在這個實施例中,用戶計算機(jī)110不必具有可訪問的文檔目錄數(shù)據(jù)庫118。在另一個實施例中,服務(wù)器計算機(jī)112將其在嵌入空間中的整個文檔數(shù)據(jù)庫118(或該數(shù)據(jù)庫的子集)發(fā)送到用戶計算機(jī)110,用戶計算機(jī)110將其寫入其自己的數(shù)據(jù)庫118中。在這樣的實施例中,當(dāng)用戶迭代地搜索期望的文檔時,所有計算都發(fā)生在用戶計算機(jī)110上。許多其它布置也是可能的。
電腦硬件
圖2是可以被用來實現(xiàn)并入了本發(fā)明各方面的軟件的計算機(jī)系統(tǒng)210的簡化框圖。該圖表示了用戶計算機(jī)110和服務(wù)器計算機(jī)112的實施例。在圖18的實施例中,該圖也表示了服務(wù)器計算機(jī)1810和移動設(shè)備1812兩者的實施例。雖然上述方法指示用于執(zhí)行指定操作的個體邏輯步驟或模塊,但是應(yīng)當(dāng)理解,每個步驟或模塊實際上使得計算機(jī)系統(tǒng)210以指定的方式進(jìn)行操作。
計算機(jī)系統(tǒng)210通常包括處理器子系統(tǒng)214,其經(jīng)由總線子系統(tǒng)212與多個外圍設(shè)備通信。這些外圍設(shè)備可以包括包含存儲器子系統(tǒng)226和文件存儲子系統(tǒng)228的存儲子系統(tǒng)224,用戶接口輸入設(shè)備222,用戶接口輸出設(shè)備220和網(wǎng)絡(luò)接口子系統(tǒng)216。輸入和輸出設(shè)備允許用戶與計算機(jī)系統(tǒng)210交互。網(wǎng)絡(luò)接口子系統(tǒng)216提供到外部網(wǎng)絡(luò)的接口(包括到通信網(wǎng)絡(luò)218的接口),并且經(jīng)由通信網(wǎng)絡(luò)218耦合到其它計算機(jī)系統(tǒng)中的對應(yīng)接口設(shè)備。通信網(wǎng)絡(luò)218可以包括許多互連的計算機(jī)系統(tǒng)和通信鏈路。這些通信鏈路可以是有線鏈路、光鏈路、無線鏈路或用于信息通信的任何其它機(jī)制,但是通常它是基于ip的通信網(wǎng)絡(luò)。雖然在一個實施例中,通信網(wǎng)絡(luò)218是因特網(wǎng),但是在其它實施例中,通信網(wǎng)絡(luò)218可以是任何合適的計算機(jī)網(wǎng)絡(luò)。
網(wǎng)絡(luò)接口的物理硬件組件有時被稱為網(wǎng)絡(luò)接口卡(nic),盡管它們不需要是卡的形式:例如,它們可以是直接適配在母板上的連接器和集成電路(ic)的形式,或者可以是與計算機(jī)系統(tǒng)的其它組件一起被制成在單個集成電路芯片上的宏單元的形式。
用戶接口輸入設(shè)備222可以包括鍵盤,諸如鼠標(biāo),軌跡球,觸摸板或圖形輸入板之類的指示設(shè)備,掃描儀,并入到顯示器中的觸摸屏,諸如語音識別系統(tǒng)之類的音頻輸入設(shè)備,麥克風(fēng),和其它類型的輸入設(shè)備。一般來說,術(shù)語“輸入設(shè)備”的使用旨在包括將信息輸入到計算機(jī)系統(tǒng)210中或計算機(jī)網(wǎng)絡(luò)218上的所有可能類型的設(shè)備和方式。通過輸入設(shè)備222,用戶向系統(tǒng)提供查詢和查詢細(xì)化。
用戶接口輸出設(shè)備220可以包括顯示子系統(tǒng),打印機(jī),傳真機(jī)或諸如音頻輸出設(shè)備之類的非可視顯示器。顯示子系統(tǒng)可以包括陰極射線管(crt),諸如液晶顯示器(lcd)之類的平板設(shè)備,投影設(shè)備或用于產(chǎn)生可視圖像的一些其它機(jī)制。顯示子系統(tǒng)還可以例如經(jīng)由音頻輸出設(shè)備提供非可視顯示。一般來說,術(shù)語“輸出設(shè)備”的使用旨在包括從計算機(jī)系統(tǒng)210向用戶或向另一機(jī)器或計算機(jī)系統(tǒng)輸出信息的所有可能類型的設(shè)備和方式。通過輸出設(shè)備220,系統(tǒng)向用戶呈現(xiàn)查詢結(jié)果布局。
存儲子系統(tǒng)224存儲提供本發(fā)明的某些實施例的功能的基本編程和數(shù)據(jù)結(jié)構(gòu)。例如,實現(xiàn)本發(fā)明的某些實施例的功能的各種模塊可以被存儲在存儲子系統(tǒng)224中。這些軟件模塊通常由處理器子系統(tǒng)214執(zhí)行。
存儲器子系統(tǒng)226通常包括多個存儲器,所述多個存儲器包括用于在程序執(zhí)行期間存儲指令和數(shù)據(jù)的主隨機(jī)存取存儲器(ram)230和其中存儲固定指令的只讀存儲器(rom)232。文件存儲子系統(tǒng)228為程序和數(shù)據(jù)文件提供持久存儲,并且可以包括硬盤驅(qū)動器,軟盤驅(qū)動器以及相關(guān)聯(lián)的可移動介質(zhì),cdrom驅(qū)動器,光驅(qū)動器或可移動介質(zhì)盒。實現(xiàn)本發(fā)明的某些實施例的功能的數(shù)據(jù)庫和模塊可以在諸如一個或多個cd-rom之類的計算機(jī)可讀介質(zhì)上提供,并且可以由文件存儲子系統(tǒng)228存儲。主機(jī)存儲器226此外包含計算機(jī)指令,所述計算機(jī)指令當(dāng)由處理器子系統(tǒng)214執(zhí)行時使得計算機(jī)系統(tǒng)操作或執(zhí)行如在此述的功能。如在此使用的,被稱為在“主機(jī)”或“計算機(jī)”上或其中運(yùn)行的過程和軟件響應(yīng)于包括這些指令和數(shù)據(jù)的任何其它本地或遠(yuǎn)程存儲的主機(jī)存儲器子系統(tǒng)226中的計算機(jī)指令和數(shù)據(jù)而在處理器子系統(tǒng)214上被執(zhí)行。
總線子系統(tǒng)212提供了一種機(jī)制,通過該機(jī)制,計算機(jī)系統(tǒng)210的各種組件和子系統(tǒng)按照預(yù)期彼此通信。雖然總線子系統(tǒng)212被示意性地示出為單條總線,但是總線子系統(tǒng)的備選實施例可以使用多條總線。
計算機(jī)系統(tǒng)210本身可以是各種類型的,包括個人計算機(jī),便攜式計算機(jī),工作站,計算機(jī)終端,網(wǎng)絡(luò)計算機(jī),電視,大型機(jī),服務(wù)器場或任何其它數(shù)據(jù)處理系統(tǒng)或用戶設(shè)備。具體而言,設(shè)想了用戶計算機(jī)110可以是諸如平板計算機(jī)或智能電話之類的手持設(shè)備。在另一個實施例中,“系統(tǒng)”執(zhí)行本文描述的所有操作,并且可以將“系統(tǒng)”實現(xiàn)為具有在不同成員計算機(jī)之間的任何期望的操作分配的單個計算機(jī)或多個計算機(jī)。由于計算機(jī)和網(wǎng)絡(luò)的不斷變化的性質(zhì),圖2中描繪的計算機(jī)系統(tǒng)210的描述僅僅旨在作為用于說明本發(fā)明的優(yōu)選實施例的具體示例。計算機(jī)系統(tǒng)210的許多其它配置可能具有比圖2所示的計算機(jī)系統(tǒng)更多或更少的組件。
盡管已經(jīng)在完全功能的數(shù)據(jù)處理系統(tǒng)的上下文中描述了本發(fā)明,但是本領(lǐng)域普通技術(shù)人員將理解,本文描述的過程能夠以指令和數(shù)據(jù)的計算機(jī)可讀介質(zhì)的形式來被分布,并且不管實際用于執(zhí)行分發(fā)的信號承載介質(zhì)的具體類型如何,本發(fā)明都同樣適用。如在此使用的,計算機(jī)可讀介質(zhì)是其上可以由計算機(jī)系統(tǒng)存儲和讀取信息的介質(zhì)。示例包括軟盤,硬盤驅(qū)動器,ram,cd,dvd,閃存,usb驅(qū)動器等。計算機(jī)可讀介質(zhì)可以按照編碼的格式來存儲信息,所述編碼格式被解碼以用于在特定數(shù)據(jù)處理系統(tǒng)中的實際使用。作為在此使用的術(shù)語,單個計算機(jī)可讀介質(zhì)還可以包括多于一個的物理項目,諸如多個cd-rom或多個ram段,或者幾個不同種類的介質(zhì)的組合。如在此使用的,該術(shù)語不包括其中信息以信號隨時間變化的方式被編碼的僅僅時變的信號。
條款
以下條款描述了與本發(fā)明的各方面相關(guān)的方法和系統(tǒng)的各種示例,其中一些是對權(quán)利要求中闡述的各方面的補(bǔ)充。
條款1.一種用于所需文檔的用戶標(biāo)識的系統(tǒng),包括:
處理器;以及
耦合到所述處理器的計算機(jī)可讀介質(zhì),所述計算機(jī)可讀介質(zhì)以非瞬態(tài)的方式在其上存儲多個軟件代碼部分,所述多個軟件代碼部分定義用于以下各項的邏輯:
第一模塊,用于在計算機(jī)可讀介質(zhì)中以非瞬態(tài)的方式提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的產(chǎn)品之間的不相似性的預(yù)定測量,
第二模塊,用于向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔,
第三模塊,用于針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比所述第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目,以及
第四模塊,用于響應(yīng)于對向所述用戶標(biāo)識的文檔的特定子集的用戶選擇來引起動作,
其中集體接近度的所述預(yù)定義的定義被定義以使得如果在所述嵌入空間中d(a,x)<d(b,x)則候選文檔x被認(rèn)為與文檔b相比更靠近文檔a。
條款2.根據(jù)條款1所述的系統(tǒng),其中由所述第二模塊向所述用戶標(biāo)識的文檔的每個第i個集合比在所述第i個候選空間中集合大小為ni的文檔的平均區(qū)分性更有區(qū)分性。
條款3.根據(jù)條款1所述的系統(tǒng),其中所述第一模塊包括:
用于根據(jù)僅包括被認(rèn)為在預(yù)定義主題域內(nèi)的文檔的訓(xùn)練數(shù)據(jù)來學(xué)習(xí)嵌入的模塊;以及
用于根據(jù)學(xué)習(xí)的所述嵌入來將來自文檔的所述目錄的所述文檔嵌入到所述嵌入空間中的模塊,
其中文檔的所述目錄中的所有所述文檔被認(rèn)為在所述主題域內(nèi)。
條款4.如條款1所述的系統(tǒng),其中在每個第i次迭代中對嵌入空間進(jìn)行幾何約束以標(biāo)識第i個候選空間,所述第三模塊:
標(biāo)識所述嵌入空間上的幾何約束的相應(yīng)的第i個集合;
針對所述第i個候選空間中的至少一些特定文檔中的每個特定文檔,確定與未被所述特定文檔滿足的幾何約束的第一至第i個集合中的幾何約束的每個幾何約束相關(guān)聯(lián)的處罰的聚合,所述幾何約束中的每個幾何約束的未滿足與相應(yīng)的處罰預(yù)先相關(guān)聯(lián);以及
在第i個候選空間中僅包括來自嵌入空間的所述文檔中的ri個文檔,其中所述ri個文檔中的每個文檔的聚合處罰不高于所述嵌入空間中的如下任何其它文檔的聚合處罰:在確定聚合的步驟中針對所述任何其它文檔確定聚合。
條款5.根據(jù)條款1所述的系統(tǒng),其中在向用戶標(biāo)識來自初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合時,所述第二模塊:
標(biāo)識所述初始候選空間中的相似文檔的聚類;以及
選擇所述初始集合以包括來自標(biāo)識的所述聚類中的每個聚類的至少一個文檔。
條款6.根據(jù)條款5所述的系統(tǒng),其中在向所述用戶標(biāo)識候選文檔的初始集合時,所述第二模塊向所述聚類中的每個聚類的中心點(diǎn)進(jìn)行標(biāo)識。
條款7.根據(jù)條款1所述的系統(tǒng),其中在幾何地約束所述嵌入空間以標(biāo)識每個第i個候選空間時,所述第三模塊標(biāo)識所述嵌入空間上的幾何約束的相應(yīng)的第i個集合。
條款8.根據(jù)條款7所述的系統(tǒng),其中所述幾何約束中的第j個幾何約束標(biāo)識所述嵌入空間中的相應(yīng)的文檔對(aj,bj),并且被定義使得如果d(aj,x)<d(bj,x)則被特定候選文檔x滿足。
條款9.根據(jù)條款7所述的系統(tǒng),其中在每個第(i-1)集合中由所述第三模塊向所述用戶標(biāo)識但不在所述第i個被選擇的子集中的那些文檔定義文檔的第i個未被選擇的子集,
其中在幾何地約束所述嵌入空間以標(biāo)識每個第i個候選空間時,響應(yīng)于從所述第(i-1)個文檔集合對文檔的第i個被選擇的子集的用戶選擇,所述第三模塊添加對所述嵌入空間的多個添加的約束,
其中如果且僅如果針對文檔的所述第i個被選擇的子集中的所有文檔a和文檔的所述第i個未被選擇的子集中的所有文檔b存在d(a,x)<d(b,x)時,所述多個添加的約束被特定候選文檔x滿足。
條款10.根據(jù)條款1所述的系統(tǒng),其中在幾何地約束所述嵌入空間進(jìn)行以標(biāo)識每個第i個候選空間時,所述第三模塊更新所述嵌入空間中的超平面,所述第i個候選空間是由更新的所述超平面界定的所述嵌入空間的區(qū)域。
條款11.根據(jù)條款1所述的系統(tǒng),其中所述嵌入空間是度量空間,
并且其中在幾何地約束所述嵌入空間以標(biāo)識每個第i個候選空間時,所述第三模塊更新所述嵌入空間中的m超平面,所述第i個候選空間是由更新的所述m超平面界定的所述嵌入空間的區(qū)域。
條款12.如條款1所述的系統(tǒng),其中在幾何地約束嵌入空間約束以標(biāo)識每個第i個候選空間時,所述第三模塊將在機(jī)器學(xué)習(xí)算法中由用戶選擇的文檔的第i個子集視為訓(xùn)練數(shù)據(jù)以更新所述用戶的期望目標(biāo)的假設(shè)。
條款13.根據(jù)條款1所述的系統(tǒng),其中在幾何地約束所述嵌入空間以標(biāo)識每個第i個候選空間時,所述第三模塊標(biāo)識對所述嵌入空間的幾何約束的相應(yīng)的第i個集合,還包括:
第五模塊,其維護(hù)標(biāo)識幾何約束的所述集合中的至少兩個幾何約束的約束數(shù)據(jù)庫;以及
第六模塊,其響應(yīng)于在所述迭代中的第q次迭代之后的返回到其中p<q的第p個候選空間的用戶請求,向所述用戶標(biāo)識來自所述第p個候選空間的np>1個候選文檔的集合。
條款14.一種用于產(chǎn)品的用戶獲取的方法,包括:
對計算機(jī)系統(tǒng)可訪問地提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,文檔的所述目錄中的所述文檔中的每個文檔表示產(chǎn)品,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的所述產(chǎn)品之間的不相似性的預(yù)定測量;
計算機(jī)系統(tǒng)向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔;
針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,計算機(jī)系統(tǒng)幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目;以及
響應(yīng)于對向所述用戶標(biāo)識的特定文檔的用戶選擇,導(dǎo)致向所述用戶運(yùn)送由所述特定文檔表示的產(chǎn)品。
條款15.根據(jù)條款14所述的方法,還包括:響應(yīng)于對所述特定文檔的用戶選擇,接受對由所述特定文檔表示的產(chǎn)品的付款。
條款16.一種用于產(chǎn)品的用戶獲取的系統(tǒng),包括:
處理器;以及
耦合到所述處理器的計算機(jī)可讀介質(zhì),所述計算機(jī)可讀介質(zhì)以非瞬態(tài)的方式在其上存儲多個軟件代碼部分,所述多個軟件代碼部分定義用于以下各項的邏輯:
第一模塊,用于在計算機(jī)可讀介質(zhì)中以非瞬態(tài)的方式提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,文檔的所述目錄中的所述文檔中的每個文檔表示產(chǎn)品,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的產(chǎn)品之間的不相似性的預(yù)定測量,
第二模塊,用于向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔,
第三模塊,用于針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比所述第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目,以及第四模塊,用于響應(yīng)于對向所述用戶標(biāo)識的文檔的特定子集的用戶選擇來引起動作,以及
第四模塊,用于響應(yīng)于對向所述用戶標(biāo)識的特定文檔的用戶選擇,導(dǎo)致向所述用戶運(yùn)送由所述特定文檔表示的產(chǎn)品。
條款17.一種用于數(shù)字內(nèi)容的用戶獲取的方法,包括:
對計算機(jī)系統(tǒng)可訪問地提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,文檔的所述目錄中的所述文檔中的每個文檔表示相應(yīng)的數(shù)字內(nèi)容,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的所述數(shù)字內(nèi)容之間的不相似性的預(yù)定測量;
計算機(jī)系統(tǒng)向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔;
針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,計算機(jī)系統(tǒng)幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目,以及
響應(yīng)于對所述用戶標(biāo)識的特定文檔的用戶選擇,導(dǎo)致向所述用戶遞送由所述特定文檔表示的數(shù)字內(nèi)容。
條款18.根據(jù)條款17所述的方法,其中所述數(shù)字內(nèi)容是由文件,圖像,視頻,音頻文件和流媒體程序組成的群組中的成員。
條款19.一種用于數(shù)字內(nèi)容的用戶獲取的系統(tǒng),包括:
處理器;以及
耦合到所述處理器的計算機(jī)可讀介質(zhì),所述計算機(jī)可讀介質(zhì)以非瞬態(tài)的方式在其上存儲多個軟件代碼部分,所述多個軟件代碼部分定義用于以下各項的邏輯:
第一模塊,用于在計算機(jī)可讀介質(zhì)中以非瞬態(tài)的方式提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,文檔的所述目錄中的所述文檔中的每個文檔表示相應(yīng)的數(shù)字內(nèi)容,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的所述數(shù)字內(nèi)容之間的不相似性的預(yù)定測量;以及
第二模塊,用于向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔,
第三模塊,用于針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比所述第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目,以及
第四模塊,用于響應(yīng)于對向所述用戶標(biāo)識的特定文檔的用戶選擇,導(dǎo)致向所述用戶遞送由所述特定文檔表示的數(shù)字內(nèi)容。
條款20.一種用于制造由數(shù)字內(nèi)容制成的實體產(chǎn)品的方法,包括:
對計算機(jī)系統(tǒng)可訪問地提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,文檔的所述目錄中的所述文檔中的每個文檔表示相應(yīng)的數(shù)字內(nèi)容,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的所述數(shù)字內(nèi)容之間的不相似性的預(yù)定測量;
計算機(jī)系統(tǒng)向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔;
針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,計算機(jī)系統(tǒng)幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目,以及
響應(yīng)于對向所述用戶標(biāo)識的特定文檔的用戶選擇,基于由所述特定文檔表示的所述數(shù)字內(nèi)容來導(dǎo)致實體產(chǎn)品的制造和遞送。
條款21.一種用于制造由數(shù)字內(nèi)容制成的實體產(chǎn)品的系統(tǒng),包括:
處理器;以及
耦合到所述處理器的計算機(jī)可讀介質(zhì),所述計算機(jī)可讀介質(zhì)以非瞬態(tài)的方式在其上存儲多個軟件代碼部分,所述多個軟件代碼部分定義用于以下各項的邏輯:
第一模塊,用于在計算機(jī)可讀介質(zhì)中以非瞬態(tài)的方式提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,文檔的所述目錄中的所述文檔中的每個文檔表示相應(yīng)的數(shù)字內(nèi)容,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的所述數(shù)字內(nèi)容之間的不相似性的預(yù)定測量;以及
第二模塊,用于向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔,
第三模塊,用于針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比所述第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目,以及
第四模塊,用于響應(yīng)于對向所述用戶標(biāo)識的特定文檔的用戶選擇,基于由所述特定文檔表示的所述數(shù)字內(nèi)容來導(dǎo)致實體產(chǎn)品的制造和遞送。
條款22.一種用于共享數(shù)字內(nèi)容的方法,包括:
對計算機(jī)系統(tǒng)可訪問地提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,文檔的所述目錄中的所述文檔中的每個文檔表示相應(yīng)的數(shù)字內(nèi)容,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的所述數(shù)字內(nèi)容之間的不相似性的預(yù)定測量;
計算機(jī)系統(tǒng)向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔;
針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,計算機(jī)系統(tǒng)幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目;以及
響應(yīng)于對向所述用戶標(biāo)識的特定文檔的用戶選擇,導(dǎo)致由所述特定文檔表示的所述數(shù)字內(nèi)容的共享。
條款23.一種用于共享數(shù)字內(nèi)容的系統(tǒng),包括:
處理器;以及
耦合到所述處理器的計算機(jī)可讀介質(zhì),所述計算機(jī)可讀介質(zhì)以非瞬態(tài)的方式在其上存儲多個軟件代碼部分,所述多個軟件代碼部分定義用于以下各項的邏輯:
第一模塊,用于在計算機(jī)可讀介質(zhì)中以非瞬態(tài)的方式提供標(biāo)識嵌入空間中的文檔的目錄的數(shù)據(jù)庫,文檔的所述目錄中的所述文檔中的每個文檔表示相應(yīng)的數(shù)字內(nèi)容,所述數(shù)據(jù)庫標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對表示的所述數(shù)字內(nèi)容之間的不相似性的預(yù)定測量;以及
第二模塊,用于向所述用戶標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合,所述初始集合具有比所述初始候選空間少的文檔,
第三模塊,用于針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代:
響應(yīng)于從文檔的第(i-1)個集合對所述文檔的第i個被選擇的子集的用戶選擇,幾何地約束所述嵌入空間以標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,所述第i個候選空間中的所述文檔比所述第(i-1)個候選空間中的所述文檔在所述嵌入空間中集體地更靠近所述第i個被選擇的子集中的所述文檔;以及
向所述用戶標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合,ni小于所述第i個候選空間中的文檔的數(shù)目,以及
第四模塊,用于響應(yīng)于對向所述用戶標(biāo)識的特定文檔的用戶選擇,導(dǎo)致由所述特定文檔表示的所述數(shù)字內(nèi)容的共享。
條款24.一種用于所需文檔的用戶標(biāo)識的系統(tǒng),包括客戶端設(shè)備和服務(wù)器設(shè)備,各自均具有處理器和計算機(jī)可讀介質(zhì),所述計算機(jī)可讀介質(zhì)耦合到相應(yīng)的處理器并且具有以非瞬態(tài)的方式在其上存儲的多個軟件代碼部分,
所述服務(wù)器具有對其可訪問的存儲在計算機(jī)可讀介質(zhì)中的文檔數(shù)據(jù)庫,所述文檔數(shù)據(jù)庫標(biāo)識嵌入空間中的文檔的目錄,所述文檔數(shù)據(jù)庫還標(biāo)識所述嵌入空間中的所述文檔中的每對文檔之間的距離,所述距離對應(yīng)于由文檔對之間的不相似性的預(yù)定測量,
所述客戶端設(shè)備具有對其可訪問的以非瞬態(tài)的方式存儲在計算機(jī)可讀介質(zhì)中的約束數(shù)據(jù)庫,所述約束數(shù)據(jù)庫標(biāo)識對所述嵌入空間的幾何約束的集合,
所述服務(wù)器上的所述多個軟件代碼部分包括:
用于向所述客戶端設(shè)備標(biāo)識來自所述嵌入空間內(nèi)的初始(i=0)候選空間的n0>1個候選文檔的初始(i=0)集合的模塊,所述初始集合具有比所述初始候選空間少的文檔;以及
用于根據(jù)并響應(yīng)于從所述客戶端設(shè)備接收到對所述嵌入空間的幾何約束的集合來確定第i個候選空間,并且用于向所述客戶端設(shè)備標(biāo)識來自所述第i個候選空間的ni>1個候選文檔的第i個集合的模塊,ni小于所述第i個候選空間中的文檔的數(shù)目,以及
所述客戶端設(shè)備上的所述多個軟件代碼部分包括用于向所述用戶呈現(xiàn)從所述服務(wù)器接收的候選文檔的集合的模塊,
所述客戶端設(shè)備上的所述多個軟件代碼部分還包括用于針對以第一次迭代(i=1)開始的多個迭代中的每個第i次迭代,進(jìn)行如下操作的模塊:
響應(yīng)于從所述服務(wù)器接收到文檔的第(i-1)個集合,向所述用戶呈現(xiàn)文檔的所述第(i-1)個集合;
響應(yīng)于從向所述用戶呈現(xiàn)的文檔的第(i-1)個集合對文檔的第i個被選擇的子集的用戶選擇,開發(fā)對所述嵌入空間的至少一個幾何約束的第i個集合,幾何約束的第i個集合標(biāo)識第i個候選空間,從而使得根據(jù)集體接近度的預(yù)定義的定義,第i個候選空間中的文檔比第(i-1)個候選空間中的文檔在所述嵌入空間中集體更靠近第i個被選擇的子集中的文檔;
根據(jù)幾何約束的所述第i個集合來更新所述約束數(shù)據(jù)庫;以及
將所述約束數(shù)據(jù)庫中的約束的所述集合向所述服務(wù)器轉(zhuǎn)發(fā)以用于確定所述第i個候選空間,
客戶端設(shè)備上的所述多個軟件代碼部分還包括用于響應(yīng)于對向用戶呈現(xiàn)的特定文檔子集的用戶選擇來采取動作的模塊。
條款25.如條款24所述的服務(wù)器。
條款26.如條款24所述的客戶端設(shè)備。
如在此使用的,如果前驅(qū)事件或值影響給定事件或值,則給定事件或值“響應(yīng)”于前驅(qū)事件或值。如果存在中介處理元件、步驟或時間段,則給定事件或值仍然可以“響應(yīng)”于前驅(qū)事件或值。如果中介處理元件或步驟組合了多于一個事件或值,則處理元件或步驟的信號輸出被認(rèn)為“響應(yīng)”于每個事件或值輸入。如果給定事件或值與前驅(qū)事件或值相同,則這僅僅是退化情況,其中給定事件或值仍被認(rèn)為“響應(yīng)”于前驅(qū)事件或值。類似地定義了給定事件或值對另一事件或值的“依賴性”。
如在此使用的,對信息項的“標(biāo)識”不一定要求對該信息項的直接指定。通過簡單地通過一個或多個間接層來指向?qū)嶋H信息,或者通過標(biāo)識一起足以確定實際信息項的一個或多個不同信息項,可以在字段中“標(biāo)識”信息。另外,術(shù)語“指示”在此被用來意指與“標(biāo)識”相同。
申請人在此分離地公開了在此在說明書和權(quán)利要求書中描述的每個個體特征,以及兩個或更多個這樣的特征的任何組合(在這樣的特征或組合能夠根據(jù)本領(lǐng)域技術(shù)人員的公知常識基于本說明書在整體上被實現(xiàn)的程度上),不管這樣的特征或特征的組合是否解決了在此公開的任何問題,并且不限制權(quán)利要求的范圍。申請人指出,本發(fā)明的各方面可以由任何這樣的特征或特征的組合組成。鑒于前述描述,對于本領(lǐng)域技術(shù)人員顯而易見的是,在本發(fā)明的范圍內(nèi)可以進(jìn)行各種修改。
已經(jīng)出于說明和描述的目的而提供了對本發(fā)明的優(yōu)選實施例的前述描述。其并不旨在是窮舉的或?qū)⒈景l(fā)明限制為所公開的精確形式。很顯然,許多修改和變型對于本領(lǐng)域技術(shù)人員將是顯而易見的。具體而言并且非限制性地,在本專利申請的背景技術(shù)部分中通過引用來描述、建議或并入的任何和所有變型通過引用而被特別地并入到對本發(fā)明的實施例的在此的描述中。另外,在此關(guān)于任何一個實施例通過引用來描述、建議或并入的任何和所有變型也將被認(rèn)為是相對于所有其它實施例的教導(dǎo)。為了最好地解釋本發(fā)明的原理及其實際應(yīng)用,選擇和描述了在此描述的實施例,由此使得本領(lǐng)域的其它技術(shù)人員能夠理解本發(fā)明的各種實施例,并且各種修改適于預(yù)期的特定用途。本發(fā)明的范圍旨在于由所附權(quán)利要求及其等同體來限定。