生成文檔的矢量表示的制作方法
【專利摘要】包括在計算機存儲介質上編碼的計算機程序的方法、系統以及裝置,用于生成文檔矢量表示。所述方法中的一個包括:獲得新文檔;以及使用經訓練的神經網絡系統來確定所述新文檔的矢量表示,其中,所述經訓練的神經網絡系統已被訓練成接收輸入文檔以及來自所述輸入文檔的單詞序列并且生成單詞集中的每個單詞的相應單詞分數,其中,所述相應單詞分數中的每一個都表示對應單詞跟隨所述輸入文檔中的所述序列中的最后一個單詞的預測似然率,并且其中,使用經訓練的神經網絡系統來確定所述新文檔的矢量表示包括迭代地將所述多個單詞序列中的每一個提供給所述經訓練的神經網絡系統以使用梯度下降來確定所述新文檔的所述矢量表示。
【專利說明】
生成文檔的矢量表示
【背景技術】
[0001]本說明書涉及使用數據處理系統的文本分類。
[0002]文本分類系統能夠對電子文本段進行分類,例如電子文檔。例如,文本分類系統能夠將文本段分類為與預定的主題集中的一個或多個相關。一些文本分類系統接收文本段的特征作為輸入并且使用所述特征來生成所述文本段的分類。
[0003]神經網絡是機器學習模型,其采用模型的一個或多個層來生成針對所接收的輸入的輸出,例如分類。一些神經網絡除輸出層之外還包括一個或多個隱藏層。每個隱藏層的輸出被用作到網絡中的下一層的輸入,即,網絡的下一個隱藏層或者輸出層。網絡的每個層都根據相應的參數集的當前值而從所接收的輸入中生成輸出。
【發明內容】
[0004]—般而言,在本說明書中所述主題的一個創新方面能夠被體現在包括以下動作的方法中:獲得新文檔,其中,所述新文檔包括多個單詞序列,并且針對每個單詞序列包括跟隨所述新文檔中的所述單詞序列中的最后一個單詞的單詞;以及使用經訓練的神經網絡系統來確定所述新文檔的矢量表示,其中,所述經訓練的神經網絡系統已被訓練成接收輸入文檔以及來自所述輸入文檔的單詞序列并且生成預定單詞集中的每個單詞的相應單詞分數,其中,所述相應單詞分數中的每一個都表示對應單詞跟隨所述輸入文檔中的所述序列中的最后一個單詞的預測似然率,并且其中,使用經訓練的神經網絡系統來確定所述新文檔的矢量表示包括迭代地將所述多個單詞序列中的每一個提供給所述經訓練的神經網絡系統以使用梯度下降來確定所述新文檔的所述矢量表示。
[0005]該方面的其他實施例包括對應的計算機系統、裝置以及被記錄在一個或多個計算機存儲設備上的計算機程序,每個計算機存儲設備都被配置成執行所述方法的所述動作。
[0006]一個或多個計算機的系統能夠被配置成借助具有軟件、固件、硬件或其組合而執行特定的操作或動作,這些被安裝于所述系統上,所述系統在操作中致使所述系統執行所述動作。一個或多個計算機程序能夠被配置成借助包括當由數據處理裝置執行時使得所述裝置執行所述動作的指令而執行特定的操作或動作。
[0007]這些及其他方面能夠可選擇地包括以下特征中的一個或多個。所述經訓練的神經網絡系統能夠包括被配置成將所述輸入文檔以及來自所述輸入文檔的單詞序列中的每個單詞映射到相應的矢量表示的嵌入層、被配置成將所述矢量表示組合到組合表示內的組合層以及被配置成使用所述組合表示生成所述單詞分數的分類器層。所述嵌入層能夠根據第一參數集而將所述單詞序列中的單詞映射到矢量表示,并且所述分類器層能夠根據第二參數集而從所述組合表示中生成所述單詞分數。所述第一參數集的值以及上述第二參數集的值可以從訓練所述神經網絡系統以生成所述單詞分數開始被固定。
[0008]使用經訓練的神經網絡系統來確定所述新文檔的矢量表示能夠包括對于所述多個單詞序列中的每一個執行梯度下降的相應迭代,以調節來自梯度下降的先前迭代的所述新文檔的所述矢量表示。對于所述多個序列中的每一個執行梯度下降的相應迭代能夠包括:使用所述嵌入層將所述序列中的單詞中的每一個映射到矢量表示;將所述序列中的單詞的矢量表示與來自先前迭代的所述新文檔的矢量表示進行組合以生成組合表示;從所述組合表示中生成單詞分數;使用所述單詞分數以及跟隨所述新文檔中的所述序列的單詞來計算梯度;以及使用所述梯度來調節來自先前迭代的所述新文檔的所述矢量表示。所述組合層能夠被配置成將所述序列中的單詞的矢量表示與所述輸入文檔的矢量表示相連結。所述組合層能夠被配置成對所述序列中的單詞的矢量表示與所述輸入文檔的矢量表示取平均值。所述多個單詞序列中的每一個都能夠包含固定數目的單詞。
[0009]—般而言,在本說明書中所述主題的另一個創新方面能夠被體現在包括以下動作的方法中:獲得多個訓練文檔,其中,所述多個訓練文檔中的每個文檔包括多個訓練單詞序列,并且針對每個單詞序列包括跟隨所述訓練文檔中的所述訓練單詞序列中的最后一個單詞的單詞;以及使用梯度下降以及反向傳播來依靠所述訓練文檔中的每一個訓練神經網絡系統,其中,所述神經網絡系統被配置成接收識別輸入文檔以及來自所述輸入文檔的輸入單詞序列的數據并且生成預定單詞集中的每個單詞的相應單詞分數,其中,所述相應單詞分數中的每一個都表示對應單詞跟隨所述輸入文檔中的所述序列中的最后一個單詞的預測似然率,并且其中,依靠所述訓練文檔中的每一個訓練所述神經網絡系統包括針對每個訓練文檔,對于所述訓練文檔中的每個單詞序列執行梯度下降的相應迭代。
[0010]該方面的其他實施例包括對應的計算機系統、裝置以及記錄在一個或多個計算機存儲設備上的計算機程序,每個計算機存儲設備都被配置成執行所述方法的所述動作。
[0011]這些及其他方面能夠可選擇地包括以下特征中的一個或多個。所述神經網絡系統能夠包括被配置成將所述輸入文檔以及來自所述輸入文檔的單詞序列中的每個單詞映射到相應的矢量表示的嵌入層、被配置成將所述矢量表示組合到組合表示內的組合層以及被配置成使用所述組合表示生成所述單詞分數的分類器層。所述嵌入層能夠根據第一參數集而將所述單詞序列中的單詞映射到矢量表示,并且所述分類器層能夠根據第二參數集而從所述組合表示中生成所述單詞分數。對于所述訓練文檔中的所述多個單詞序列中的每一個執行梯度下降的相應迭代能夠包括:使用所述嵌入層將所述序列中的單詞中的每一個映射到矢量表示;使用所述嵌入層將指示所述訓練文檔的所述數據映射到矢量表示;將所述序列中的單詞的矢量表示與來自先前迭代的所述新文檔的矢量表示進行組合以生成組合表示;從所述組合表示中生成單詞分數;使用所述單詞分數以及跟隨所述訓練文檔中的所述序列的單詞來計算梯度;以及使用所述梯度來調節所述第二參數集的值。執行梯度下降的相應迭代能夠進一步包括使用反向傳播來調節所述第一參數集的值。所述組合層能夠被配置成將所述序列中的單詞的矢量表示與所述輸入文檔的矢量表示相連結。所述組合層能夠被配置成對所述序列中的單詞的矢量表示與所述輸入文檔的矢量表示取平均值。所述多個單詞序列中的每一個都能夠包含固定數目的單詞。
[0012]本說明書中所述的主題的特定實施例能夠被實施以便實現以下優點中的一個或多個。能夠例如由文本分類系統將用作文檔的特征的所述文檔的矢量表示有效地生成。神經網絡系統能夠被訓練以僅使用未經標記的訓練文檔來生成所述文檔表示。由所述經訓練的神經網絡系統生成的所述矢量表示能夠具有多個期望的屬性。例如,與不包括在語義上類似的內容的兩個文檔的文檔矢量表示相比,在語義上類似的文檔能夠具有更接近的文檔矢量表示。
[0013]在附圖以及下面的描述中闡明了本說明書的主題的一個或多個實施例的細節。通過說明書、附圖和權利要求,所述主題的其他特征、方面和優勢將變得顯而易見。
【附圖說明】
[0014I圖1示出了示例矢量表示系統。
[0015]圖2是用于確定新文檔的文檔矢量表示的示例過程的流程圖。
[0016]圖3是用于依靠來自訓練文檔的單詞序列來訓練神經網絡系統的示例過程的流程圖。
[0017]圖4是用于調節新文檔的文檔矢量表示的示例過程的流程圖。
[0018]在各圖中相同的附圖標號和標記指示相同的元素。
【具體實施方式】
[0019]圖1示出了示例矢量表示系統100。矢量表示系統100是作為一個或多個位置中的一個或多個計算機上的計算機程序所實現的系統的示例,能夠在其中實現下述的系統、組件以及技術。
[0020]矢量表示系統100生成來自輸入文檔的單詞序列的單詞分數,例如,來自輸入文檔102的單詞序列106的單詞分數126。單詞序列106的單詞分數126包括預定單詞集中的每個詞的相應分數,給定單詞的單詞分數表示該單詞跟隨輸入文檔中的單詞序列106中的最后一個單詞的預測似然率。
[0021]作為生成給定輸入文檔中的單詞序列的單詞分數的一部分,矢量表示系統100生成輸入文檔的文檔矢量表示,例如,輸入文檔102的文檔矢量表示120。由矢量表示系統100所生成的文檔矢量表示是文檔的矢量表示。例如,文檔矢量表示可以是浮點值的矢量或者量化浮點值的矢量。
[0022]特別地,矢量表示系統100包括神經網絡系統110,針對給定輸入文檔中的給定單詞序列,該神經網絡系統110接收識別輸入文檔以及單詞序列的數據并且處理所述識別輸入文檔以及單詞序列的數據以生成單詞序列的單詞分數。例如,矢量表示系統100能夠從輸入文檔102接收輸入文檔102以及單詞序列106的文檔標識符104并且生成單詞序列106的單詞分數126。例如,文檔標識符可以被預先分配給輸入文檔102或者由矢量表示系統100生成,以便標識符唯一識別輸入文檔102。
[0023]神經網絡系統110包括嵌入層112、組合層114以及分類器層116。嵌入層112根據文檔參數集的當前值而將識別文檔的數據映射到文檔矢量表示,例如,輸入文檔102的文檔矢量表示120。嵌入層112還根據單詞參數集的當前值而將單詞序列中的每一個單詞都映射到相應的文檔矢量表示,例如,單詞序列106中的單詞的單詞矢量表示122。每個單詞矢量是對應單詞的矢量表示,例如,浮點的矢量或者量化的浮點值。
[0024]組合層114接收文檔矢量表示以及單詞矢量表示并且從文檔矢量表示以及單詞矢量表示中生成組合表示,例如,從單詞矢量表示122以及文檔矢量表示120中生成組合表示124。下面參照圖3和圖4來更詳細地對生成組合表示進行描述。
[0025]分類器層116根據分類器參數集的當前值而接收組合表示并且處理該組合表示以從輸入文檔中生成單詞序列的單詞分數。例如,分類器層116可以處理組合表示124以生成單詞序列106的單詞分數126。
[0026]矢量表示系統100依靠來自訓練文檔的多個單詞序列來訓練神經網絡系統110,以便確定單詞參數以及分類器參數的訓練值。下面參照圖2和圖3來更詳細地對訓練神經網絡系統進行描述。一旦單詞參數以及分類器參數的訓練值已被確定,矢量表示系統100便能夠接收新輸入文檔并且使用神經網絡系統110來處理來自新輸入文檔的單詞序列,以確定新文檔的文檔矢量表示。下面參照圖2和圖4來更詳細地描述生成新文檔的文檔矢量表示。
[0027]一旦給定文檔的文檔矢量表示已被生成,矢量表示系統100便能夠將文檔矢量表示與存儲庫中的文檔相關聯或者將文檔表示提供給單獨的系統,以便出于一些即時目的而使用。例如,文檔表示能夠被用作輸入文檔的特征并且能夠作為輸入而被提供給已被配置成將輸入文檔進行分類(例如,分類為與特定主題有關)的常規的機器學習系統,例如,邏輯回歸系統、支持矢量機(SVM)系統或者k-means系統。例如,常規的機器學習系統可以被配置成接收輸入文檔的文檔表示以及選擇性地接收輸入文檔的其他特征并且生成主題集中的每一個主題的相應分數,每個分數表示文檔有關或關于對應主題的估計似然率。
[0028]圖2是用于確定新文檔的文檔矢量表示的示例過程200的流程圖。方便起見,過程200將被描述為由位于一個或多個地點的一個或多個計算機的系統來執行。例如,適當編程的矢量表示系統(例如圖1的矢量表示系統100)能夠執行過程200。
[0029]系統訓練神經網絡系統(例如,圖1的神經網絡系統110)以生成單詞分數(步驟202)。神經網絡系統是包括嵌入層、組合層以及分類器層的系統。嵌入層被配置成接收識別文檔以及來自文檔的單詞序列的數據,根據文檔參數集的當前值而將識別文檔的數據映射到文檔矢量表示,并且根據單詞參數集的當前值而將單詞序列中的每個單詞都映射到相應的單詞矢量表示。組合層被配置成將單詞矢量表示與文檔矢量表示相組合,以生成組合表示。分類器層被配置成根據分類器參數集的當前值而處理組合表示,以生成單詞序列的單詞分數集。
[0030]在訓練期間,系統調節單詞參數以及分類器參數的值,以確定單詞參數以及分類器參數的訓練值。特別地,系統依靠來自訓練文檔集的單詞序列集來訓練神經網絡系統。例如,訓練文檔可以包括以下中的一個或多個:語句、語段、多個語段的集合、搜索查詢或者其他多個自然語言單詞的集合。
[0031]為了調節神經網絡系統的參數值,系統針對訓練序列中的每一個執行梯度下降訓練規程的一個實例。特別地,系統使用神經網絡系統來處理單詞序列以生成序列的單詞分數,并且再使用單詞分數以及跟隨訓練文檔中的序列中的最后一個單詞的單詞來調節參數的值,即,使用梯度下降以及反向傳播。下面參照圖3來更詳細地描述使用來自訓練文檔的單詞序列來調節神經網絡系統的參數。
[0032]因為所述系統僅使用單詞序列的單詞分數以及跟隨訓練文檔中的單詞序列中的最后一個單詞的單詞以便調節神經網絡系統的參數的值,所以訓練文檔無需被標記成在訓練神經系統網絡時將被使用。也就是說,所述系統可以僅使用來自未經標記的訓練文檔的單詞序列來訓練神經網絡系統以生成單詞分數,所述未經標記的訓練文檔即尚未被分類為與任何特定主題有關或以其他方式被文本分類系統處理的文檔。
[0033]所述系統接收新文檔(步驟204)。例如,新文檔可以是語句、語段、多個語段的集合、搜索查詢或者其他多個自然語言單詞的集合。
[0034]所述系統使用經訓練的神經網絡系統來確定新文檔的文檔矢量表示(步驟206)。一般而言,所述系統使用經訓練的神經網絡系統來處理來自新文檔的多個單詞序列,以確定新文檔的文檔矢量表示。特別地,所述系統識別來自新文檔的多個單詞序列。在一些實施方式中,序列中的每一個都是固定的長度,即,包括相同固定數目的單詞。例如,所述系統能夠將滑動窗口應用于新文檔以從新文檔中提取預定的固定長度的每個可能序列。
[0035]所述系統能夠接著使用經訓練的神經網絡系統來處理所提取的序列中的每一個,以便迭代地確定新文檔的文檔矢量表示。也就是說,在來自新文檔的每個序列都通過經訓練的神經網絡序列而被處理以生成序列的單詞分數之后,所述系統調節新文檔的當前表示。下面參照圖4來更詳細地描述使用來自新文檔的序列來調節新文檔的文檔矢量表示。
[0036]圖3是用于依靠來自訓練文檔的單詞序列來訓練神經網絡系統的示例過程300的流程圖。方便起見,過程300將被描述為由位于一個或多個地點的一個或多個計算機的系統來執行。例如,適當編程的矢量表示系統(例如圖1的矢量表示系統100)能夠執行過程300。
[0037]所述系統使用嵌入層將序列中的單詞中的每一個都映射到相應的單詞矢量表示(步驟302)。特別地,所述系統根據單詞參數的當前值而處理序列中的每個單詞,以確定序列中的單詞中的每一個的相應單詞矢量表示。
[0038]所述系統使用嵌入層將訓練文檔映射到文檔矢量表示(步驟304)。特別地,所述系統根據文檔參數的當前值而處理識別訓練文檔的數據,以確定訓練文檔的文檔矢量表示。
[0039]所述系統使用組合層從單詞矢量表示以及文檔矢量表示中生成組合表示(步驟306)。特別地,所述系統使用組合層處理單詞矢量表示以及當前的文檔矢量表示,以生成組合表示。例如,組合層可以將單詞矢量表示與當前的文檔矢量表示表示連結,以生成組合表示。作為另一示例,組合層可以計算單詞矢量表示與當前的文檔矢量表示的集中趨勢的度量,即均值、中值或其他平均值,以生成組合表示。
[0040]所述系統使用分類器層從組合表示中生成單詞分數(步驟308)。特別地,所述系統使用分類器層并且根據分類器層的參數的當前值來處理組合表示,以生成預定的單詞集中的每個單詞的相應單詞分數。
[0041]所述系統使用單詞分數計算梯度(步驟310)。也就是說,所述系統計算單詞分數與單詞序列的期望輸出之間的誤差,所述期望輸出即指示實際上跟隨新文檔中的序列中的最后一個單詞的單詞是序列中的下一個單詞的單詞分數集,并且接著計算誤差的梯度。
[0042]所述系統使用梯度調節神經網絡系統的參數的當前值(步驟312)。特別地,所述系統使用誤差的梯度來調節分類器層的參數的當前值并且接著使用反向傳播來調節嵌入層的參數的當前值,即文檔參數以及單詞參數的當前值。
[0043]所述系統能夠對于來自多個訓練文檔的多個訓練序列中的每一個執行過程300,以便迭代地確定文檔的參數的訓練值。例如,針對過程300的每一次迭代,所述系統都能夠隨機地選擇訓練文檔以及來自訓練文檔的固定長度的單詞序列。所述系統能夠接著對來自訓練文檔的序列執行過程300的迭代,直至每一個可能的序列均已被處理或者直至訓練的其他終止準則已被滿足。
[0044]圖4是用于調節新文檔的文檔矢量表示的示例過程400的流程圖。方便起見,過程400將被描述為由位于一個或多個地點的一個或多個計算機的系統來執行。例如,適當編程的矢量表示系統(例如圖1的矢量表示系統100)能夠執行過程400。
[0045]所述系統接收來自新文檔的單詞序列(步驟402)。例如,單詞序列可以是已從新文檔中提取的固定長度的單詞序列。
[0046]所述系統將序列中的單詞中的每一個都映射到相應的矢量表示(步驟404)。也就是說,所述系統使用嵌入層來處理序列中的單詞中的每一個,以根據單詞參數的訓練值而將每個單詞映射到單詞矢量表示。
[0047]所述系統將新文檔映射到文檔矢量表示(步驟406)。也就是說,所述系統使用嵌入層來處理識別新文檔的數據,以根據文檔參數的當前值而將新文檔到文檔矢量表示。
[0048]所述系統使用組合層來生成組合表示(步驟406)。特別地,所述系統使用組合層來處理單詞矢量表示以及文檔矢量表示,以生成組合表示。例如,組合層可以將單詞矢量表示與當前的文檔矢量表示表示相連結,以生成組合表示。作為另一示例,組合層可以計算單詞矢量表示與當前的文檔矢量表示的集中趨勢的度量,即均值、中值或其他平均值,以生成組合表不。
[0049]所述系統使用分類器層從組合表示中生成單詞分數(步驟408)。特別地,所述系統使用分類器層并且根據分類器層的參數的訓練值來處理組合表示,以生成預定的單詞集中的每個單詞的相應單詞分數。
[0050]所述系統使用單詞分數計算梯度(步驟410)。也就是說,所述系統計算單詞分數與單詞序列的期望輸出之間的誤差,所述期望輸出即指示實際上跟隨新文檔中的序列中的最后一個單詞的單詞是序列中的下一個單詞的單詞分數集,并且接著計算誤差的梯度。
[0051]所述系統使用梯度來調節新文檔的矢量表示(步驟412)。也就是說,所述系統保留分類器層的參數的訓練值以及固定的單詞參數并且使用反向傳播更新文檔參數的當前值。
[0052]所述系統接著在計算來自新文檔的下一個單詞序列的文檔矢量表示時使用文檔參數的更新值。替選地,如果當前的單詞序列是來自新文檔的待處理的最后一個序列,則所述系統使用文檔參數的更新值計算新文檔的經調節的文檔矢量表示并且使用經調節的文檔矢量表示作為新文檔的文檔表示。
[0053]本說明書中所述的主題的實施例以及功能性操作能夠在數字電子電路中、有形體現的計算機軟件或固件中、包括本說明書中所公開的結構和它們的結構等價物在內的計算機硬件中、或者其中一個或多個的組合中來實現。本說明書中所述的主題的實施例能夠被實現為一個或多個計算機程序,即,在有形的非暫時性程序載體上編碼的計算機程序指令的一個或多個模塊,用于由數據處理裝置來執行或者控制所述數據處理裝置的操作。替選地或附加地,程序指令能夠被編碼于人工生成的傳播信號上,例如機器生成的電子、光學或者電磁信號,該信號被生成以編碼用于傳輸至適當的接收器裝置的信息,以便由數據處理設備來執行。計算機存儲介質能夠是機器可讀的存儲設備、機器可讀的存儲基底、隨機或串行存取存儲器設備或者其中一個或多個的組合。
[0054]術語“數據處理裝置”包含用于處理數據的所有種類的裝置、設備以及機器,例如,包括可編程處理器、計算機或者多個處理器或計算機。所述裝置能夠包括專用邏輯電路,例如FPGA(現場可編程門陣列)或者ASICX專用集成電路)。所述裝置除硬件之外還能夠包括為討論中的計算機程序創建執行環境的代碼,例如,構成處理器固件、協議棧、數據庫管理系統、操作系統或者其中一個或多個的組合的代碼。
[0055]計算機程序(其也可以被稱為或者被描述為程序、軟件、軟件應用、模塊、軟件模塊、腳本或者代碼)能夠以任何形式的編程語言來編寫,包括編譯或解釋型語言,或者聲明性或過程式語言,并且其能夠以任何形式來部署,包括部署為獨立程序或者模塊、組件、子例程或者適于在計算環境中使用的其他單元。計算機程序可以但不必與文件系統中的文件相對應。程序能夠被存儲于保持例如存儲成標記語言文檔的一個或多個腳本的其他程序或者數據的文件的一部分中、專用于討論中的程序的單個文件中、或者多個協作文件中,例如存儲一個或多個模塊、子程序或者代碼的多個部分的文件。計算機程序能夠被部署成在一個計算機上或者在位于一個地點或者分布于多個地點并且通過通信網絡而互聯的多個計算機上來執行。
[0056]本說明書中所述的過程以及邏輯流程能夠由執行一個或多個計算機程序以通過對輸入數據進行操作并且生成數據來執行功能的一個或多個可編程計算機來執行。所述的過程以及邏輯流程也能夠由專用邏輯電路來執行,并且裝置也能夠被實現為專用邏輯電路,例如,FPGA(現場可編程門陣列)或者ASICX專用集成電路)。
[0057]例如,適于執行計算機程序的計算機包括能夠基于通用或專用的微處理器或者二者,或者任何其他種類的中央處理單元。通常,中央處理單元會從只讀存儲器或隨機存取存儲器或者二者接收指令和數據。計算機的基本元素是用于實踐或執行指令的中央處理單元以及用于存儲指令和數據的一個或多個存儲器設備。通常,計算機還會包括或者可操作地被耦合至用于存儲數據的一個或多個大容量存儲設備以自其接收數據或向其傳送數據或者兼顧,例如磁性的磁光盤或者光盤。然而,計算機不必具有這樣的設備。此外,計算機能夠被嵌入在其他設備中,例如,移動電話、個人數字助理(PDA)、移動音頻或視頻播放器、游戲機、全球定位系統(GPS)接收器、或者便攜式存儲設備,例如通用串行總線(USB)閃存驅動器,僅此舉出幾例。
[0058]適于存儲計算機程序指令和數據的計算機可讀介質包括所有形式的非易失存儲器、介質和存儲器設備,例如包括例如EPROM、EEPROM和閃存設備的半導體存儲器設備、例如內置硬盤或可移動磁盤的磁盤、磁光盤以及⑶ROM和DVD-ROM磁盤。處理器和存儲器能夠由專用邏輯電路加以補充或被結合在專用邏輯電路中。
[0059]為提供與用戶的交互,本說明書中所述的主題的實施例能夠在計算機上來實現,該計算機具有用于將信息顯示給用戶的顯示設備,例如CRT(陰極射線管)或者LCD(液晶顯示器)監視器,以及用戶能夠借以向計算機提供輸入的鍵盤和指針設備,例如鼠標或跟蹤球。其他種類的設備也能夠被使用于提供與用戶的交互;例如,提供給用戶的反饋能夠是任何類型的感覺反饋,例如,視覺反饋、聽覺反饋或者觸覺反饋;并且來自用戶的輸入能夠以任何形式被接收,包括聲音、語音或者觸覺輸入。此外,計算機能夠通過將文檔發送至由用戶所使用的設備并且從由用戶所使用的設備接收文檔,例如通過響應于從web瀏覽器所接收的請求而將網頁發送至用戶的客戶端設備上的web瀏覽器,來與用戶交互。
[0060]本說明書中所述主題的實施例能夠在計算系統中被實現,所述計算系統包括例如作為數據服務器的后端組件、包括例如應用服務器的中間件組件、包括例如具有用戶能夠借以與本說明書中所述主題的實施方式交互的圖形用戶界面或者web瀏覽器的客戶端計算機的前端組件、或者一個或多個這樣的后端、中間件或前端組件的任意組合。系統的組件能夠通過數字數據通信的任何形式或者介質來互聯,例如,通信網絡。通信網絡的示例包括局域網(“LAN” )以及廣域網(“WAN” ),例如,互聯網。
[0061]計算系統能夠包括客戶端以及服務器。客戶端與服務器一般彼此遠離,并且通常通過通信網絡來進行交互。客戶端與服務器的關系借助在相應計算機上運行并且彼此具有客戶端-服務器關系的計算機程序來實現。
[0062]雖然本說明書包含許多特定的實施方式細節,但這些不應當被解釋為對任何發明或者可能要求保護的內容的范圍的限制,而應被理解為對可能對于特定發明的特定實施例是特定的特征的描述。本說明書中在單獨實施例的場境中描述的某些特征也能夠在單個實施例中組合來實施。反之,在單個實施例的場境中描述的各種特征也能夠單獨地在多個實施例中或者以任何適當的子組合來實施。此外,盡管在上文可以將特征描述為以某些組合進行動作乃至最初如此要求保護特征,但來自要求保護的組合的一個或多個特征在一些情況下能夠從所述組合中被排除,并且所要求保護的組合可以涉及子組合或者子組合的變型。
[0063]類似地,雖然在圖中以特定次序來描繪操作,但這不應被理解為要求以所示的特定次序或者以順序來執行這樣的操作,或者執行所有圖示的操作,以獲得期望的結果。在某些情況下,多任務以及并行處理可能是有利的。此外,上述實施例中的各種系統模塊和組件的分離不應被理解為在所有實施例中要求這樣的分離,而應理解的是,所述的程序組件和系統一般能夠一起被集成于單個軟件產品中或者被封裝到多個軟件產品中。
[0064]已對所述主題的特定實施例進行了描述。其他實施例在所附權利要求的范圍內。例如,能夠以不同的次序來執行權利要求中所述的動作并且仍然獲得期望的結果。作為一個示例,在附圖中所描繪的過程不一定要求所示的特定次序或者順序來獲得期望的結果。在某些實施方式中,多任務以及并行處理可能是有利的。
【主權項】
1.一種方法,包括: 獲得新文檔,其中,所述新文檔包括多個單詞序列,并且針對每個單詞序列,包括跟隨所述新文檔中的所述單詞序列中的最后一個單詞的單詞;以及 使用經訓練的神經網絡系統來確定所述新文檔的矢量表示, 其中,所述經訓練的神經網絡系統已被訓練用于接收輸入文檔以及來自所述輸入文檔的單詞序列,并且用于生成預定單詞集中的每個單詞的相應單詞分數,其中,所述相應單詞分數中的每一個表示對應單詞跟隨所述輸入文檔中的所述序列中的最后一個單詞的預測似然率,并且 其中,使用所述經訓練的神經網絡系統來確定所述新文檔的所述矢量表示包括:迭代地將所述多個單詞序列中的每一個提供給所述經訓練的神經網絡系統,以使用梯度下降來確定所述新文檔的所述矢量表示。2.如權利要求1所述的方法,其中,所述經訓練的神經網絡系統包括:嵌入層,所述嵌入層被配置成將所述輸入文檔以及來自所述輸入文檔的所述單詞序列中的每個單詞映射到相應的矢量表示;組合層,所述組合層被配置成將所述矢量表示組合成組合表示;以及,分類器層,所述分類器層被配置成使用所述組合表示來生成所述單詞分數。3.如權利要求2所述的方法,其中,根據第一參數集,所述嵌入層將所述單詞序列中的所述單詞映射到矢量表示,并且其中,根據第二參數集,所述分類器層從所述組合表示中生成所述單詞分數。4.如權利要求3所述的方法,其中,自從訓練所述神經網絡系統以生成所述單詞分數,所述第一參數集的值以及所述第二參數集的值是固定的。5.如權利要求2所述的方法,其中,使用所述經訓練的神經網絡系統來確定所述新文檔的所述矢量表示包括:對于所述多個單詞序列中的每一個執行梯度下降的相應迭代,以調節來自梯度下降的先前迭代的所述新文檔的所述矢量表示。6.如權利要求5所述的方法,其中,對于所述多個序列中的每一個執行梯度下降的相應迭代包括: 使用所述嵌入層,將所述序列中的所述單詞中的每一個映射到矢量表示; 將所述序列中的所述單詞的所述矢量表示與來自所述先前迭代的所述新文檔的所述矢量表示進行組合,以生成組合表示; 從所述組合表示中生成單詞分數; 使用所述單詞分數以及跟隨所述新文檔中的所述序列的所述單詞來計算梯度;以及 使用所述梯度來調節來自所述先前迭代的所述新文檔的所述矢量表示。7.如權利要求2所述的方法,其中,所述組合層被配置成將所述序列中的所述單詞的所述矢量表示與所述輸入文檔的所述矢量表示相連結。8.如權利要求2所述的方法,其中,所述組合層被配置成對所述序列中的所述單詞的所述矢量表示與所述輸入文檔的所述矢量表示取平均值。9.如權利要求1所述的方法,其中,所述多個單詞序列中的每一個包含固定數目的單Τ.κ| ο10.一種方法,包括: 獲得多個訓練文檔,其中,所述多個訓練文檔中的每個文檔包括多個訓練單詞序列,并且針對每個單詞序列,包括跟隨所述訓練文檔中的所述訓練單詞序列中的最后一個單詞的單詞;以及 使用梯度下降以及反向傳播,來依靠所述訓練文檔中的每一個訓練神經網絡系統, 其中,所述神經網絡系統被配置成接收識別輸入文檔以及來自所述輸入文檔的輸入單詞序列的數據,并且生成預定單詞集中的每個單詞的相應單詞分數, 其中,所述相應單詞分數中的每一個表示對應單詞跟隨所述輸入文檔中的所述序列中的最后一個單詞的預測似然率,并且 其中,依靠所述訓練文檔中的每一個訓練所述神經網絡系統包括:針對每個訓練文檔,對于所述訓練文檔中的每個單詞序列執行梯度下降的相應迭代。11.如權利要求10所述的方法,其中,所述神經網絡系統包括:嵌入層,所述嵌入層被配置成將所述輸入文檔以及來自所述輸入文檔的所述單詞序列中的每個單詞映射到相應的矢量表示;組合層,所述組合層被配置成將所述矢量表示組合成組合表示;以及,分類器層,所述分類器層被配置成使用所述組合表示來生成所述單詞分數。12.如權利要求11所述的方法,其中,根據第一參數集,所述嵌入層將所述單詞序列中的所述單詞映射到矢量表示,并且其中,根據第二參數集,所述分類器層從所述組合表示中生成所述單詞分數。13.如權利要求12所述的方法,其中,對于所述訓練文檔中的所述多個單詞序列中的每一個執行梯度下降的相應迭代包括: 使用所述嵌入層,將所述序列中的所述單詞中的每一個映射到矢量表示; 使用所述嵌入層,將識別所述訓練文檔的所述數據映射到矢量表示; 將所述序列中的所述單詞的所述矢量表示與來自所述先前迭代的所述訓練文檔的所述矢量表示進行組合,以生成組合表示; 從所述組合表示中生成單詞分數; 使用所述單詞分數以及跟隨所述新文檔中的所述序列的所述單詞來計算梯度;以及 使用所述梯度來調節所述第二參數集的值。14.如權利要求13所述的方法,其中,執行所述梯度下降的相應迭代進一步包括:使用反向傳播來調節所述第一參數集的值。15.如權利要求10所述的方法,其中,所述組合層被配置成將所述序列中的所述單詞的所述矢量表示與所述輸入文檔的所述矢量表示相連結。16.如權利要求10所述的方法,其中,所述組合層被配置成對所述序列中的所述單詞的所述矢量表示與所述輸入文檔的所述矢量表示取平均值。17.如權利要求10所述的方法,其中,所述多個單詞序列中的每一個包含固定數目的單Τ.κ| ο18.—種包括一個或多個計算機以及存儲指令的一個或多個存儲設備的系統,所述指令當由所述一個或多個計算機來執行時致使所述一個或多個計算機執行操作,所述操作包括: 獲得新文檔,其中,所述新文檔包括多個單詞序列,并且針對每個單詞序列,包括跟隨所述新文檔中的所述單詞序列中的最后一個單詞的單詞;以及使用經訓練的神經網絡系統來確定所述新文檔的矢量表示, 其中,所述經訓練的神經網絡系統已被訓練用于接收輸入文檔以及來自所述輸入文檔的單詞序列,并且用于生成預定單詞集中的每個單詞的相應單詞分數,其中,所述相應單詞分數中的每一個表示對應單詞跟隨所述輸入文檔中的所述序列中的最后一個單詞的預測似然率,并且 其中,使用所述經訓練的神經網絡系統來確定所述新文檔的所述矢量表示包括:迭代地將所述多個單詞序列中的每一個提供給所述經訓練的神經網絡系統,以使用梯度下降來確定所述新文檔的所述矢量表示。19.如權利要求18所述的系統,其中,所述經訓練的神經網絡系統包括:嵌入層,所述嵌入層被配置成將所述輸入文檔以及來自所述輸入文檔的所述單詞序列中的每個單詞映射到相應的矢量表示;組合層,所述組合層被配置成將所述矢量表示組合成組合表示;以及,分類器層,所述分類器層被配置成使用所述組合表示來生成所述單詞分數。20.如權利要求19所述的系統,其中,使用所述經訓練的神經網絡系統來確定所述新文檔的所述矢量表示包括:對于所述多個單詞序列中的每一個執行梯度下降的相應迭代,以調節來自梯度下降的先前迭代的所述新文檔的所述矢量表示。
【文檔編號】G06N3/08GK105940395SQ201580006653
【公開日】2016年9月14日
【申請日】2015年1月30日
【發明人】國·V·勒
【申請人】谷歌公司