本發(fā)明的實施例一般涉及搜索內(nèi)容,更具體地,本發(fā)明的實施例涉及訓練和創(chuàng)建神經(jīng)網(wǎng)絡模型并將它用于信息檢索。
背景技術(shù):
web包含大量的信息,找到信息的想要的部分可能會頗具挑戰(zhàn)性。這一問題因web上的信息量和進行web搜索的新用戶的急劇增加變得復雜。搜索引擎試圖返回到用戶感興趣的網(wǎng)頁的鏈接。通常,搜索引擎基于用戶輸入的搜索項(搜索查詢)確定用戶的興趣。搜索引擎的目標是基于搜索引擎向用戶提供到相關(guān)結(jié)果的鏈接。通常,搜索引擎通過使搜索查詢中的詞與web頁面庫匹配來實現(xiàn)這一點。然后將內(nèi)容項目返回搜索請求者作為搜索結(jié)果。取決于搜索引擎的質(zhì)量,返回給用戶的內(nèi)容項目可能是也可能不是用戶實際想要的。
為了提供更好的搜索結(jié)果,用了很多的辦法確定搜索結(jié)果的滿意度或命中率。作為分析搜索結(jié)果的一部分,已經(jīng)在很多領(lǐng)域如圖像理解、聲音辨認和自然語言處理等中使用神經(jīng)網(wǎng)絡(nn)。但是,當數(shù)據(jù)集合包括大量稀疏和分立的特征時,神經(jīng)網(wǎng)絡模型訓練不能很快收斂并取得低的精確度。在使用深度神經(jīng)網(wǎng)絡(dnn)時尤其是這樣,因為有大量的隱藏層和大量的輸入觀察。
在機器學習中,神經(jīng)網(wǎng)絡是用來估計或粗略估計函數(shù)的模型組,它們可以依賴大量的輸入,并且通常是未知的。神經(jīng)網(wǎng)絡通常以相互連接的“神經(jīng)元”的系統(tǒng)的方式呈現(xiàn),這些神經(jīng)元相互之間交換消息。這些連接具有可以基于經(jīng)驗調(diào)節(jié)的數(shù)值權(quán)重,使得神經(jīng)網(wǎng)絡適應輸入并能夠?qū)W習。
例如,用于手寫體辨認的神經(jīng)網(wǎng)絡由輸入神經(jīng)元的集合定義,這些輸入神經(jīng)元可以由輸入圖像的像素激活。在被(由網(wǎng)絡設計者確定的)函數(shù)加權(quán)和轉(zhuǎn)換后,這些神經(jīng)元的激活被傳遞到其它神經(jīng)元。重復進行該處理直到最終輸出神經(jīng)元被激活。這決定哪個字被讀。像其它機器學習方法(即從數(shù)據(jù)進行學習的系統(tǒng))一樣,神經(jīng)網(wǎng)絡已經(jīng)被用來完成使用普通的基于規(guī)則的編程難以完成的各種任務,包括計算機視覺和聲音識別。
通常,神經(jīng)網(wǎng)絡包括:輸入節(jié)點的陣列、一層或多層隱藏節(jié)點、以及一個或多個輸出節(jié)點。每個輸入節(jié)點與每個隱藏節(jié)點連接,每個隱藏節(jié)點與每個輸出節(jié)點連接。如圖1所示,dnn包括多層隱藏節(jié)點。參照圖1,在該示例中,神經(jīng)網(wǎng)絡180包括分級結(jié)構(gòu)的四層隱藏節(jié)點181-184。每個輸入節(jié)點191與第一層節(jié)點181連接。每個下節(jié)點與每個直接
上節(jié)點連接,最終導向輸出節(jié)點192。每個連接與權(quán)重相關(guān)聯(lián)。如上所述,通過調(diào)整與對應的連接相關(guān)聯(lián)的權(quán)重,可以對位于下節(jié)點和上節(jié)點之間的每個連接執(zhí)行學習過程。當輸入節(jié)點191的數(shù)量變大時,處理所有節(jié)點之間的連接所需的處理資源(例如處理器、存儲器)會變得龐大,處理也會非常費時和低效。
附圖說明
在附圖的圖中以舉例而非限制的方式說明本發(fā)明的實施方式,其中相同或相似的附圖標記表示相似的要素。
圖1是說明典型的神經(jīng)網(wǎng)絡模型的框圖。
圖2是說明可以與本發(fā)明的實施例一起使用的神經(jīng)網(wǎng)絡模型的框圖。
圖3a和3b是說明根據(jù)本發(fā)明的一些實施例的用來搜索內(nèi)容的系統(tǒng)配置的示例的框圖。
圖4是說明根據(jù)本發(fā)明的一個實施例的分類模型訓練系統(tǒng)的示例的框圖。
圖5是說明根據(jù)本發(fā)明的一個實施例的分類系統(tǒng)的示例的框圖。
圖6是說明根據(jù)本發(fā)明的一個實施例的訓練分類模型的過程的流程圖。
圖7是說明根據(jù)本發(fā)明的一個實施例的使用分類模型對用戶進行分類的過程的流程圖。
圖8是說明根據(jù)本發(fā)明的一個實施例的使用分類模型對內(nèi)容進行分類的過程的流程圖。
圖9是說明根據(jù)一個實施例的數(shù)據(jù)處理系統(tǒng)的框圖。
具體實施方式
下面,參考后面討論的細節(jié)來描述本發(fā)明的多個不同的實施方式和方面,附圖用來說明多個不同的實施方式。下面的描述和附圖僅僅說明本發(fā)明,不應解釋為對本發(fā)明的限定。很多具體細節(jié)被描述以提供對本發(fā)明的多個不同的實施方式的透徹的理解。但是,在某些情況下,為了使對本發(fā)明的實施方式的討論更簡潔,公知的或常規(guī)的細節(jié)不再描述。
本說明書中提及的“一個實施例”或“實施例”指結(jié)合實施例描述的某特定特征、結(jié)構(gòu)或特性可以被包括在至少一個本發(fā)明的實施例中。在本說明書中多個不同的地方出現(xiàn)的“在一個實施例中”并不必然都指同一個實施例。
在訓練帶有大量分立特征的dnn模型時,將特征連接到第一隱藏層節(jié)點的權(quán)重的數(shù)量與特征數(shù)量成線性比例。因此,計算時間和存儲花費大多用在這些權(quán)重上。另一方面,在許多問題設置中,這些分立特征是高度稀疏的,即,每個訓練例的特征數(shù)量遠低于特征的總數(shù)量。根據(jù)一些實施例,布隆過濾器(使用常規(guī)地用來對成員信息的集合進行概率解碼的數(shù)據(jù)結(jié)構(gòu)),被用于通過在較低的維度空間中表示分立和稀疏的特征來降低dnn的計算和存儲成本。這樣實現(xiàn)模型訓練中的更快的收斂,并實現(xiàn)更小的模型,即具有更小的存儲占用(footprint)的模型。在適合用dnn模型的大范圍的任務和應用中,可以將這一技術(shù)通用于其它輸入特征和dnn的預測目標。
圖2是說明可以根據(jù)本發(fā)明的一個實施例的神經(jīng)網(wǎng)絡模型的框圖。參照圖2,神經(jīng)網(wǎng)絡200包括一個或多個節(jié)點的隱藏層201-204。在該示例中,神經(jīng)網(wǎng)絡200包括四個節(jié)點的隱藏層,但是更多或更少的層都是可行的。另外,提供布隆過濾器210來連接第一隱藏層201與節(jié)點的輸入層220。布隆過濾器210配置成將輸入層220中的節(jié)點數(shù)量減少或精簡到更小的節(jié)點數(shù)量,這些更小數(shù)量的節(jié)點要被提供到第一隱藏層201中。
根據(jù)一個實施例,在為了訓練的目的將特征的第一集合220給予神經(jīng)網(wǎng)絡200之前,對特征的第一集合220應用布隆過濾器210以生成特征的第二集合(未示出)。神經(jīng)網(wǎng)絡200是要被訓練的神經(jīng)網(wǎng)絡模型之一,每個神經(jīng)網(wǎng)絡模型對應一個預定的類別。特征的第一集合220已經(jīng)被布隆過濾器210精簡成特征的第二集合,該第二集合具有的特征數(shù)量小于第一集合。然后將特征的第二集合提供給被訓練的神經(jīng)網(wǎng)絡模型200的節(jié)點的第一隱藏層201,以生成輸出225,其中神經(jīng)網(wǎng)絡模型200包括一個或多個節(jié)點的隱藏層201-204。一般而言,常規(guī)的神經(jīng)網(wǎng)絡包含一個節(jié)點的隱藏層,而深度神經(jīng)網(wǎng)絡(例如,權(quán)重)包含多個節(jié)點的隱藏層。然后,將輸出225和與預定的類別相關(guān)聯(lián)的目標值相比較??梢苑磸驼{(diào)整和訓練神經(jīng)網(wǎng)絡模型的參數(shù)和布隆過濾器的參數(shù),直到神經(jīng)網(wǎng)絡模型的輸出落在目標值的預定的附近。對于預定的類別的集合,可以用相應的已知特征的集合生成神經(jīng)網(wǎng)絡模型的集合和相關(guān)聯(lián)的布隆過濾器的集合。
借助于布隆過濾器210,層201中的節(jié)點數(shù)量低于比圖1的層181。結(jié)果,訓練和/或使用神經(jīng)網(wǎng)絡200所需的處理資源(例如處理器、存儲器)會顯著減少,效率也會顯著提高。具有大量稀疏輸入特征的dnn具有相應的寬的輸入層,在其頂上通常有節(jié)點數(shù)量逐漸減小的多個隱藏層。例如,回到參照圖1,假如dnn有n0=1,000,000個輸入特征(例如層181),第一隱藏層有n1=1,000個節(jié)點(例如層182),第二隱藏層有n2=100個節(jié)點(例如層183),第三隱藏層有n3=10個節(jié)點(例如層184),還有2個輸入節(jié)點192。模型參數(shù)(節(jié)點權(quán)重)的總數(shù)量為:
1,000,000×1,000+1000×100+100×10+10×2=1,000,101,020。
現(xiàn)在,參照圖1和2,在布隆層位于輸入特征層220與第一隱藏層202之間的情況下,從輸入特征到布隆過濾器層的映射是確定的,所以不需要被訓練。層201的節(jié)點數(shù)量nb可以被調(diào)節(jié),而且遠小于輸入特征數(shù)量n0。例如,如果層201中的nb=3,000,那么帶有布隆過濾器層的新dnn具有3,000×1,000+1000×100+100×10+10×2=3,101,020個模型參數(shù),大約是最初參數(shù)數(shù)量的0.3%。通過將從輸入特征層220到上面各層的信息流精簡,這從最初的dnn大大改進,導致更快的收斂和更高的模型預測精度。
布隆過濾器是用來測試一個元素是不是一個集合的成員的空間有效的概率數(shù)據(jù)結(jié)構(gòu)。誤報的匹配是可能的,但不會有漏報,所以布隆過濾器有100%的查全率。換言之,查詢回復要么是“可能在集合中”,要么是“肯定不在集合中”??梢韵蛟摷咸砑釉?,但不能去除元素。向該集合添加的元素越多,誤報的概率越大。布隆過濾器使用m位來保存n個元素的集合成員身份,誤報率為p:
可以用它表示來自訓練例的稀疏和分立的特征,可以認為它是從n0個元素的全部特征集合抽樣得到的n個特征的子集。由于m~n的特征稀疏度<<n0,在從有n0個分立特征的數(shù)據(jù)集合訓練dnn之前,先用m位的布隆過濾器將每個訓練例編碼。該步驟實質(zhì)上是將輸入維度從n0降到m。通過調(diào)節(jié)參數(shù)p,可以使該從原先的n0維度特征空間到新的m維度特征空間的映射成為具有高概率的雙射。然后,dnn訓練處理如常進行,但是輸入維度更小了。這是通用的非線性特征映射方法,它可以用在其它深度學習算法(例如循環(huán)神經(jīng)網(wǎng)絡(rnn))中。
神經(jīng)網(wǎng)絡200與布隆過濾器210一起可以用在內(nèi)容搜索領(lǐng)域內(nèi)的多種應用中。例如,神經(jīng)網(wǎng)絡200可以用來對發(fā)起內(nèi)容搜索的用戶(例如用戶類型)進行分類。根據(jù)一個實施例,當從用戶的用戶端設備接收到搜索查詢時,基于搜索查詢、用戶端設備、用戶以及其它相關(guān)信息(例如,歷史記錄等),確定特征的第一集合。對特征的第一集合應用神經(jīng)網(wǎng)絡模型的布隆過濾器以生成特征的第二集合。然后將特征的第二集合給予特定類別的神經(jīng)網(wǎng)絡模型,以導出表示用戶與該特定類別相關(guān)聯(lián)的可能性(例如概率)的輸出值。然后基于搜索查詢和用戶的用戶類別在內(nèi)容數(shù)據(jù)庫中進行搜索,從而可以提供更好的內(nèi)容來定向用戶??梢詫⑻卣鞯牡谝患辖o予不同的神經(jīng)網(wǎng)絡模型和它們相應的布隆過濾器,以確定用戶是否與對應于這些神經(jīng)網(wǎng)絡模型的類別中的任何一個類別相關(guān)聯(lián)。比較這些神經(jīng)網(wǎng)絡模型的輸出以確定用于搜索目的的一個或多個最終的類別。
作為替代方式,可以基于與搜索結(jié)果的內(nèi)容項目相關(guān)聯(lián)的特征和用戶的用戶信息(例如,用戶資料、用戶端設備信息),使用神經(jīng)網(wǎng)絡模型對搜索結(jié)果的內(nèi)容項目進行排序。然后,基于用戶更有可能感興趣接收的排名對內(nèi)容項目進行分類。而且,可以基于與用戶和內(nèi)容項目相關(guān)聯(lián)的特征,使用神經(jīng)網(wǎng)絡模型確定是否發(fā)生了用戶與特定的內(nèi)容項目的用戶交互(例如,用戶是否點擊過呈現(xiàn)給用戶的那個特定的內(nèi)容項目)。輸入特征可以表示用戶標識符(id)、標識內(nèi)容項目的內(nèi)容id、用戶設備的設備id(例如ip地址)、內(nèi)容描述(例如關(guān)鍵詞)、搜索查詢、用戶代理信息(例如瀏覽器應用)、web域、或統(tǒng)一資源定位符(url)等中的任一個或多個的組合。
用布隆過濾器210確定上述稀疏特征中的任何一個是否存在,然后由一個更小的特征的集合201表示它??赡軙幸恍┱`報,但是考慮到搜索空間中的稀疏特征,這些誤報的影響可以忽略。換言之,所需的提高處理效率和減少處理資源的優(yōu)點大大超過具有誤報的缺點。通過適當?shù)卣{(diào)整布隆過濾器的參數(shù),可以實現(xiàn)具有nn模型的精確預測與提高處理效率之間的平衡。
圖3a和3b是說明根據(jù)本發(fā)明的一些實施例的用來搜索內(nèi)容的系統(tǒng)配置的示例的框圖。參照圖3a,系統(tǒng)100包括,但不限于,通過網(wǎng)絡103通信地耦合到服務器104的一個或多個客戶端設備101-102??蛻舳嗽O備101-102可以是任何類型的客戶端設備如個人電腦(例如,臺式電腦,筆記本電腦、平板電腦)、瘦客戶機、個人數(shù)字助理(pda)、具有上網(wǎng)功能(或支持web)的設備、智能手表、或手機(例如智能手機)等。網(wǎng)絡103可以是任何類型的網(wǎng)絡,如局域網(wǎng)(lan)、廣域網(wǎng)(wan)如互聯(lián)網(wǎng)或它們的組合,有線的或無線的都可以。
服務器104可以是任何類型的服務器或服務器的集群,如web服務器或云服務器、應用服務器、后端服務器或它們的組合。在一個實施方式中,服務器104包括,但不限于,搜索引擎120、分類模型或系統(tǒng)110和神經(jīng)網(wǎng)絡模型115。服務器104還包括允許客戶(如客戶端設備101-102)訪問由服務器104提供的資源或服務的接口。接口可包括web接口、應用程序編程接口(api)和/或命令行接口(cli)。
例如,客戶,在該示例中是客戶端設備101的用戶應用程序(例如,web瀏覽器、手機應用程序),可以向服務器104發(fā)送搜索查詢,搜索引擎120經(jīng)由接口在網(wǎng)絡103上接收到該搜索查詢。響應于該搜索查詢,搜索引擎120從該搜索查詢提取一個或多個關(guān)鍵詞(也被稱為搜索項)。搜索引擎120在內(nèi)容數(shù)據(jù)庫133中執(zhí)行搜索以識別與這些關(guān)鍵詞有關(guān)的內(nèi)容項目的列表,內(nèi)容數(shù)據(jù)庫133可以包括主內(nèi)容數(shù)據(jù)庫130和/或副內(nèi)容數(shù)據(jù)庫131。主內(nèi)容數(shù)據(jù)庫130(也被稱為母內(nèi)容數(shù)據(jù)庫)可以是一般的內(nèi)容數(shù)據(jù)庫,而副內(nèi)容數(shù)據(jù)庫131(也被稱為次要內(nèi)容數(shù)據(jù)庫)可以是特殊的內(nèi)容數(shù)據(jù)庫。搜索引擎120將帶有列表中的至少一些內(nèi)容項目的搜索結(jié)果頁面返回客戶端設備101,以在客戶端設備101中呈現(xiàn)。搜索引擎120可以是可從百度公司得到的
搜索引擎,如web搜索引擎,是設計成搜索萬維網(wǎng)上的信息的軟件系統(tǒng)。搜索結(jié)果通常以一排結(jié)果的方式呈現(xiàn),該一排結(jié)果經(jīng)常被稱為搜索引擎結(jié)果頁面。信息可以是web頁、圖像和其它類型文檔的混合。有些搜索引擎還挖掘數(shù)據(jù)庫或開放目錄中可以得到的數(shù)據(jù)。與只由真人編輯維護的網(wǎng)絡目錄不同,搜索引擎還通過在網(wǎng)絡爬蟲上運行算法來維護實時信息。
web搜索引擎通過存儲與許多網(wǎng)頁有關(guān)的信息來工作,它們從這些頁面的超文本標記語言(html)標記來取回這些信息。這些頁面被web爬蟲檢索,該web爬蟲是跟蹤站點上的每個鏈接的自動的web爬蟲。然后搜索引擎分析每頁的內(nèi)容以確定它應該如何被索引(例如,可以從名稱、頁面內(nèi)容、標題、或稱為元標簽的特殊區(qū)域提取詞)。與網(wǎng)頁有關(guān)的數(shù)據(jù)被保存在索引數(shù)據(jù)庫中以用于以后的查詢。索引幫助盡可能快地找到與查詢有關(guān)的信息。
當用戶向搜索引擎輸入查詢時(通常,通過使用關(guān)鍵詞),引擎檢查其索引,并且根據(jù)其標準提供最匹配的網(wǎng)頁的列表,通常帶有包含文檔標題、有時還包含一部分文本的短概述。基于與數(shù)據(jù)一起存儲的信息和信息被編制索引的方法來建立索引。搜索引擎精確地按照輸入來查找詞或短語。有些搜索引擎提供稱為近似搜索的高級特征,允許用戶定義關(guān)鍵詞之間的距離。還有一種基于概念的搜索,其中研究涉及對包含你搜索的詞或短語的頁面使用統(tǒng)計學分析。還有,自然語言查詢允許用戶以問真人時一樣的方式打字輸入問題。
回到參照圖3a,根據(jù)一個實施例,響應于在服務器104中從客戶端設備(在該示例中是客戶端設備101)接收的搜索查詢,搜索引擎120在內(nèi)容數(shù)據(jù)庫133(如主內(nèi)容數(shù)據(jù)庫130和/或副內(nèi)容數(shù)據(jù)庫131)中執(zhí)行搜索以生成內(nèi)容項目的列表。每個內(nèi)容項目可以經(jīng)由統(tǒng)一資源定位符(url)和統(tǒng)一資源標識符(uri)與特定內(nèi)容提供商的特定網(wǎng)站的特定網(wǎng)頁相關(guān)聯(lián)。在一個實施例中,主內(nèi)容數(shù)據(jù)庫130保存已經(jīng)被網(wǎng)絡爬蟲收集的一般的內(nèi)容項目(例如,未贊助的內(nèi)容)。副內(nèi)容數(shù)據(jù)庫131保存與具體的、已知的或預定的內(nèi)容提供商相關(guān)聯(lián)的具體的或特殊的內(nèi)容項目(例如,被贊助的內(nèi)容)。作為替代方式,內(nèi)容數(shù)據(jù)庫133可以作為單個數(shù)據(jù)庫實現(xiàn)而不區(qū)分主內(nèi)容數(shù)據(jù)庫131和副內(nèi)容數(shù)據(jù)庫132。
網(wǎng)絡爬蟲或web爬蟲是自動遍歷網(wǎng)絡的超文本結(jié)構(gòu)的程序。在實際中,網(wǎng)絡爬蟲可以在分立的計算機或服務器上運行,每個都設置成執(zhí)行從url下載文檔的一個或多個處理或線程。網(wǎng)絡爬蟲接收被分配的url并在這些url處下載文檔。網(wǎng)絡爬蟲也可以取回文檔由被取回的文檔所引用的文檔,已有內(nèi)容處理系統(tǒng)(未示出)和/或搜索引擎120處理。網(wǎng)絡爬蟲可以使用各種協(xié)議下載與url相關(guān)聯(lián)的頁面,如超文本傳輸協(xié)議(http)和文檔傳輸協(xié)議(ftp)。
服務器104還包括分類模塊或系統(tǒng)110,分類模塊或系統(tǒng)110使用一個或多個分類模型115對發(fā)起搜索查詢的用戶或用戶搜索到的內(nèi)容進行分類,分類模型115可以是如上所述的神經(jīng)網(wǎng)絡模型。分類模塊110可以基于用戶信息(例如,用戶id、用戶端設備、之前的用戶交互歷史)確定用戶的類型或類別。用戶的類型或類別可以用來確定用戶可能做什么或者用戶想接收什么信息(例如,用戶意圖)。然后,可以基于用戶分類,在內(nèi)容數(shù)據(jù)庫133中執(zhí)行搜索以獲得例如與用戶分類(例如,用戶的類型或類別)相關(guān)聯(lián)的特定類型的內(nèi)容。結(jié)果,可以向用戶提供更好的搜索結(jié)果(例如,針對特定類型的用戶或用戶意圖特別配置的特殊內(nèi)容或被贊助的內(nèi)容),并且可以提高用戶的滿意度。作為替代方式,分類模塊110可以使用分類模型115對內(nèi)容進行分類。分類模型115的輸出可以用來對內(nèi)容項目進行排序。而且,分類模塊110可以使用分類模型115確定是否在特定內(nèi)容項目(例如,廣告轉(zhuǎn)換)上發(fā)生過用戶交互(例如,點擊)。
分類模型115(也簡稱為模型)由分類模型訓練系統(tǒng)150(也簡稱為訓練系統(tǒng))訓練和生成,該系統(tǒng)可以作為網(wǎng)絡上的單獨的服務器實現(xiàn)或者與服務器104集成在一起。模型115可以由訓練系統(tǒng)150離線訓練和生成,加載到服務器104上,并從訓練系統(tǒng)150定期更新。每個模型115對應于多個預定類別、用戶類型或信息類型中的一個。
響應于從用戶的客戶端設備(例如客戶端設備101)接收到的搜索查詢,該搜索查詢被給予每個模型115。每個模型115提供一個表示用戶與對應于該特定模型的預定類別相關(guān)聯(lián)的可能性的指示器。換言之,每個模型115基于搜索查詢來預測用戶是否可能對與該特定模型相關(guān)聯(lián)的特定的信息類別感興趣。在一個實施方式中,每個模型115提供用戶對接收相對應的類別的信息感興趣的概率。基于模型115提供的概率,例如基于具有最高概率的類別,確定用戶分類或用戶意圖。然后,基于用戶分類或用戶意圖識別某種類型的內(nèi)容(例如定向內(nèi)容)并返給用戶,它可能反映用戶真想接收什么。
根據(jù)一個實施例,響應于搜索查詢,搜索引擎120在主內(nèi)容數(shù)據(jù)庫130中執(zhí)行搜索以識別和取回一般內(nèi)容項目的列表。另外,分類系統(tǒng)110基于搜索查詢使用一個或多個分類模型115來對用戶進行分類,確定用戶的類別或類型或者用戶搜索的信息的類別或類型,它可能表示用戶的用戶意圖?;谟脩舴诸悾梢栽诟眱?nèi)容數(shù)據(jù)庫131中執(zhí)行搜索以識別和取回特殊內(nèi)容項目的列表(例如,被贊助的內(nèi)容)。然后,將具有一般內(nèi)容項目和特殊內(nèi)容項目這二者的搜索結(jié)果返給用戶。在此,特殊內(nèi)容項目是基于用戶意圖定向給用戶的具體內(nèi)容,可能會更精確或者更接近用戶真想要的。
作為替代方式,可以基于與搜索結(jié)果的內(nèi)容項目相關(guān)聯(lián)的特征和用戶的用戶信息(例如,用戶資料、用戶設備信息),使用神經(jīng)網(wǎng)絡模型對搜索結(jié)果的內(nèi)容項目進行排序。然后,基于用戶更有可能感興趣接收的排名對內(nèi)容項目進行分類。而且,可以基于與用戶和內(nèi)容項目相關(guān)聯(lián)的特征,使用神經(jīng)網(wǎng)絡模型確定是否發(fā)生了用戶與特定的內(nèi)容項目的用戶交互(例如,用戶是否點擊過呈現(xiàn)給用戶的那個特定的內(nèi)容項目)。輸入特征可以表示用戶標識符(id)、標識內(nèi)容項目的內(nèi)容id、用戶設備的設備id(例如ip地址)、內(nèi)容描述(例如關(guān)鍵詞)、搜索查詢、用戶代理信息(例如瀏覽器應用軟件)、web域或統(tǒng)一資源定位符(url)等中的任一個或多個的組合。
注意,僅僅為了說明的目的才描述了服務器104的配置。服務器104可以是向多個不同的終端用戶設備提供前端搜索服務的web服務器。作為替代方式,服務器104可以是向前端服務器(例如,web服務器或一般內(nèi)容服務器)提供具體或特殊內(nèi)容搜索服務的應用服務器或后端服務器。其它的架構(gòu)和配置也是可行的。例如,如圖3b所示,內(nèi)容數(shù)據(jù)庫133可以在分立的服務器中被維護和托管,作為網(wǎng)絡上的內(nèi)容服務器。服務器133可以是web服務器、應用服務器或后端服務器。內(nèi)容服務器133可以由與服務器104相同的實體或組織機構(gòu)來組織和提供。作為替代方式,內(nèi)容服務器133可以由負責收集內(nèi)容數(shù)據(jù)庫130-131中的內(nèi)容以及其元數(shù)據(jù)單獨的實體或組織機構(gòu)(例如,第三方供應商)維護和托管。還要注意,內(nèi)容數(shù)據(jù)庫/服務器133可以包括主內(nèi)容數(shù)據(jù)庫130和副內(nèi)容數(shù)據(jù)庫131。主內(nèi)容數(shù)據(jù)庫130也可以在分立的內(nèi)容服務器中被實現(xiàn)或維護,稱為主內(nèi)容服務器。類似地,副內(nèi)容數(shù)據(jù)庫131可以在分立的內(nèi)容服務器中被實現(xiàn)或維護,稱為副內(nèi)容服務器。
圖4是說明根據(jù)本發(fā)明的一個實施例的分類模型訓練系統(tǒng)的示例的框圖。系統(tǒng)400可以作為圖3a-3b的模型訓練系統(tǒng)或服務器150的一部分實現(xiàn)。參照圖4,根據(jù)一個實施方式,系統(tǒng)400包括模型訓練引擎410(也稱為訓練系統(tǒng)/模塊),它可以以軟件、硬件或其組合的方式實現(xiàn)。例如,模型訓練引擎410可以以被加載到存儲器上并被處理器(未示出)執(zhí)行的軟件的方式實現(xiàn)。對于一個給定的要被訓練的nn模型415,向布隆過濾器411提供已知特征的集合430以精簡特征的集合430,生成具有更少特征數(shù)量的新的特征的集合。然后,精簡得到的特征的集合被給予nn模型415并由訓練引擎410訓練。然后生成輸出412,其中,將輸出412和目標值相比較,以確定nn模型415是否準確。如果確定nn模型415不滿足預定的要求,則可以調(diào)整布隆過濾器411的一個或多個參數(shù),并且重新訓練nn模型415,直到nn模型415滿足預定的要求。
圖5是說明根據(jù)本發(fā)明的一個實施例的分類系統(tǒng)的示例的框圖。系統(tǒng)500可以作為圖3a-3b的分類系統(tǒng)110的一部分實現(xiàn)。參照圖5,根據(jù)一個實施例,系統(tǒng)500包括nn分類引擎510,它可以以軟件、硬件或其組合的方式實現(xiàn)。在一個實施例中,在特征201的集合被接收以用于分類時,特征501的集合被給予對應于nn模型415的布隆過濾器411。結(jié)果,特征501的集合的數(shù)量被減少或精簡。然后,通過nn分類引擎510將精簡得到的特征提供給nn模型415以生成輸出502。
特征501可以從由用戶的用戶端設備發(fā)起的搜索查詢獲得,其包括搜索查詢、用戶信息、用戶設備信息、或之前的用戶交互信息等。輸出502可以表示用戶類型或用戶類別??梢曰谟脩纛悇e進行定向搜索。作為替代方式,可以從基于搜索查詢從內(nèi)容數(shù)據(jù)庫中識別和取回的內(nèi)容項目來提取特征501。nn分類引擎510可以使用nn模型415對內(nèi)容項目分類。輸出502可以是表示特定用戶對特定內(nèi)容項目感興趣的可能性的分數(shù)??梢杂妹總€內(nèi)容項目的輸出502對內(nèi)容項目進行排序。搜索結(jié)果可以包括基于分類被排序和分類的內(nèi)容項目的列表。注意,nn分類引擎510和nn訓練引擎410可以是訓練nn模型并使用該nn模型對特征進行分類的同一個引擎。
圖6是說明根據(jù)本發(fā)明的一個實施例的訓練分類模型的國政的流程圖。過程600可以由包括硬件(例如,電路、專用邏輯等)、軟件(例如,被實現(xiàn)在非暫時性的計算機可讀介質(zhì)上)、或其組合的處理邏輯執(zhí)行。例如,過程600可以由圖3a-3b的訓練系統(tǒng)150執(zhí)行。參照圖6,在框601中,處理邏輯接收特征的第一集合,其中,第一集合內(nèi)的每個特征與預定的類別相關(guān)聯(lián)。這些特征是與已知的類別或目標相關(guān)聯(lián)的已知特征。在框602中,處理邏輯對該已知特征應用布隆過濾器以生成特征的第二集合。特征的第二集合是表示特征的第一集合的被精簡的特征。如上所述,可能會有一些誤報,但是考慮到搜索空間中的稀疏特征,這些誤報的影響可以忽略。
在框603中,特征的第二集合被提供給被訓練的神經(jīng)網(wǎng)絡模型??梢詫⑻卣鞯牡诙辖o予神經(jīng)網(wǎng)絡模型的節(jié)點的可見層,其中該神經(jīng)網(wǎng)絡模型可以包括一個或多個節(jié)點的隱藏層。生成輸出。在框604中,處理邏輯確定輸出是否滿足為神經(jīng)網(wǎng)絡模型設定的預定的條件或目標值(例如概率)。如果確定輸出不滿足預定的條件或目標,則在框605中,可以調(diào)整布隆過濾器和/或神經(jīng)網(wǎng)絡模型的某些參數(shù),并且可以反復執(zhí)行上述操作,以對布隆過濾器和/或神經(jīng)網(wǎng)絡模型進行微調(diào)。例如,可以改變布隆過濾器的一些參數(shù)以使得布隆過濾器可以生成不同數(shù)量的特征,類似于調(diào)節(jié)轉(zhuǎn)換的精簡率。另外,還可以例如,利用機器學習算法調(diào)整或“學習”神經(jīng)網(wǎng)絡模型的節(jié)點之間的連接的權(quán)重的至少一部分,以提供更好的輸出。
圖7是說明根據(jù)本發(fā)明的一個實施例的使用分類模型對用戶進行分類的過程的流程圖。過程700可以由包括硬件(例如,電路、專用邏輯等)、軟件(例如,被體現(xiàn)在非暫時性的計算機可讀介質(zhì)上)、或其組合的處理邏輯執(zhí)行。例如,處理700可以由圖3a-3b的110執(zhí)行。參照圖7,在框701中,處理邏輯從用戶的用戶端設備接收搜索查詢,其中,搜索查詢包括一個或多個關(guān)鍵詞。在框702中,處理邏輯獲得特征的第一集合,該特征的第一集合至少與搜索查詢、用戶端設備、和用戶信息(例如,用戶資料信息、之前的用戶瀏覽歷史)相關(guān)聯(lián)。在框703中,處理邏輯對該特征的第一集合應用預定的布隆過濾器以生成特征的第二集合。特征的第二集合是表示特征的第一集合的被精簡的特征。
在框704中,處理邏輯通過對特征的第二集合應用預定的神經(jīng)網(wǎng)絡模型確定用戶的用戶類別。從神經(jīng)網(wǎng)絡模型生成輸出,其中,該輸出表示與用戶相關(guān)聯(lián)的用戶類別。輸出可以包括表示用戶更可能感興趣接收的信息或內(nèi)容的類別的分數(shù)或值。例如,輸出可以表示用戶感興趣接收與神經(jīng)網(wǎng)絡模型和/或布隆過濾器相關(guān)聯(lián)的特定類別的內(nèi)容的可能性(例如概率)。在框705中,處理邏輯考慮用戶的用戶類別,基于搜索查詢在內(nèi)容數(shù)據(jù)庫中進行搜索,以生成具有內(nèi)容項目列表的搜索結(jié)果。該內(nèi)容數(shù)據(jù)庫可以存儲與用戶類別相關(guān)聯(lián)的某些類型的內(nèi)容項目(例如,諸如贊助內(nèi)容或廣告的等的被定向的內(nèi)容)。然后,在框706中,將搜索結(jié)果返給用戶的用戶端設備。
注意,可以對特征應用多個神經(jīng)網(wǎng)絡模型(以及它們的相關(guān)聯(lián)的布隆過濾器),以生成與作為候選類別的多個類別對應的多個輸出??梢曰谏窠?jīng)網(wǎng)絡模型的輸出來選擇一個或多個最終的候選類別以用于搜索的目的??梢允褂貌煌纳窠?jīng)網(wǎng)絡模型和它們相應的布隆過濾器來確定用戶對接收多個類別的內(nèi)容感興趣。
圖8是說明根據(jù)本發(fā)明的一個實施例的使用分類模型對內(nèi)容進行分類的過程的流程圖。處理800可以由包括硬件(例如,電路、專用邏輯等)、軟件(例如,包含在非暫時性的計算機可讀介質(zhì)上)、或其組合的處理邏輯執(zhí)行。例如,處理800可以由圖3a-3b的分類系統(tǒng)110執(zhí)行。參照圖8,在框801中,處理邏輯響應于從用戶的用戶設備接收的搜索查詢,在內(nèi)容數(shù)據(jù)庫中搜索以識別內(nèi)容項目的列表。在框802中,對每個內(nèi)容項目,處理邏輯至少基于內(nèi)容項目、用戶設備、和用戶(例如,用戶資料、之前的歷史)獲得特征的第一集合。在框803中,處理邏輯對該特征的第一集合應用布隆過濾器以生成特征的第二集合,它是表示第一集合的被精簡的特征的集合。在框804中,處理邏輯通過對特征的第二集合應用預定的神經(jīng)網(wǎng)絡模型來確定內(nèi)容項目的分數(shù)。該分數(shù)可以表示該內(nèi)容項目屬于與神經(jīng)網(wǎng)絡模型相關(guān)聯(lián)的特定類別的可能性(例如概率)或可信性(例如可信分數(shù))。在框805中,基于從神經(jīng)網(wǎng)絡模型生成的內(nèi)容項目的輸出對內(nèi)容項目進行排序。在框806中,將搜索結(jié)果發(fā)送給用戶的用戶設備,其中,該搜索結(jié)果包括基于神經(jīng)網(wǎng)絡模型的輸出被分類的內(nèi)容項目。
再次注意,可以對特征應用多個神經(jīng)網(wǎng)絡模型(以及它們的相關(guān)聯(lián)的布隆過濾器),以生成與作為候選類別的多個類別對應的多個輸出??梢曰谏窠?jīng)網(wǎng)絡模型的輸出來選擇一個或多個最終的候選類別以用于排序的目的??梢允褂貌煌纳窠?jīng)網(wǎng)絡模型和它們相應的布隆過濾器使內(nèi)容項目與多個類別相關(guān)聯(lián),這可能對內(nèi)容項目如何排序和/或分類有影響。
圖9是說明可以與本發(fā)明的一個實施例一起使用的數(shù)據(jù)處理系統(tǒng)的示例的框圖。例如,系統(tǒng)1500可以表示執(zhí)行上述的任一處理或方法的上述的任一數(shù)據(jù)處理系統(tǒng),例如,上述的客戶端設備或服務器,例如,上述的服務器104、內(nèi)容服務器133、分類模型訓練系統(tǒng)150。
系統(tǒng)1500可以包括許多不同的部件。這些部件可以以下列方式實現(xiàn):集成電路(ic)、其一部分、分立電子器件、或適合電路板如計算機系統(tǒng)的母板或插入板的其它模塊,或以其他方式結(jié)合在計算機系統(tǒng)的機箱上的部件。
還要注意,系統(tǒng)1500用來展示計算機系統(tǒng)的很多部件的高級視圖。但是,應當理解,在某些實施形式中可以有其它的部件,并且此外,可以在其它實現(xiàn)形式中出現(xiàn)的所示部件的不同配置。系統(tǒng)1500可以表示臺式電腦,筆記本電腦、平板電腦、服務器、手機、媒體播放器、個人數(shù)字助理(pda)、智能手表、個人通信裝置、游戲機、網(wǎng)絡路由器或集線器、無線接入點(ap)或復讀機、機頂盒、或其組合。而且,在僅僅說明一個機器或系統(tǒng)時,術(shù)語“機器”或“系統(tǒng)”應該被認為包括單獨或聯(lián)合執(zhí)行一套(或多套)指令以執(zhí)行在此討論的任一個或多個方法的機器或系統(tǒng)的任何組合。
在一個實施方式中,系統(tǒng)1500包括:處理器1501、存儲器1503和設備1505-1508,它們經(jīng)由總線或互聯(lián)1510連接。處理器1501可以表示其中包括一個處理器芯或多個處理器芯的一個處理器或多個處理器。處理器1501可以表示一個或多個一般用途處理器如微處理器、中央處理單元(cpu)等。更具體地,處理器1501可以是復雜指令集計算(cisi)微處理器、精簡指令集計算(risi)微處理器、超長指令字(vliw)微處理器、或執(zhí)行其它指令集的處理器、或執(zhí)行指令集的組合的處理器。處理器1501還可以是一個或多個專門用途處理器如專用集成電路(asic)、蜂窩或基帶處理器、現(xiàn)場可編程門陣列(fpga)、數(shù)字信號處理器(dsp)、網(wǎng)絡處理器、圖形處理器、網(wǎng)絡處理器、通信處理器、密碼處理器、協(xié)同處理器、嵌入的處理器、或可以處理指令的任何其它類型的邏輯。
處理器1501可以是低功率多芯處理器插槽如超低電壓處理器,可以用作主處理單元和用來與系統(tǒng)的各種部件通信的中央集線器。該處理器可以作為芯片上的系統(tǒng)(soc)實現(xiàn)。處理器1501設置成執(zhí)行用來執(zhí)行在此討論的操作和步驟的指令。系統(tǒng)1500還可以包括與非必需的圖形子系統(tǒng)1504通信的圖形接口,圖形子系統(tǒng)1504可以包括顯示控制器、圖形處理器、和/或顯示設備。
處理器1501可以與存儲器1503通信,在一個實施方式中存儲器1503可以經(jīng)由多個存儲設備實現(xiàn)以提供給定數(shù)量的系統(tǒng)存儲器。存儲器1503可以包括一個或多個易失性存儲設備如隨機存取存儲器(ram)、動態(tài)ram(dram)、同步dram(sdram)、靜態(tài)ram(sram)或其它類型的存儲設備。存儲器1503可以存儲包括被處理器1501或任何其它設備執(zhí)行的指令的序列的信息。例如,多個操作系統(tǒng)、設備驅(qū)動器、固件(例如,輸入輸出基本系統(tǒng)或bios)、和/或應用程序的可執(zhí)行碼和/或數(shù)據(jù)可以加載到存儲器1503上,并被處理器1501執(zhí)行。操作系統(tǒng)可以是任意一種操作系統(tǒng),例如,來自
系統(tǒng)1500還可以包括io設備如設備1505-1508,包括網(wǎng)絡接口設備1505、非必需的輸入設備1506、以及其它非必需的io設備1507。網(wǎng)絡接口設備1505可以包括無線收發(fā)器和/或網(wǎng)絡接口卡(nic)。無線收發(fā)器可以是wifi收發(fā)器、紅外收發(fā)器、藍牙收發(fā)器、wimax收發(fā)器、無線手機電話收發(fā)器、衛(wèi)星收發(fā)器(例如全球定位系統(tǒng)(gps)收發(fā)器)、或其它射頻(rf)收發(fā)器、或其組合。nic可以是以太網(wǎng)卡。
輸入設備1506可以包括鼠標、觸摸板、觸摸敏感屏(可以與顯示設備1504整合起來)、指向設備如手寫筆、和/或鍵盤(例如,物理鍵盤、或作為觸摸敏感屏的一部分顯示的虛擬鍵盤)。例如,輸入設備1506可以包括與觸摸屏連接的觸摸屏控制器。觸摸屏和觸摸屏控制器可以,例如,利用多種觸摸敏感技術(shù),包括但不限于電容、電阻、紅外、表面聲波技術(shù)、以及其它近距離傳感器陣列或其它用于確定與觸摸屏接觸的一個或多個點的元件,檢測接觸和運動或其中斷。
io設備1507可以包括聲音設備。聲音設備可以包括揚聲器和/或麥克風以增強發(fā)聲功能,如聲音辨認、聲音復制、數(shù)字錄音和/或無線語音功能。其它的io設備1507可以還包括通用串行總線(usb)端口、并行端口、串行端口、打印機、網(wǎng)絡接口、總線橋(例如pci-pci橋)、傳感器(例如運動傳感器如加速表、陀螺儀、磁力計、光傳感器、羅盤、近距離傳感器等)、或其組合。io設備1507可以還包括圖像處理子系統(tǒng)(例如相機),它可以包括用來增強相機功能如記錄照片和錄像片段的光學傳感器如電荷藕合器件(ccd)或互補金屬氧化物半導體(cmos)光學傳感器。取決于系統(tǒng)1500的具體配置或設計,某些傳感器可以經(jīng)由傳感器集線器與互聯(lián)1510連接,而其它設備如鍵盤或熱傳感器可以被嵌入的控制器(未示出)控制。
為了提供信息如數(shù)據(jù)、應用程序、一個或多個操作系統(tǒng)等的持久存儲,可以與處理器1501連接大容量存儲器(未示出)。在各種不同的實施方式中,為了實現(xiàn)更薄更輕的系統(tǒng)設計和提高系統(tǒng)響應性,該大容量存儲器可以通過固態(tài)器件(ssd)實現(xiàn)。但是,在另一些實施方式中,為了實現(xiàn)在斷電情況下上下文狀態(tài)和其它類似信息的非易失性存儲,可能主要使用帶有用作ssd緩存的小數(shù)量ssd存儲器的硬盤驅(qū)動器(hdd)來實現(xiàn)大容量存儲器,從而在系統(tǒng)活動的重啟時可以快速通電。而且,可以通過例如串行外設接口(spi)與處理器1501連接閃存設備。該閃存設備可以提供系統(tǒng)軟件包括基本輸入輸出軟件(bios)和系統(tǒng)的其它固件的非易失性存儲。
存儲設備1508可以包括可計算機存取的存儲介質(zhì)1509(也叫做可機讀存儲介質(zhì)或可機讀介質(zhì)),其上保存將在此描述的一個或多個方法和功能具體化的一個或多個指令集或軟件(例如模塊、單元、和/或邏輯1528)。模塊/單元/邏輯1528可以表示上面描述的任一個部件,如上面描述的搜索引擎、編碼器、交互記錄模塊。在系統(tǒng)1500驅(qū)動的模塊/單元/邏輯1528的執(zhí)行過程中,模塊/單元/邏輯1528也可以全部或至少部分地位于存儲器1503和/或處理器1501內(nèi)。存儲器1503和處理器1501還構(gòu)成可機讀存儲介質(zhì)。模塊/單元/邏輯1528還可以經(jīng)由網(wǎng)絡接口設備1505在網(wǎng)絡上收發(fā)。
可機讀存儲介質(zhì)1509也可以用來持久地保存上面描述的一些軟件功能。雖然在示例性實施方式中可機讀存儲介質(zhì)1509被展示為單個介質(zhì),術(shù)語“可機讀存儲介質(zhì)”應當被認為包括保存一個或多個指令集的單個或多個介質(zhì)(例如,集中的或分散的數(shù)據(jù)庫、和/或相關(guān)聯(lián)的緩存和服務器)。術(shù)語“可機讀存儲介質(zhì)”還應當被認為包括能夠保存或編碼用于被機器執(zhí)行的指令集和造成機器執(zhí)行本發(fā)明的任何一個或多個方法的任何介質(zhì)。因此,術(shù)語“可機讀存儲介質(zhì)”應當被認為包括但不限于固態(tài)存儲器、光和磁介質(zhì)、或任何其它非暫時性可機讀介質(zhì)。
在此描述的模塊/單元/邏輯1528、部件和其它特征可以作為分立硬件部件,或集成在硬件部件如asics、fpga、dsp或相似設備的功能中。另外,模塊/單元/邏輯1528可以作為固件或硬件設備中的功能電路實現(xiàn)。而且,模塊/單元/邏輯1528可以以硬件設備和軟件部件的任何組合實現(xiàn)。
注意,雖然系統(tǒng)1500被展示成具有數(shù)據(jù)處理系統(tǒng)的各種各樣的部件,它并非用來表示任何將部件互聯(lián)的特定的架構(gòu)或方式,因為這樣的細節(jié)對本發(fā)明的實施方式無關(guān)緊要。還應當理解為,具有更少的部件或者可能具有更多的部件的網(wǎng)絡電腦、手持電腦、手機、服務器、和/或其它數(shù)據(jù)處理系統(tǒng),也可以與本發(fā)明的實施方式一起使用。
前面的詳細描述的有些部分以對計算機存儲器中的數(shù)據(jù)位的操作的算法或符號表示的方式呈現(xiàn)。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域的普通技術(shù)人員使用的最有效地向其他普通技術(shù)人員傳遞他們工作的實質(zhì)內(nèi)容的方式。算法,在此,通常也是,被認為是導致所期望結(jié)果的操作的自洽序列。操作是要求對物理量的物理操控的那些操作。
然而,應當牢記的是,這些和類似術(shù)語中的所有術(shù)語將與適當?shù)奈锢砹肯嚓P(guān)聯(lián)并且僅是應用于這些量的方便標簽。除非特別聲明,否者如根據(jù)上文論述顯而易見的是,可以認識到遍及本描述、論述利用諸如下文權(quán)利要求中闡述的那些術(shù)語來指代計算機系統(tǒng)或類似的電子計算設備的動作和過程,所述動作和過程對計算機系統(tǒng)的寄存器和存儲器內(nèi)的被表示為物理(電子)量的數(shù)據(jù)進行操控并且將其轉(zhuǎn)變成計算機系統(tǒng)存儲器或寄存器或其它這樣的信息存儲、傳輸或顯示設備內(nèi)的被類似地表示為物理量的其它數(shù)據(jù)。
可以使用在一個或多個電子設備上存儲和執(zhí)行的代碼來實現(xiàn)附圖中示出的技術(shù)。這樣的電子設備使用計算機可讀介質(zhì)(諸如非暫時性計算機可讀存儲介質(zhì)(例如,磁盤;光盤;隨機存取存儲器;只讀存儲器;閃存設備、相變存儲器)和暫時性計算機可讀傳輸介質(zhì)(例如,電、光、聲或其它形式的傳播信號(諸如載波波形、紅外信號、數(shù)字信號)))來存儲和傳送(內(nèi)部地和/或通過網(wǎng)絡與其它電子設備)代碼和數(shù)據(jù)。
在先前附圖中描繪的處理器或方法可以由包括硬件(例如,電路,專用邏輯單元等)、固件、軟件(例如,體現(xiàn)在非暫時性計算機可讀介質(zhì)上的軟件)或兩者的組合的處理邏輯單元來執(zhí)行。雖然上文圍繞一些順序操作來描述了過程或方法,但是應當認識到的是,所描述的操作中的一些操作可以以不同的次序來執(zhí)行。此外,可以并行地而不是順序地來執(zhí)行一些操作。
在前述說明書中,已經(jīng)參照本發(fā)明的特定示例性實施例描述了本發(fā)明的實施例。顯而易見的是,可以在不脫離在下面的權(quán)利要求書中闡述的本發(fā)明的更廣精神和范圍的情況下,對實施例進行各種修改。因此,說明書和附圖被認為是說明性的而不是限制性的。