搜索引擎是人們定位在線信息和完成搜索任務的主要手段。傳統地,搜索引擎被配備有被配置為幫助用戶定位與其信息檢索(IR)意圖匹配的信息的各種技術。例如,搜索引擎可以被配置為響應于查詢的接收向用戶提供查詢建議。這些查詢建議通常是查詢消除歧義,其中搜索引擎接收歧義查詢并且嘗試幫助用戶改善查詢。雖然查詢建議關于幫助用戶獲取特定信息通常是有用的,但是查詢建議并不特別非常適合于幫助用戶完成更復雜的搜索任務。
技術實現要素:
以下是本文中更詳細描述的主題的簡要概述。該概述不旨在限制權利要求的范圍。
本文中描述了計算系統。計算系統包括處理器和包括由處理器執行的圖構造器系統的存儲器。圖構造器系統被配置為基于搜索引擎的搜索記錄來構造計算機實現的圖。計算機實現的圖包括表示多個方面的節點,一個方面是任務的子任務或話題的子話題之一,每個方面由搜索記錄中的至少一個查詢定義。計算機實現的圖還包括連接節點的加權邊,分配給邊的權重指示搜索器在完成任務或探索話題時將從由第一節點表示的第一方面轉換到由第二節點表示的第二方面的可能性,第一節點和第二節點由邊連接。計算機實現的圖支持響應于從搜索器接收到查詢而基于建議查詢來提供建議查詢或內容。
附圖說明
圖1是支持構造計算機實現的圖的示例性計算系統的功能框圖,該計算機實現的圖被配置為支持輸出探索性建議。
圖2示出了示例性計算機實現的圖。
圖3示出了在計算機實現的圖中表示的示例性方面。
圖4是被配置為從搜索記錄提取多個方面的示例性提取系統的功能框圖。
圖5是被配置為構造計算機實現的圖的圖構造器系統的功能框圖,計算機實現的圖被配置為支持輸出探索性建議。
圖6是示出可以如何標識一個方面的圖。
圖7是支持響應于查詢的接收而建議一個方面的示例性系統的功能框圖。
圖8是包括建議查詢消除歧義以及探索性建議的圖形用戶界面。
圖9是示出用于構造計算機實現的圖的示例性方法的流程圖。
圖10是示出用于從搜索引擎的搜索記錄提取探索性搜索的示例性方法的流程圖。
圖11是示出用于構造計算機實現的圖的示例性方法的流程圖。
圖12是示例性計算系統。
具體實施方式
現在參照附圖描述與幫助用戶探索話題和/或任務有關的各種技術,其中相同的附圖標記始終用于指代相同的元件。在下面的描述中,為了解釋的目的,闡述了許多具體細節以便提供對一個或多個方面的透徹理解。然而,可以顯而易見的是,這些(多個)方面可以在沒有這些具體細節的情況下實踐。在其他實例中,以框圖形式示出了公知的結構和設備,以便支持描述一個或多個方面。此外,應當理解,被描述為由某些系統部件執行的功能可以由多個部件執行。類似地,例如,一個部件可以被配置為執行被描述為由多個部件執行的功能。
此外,術語“或”旨在意指包括性的“或”而不是排他性的“或”。即,除非另有說明或從上下文清楚,否則短語“X使用A或B”旨在意指任何自然的包括性排列。即,短語“X使用A或B”通過以下任何實例來滿足:X使用A;X使用B;或X使用A和B兩者。此外,除非另有說明或從上下文清楚的是指向單數形式,本申請和所附權利要求中使用的冠詞“一”和“一個”通常應被解釋為意指“一個或多個”。
此外,如本文所使用的,術語“部件”和“系統”旨在包括被配置有計算機可執行指令的計算機可讀數據存儲裝置,該指令使得當由處理器執行時執行某種功能。計算機可執行指令可以包括例程、函數等。還應當理解,部件或系統可以位于單個設備上或跨多個設備分布。此外,如本文所使用的,術語“示例性”旨在意指用作某事物的說明或示例,并且不旨在指示偏好。
現在參考圖1,示出了支持構造計算機實現的圖的示例性計算系統100,其中計算機實現的圖支持響應于從搜索引擎(搜索器)的用戶接收到查詢而輸出探索性建議(例如,查詢)。如將在本文中更詳細地描述的,與用于建議查詢的傳統方法(其中建議查詢是所接收的查詢、查詢改善器或查詢備選的潛在消除歧義)對比,計算系統100被配置為輸出支持關于話題和/或任務的探索的查詢(例如,由計算系統100輸出的查詢被配置為關注搜索任務內的備選)。更具體地,可以由計算系統100生成的計算機實現的圖支持允許用戶探索和完成多步驟搜索任務的探索性建議的標識。探索建議與由傳統web搜索引擎提供的相關搜索顯著不同。如上所述,由傳統web搜索引擎提供的相關搜索的主要目的是幫助用戶改善他們的查詢。相比之下,探索性建議幫助用戶探索其當前搜索任務的新方面。
計算系統100包括數據存儲102,其包括搜索引擎的搜索記錄104。搜索記錄104包括多個記錄條目。記錄條目可以包括(匿名地)標識用戶的數據、由用戶發出的查詢、指示何時發出查詢的時間戳、由用戶選擇的搜索結果(如果有的話)以及在由用戶選擇的搜索結果上的駐留時間。記錄條目可以可選地包括呈現給用戶但未被選擇的搜索結果的標識,搜索引擎結果頁面(SERP)是否包括滿足用戶的信息需求的實體卡或即時答案的指示以及其他數據。
計算系統100另外包括處理器106和存儲器108,存儲器108包括由處理器106執行的多個系統。更具體地,存儲器108包括提取系統110,提取系統110被配置為訪問搜索記錄104并且基于搜索記錄104的內容來標識探索性搜索會話。探索性搜索會話可以被定義為搜索會話,其中用戶1)從事學習和發現(例如,學習特定話題的所有方面,比較產品,等等);2)瀏覽關于感興趣的話題或人(例如,名人、運動隊等)的信息;或3)進行多步驟搜索任務(例如,計劃旅行)。可以確定探索性搜索會話不同于例如導航搜索會話。在導航搜索會話中,用戶正在嘗試到達非常特定的web頁面。探索性搜索會話也不同于某些類型的信息搜索會話。例如,在一些信息搜索會話中,用戶可能希望獲得單一的答案(例如,誰是美國的第一個總統)。此外,可以確定探索性搜索會話將包括分別指向話題的子話題或任務的子任務的多個查詢。例如,探索話題“喬治華盛頓”的用戶可以提出關于喬治華盛頓作為測量師、將軍和總統的時間的查詢。在另一個示例中,探索計劃度假的任務的用戶可以提出關于租賃車輛的查詢、關于在特定目的地的活動的查詢、關于購買到目的地的機票的查詢等。如將從本文的描述容易地確定的,計算系統100為正在執行探索性類型搜索的用戶提供改進的體驗(超過傳統方法),因為計算系統100可以提供幫助用戶完成多步驟任務或了解多面的話題的查詢建議、內容、廣告等。
存儲器108還包括圖構造器系統112,圖構造器系統112基于由提取系統110標識的探索性搜索會話來構造計算機實現的圖114。計算機實現的圖114在由圖構造器系統112構造時可以被保留在數據存儲102(或另一數據倉庫)中。
參考圖2,示出了由圖構造器系統112構造的計算機實現的圖114的示例性描繪。計算機實現的圖114包括分別表示多個方面的多個節點202-214。一個方面是話題的子話題或任務的子任務。因此,例如,任務可以是旅行的計劃;在這種情況下,第一節點202可以表示租賃汽車的方面,第二節點204可以表示租賃度假屋的方面,第三節點206可以表示定位特定區域中的餐館的方面等
簡要地參考圖3,示出了示例性方面300。方面300可以由搜索引擎的用戶提出的多個查詢302來定義,以獲得關于由方面300表示的子話題的信息或者完成由方面300表示的子任務。因此,查詢302已經由用戶在由提取系統110標識的探索性搜索會話中提出了。例如,當方面300表示在大開曼島租賃汽車的子任務時,多個查詢302可以包括“car rental at Grand Cayman”,“Grand Cayman car rental”,“Grand Cayman rental cars”等。此外,多個查詢302中的查詢可以通過查詢的發出頻率排序。在另一個示例中,多個查詢302中的查詢可以基于它們在滿足用戶的信息需求方面的相應的有效性來排序(例如,在發出查詢之后,滿足的查詢是用戶選擇搜索結果并且在搜索結果上停留某一閾值量的時間查詢)。多個查詢302中的最高查詢可以表示方面300,并且可以表現(surface)為探索性建議,如下面將描述的。雖然方面300被示為由多個查詢302定義,但是在一些實例中,一個方面可以由單個查詢來定義。
返回圖2,計算機實現的圖114包括多個定向的邊216-232。定向的邊216-232分別耦合節點對,并且可以被加權以指示由節點表示的多個方面之間的關聯量。例如,可以對從第一節點202(表示第一方面)到第三節點206(表示第三方面)的邊216進行加權,以指示發出第一方面中的查詢的搜索器稍后將發出第三方面中的查詢的可能性。例如,如果用戶發出被包括在第一方面中(例如,至少部分地定義第一方面)的查詢“Grand Cayman flight tickets”,則存在用戶將發出可以被包括在第三方面中的查詢“Grand Cayman vacation rentals”的某種可能性。
如上所述,計算機實現的圖114支持響應于用戶發出查詢而向用戶輸出探索性建議。簡而言之,當搜索引擎的用戶發出查詢時,可以將該查詢與計算機實現的圖114中表示的多個方面中的查詢(其中一個方面由其查詢定義)進行比較。當由用戶發出的查詢被包括在一個方面中時,標識計算機實現的圖114中表示該方面的節點。此后,可以基于計算機實現的圖114中的節點之間的加權邊來標識計算機實現的圖中的另一節點,其中另一節點表示另一方面。響應于標識另一節點,可以將至少部分地定義另一方面的查詢作為建議的探索性查詢呈現給用戶。在另一示例性實施例中,不是呈現查詢,而是基于查詢可檢索的內容可以直接地被呈現給用戶。即,可以預取內容以幫助用戶:1)獲取關于用戶感興趣的話題的信息(如由所發出的查詢所證明的);或2)獲取關于用戶感興趣的任務的信息。
現參考圖4,示出了提取系統110的功能框圖。如前所述,提取系統110被配置為標識搜索記錄104中的探索性搜索會話。為此,提取系統110可以包括將搜索記錄104中的記錄條目分割成搜索會話的分割器部件402。搜索會話可以被定義為當使用搜索引擎時由搜索器執行的活動序列,其中每個活動在離該序列中的相鄰活動的閾值量的時間內。換言之,搜索會話可以是用戶在沒有某一閾值量的空閑時間(例如,5分鐘、10分鐘、15分鐘、30分鐘等)的情況下使用搜索引擎的連續活動。分割器部件402可以基于例如記錄條目中的用戶標識和記錄條目的時間戳將搜索記錄104分割成搜索會話。
響應于分割器部件402將搜索記錄104分割成搜索會話,分割器部件402可以進一步將搜索會話分割成任務會話和話題相干子會話。可以將話題相干會話定義為導致一個或多個任務和/或目標的一組相關信息需求。通常,任務會話可以被定義為搜索會話的至少一部分,其中用戶具有導致發出一個或多個查詢的原子信息需求。分割器部件402可以基于分配給查詢的類別,響應于發出查詢而被分配給由用戶查看的搜索結果的類別,查詢的語義分析等,將搜索會話分割成任務會話和話題相干的會話。例如,為了標識話題相干會話,分割器部件402可以標識分配給由用戶在搜索會話中發出的查詢的重疊類別和/或由用戶在搜索會話中選擇的搜索結果的重疊類別。任務會話和話題相干會話可以在時間上交織,并且單個話題相干會話中的任務也屬于相同的會話。可以注意到,術語“任務”和“目標”和術語“話題相干會話”和“使命”已經用于描述這些概念。
如前所述,提取系統110被配置為標識探索性搜索會話。提取系統110可以利用用于標識探索性會話的各種技術,包括標識具有至少閾值數目的查詢(例如,3)的搜索會話,標識在搜索會話中的查詢之中具有某一閾值量的話題相干的搜索會話等。為了幫助標識探索性搜索會話,可能期望在探索性搜索會話和本質上是導航的搜索會話之間消除歧義。例如,提取系統110可以包括過濾器部件404,過濾器部件404標識來自任務會話和話題相干會話的導航搜索或盡力搜索(struggling search)。導航搜索是用戶正在試圖到達特定站點的搜索,而盡力搜索是用戶正在盡力定位信息的搜索。過濾器部件404可以移除也具有低點擊熵(低于閾值的點擊熵)的某一閾值數目的最頻繁發出的查詢,常用于標識導航意圖的技術。在一個非限制性示例中,過濾器部件404可以從候選探索會話中移除300,500,1000等等的也具有低點擊熵的最頻繁發出的查詢。
為了標識和過濾盡力搜索會話,過濾器部件404可以分析由分割器部件402輸出的會話的各種特征。示例性特征可以包括查詢特征、查詢轉換特征、點擊特征和話題特征。查詢特征可以包括搜索會話中的多個查詢、搜索會話中的查詢之間的時間量、搜索會話中的查詢的平均長度、搜索會話中的查詢中的關鍵字的數目、搜索會話中的查詢的分布和長度等。查詢轉換特征可以包括搜索會話中的查詢之間的平均余弦相似性、在搜索會話中的連續查詢之間添加的術語的數目、在搜索會話中的連續查詢之間刪除的術語的數目、在搜索會話中的連續查詢之間的替換術語的數目等。點擊特征可以包括由用戶在搜索會話中對每個查詢做出的點擊數目、在搜索會話中在由用戶查看的搜索結果上的平均停留時間、搜索會話中的唯一URL和域點擊的百分比等。話題特征可以包括由用戶選擇的如由開放式目錄項目(ODP)分配的文檔的類別,這樣的話題的計數和熵等。
過濾器部件404可以包括被訓練為將會話標注為盡力或不盡力的分類器406。可以基于上述特征(查詢特征、查詢轉換特征、點擊特征和話題特征)和被標注為盡力或不盡力的搜索會話來訓練分類器406。根據示例,分類器406可以是多元累計回歸樹(MART)分類器。被分類器406標注為盡力的搜索會話可以從考慮中移除作為候選探索會話。剩余的搜索會話可以由提取系統110輸出為探索性搜索會話。
現參考圖5,示出了圖構造器系統112的功能框圖。如前所述,圖構造器系統112接收由提取系統110輸出的探索性搜索會話,并且基于探索性搜索會話構造計算機實現的圖114。為此,圖構造器系統112包括預處理器部件502,預處理器部件502從探索性搜索會話提取查詢并將這樣的查詢標準化。例如,對于每個查詢,預處理器部件502可以對查詢的文本進行小寫,從查詢中移除標點符號,用單個空格替換空白的所有游程(run),以及修剪查詢中的任何前導或尾隨空格。
圖構造器系統112還包括實體標識器部件504,實體標識器部件504標識查詢中的實體并標記引用所標識的實體的查詢中的文本跨度。應當理解,實體標識器部件504不需要消除實體的歧義;相反,實體標識器部件504可以分配指示文本跨度是實體的標注。實體標識器部件504可以利用各種技術來標識查詢中的實體。在一個示例中,實體標識器部件504可以利用自然語言處理(NLP)技術來標識查詢中的實體。在另一個示例中,實體標識器部件504可以具有對包括實體列表的預定義字典的訪問。在又一個示例中,實體標識器部件504可以基于在維基頁面中引用的實體來標識實體。更詳細地,由實體標識器部件504標識的實體可以包括人、地點、公司、事件、概念和著名日期。可以通過在實體標識器部件504可訪問的知識庫中提取與實體相關聯的每個詞匯名稱來構造詞典,并且可以使用任何適當的鍵值字典結構來表示詞匯名稱。對于每個查詢,實體標識器部件504可以在完美散列中查找每個可能的n-gram。實體標識器部件504可以通過使用左最長匹配啟發式的貪心準入(admission)來解決(resolve)嵌套匹配。可以由實體標識器部件504用來標識查詢中的實體的許多知識源表示諸如/時間/事件和/商業/雇傭_任期的本體術語以及復合值(complex value)類型(或具體化的)關系,諸如/電影/表演和/教育/教育。為了過濾出這些,實體標識器部件504可以標識查詢中的詞匯名稱,并且可以根據它們是否表示非實體類型(例如上面引用的那些)或實體類型(例如/音樂/唱片_標注,/航空/機場,和/軍事/沖突)來手動注釋閾值數目(例如,300)的最頻繁匹配的類型。實體標識器部件504可以過濾出以下實體:1)具有非實體類型;和2)沒有實體注釋類型的類型。
還已知詞匯名稱可能是有歧義的。由于實體標識器部件504被配置為利用實體的存在來標記查詢,所以實體標識器部件504可以僅涉及在非實體意義上是有歧義的名稱。例如,名稱“something”可能是有問題的,因為它可能指的是著名的歌曲,以及非常常見的非實體代詞。高度有歧義的名字可以通過建立在手動注釋名稱上訓練的二元(binary)歧義分類器來從詞典中過濾。如果名稱包含非實體含義,例如名稱“something”,則可以將其標注為有歧義。
圖構造器系統112還可以包括搭配標識器部件506,搭配標識器部件506被配置為標識查詢中的搭配。搭配(其也被稱為多術語關鍵詞)是與偶然期望的相比更經常共同出現的詞或術語的序列。例如,在查詢“cheap hotels in New York City”中,詞袋表示將查詢視為沒有特定順序的一組六個詞。看看查詢背后的意圖,可以確定查詢的發出者正在搜索“New York City”中的“cheap hotels”,并且確定將這些多術語關鍵詞分解成它們的組成術語導致語義意義的損失。
搭配標識器部件506可以利用監督式或非監督式學習技術來標識查詢中的搭配。在一個示例性實施例中,搭配標識器部件506可以使用非監督技術,并且可以采用互信息方法。通過計算針對每個連續術語對的逐點互信息得分,匹配標識器部件506可以獲得查詢到關鍵詞(包括搭配)的分割。更為形式上地,對于查詢q={q1,q2,…,qn}:
其中p(qi,qi+1)是雙字母組qi,qi+1的聯合出現概率,并且p(qi)是qi的單字母出現概率。當PMI值落在某個閾值τ以下時,搭配標識器部件506可以引入搭配中斷。在一個示例中,τ可以被設置為大約1.91。例如,τ可以設置在1.5和2.5之間。
圖構造器系統502還可以包括標記器部件508,標記器部件508被配置為向查詢(未被標記為實體和/或搭配的標志)中的剩余標志分配標記。例如,對于查詢中的每個剩余術語,標記器部件508可以分配“介詞”或“術語”標記。介詞標記指的是語言構造介詞,而術語標記指的是任何未被標注為實體、搭配或介詞的術語。因此,查詢中的每個術語被標注為實體、搭配、介詞或術語之一。
圖構造器系統112還包括元素標識器部件510,元素標識器部件510將查詢中的每個術語標注為中心點、改善器或連接器之一,其中標識器部件510基于通過實體標識器部件504、搭配標識器部件506和標記器部件508應用的標記來執行這樣的標注。中心點可以被定義為查詢的關鍵點,并且可以是被良好定義并且已被標注為實體或搭配的概念(例如,“New York City”)。改善器可以被定義為旨在表征查詢中的精確區別或細微之處(例如,“hotels”)的查詢成分。
為了標識查詢中的中心點和改善器,元素標識器部件510可以利用依賴性解析規則。例如,形式為“NNX NNX”的短語,其中NNX是單數、復數或專有名詞,中心點是第一名詞。對于形式為“NNX IN NNX”的短語,其中IN是介詞,第二名詞是中心點。為了使用實體、搭配、術語和介詞標記在查詢中找到中心點和改善器,元素標識器部件510可以解決嵌套的實體和搭配匹配。嵌套匹配可以通過使用左最長匹配啟發式的貪心準入來解決。例如,在查詢“reviews for Company One Phone”中,術語“Company One”和“Phone”可以被標識為實體,并且“Company One Phone”可以被標識為搭配。在這種情況下,元素標識器部件510可以通過將“Company One Phone”視為單個概念,并將“Company One Phone”標注為中心點來解決匹配。關于所包含的實體的信息可以用概念保留,并且概念可以被視為實體。
參考圖6,圖600示出了元素標識器部件510可以如何使用由實體標識器部件504、搭配標識器部件506和標記器部件508分配給查詢術語的標記來標識中心點和改善器。圖6包括表示實體標記的塊602、表示搭配標記的塊604、表示術語標記的塊606和表示介詞標記的塊608。圖600還包括表示中心點標記的塊610、表示改善器標記的塊612和表示連接器標記的塊614。圖600還包括可表示一個方面的塊616。如圖所示。如圖6所示,中心點610可以是實體或搭配。允許搭配用作中心點可以增加圖構造器系統112的覆蓋,因為它允許覆蓋通常不被標注為實體的概念(例如,“fall wedding”、“resume writing”等)以及通常被視為單個實體的連續的實體(例如,“Company One Phone”)。相反,改善器612可以是術語或搭配,因為其旨在定義某一實體的特定方面(例如,“cheap hotels”)。查詢及其對應的詞匯標記的示例在下面的表1中闡述。因此可以確定元素標識器部件510可以將中心點標識為實體或搭配,可以將改善器標識為搭配或術語,并且可以將連接器標識為介詞。
表1
圖構造器系統112另外包括模式標識器部件512,模式標識器部件512標識具有來自“中心點”、“改善器”、“連接器”標記的多個潛在預定義模式中的預定義模式的查詢。示例性預定義模式包括但不限于:1)改善器、連接器、中心點(例如,“cheap_hotels in new_york”);2)中心點、改善器(例如,“company_phone reviews”);和中心點(例如,“george washinton”)。由于查詢通常缺少語法結構,因此在某些情況下,模式標識器部件512還可以在中心點是實體并且是查詢中的唯一實體時標識具有其他模式的查詢,例如改善器、中心點。當改善器是問題詞(例如,“What is adaptive radiation?”)時,也可以允許該模式。由模式標識器部件512標識的查詢(例如,具有上面引用的模式之一的查詢)可以被選擇用于包括在多個方面中,而其他查詢可以被丟棄。
圖構造器系統112還包括分組器部件514,分組器部件514可以將適合上面引用的模式的查詢分組為多個方面。例如,由于相同方面可以由多個查詢表示,所以分組器部件514可以將表示相同方面的查詢分組在一起。在一個示例中,分組器部件514可以利用查詢相似性函數,并且將這樣的函數應用于匹配上面引用的模式的所有查詢對,隨后聚類(clustering),以獲得將被包括在計算機實現的圖114中的多個方面。在另一種方法中,當將查詢分組為多個方面時,分組器部件514可以使用關于查詢的元數據(改善器和中心點標記、實體標記等)。例如,分組器部件514可以執行以下步驟以將查詢分組為多個方面。首先,分組器部件514可以向公共實體分配標識符。例如,分組器部件514可以確定查詢包括“New York City”的術語序列,其指代實體紐約市。實體紐約市可以具有分配給它的標識符,使得查詢中的“New York City”可以用標識符替換。另一查詢可以包括術語“NYC”,其也指代實體紐約市。另一查詢中的術語“NYC”可以用上面引用的實體紐約市的標識符替換,這允許相同實體的不同變現形式的匹配。
分組器部件514此后可以通過將形式改善器-連接器-中心點的所有模式轉換為中心點-改善器來將所有查詢的語法結構規范化。例如,分組器部件514可以將查詢“hotels in New York City”轉換為“New York City hotels”。此外,分組器部件514可以將針對查詢的兩個改善器與相同的中心點匹配,如果該改善器:1)具有相同詞目(詞形還原是將詞尾變化的拼寫(inflected spelling)簡化為它的詞形詞根或詞目形式的過程);或2)具有小于某一閾值(例如,0.2)的標準化編輯距離。這允許捕獲拼寫錯誤和拼寫變化。應用這些步驟允許分組器部件514將諸如“hotels in New York City”、“hotels in NYC”、“NYC hotel”、“NYC hotls”等查詢分組為表示單個方面的單個查詢組。分組器部件514的輸出是多個方面,每個方面包括至少一個查詢。
圖構造器系統112包括計算多個方面之間的關聯的連接器部件516。例如,如先前所指示的,所得到的計算機實現的圖114通過關于當前發出的查詢推薦相關的和令人感興趣的方面來支持幫助用戶探索。因此,期望的推薦列表將包括與當前查詢(方面)相關的不同方面。基于由連接器部件516計算的關聯,圖構造器系統112可以構造計算機實現的圖G=(A,E,w)(圖114),其中A是由分組器部件514輸出的所有方面的集合;E=A×A是可能相關聯的方面的集合;并且w:E→[0...1]是向每個方面對(i,j)分配表示它們的關聯強度的權重w(i,j)的函數。
為了測量方面對之間的關聯,連接器部件516可以利用標準化的逐點互信息(NPMI)。任何兩個離散事件x和y的PMI通過給定它們的聯合分布的它們的同時發生的概率與假定獨立的僅給出它們的單獨分布的它們的同時發生的概率之間的差異來量化它們的關聯程度。如果兩個變量是獨立的,則PMI值為零。PMI的正值指示正相關,而負值指示負相關。由于PMI可以取任意正或負值,因此可以如下將其標準化為NPMI。
為了計算PMI值,連接器部件516可以確定何時兩個方面已經共同出現。當相同用戶在某一閾值量的時間(例如,48小時)內發出屬于不同方面的查詢時,可以定義共同出現。共同出現小于某一閾值次數(例如,10次)的對可以被丟棄,除非它們共享相同的中心點。所計算的關聯可以用于確定多個方面之間的邊和這樣的邊的權重。
現在參考圖7,示出了支持輸出建議的探索性查詢(或基于探索性查詢預取的內容)的示例性計算系統700。計算系統700包括數據存儲702,數據存儲702包括計算機實現的圖114。計算系統700還包括被配置為響應于查詢的接收而建議一個方面的建議系統702。建議系統702包括查詢接收器部件704和方面建議器部件706,查詢接收器部件704被配置為接收查詢,方面建議器部件706被配置為響應于查詢接收器部件704接收到查詢而建議一個方面。
在操作中,客戶端計算設備710的用戶708可以向搜索引擎發出查詢。建議系統702接收查詢并將查詢與在計算機實現的圖114中定義多個方面的查詢進行比較。當由用戶708發出的查詢也被包括在計算機實現的圖114中時,方面建議器部件706可以標識包括所發出的查詢的方面,并且可以基于所標識的方面向用戶708建議另一方面。方面建議器部件706可以利用各種方法向用戶708建議多個方面。例如,一旦包括由用戶708發出的查詢的方面被標識,閾值數目的最高度相關聯的方面可以由方面建議部件706標識并輸出為建議(例如,其中建議可以是分別被包括在多個方面中的最頻繁發出的查詢)。
在另一個示例中,方面建議器部件706可以采用隨機游走方法來建議多個方面。例如,方面建議器部件706可以模擬沿著計算機實現的圖114游走的隨機行進器。從一個i(例如,被包括在多個方面之一中的用戶查詢)開始;它或者以概率β保持在i處,或者以概率1-β移動到另一個相鄰節點。當它移動到相鄰節點時,它以與連接i和j的邊的權重成比例的概率Pij選擇節點j。
可以通過對連接到該方面的邊的權重進行標準化來定義從i到j的轉換概率Pt+1|t(j|i):
其中k表示i的鄰居中的所有節點。Pt2|t1(j|i)表示從步驟t1處的節點i到步驟t2處的節點j的轉換概率。可以注意到,Wij權重和轉換概率都不是對稱的(例如,圖114中的邊是定向的)。
可以引入自轉換環路以加強起始節點的重要性并且減慢隨機游走到其他節點的擴散。在一個示例中,自環路概率可以在0.8和0.95之間。方面建議器部件706可以在最大z次迭代(例如,30次迭代)之后或者當兩個連續迭代之間的差的范數(norm)小于閾值數(例如,10-6)時停止隨機游走。方面建議器部件706可以基于隨機游走的穩定分布對推薦的方面進行排名。
在應用隨機游走之前,如果任何邊的權重小于某個數(0.2),則方面建議器部件706可以移除該邊。此外,方面建議器部件706還可以移除沒有到任何其他節點的連接的節點。此外,方面建議器部件706可以執行重新排名以確保向用戶708提供不同的建議。為了減少推薦列表中的冗余,同時維持相關性,方面建議器部件706可以使用最大邊界相關性(MMR)類似的功能,該功能試圖促進相關的新穎性,而不僅僅是相關性。為了測量相關的新穎性,方面建議器部件706可以獨立地測量相關性和新穎性,然后基于兩者的線性組合對推薦進行排名。形式上,方面建議器部件706可以嘗試最大化以下函數。
Score(si)=λRelev(si,Q)-(1-λ)maxj<i Sim(si,sj), (4)
其中Q是原始查詢,S={si,...,sn}是建議列表,Relev(si,Q)是上述的標準化為∈[0,1]的穩定分布得分,并且Sim(si,sj)是測量不同方面之間的相似性的函數。例如,Sim(si,sj)可以被定義為x和y的詞文本頻率表示之間的余弦相似性。最后,λ∈[0,1]是控制在方面相關性和方面多樣性之間的權衡的參數。例如,λ可以被設置為0.5。
雖然系統700已經被描述為非常適合于提供探索性查詢建議,但是應當理解,系統700也可以被配置為輸出其他類型的建議。在一個示例中,由建議系統702輸出的方面可以是電子通信,諸如廣告。因此,例如,如果用戶708提出查詢“rental cars cayman islands”,則建議系統702可以標識并提供針對開曼群島的酒店的廣告。類似地,建議系統708可以向預期的廣告商建議多個方面——因此,繼續上述示例性查詢,建議系統702可以向拍賣系統輸出該方面(投標術語)“hotels cayman islands”,其中廣告商可以投標這樣的術語。
圖8表示可以響應于用戶708發出查詢“Grand Cayman car rental”而呈現給用戶708的示例性圖形用戶界面800。圖形用戶界面800包括查詢字段802,其中用戶708可以輸入查詢。圖形用戶界面800還包括相關搜索字段804,相關搜索字段804包括可以幫助用戶708完成與由用戶708發出的查詢對應的子任務的建議。例如,選擇相關搜索字段804中的查詢之一可以使得特定的搜索結果頁面被呈現給用戶708,其中結果非常適合于允許用戶預訂租賃車。
圖形用戶界面800還包括可以包括由方面建議器部件706輸出的探索性建議的探索建議字段806。例如,探索性建議可以包括“Grand Cayman vacation rentals”、“cheap flights to Grand Cayman”、“Snorkeling in Grand Cayman”等。這些建議可以幫助用戶探索大開曼島中的其他活動,其中對探索建議之一的選擇可以使得搜索引擎執行更新的搜索。
圖9-圖11示出了與向用戶提供探索性建議相關的示例性方法。雖然方法被示出和描述為以序列執行的一系列動作,但是應當理解和意識到,方法不受序列的順序的限制。例如,一些動作可以以與本文所描述的順序不同的順序發生。此外,一個行為可以與另一個行為同時發生。此外,在一些實例中,并不需要所有動作來實現本文所描述的方法。
此外,本文描述的動作可以是可以由一個或多個處理器實現和/或存儲在一個或多個計算機可讀介質上的計算機可執行指令。計算機可執行指令可以包括例程、子例程、程序、執行的線程等。此外,方法的動作的結果可以被存儲在計算機可讀介質中,被顯示在顯示設備上等。
現在參考圖9,示出了支持構造計算機實現的圖114的示例性方法900。方法900在902處開始,并且在904處在搜索引擎的搜索記錄中標識探索性搜索會話。在906處,基于在904處標識的探索性搜索會話來構造計算機實現的圖。如上所述,計算機實現的圖包括表示多個方面的節點和表示多個方面之間的關系(關聯)的邊。方法900在908處完成。
現在參考圖10,示出了支持在搜索引擎的搜索記錄中標識探索性搜索會話的示例性方法1000(方法900的動作904)。方法1000在1002處開始,并且在1004處記錄條目被分割成搜索會話。在1006處,將搜索會話分割成子會話。具體地,子會話可以是話題相干會話或與完成搜索任務相關的會話。在1008處,從子會話過濾導航搜索。在1010處,從剩余的子會話過濾盡力搜索。隨后的剩余子會話可以被標識為探索性搜索會話。方法1000在1012處完成。
現在參考圖11,示出了支持構造計算機實現的圖114的示例性方法1100(方法900的動作906)。在1104處,將探索性搜索會話的查詢中的實體標記為實體。即,術語或術語序列可以被標記為實體。在1106處,標記查詢中的搭配。可以理解,實體可以是搭配。因此,術語可以被標記為實體和搭配兩者。在1108處,標記查詢中的介詞。查詢中的未被標識為實體、搭配或介詞的術語可以標記為術語。在1110處,基于預定義模式、依賴性解析規則以及實體、搭配、術語和介詞標記來標識查詢中的中心點、改善器和搭配。在1112處,將查詢中的中心點、改善器、連接器標注與上面引用的預定義模式進行比較。保留符合預定義模式之一的查詢,而丟棄其他查詢。在1114處,將剩余的查詢分組成多個方面。例如,可以執行成對相似性分析來進行分組,或者可以利用與查詢相關聯的元數據來執行分組。在1116處,計算指示多個方面之間的關聯的值,并且在1118處,基于在1114處創建的多個方面和在1116處計算的關聯來構造計算機實現的圖。方法1100在1120處完成。
現在闡述各種示例。
示例1:一種計算系統,包括:處理器;以及存儲器,存儲器包括由處理器執行的圖構造器系統,圖構造器系統被配置為:基于搜索引擎的搜索記錄來構造計算機實現的圖,計算機實現的圖包括:表示多個方面的節點,一個方面是任務的子任務或話題的子話題之一,每個方面由搜索記錄中的至少一個查詢定義;以及連接節點的加權邊,被分配給邊的權重指示當完成任務或探索話題時,搜索器將從由第一節點表示的第一方面轉換到由第二節點表示的第二方面的可能性,第一節點和第二節點由邊連接,計算機實現的圖支持響應于從搜索器接收到查詢而基于建議查詢來提供建議查詢或內容。
示例2:根據示例1的計算系統,存儲器還包括提取系統,提取系統被配置為標識搜索記錄中的探索性搜索會話,探索性搜索會話是這樣的搜索會話,搜索器正在這些搜索會話中探索包括子話題的話題或完成包括子任務的任務,圖構造器系統被配置為基于由提取系統標識的探索性搜索會話來構造計算機實現的圖。
示例3:根據示例1-2中任一項的計算系統,圖構造器系統包括標識器部件,標識器部件被配置為標識搜索記錄的查詢中的實體,圖構造器系統被配置為基于由標識器部件標識的實體來構造計算機實現的圖。
示例4:根據示例1-3的計算系統,圖構造器系統包括搭配標識器部件,搭配標識器部件被配置為標識搜索記錄中的查詢中的術語搭配,術語搭配是比偶然期望出現更經常出現的術語序列,圖構造器系統被配置為基于由搭配標識器部件標識的術語搭配來構造計算機實現的圖。
示例5:根據示例1-4中任一項的計算系統,圖構造器系統包括標記器部件,標記器部件被配置為標識搜索記錄中的查詢中的介詞,圖構造器系統被配置為基于由搜索記錄中的查詢標識的介詞來構造計算機實現的圖。
示例6:根據示例1-5中任一項的計算系統,圖構造器系統包括模式標識器部件,模式標識器部件被配置為標識搜索記錄中的查詢中的術語模式,圖構造器系統被配置為基于模式來構造計算機實現的圖。
示例7:根據示例1-6中任一項的計算系統,圖構造器系統包括分組器部件,分組器部件被配置為將搜索記錄中的查詢分組為多個查詢組,每個查詢組表示一個相應方面。
示例8:根據示例1-7中任一項的計算系統,圖構造器系統包括連接器部件,連接器部件被配置為基于搜索記錄來計算分配給圖中的邊的權重,圖構造器系統被配置為基于權重來構造計算機實現的圖。
示例9:根據示例1-8中任一項的計算系統,由多個查詢定義至少一個方面,建議查詢是在至少一個方面中最頻繁發出的查詢。
示例10:根據示例1-9中任一項的計算系統,存儲器還包括被配置為響應于查詢的接收而輸出至少一個建議方面的建議系統,建議系統被配置為執行在查詢和由計算機實現的圖表示的多個方面之間的比較,以及基于比較來標識一個方面,建議部件被配置為基于所標識的方面輸出至少一個建議方面。
示例11:根據示例10的計算系統,建議系統被配置為基于所標識的方面和至少一個建議方面之間的連接的權重來標識至少一個建議方面。
示例12:一種用于構造支持向用戶建議探索性查詢的計算機實現的圖的方法,方法包括:標識在搜索引擎的搜索記錄中的探索性搜索會話,探索性搜索會話包括被提出以獲得有關話題的信息或完成任務的多個查詢;基于探索性搜索會話的標識,構造計算機實現的圖,其中構造計算機實現的圖包括:標識表示多個方面的節點,一個方面是話題的子話題或任務的子任務,由探索性搜索記錄中的至少一個查詢定義一個方面;以及將節點與表示多個方面之間的關系的邊耦合,連接第一節點和第二節點的邊表示搜索器在被提供有由第一節點表示的第一方面時將選擇執行由第二節點表示的第二方面的可能性。
示例13:根據示例12的方法,其中標識探索性搜索會話包括:標識其中具有至少預定義閾值數目的查詢的搜索會話;以及基于標識其中具有至少預定義閾值數目的查詢的搜索會話來標識探索性搜索會話。
示例14:根據示例12-13中任一項的方法,其中標識探索性搜索會話還包括:標識搜索會話中具有閾值量的話題相干性(cohesion)的查詢;以及基于標識搜索會話中具有閾值量的話題相干性的查詢來標識探索性搜索會話。
示例15:根據示例12-14中任一項的方法,其中構造計算機實現的圖包括:標識在探索性搜索會話中的查詢中的中心點,中心點是實體或術語搭配,術語搭配是比偶然期望出現更經常出現的術語序列;標識在查詢中的改善器,改善器表征中心點;以及指示查詢要基于中心點和改善器至少部分地定義一個方面。
示例16:根據示例15的方法,還包括:將詞匯標記分配給查詢中的元素;將詞匯標記與預定義模式進行比較;以及基于詞匯標記與預定義模式的比較來標識中心點和改善器。
示例17:根據示例12-16中任一項的方法,其中構造計算機實現的圖包括對探索性搜索會話中的查詢進行聚類,每個簇定義由計算機實現的圖中的節點表示的一個相應方面。
示例18:根據示例12-17中任一項的方法,還包括:接收查詢;響應于查詢的接收,標識計算機實現的圖中的節點,由節點表示的一個方面至少部分地由查詢定義;以及基于計算機實現的圖中的節點的標識,輸出建議查詢。
示例19:根據示例18的方法,還包括:基于計算機實現的圖中的節點的標識,標識計算機實現的圖中的另一節點,另一節點表示另一方面,另一方面至少部分地由建議查詢來定義;以及響應于標識計算機實現的圖中的另一節點,輸出建議查詢。
示例20:一種包括指令的計算機可讀介質,指令在由處理器執行時使得處理器執行動作,包括:接收查詢;響應于查詢的接收,標識計算機實現的圖中的節點,節點表示至少部分地由查詢定義的一個方面;基于節點標識計算機實現的圖中的另一節點,另一節點表示另一方面;以及基于計算機實現的圖中的另一節點的標識,輸出另一查詢作為建議。
示例21:一種計算系統,包括:用于標識搜索引擎的搜索記錄中的探索性搜索會話的裝置,探索性搜索會話包括被提出以獲得關于話題的信息或完成任務的多個查詢;用于基于探索性搜索會話來構造計算機實現的圖的裝置,其中用于構造計算機實現的圖的裝置包括:用于標識表示多個方面的節點的裝置,一個方面是話題的子話題或任務的子任務,由探索性搜索記錄中的至少一個查詢定義一個方面;以及用于將節點與表示多個方面之間的關系的邊耦合的裝置,連接第一節點和第二節點的邊表示搜索器在被提供有由第一節點表示的第一方面時將選擇執行由第二節點表示的第二方面的可能性。
現在參考圖12,示出了可以根據本文公開的系統和方法使用的示例性計算設備1200的高級圖示。例如,計算設備1200可以在構造計算機實現的圖114的系統中使用。作為另一個示例,計算設備1200可以在基于計算機實現的圖114輸出探索性建議的系統中使用。計算設備1200包括至少一個處理器1202,其執行存儲在存儲器1204中的指令。指令可以是例如用于實現被描述為由上述一個或多個部件執行的功能的指令或用于實現上述方法中的一種或多種方法的指令。處理器1202可以通過系統總線1206訪問存儲器1204。除了存儲可執行指令之外,存儲器1204還可以存儲計算機實現的圖114、搜索會話等。
計算設備1200另外包括可由處理器1202通過系統總線1206訪問的數據存儲1208。數據存儲1208可以包括可執行指令、計算機實現的圖114等。計算設備1200還包括允許外部設備與計算設備1200通信的輸入接口1210。例如,輸入接口1210可以用于從外部計算機設備、從用戶等接收指令。計算設備1200還包括輸出接口1212,其將計算設備1200與一個或多個外部設備對接。例如,計算設備1200可以通過輸出接口1212顯示文本、圖像等。
設想經由輸入接口1210和輸出接口1212與計算設備1200通信的外部設備可以被包括在提供用戶可以與之交互的基本上任何類型的用戶接口的環境中。用戶接口類型的示例包括圖形用戶界面、自然用戶界面等。例如,圖形用戶界面可以接受來自使用諸如鍵盤、鼠標、遙控器等(多個)輸入設備的用戶的輸入,并在諸如顯示器的輸出設備上提供輸出。此外,自然用戶界面可以使得用戶能夠以不受諸如鍵盤、鼠標、遙控器等的輸入設備施加的約束的方式與計算設備1200交互。相反,自然用戶界面可以依賴于語音識別、觸摸和指示筆識別、屏幕上和屏幕附近的姿勢識別、空中姿勢、頭部和眼睛追蹤、聲音和語音、視覺、觸摸、手勢、機器智能等等。
另外,雖然被示為單個系統,但是應當理解,計算設備1200可以是分布式系統。因此,例如,若干設備可以通過網絡連接進行通信,并且可以共同地執行被描述為由計算設備1200執行的任務。
本文中描述的各種功能可以在硬件、軟件或其任何組合中實現。如果在軟件中實現,則可以將功能作為一個或多個指令或代碼存儲在計算機可讀介質上或通過計算機可讀介質進行傳輸。計算機可讀介質包括計算機可讀存儲介質。計算機可讀存儲介質可以是可以由計算機訪問的任何可用存儲介質。作為示例而非限制,這樣的計算機可讀存儲介質可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其他磁存儲設備,或可以用于以指令或數據結構的形式承載或存儲期望的程序代碼并且可以由計算機訪問的任何其他介質。如本文所使用的磁盤和光盤包括壓縮光盤(CD)、激光光盤、光盤、數字通用光盤(DVD)、軟盤和藍光光盤(BD),其中磁盤通常磁性地再現數據以及光盤通常使用激光光學地再現數據。此外,傳播的信號不被包括在計算機可讀存儲介質的范圍內。計算機可讀介質還包括通信介質,通信介質包括支持將計算機程序從一個地方傳送到另一個地方的任何介質。例如,連接可以是通信介質。例如,如果使用同軸電纜、光纖電纜、雙絞線、數字用戶線(DSL)或諸如紅外、無線電和微波的無線技術從網站,服務器或其他遠程源傳輸軟件,則同軸電纜、光纖電纜、雙絞線、DSL或諸如紅外、無線電和微波的無線技術被包括在通信介質的定義中。上述各項的組合也應被包括在計算機可讀介質的范圍內。
備選地或另外,本文中所描述的功能可以至少部分地由一個或多個硬件邏輯部件執行。例如但不限于,可以使用的硬件邏輯部件的說明性類型包括現場可編程門陣列(FPGA)、程序特定集成電路(ASIC)、程序特定標準產品(ASSP)、片上系統系統(SOC)、復雜可編程邏輯器件(CPLD)等。
上面已描述的內容包括一個或多個實施例的示例。當然,為了描述上述方面的目的,不可能描述上述設備或方法的每個可設想的修改和改變,但是本領域普通技術人員可以認識到,各種方面的許多另外的修改和置換是可能的。因此,所描述的方面旨在包括落入所附權利要求的精神和范圍內的所有這樣的改變、修改和變化。此外,在術語“包含”用于細節描述或權利要求中的程度上,這樣的術語旨在以類似于術語“包括”的方式是包含性的,如“包含”在權利要求中被用作過渡性詞時被解釋的。