系統、用于控制系統的數據結構和用于更新數據結構的方法
【專利摘要】可以在矩陣中將例如表示在多個情形中觀測的偏好和事實的同現數據存儲為高維稀疏矢量的組合。矩陣可以例如稱為經驗矩陣。可以隨后利用在經驗矩陣中存儲的數據例如用于預測用戶在新情形中的偏好。可以通過如下方法更新可以在經驗矩陣中存儲的同現數據,該方法包括:基于系統的狀態和/或基于傳感器檢測到的物理量來確定第一詞,形成包括第一詞和第二詞的第一詞組,將第一詞和第二詞與公共稀疏矢量關聯,將第一詞與矩陣的第一矢量關聯,將第二詞與矩陣的第二矢量關聯,通過向矩陣的第一矢量添加公共稀疏矢量的貢獻來修改矩陣的第一矢量,以及通過向矩陣的第二矢量添加公共稀疏矢量的貢獻來修改矩陣的第二矢量。
【專利說明】系統、用于控制系統的數據結構和用于更新數據結構的方 法
【背景技術】
[0001] 電子設備、例如智能電話和計算機可以承載多個功能、例如用于不同需要的程序 以及用于定位、通信和娛樂的模塊。可以用這些設備執行的任務的多樣性龐大,并且個體任 務可能性質復雜。如今執行的大量工作借助計算機來完成。電子設備也已經變成日常生活 空閑時間的一部分。
[0002] 設備提供的多種功能可能使電子設備的用戶不知所措。為此,設備可以提供對在 設備中的功能的外在和布置進行定制的方式,從而用戶需要的功能是容易可及的。
[0003] 用戶可以例如通過使用用戶接口來定制設備。
【發明內容】
[0004] 本發明的一個目的是提供一種用于更新數據結構的方法。本發明的一個目的是提 供一種用于更新數據結構的計算機程序。本發明的一個目的是提供一種用于更新數據結構 的計算機程序產品。本發明的一個目的是提供一種用于更新和存儲同現數據的裝置。本發 明的一個目的是提供一種用于提供更新和存儲同現數據的系統。本發明的一個目的是提供 一種用于存儲同現數據的裝置。本發明的一個目的是提供一種包含同現數據的數據結構。
[0005] 根據本發明的第一方面,提供一種方法,該方法包括:
[0006] -基于系統(500)的狀態和/或基于傳感器(Gl)檢測到的物理量來確定第一詞 (W1),
[0007] -形成包括第一詞(W1)和第二詞(W2)的第一詞組(BAG1),
[0008] -將第一詞(W1)與第一稀疏矢量(a)或者與公共稀疏矢量(Id1)關聯,
[0009] -將第二詞(W2)與第二稀疏矢量(a2)或者與公共稀疏矢量(Id1)關聯,
[0010] -將第一詞(W1)與矩陣(EXl)的第一矢量(V1)關聯,
[0011]-將第二詞(W2)與矩陣(EXl)的第二矢量(V2)關聯,
[0012] -通過向矩陣(EXl)的第一矢量(V1)添加第二稀疏矢量(a2)的貢獻或者公共稀 疏矢量(h)的貢獻來修改矩陣(EXl)的第一矢量,以及
[0013] -通過向矩陣(EXl)的第二矢量(V2)添加第一稀疏矢量(?)的貢獻或者公共稀 疏矢量(bj的貢獻來修改矩陣(EXl)的第二矢量。
[0014] 根據本發明的第二方面,提供一種計算機程序(PROGl),該計算機程序(PROGl)在 由一個或者多個處理器(CNTl)執行時用于執行一種方法,該方法包括:
[0015] -基于系統(500)的狀態和/或基于傳感器(Gl)檢測到的物理量確定第一詞 (W1),
[0016] -形成包括第一詞(W1)和第二詞(W2J的第一詞組(BAG1),
[0017]-將第一詞(W1)與第一稀疏矢量(?)或者與公共稀疏矢量(Id1)關聯,
[0018]-將第二詞(W2)與第二稀疏矢量(a2)或者與公共稀疏矢量(Id1)關聯,
[0019]-將第一詞(W1)與矩陣(EXl)的第一矢量(V1)關聯,
[0020] -將第二詞(W2)與矩陣(EXl)的第二矢量(V2)關聯,
[0021] -通過向矩陣(EXl)的第一矢量(V1)添加第二稀疏矢量(a2)的貢獻或者公共稀 疏矢量(h)的貢獻來修改矩陣(EXl)的第一矢量,以及
[0022] -通過向矩陣(EXl)的第二矢量(V2)添加第一稀疏矢量(?)的貢獻或者公共稀 疏矢量(h)的貢獻來修改矩陣(EXl)的第二矢量。
[0023] 根據本發明的第三方面,提供一種存儲計算機代碼(PROGl)的計算機可讀介質 (MEM5),該計算機代碼在由一個或者多個處理器(CNTl)執行時用于執行一種方法,該方法 包括:
[0024] -基于系統(500)的狀態和/或基于傳感器(Gl)檢測到的物理量確定第一詞 (W1),
[0025] -形成包括第一詞(W1)和第二詞(W2J的第一詞組(BAG1),
[0026] -將第一詞(W1)與第一稀疏矢量(a^或者與公共稀疏矢量(Id1)關聯,
[0027] -將第二詞(W2)與第二稀疏矢量(a2)或者與公共稀疏矢量(Id1)關聯,
[0028] -將第一詞(W1)與矩陣(EXl)的第一矢量(V1)關聯,
[0029] -將第二詞(W2)與矩陣(EXl)的第二矢量(V2)關聯,
[0030] -通過向矩陣(EXl)的第一矢量(V1)添加第二稀疏矢量(a2)的貢獻或者公共稀 疏矢量(h)的貢獻來修改矩陣(EXl)的第一矢量,以及
[0031] -通過向矩陣(EXl)的第二矢量(V2)添加第一稀疏矢量(?)的貢獻或者公共稀 疏矢量(h)的貢獻來修改矩陣(EXl)的第二矢量。
[0032] 根據本發明的第四方面,提供一種裝置(400,500,1251),該裝置包括:
[0033] -第一存儲器(MEMl),用于存儲一組(BAGl)詞(W1, W2),
[0034] -稀疏矢量供應(SUPl),用于提供稀疏矢量(ap a2, Id1),
[0035] -第二存儲器(MEM2),用于存儲矩陣(EXl)的矢量,以及
[0036] -組合單元(IXUl),用于通過添加與詞(W1, W2)關聯的稀疏矢量(&1,a2, bj的貢 獻來修改矩陣(EXl)的矢量。
[0037] 根據本發明的第五方面,提供一種系統(400,500),該系統包括:
[0038] -第一存儲器(MEMl),用于存儲一組(BAGl)詞(W1, W2),
[0039] -稀疏矢量供應(SUPl),用于提供稀疏矢量(&1,a2, Id1),
[0040] -第二存儲器(MEM2),用于存儲矩陣(EXl)的矢量,以及
[0041] -組合單元(IXUl),用于通過添加與詞(W1, W2)關聯的稀疏矢量(&1,a2, bj的貢 獻來修改矩陣(EXl)的矢量。
[0042] 根據本發明的第六方面,提供一種用于存儲同現數據的裝置(400,500),所述裝置 包括:
[0043] -用于存儲數據的第一裝置(MEMl),被配置為存儲一組(BAGl)詞(W1, W2),
[0044] -用于供應稀疏矢量的裝置(SUPl),被配置為提供稀疏矢量
[0045] -用于存儲數據的第二裝置(MEM2),被配置為存儲矩陣(EXl)的矢量,以及
[0046] -用于組合的裝置(IXUl),被配置為通過添加與詞(W1, W2)關聯的稀疏矢量(叫, a2, bj的貢獻來修改矩陣(EXl)的矢量。
[0047] 根據本發明的第七方面,提供一種用于控制計算機系統的操作的數據結構(EXl), 所述數據結構(EXl)包括作為與詞表(VOCl)中的詞關聯的稀疏高維矢量而存儲的同現數 據,所述矢量與來自下列組的至少三個類型的詞關聯:時間描述符詞、位置描述符詞、因特 網地址詞、操作狀態描述符詞、品牌名稱、用戶電話簿姓名和傳感器值詞。
[0048] 根據本發明的第八方面,提供一種在非瞬態計算機可讀介質上實現的計算機程序 產品,所述介質包括一個或者多個計算機可執行指令,該指令在由一個或者多個處理器執 行時使系統至少執行以下操作:
[0049] -基于系統的狀態和/或基于傳感器檢測到的物理量來確定第一詞,
[0050] -形成包括第一詞和第二詞的第一詞組,
[0051] -將第一詞與第一稀疏矢量或者與公共稀疏矢量關聯,
[0052] -將第二詞與第二稀疏矢量或者與公共稀疏矢量關聯,
[0053] -將第一詞與矩陣的第一矢量關聯,
[0054] -將第二詞與矩陣的第二矢量關聯,
[0055] -通過向矩陣的第一矢量添加第二稀疏矢量的貢獻或者公共稀疏矢量的貢獻來修 改矩陣的第一矢量,以及
[0056] -通過向矩陣的第二矢量添加第一稀疏矢量的貢獻或者公共稀疏矢量的貢獻來修 改矩陣的第二矢量。
[0057] 根據本發明的又一實施例,該裝置(400, 500,1251)可以包括:
[0058] -第一存儲器(MEMl),用于存儲一組(BAGl)詞(W1, W2),
[0059] -稀疏矢量供應(SUPl),用于提供稀疏矢量(&1,a2, Id1),
[0060] -第二存儲器(MEM2),用于存儲矩陣(EXl)的矢量,以及
[0061] -組合單元(IXUl),用于通過添加與詞(W1, W2)關聯的稀疏矢量(ap a2, bi)的貢 獻來修改矩陣(EXl)的矢量。
[0062] 根據本發明的又一實施例,組合單元(IXUl)被布置為通過形成矩陣(EXl)的第一 矢量與一個或者多個稀疏矢量(a 2,bi)的線性組合來修改第一矢量(V1)。
[0063] 根據本發明的又一實施例,第一稀疏矢量的非零元素的數目在4到1000的范圍 中,并且其中第一稀疏矢量的非零元素的數目還在第一稀疏矢量的長度的0. 1%到10%的 范圍中。
[0064] 根據本發明的又一實施例,該裝置可以包括用以接收用于所述集(BAGl)的詞(W3) 的接口(501)。
[0065] 根據本發明的又一實施例,該裝置可以被配置為進行操作以使得第一詞(W1)表示 在第一時間U1)的狀態并且第二詞(W2)表示在不同的第二時間(t2)的狀態。
[0066] 根據本發明的又一實施例,該裝置可以包括用于存儲詞表(VOCl)的存儲器 (MEM3),其中稀疏矢量供應(SUPl)和/或組合單元(IXUl)和/或控制單元(CNTl)被配置 為通過使用詞表(VOCl)來將詞(WnW2)與稀疏矢量(ai,a 2)關聯。
[0067] 根據本發明的又一實施例,稀疏矢量供應(SUPl)和/或組合單元(LCUl)和/或 控制單元(CNTl)被配置為忽略未被包含在詞表(VOCl)中的詞。
[0068] 根據本發明的又一實施例,稀疏矢量供應(SUPl)和/或組合單元(LCUl)和/或 控制單元(CNTl)可以被配置為在另一詞是系統詞、統一資源定位符(URL)或者被分類為詞 表詞的詞時向詞表(VOCl)添加該另一詞。
[0069] 根據本發明的又一實施例,組合單元(LCUl)和/或控制單元(CNTl)可以被配置 為通過使用哈希表(V0C1,IND,CAHl,0CCL)來存儲矩陣的值,使得矩陣(EXl)的矢量(V 1) 具有矩陣(EXl)的列(i)中的非零元素(eik),并且哈希表(OCCLi)包含標識詞表(VOCl)中 的與矢量(V k)關聯的詞(Wk)的指針。
[0070] 根據本發明的又一實施例,控制單元(CNTl)可以被配置為通過使用日歷、詞典、 電子地圖和/或符號化來從第一詞(W 1, Tl)確定輔助詞(T6)。
[0071] 根據本發明的又一實施例,該裝置可以包括用于從設備(1240)向所述裝置的存 儲器(MEM2)復制矩陣(EXl)的矢量(V 1,V2)的接口。
[0072] 根據本發明的又一實施例,該裝置可以包括被布置為基于檢測到的環境條件來提 供一個或者多個詞的一個或者多個傳感器(NAVI,Gl)
[0073] 系統的狀態以及可以使用系統的情形可以對用戶的偏好和需要具有影響。
[0074] 根據本發明的一個實施例,可以在矩陣中存儲表示在多個情形中觀測的偏好和事 實的同現數據作為高維稀疏矢量的組合。矩陣可以例如稱為經驗矩陣或者上下文矩陣。在 經驗矩陣中存儲的數據可以隨后例如用于預測用戶在新情形中的偏好。
[0075] 系統可以能夠通過運用一個或者多個應用(即通過執行程序代碼)和/或通過激 活一個或者多個功能(物理)單元來執行各種任務。任務可以例如包括接收和發送消息、 播放音樂、更新日歷、在因特網中瀏覽和/或在城市的街道中導航。系統可以例如包括用于 捕獲圖像的相機和/或用于確定位置的衛星導航單元。
[0076] 系統的用戶可以通過使用用戶接口來激活一個或者多個應用和/或功能單元。然 而有時可能需要大量連續輸入命令以在系統的菜單結構中導航以便激活在給定的情形中 需要的功能。在復雜菜單結構中進行選擇可能耗費時間。用戶也可能在記憶相關菜單在系 統的菜單結構中駐留于何處時有困難。
[0077] 激活的應用和單元可能消耗系統資源。可以停止不需要的應用和單元以便向在給 定的情形中必需或者至少有用的應用分配更多資源。停止應用或者單元可能需要再次在系 統的菜單結構中導航。
[0078] 在一個實施例中,可以通過自動地呈現具有有限選項集合的菜單來有助于選擇將 在情形中激活的應用和單元。可以基于通過利用在經驗矩陣中存儲的同現數據而確定的預 測向用戶呈現系統的菜單。
[0079] 在一個實施例中,可以基于通過使用作經驗矩陣EXl中的矢量存儲的同現數據而 確定的預測來控制功能的激活和/或停止。系統可以基于從當前條件、以往條件和/或將 來條件導出的一個或者多個查詢詞自動地激活和/或去激活功能。因此,用戶需要對向系 統給予命令投以更少關注。在一個實施例中,用戶可以先前已經授權系統自動地激活/或 解激活功能而不特別地要求來自用戶的權限。
[0080] 例如可以在處理大量同現數據時使用在經驗矩陣中存儲的數據,因為人類交互不 是解釋數據而必需的。
[0081] 在一個實施例中,可以從無結構數據以無監督方式自動地提取語義信息。可以需 要很少或者無需預處理數據。可以需要很少或者無需人類交互。在一個實施例中,無需假 設有含義詞的在先知識,從而使該方法易于應用于具有不同主題和結構性質的數據。
[0082] 在一個實施例中,系統無需存儲對詞的語義含義進行指定的數據。系統可以存儲 該數據并且即使在無關于詞的語義含義的知識的情況下也可以由該數據控制。
【專利附圖】
【附圖說明】
[0083] 在以下示例中,將參照示例實施例的附圖更具體描述本發明的各種實施例,在附 圖中:
[0084] 圖Ia通過示例示出將詞表示為基本稀疏矢量,
[0085] 圖Ib通過示例示出詞集(bag),
[0086] 圖Ic通過示例示出用圖Ib的集更新之后的經驗矩陣,
[0087] 圖2通過示例示出通過使用詞集和圖Ia的基本稀疏矢量來更新經驗矩陣,
[0088] 圖3a通過示例示出通過使用經驗矩陣來提供預測,
[0089] 圖3b通過示例圖示確定在上下文空間中的矢量差,
[0090] 圖3c通過示例示出通過使用經驗矩陣來提供預測,
[0091] 圖4a通過示例示出將詞集表示為基本稀疏矢量,
[0092] 圖4b通過示例示出通過使用詞集和圖4a的基本稀疏矢量來更新經驗矩陣,
[0093] 圖4c通過示例示出用圖4a的集更新之后的經驗矩陣,
[0094] 圖5a通過示例示出將詞收集到一個集,
[0095] 圖5b通過示例示出將詞收集到一個集,這些詞表示不同時刻,
[0096] 圖5b通過示例示出將詞收集到一個集,這些詞表示不同時刻,
[0097] 圖6通過示例示出在包括經驗矩陣的系統中收集和處理數據,
[0098] 圖7a通過示例示出配置為通過使用經驗矩陣來收集和處理數據的系統,
[0099] 圖7b通過示例示出布置為提供詞作為輸出的傳感器,
[0100] 圖7c通過示例示出包括詞哈希表和一組基本稀疏矢量的稀疏矢量供應,
[0101] 圖7d通過示例示出包括一組基本稀疏矢量的稀疏矢量供應,
[0102] 圖7e通過示例示出包括配置為生成基本稀疏矢量的隨機數生成器的稀疏矢量供 應,
[0103] 圖7f通過示例示出基于通過使用經驗矩陣而進行的預測來控制的系統,
[0104] 圖8a通過示例示出詞集,
[0105] 圖8b通過示例示出基于預測而控制的用戶接口,
[0106] 圖8c通過示例示出基于預測而控制的用戶接口,
[0107] 圖8d通過示例示出用于預備用于日歷事件的系統的方法步驟,
[0108] 圖9a通過示例示出將經驗矩陣表示為一組哈希表,
[0109] 圖9b通過示例示出更新圖9a的經驗矩陣,
[0110] 圖9C通過示例示出使用圖9a的經驗矩陣用于進行預測,
[0111] 圖IOa通過示例示出通過使用日歷和/或通過使用詞典來生成輔助詞,
[0112] 圖IOb通過示例示出通過使用詞典將詞替換為第二詞,
[0113] 圖11通過示例示出包括經驗矩陣的系統,
[0114] 圖12a通過示例示出具有用戶接口的設備,并且
[0115] 圖12b通過示例示出數據處理設備。
【具體實施方式】
[0116] 在下文中,將參照系統的環境以及隨機編索引的框架描述本發明的若干示例實施 例。然而將注意本發明不限于這些使用或者備選。事實上,也可以在需要系統的語義處理 和適配的任何環境中使用實施例。
[0117] 可以基于先前情形中的詞的同現將同現數據收集到經驗矩陣中。經驗矩陣可以包 含關于不同情形中的詞的同現的歷史數據。經驗矩陣EXl可以包含多個稀疏矢量,這些稀 疏矢量又包含關于與系統有關的詞的歷史同現的信息。經驗矩陣EXl可以包含一個或者多 個系統收集的"經驗"。經驗矩陣可以例如用來在與給定的情形有關的一個或者多個(其 它)詞已知時"預測"可以在該情形中適用的適當動作或者操作模式。因此,系統可以通過 使用在系統的經驗矩陣中存儲的先前經驗來基于觀測的事實改變它的操作。
[0118] 在一個實施例中,可以通過使用在經驗矩陣中存儲的數據從一個或者多個查詢詞 確定一個或者多個預測詞。可以隨后至少部分地基于預測詞控制系統。查詢詞可以是描述 當前情形的詞。預測詞可以是可能描述當前情形的詞。可以存儲同現數據作為經驗矩陣EXl 的矢量。存儲的同現數據可以隨后用于進行預測。可能需要詞表VOCl以在經驗矩陣EXl 中存儲同現數據并且利用在經驗矩陣EXl中存儲的同現數據。在一個實施例中,詞表VOCl 也可以與稱為基本矩陣RMl的另一矩陣結合使用。
[0119] 參照圖la,詞表VOCl可以包括一組不同的詞W1, w2,... Wn。詞表VOCl可以是哈 希表,該哈希表包含指向基本矩陣RMl的稀疏矢量的指針。稀疏矢量也可以稱為隨機索引 矢量(RI矢量)。因此,詞表VOCl的每個詞W 1, w2, ... Wn可以與基本稀疏矢量a2, ... an 關聯。例如詞wk(例如"會議")可以與基本稀疏矢量ak關聯。可以存儲基本稀疏矢量a。 a2, ... ak, ... an例如作為基本矩陣RMl的行。
[0120] 詞表VOCl可以是哈希表,該哈希表通過使用詞(例如wk)作為鍵來指示稀疏矢量 在基本稀疏矩陣RMl中的位置(例如行k)。
[0121] 矩陣RMl的每個基本稀疏矢量可以表示詞。例如可以將基本矢量ak解釋為以稀 疏矢量格式表示詞W k。
[0122] 每個基本稀疏矢量ak由元素 Ruk, R2,k,...,Rik,..· Rm,k構成。在一個實施例中,矩 陣RMl的基本稀疏矢量a2, ... ak,... &11可以唯一和不同。基本矩陣RMl的每行可以是 與不同詞關聯的唯一基本稀疏矢量。
[0123] 每個基本稀疏矢量ak可以具有大量零元素并且僅有少數非零元素。例如基本稀 疏矢量a k可以具有例如10000個元素 R,其中二十個元素可以非零,并且9980個元素可以 是零。
[0124] 在一個實施例中,基本稀疏矢量ak的所有元素之和可以等于零。這可以最小化存 儲器消耗,可以簡化數學運算,和/或可以增加數據處理速度。具體而言,非零元素的50% 可以等于_1(負一),并且非零元素的50%可以等于1( 一)。換而言之,元素的值可以是-1、 0或者1,并且基本稀疏矢量ak可以是三元矢量。
[0125] 每個矢量81,&2,...&,,... &11可以由在多維空間中的點表示。更確切而言,每個矢 量a2, ... ak,... 8"可以在每個矢量的起始點位于相同點(例如原點)時由在相同多維 空間中的不同結束點表示。基本稀疏矢量ak的元素 R的數目m可以例如在范圍100到IO6 中。基本稀疏矢量ak的非零元素 R的數目mnz可以在數目m的0. 1%到10%的范圍中,所 述非零元素數目mnz也在4到IO3的范圍中。增加總數m和/或非零元素數目11^可以允許 使用更大詞表VOCl和/或可以提供更可靠預測。然而增加數目m和/或mnz也可能需要更 多存儲器空間和更多數據處理能力。
[0126] Rik表示基本矩陣RMl的屬于第i列和第k行的元素。在一個實施例中,矢量可以 是三元,并且個體元素 eik的值可以是以下_1、〇或者1之一。負的非零元素 R的數目可以 等于正的非零元素 R的數目,非零元素 R的值是整數。這可能最大化數據處理速度并且最 小化存儲器使用。然而這不是必需的。例如基本稀疏矢量ak可以具有值為-0.5的十六個 元素 R和值為2的四個元素 R。
[0127] 在對矩陣RMl的矢量a2,. . . ak,. . . an進行相互比較時,可以隨機地分布非零兀 素在基本稀疏矢量ak中的位置和基本稀疏矢量ak的非零元素的值。基本稀疏矢量也可以 稱為隨機索引矢量。這一隨機性可以用高概率保證在多維空間中的表示基本稀疏矢量的點 相互不太接近。如果表示兩個不同詞的兩個點相互太接近,則這可能導致在隨后處理期間 的錯誤預測。在隨機地分布位置和值時,這也可以用高概率保證詞表VOCl的每個詞與唯一 和不同基本稀疏矢量關聯。在索引為隨機時,很可能的是與兩個不同詞關聯的基本稀疏矢 量正交或者接近正交。因此,所述基本稀疏矢量的點積以高概率等于零。詞的這一偽正交 性即使在它們由稀疏矢量表示時仍保留每個詞的唯一標識。詞的這一偽正交性可以在經驗 矩陣EXl中存儲的每個詞、事件或者唯一出現在經驗矩陣EXl中被表示為稀疏矢量的組合 時保留詞、事件和/或出現的唯一標識。例如可以按照字母表順序排列詞表的詞。
[0128] 圖Ib示出可以例如稱為"集(bag) "的若干詞的集合。集包括相互有關的兩個或 者更多不同的詞。在集中的詞的數目可以例如在范圍2到1000中。每個集也可以稱為"文 檔"。
[0129] 集表示詞的同現。集可以用來訓練系統。關于詞的同現的信息可以存儲于矩陣 EXl (圖 lc、4b)中。
[0130] 集中的詞可以例如描述在所述情形中使用的情形和/或系統。具體而言,詞可以 表示觀測的事實。
[0131] 例如第一個集BAGl可以包括詞"工作"、"上午"和"郵件"。可以例如基于在系統 的日歷中的標記來確定詞"工作"。詞"上午"也可以例如由系統的時鐘提供。詞"郵件"可 以與詞"工作"和"上午"有關,例如因為系統已經檢測到用戶已經在詞"工作"和"上午"描 述的情形中接收和/或發送了編寫的消息。
[0132] 第二個集BGA2可以包括詞"家"、"餐食"和"音樂"。可以例如在用戶攜帶的導航 單元指示檢測到的位置與稱為"家"的位置匹配時提供詞"家"。可以例如因為剛才已經經 由遞送服務向位置"家"訂購食物(例如披薩餅)而提供詞"餐食"。系統可以被布置為例 如因為用戶已經指令系統播放音樂而提供詞"音樂"。
[0133] 詞家、餐食和音樂可以例如表示在第一時刻h占主導的情形。詞家、餐食和音樂 可以相互有關。如果這一詞組合以往已經出現若干次,則它可以例如用來評估(預測)用 戶希望在家里用餐時聽音樂的可能性。例如便攜設備可以被布置為在它確定用戶正在家里 用餐時將它本身設置成音樂播放模式。
[0134] 第三個集BAG3可以包括詞"工作"、"會議"和"靜默"。可以例如基于在系統的日 歷中的標記來確定詞"工作"和"會議"。系統可以被布置為例如基于在用戶的日歷中包含的 信息提供狀態描述符"工作"。系統也可以在用戶的便攜設備的位置與工作地點的位置匹配 時確定詞"工作"。可以例如因為參加會議的用戶已經將系統設置成靜默模式而導出詞"靜 默"。具體而言,用戶可以在電話在傳入電話呼叫的情況下未生成可聽報警時將移動電話設 置成操作模式。
[0135] 現在詞工作、會議和靜默可以表示在第二時刻t2占主導的情形。如果這一詞組合 以往已經出現若干次,則它可以例如用來評估(預測)用戶希望在工作時參加會議時將他 的便攜設備設置成靜默模式的可能性。例如用戶的便攜設備現在可以被布置為在它確定用 戶正在參加會議時自動地建議設置成靜默模式。
[0136] 參照圖lc,可以將從觀測的詞的同現而導出的數據存儲為可以例如稱為"經驗矩 陣"的矩陣EXl的矢量V 1, v2, ...,vk. .. vn。詞表VOCl的每個詞W1, w2, ... wn(也)可以與 經驗矩陣EXl的稀疏矢量關聯。可以將稀疏矢量Vl,v2, ...,vk. .. Vn例如存儲為經驗矩陣 EXl的行。
[0137] 詞表VOCl可以與圖Ia中相同(哈希表)。
[0138] 經驗矩陣EXl的每個矢量可以是稀疏矢量與初始矢量的線性組合。
[0139] 具體而言,經驗矩陣EXl的每個矢量可以是基本稀疏矩陣RMl (圖la)的基本稀疏 矢量的線性組合。
[0140] 個體矢量Vk的元素 eik的數目η可以等于圖Ia中所示個體基本稀疏矢量的元素 R 的數目η。可以根據集(圖Ib)的內容執行稀疏矢量的組合。
[0141] 經驗矩陣EXl可以包含從多個集BAGUBAG2獲得的同現數據。在從集獲得的同現 數據作為稀疏矢量的線性組合存儲于經驗矩陣EXl中時,這可以表示在壓縮格式中存儲同 現數據。
[0142] 在一個實施例中,個體矢量Vk的元素 eik的數目η可以明顯小于獲得矩陣EXl中 存儲的同現數據的集的數目。
[0143] 不必在從新集添加新數據時改變元素 eik的數目η。這意味著可以通過使用從其 他集獲得的同現數據來快速和容易地更新矩陣ΕΧ1。這也意味著矩陣EXl的大小(例如行 和列的數目)即使在通過使用從其他集獲得的同現數據來更新矩陣EXl時仍然可以保持恒 定。
[0144] 然而在一個實施例中,可能不可能(僅通過使用詞表VOCl和矩陣RMl、ΕΧ1)無歧 義地確定用于更新的集中的哪些集包含給定的詞。在這一意義上,在矩陣EXl中存儲集的 同現數據可以表示一種存儲同現數據的有損方式。
[0145] 經驗矩陣EXl可以初始地是零矩陣(空矩陣),但是這不是必需的。經驗矩陣EXl 的若干矢量的初始值可以表現平滑空間變化。
[0146] 圖2圖示如何可以通過使用詞集來更新經驗矩陣ΕΧ1。詞集可以例如是圖Ib中所 示集BAGl。
[0147] 符號W1J2U具有大寫字母)表示集BAGl的詞。Wl,W2,…W n(具有小寫字母) 表不詞表VOCl的詞。通常,集中的第一詞%與詞表中的第一詞…不相同,但是有時詞%可 以可能與詞W 1相同。
[0148] 可以基于集中包含的詞更新經驗矩陣EXl的矢量。在更新期間,經驗矩陣EXl的 矢量可以例如稱為目標矢量。
[0149] 更新可以包括修改與集BAGl中的詞(例如"郵件")關聯的目標矢量(例如vP)。 集包含兩個或者更多詞W 1, W2, W3,...。在詞W1, W2, W3屬于相同集BAGl時,這指示詞W1和 W2屬于詞W3的上下文以及其它方面。
[0150] 與第一詞一起屬于集的一個或者多個其它詞可以視為屬于第一詞的上下文。詞可 以例如表示系統的狀態和/或外部條件。
[0151] 可以通過使用詞表VOCl來標識經驗矩陣EXl的與集BAGl中的詞W3關聯的目標 矢量v P。更具體而言,可以通過使用詞表VOCl來確定經驗矩陣EXl的與詞W3的值(=wp, "郵件")關聯的矢量 Vp(行)的位置。
[0152] 也可以通過使用詞表VOCl來發現表示集BAGl中的其它詞W1、W2的基本稀疏矢量 (例如a k+1和aj。
[0153] 向經驗矩陣EXl添加集BAGl中的同現數據可以包括用修改的矢量替換與集BAGl 中的詞W3關聯的(第一)目標矢量vP,該修改的矢量是(第一)目標矢量Vp與表示集BAGl 中的其它詞A、W2的基本稀疏矢量ak+1、an_i的線性組合。
[0154] 在一個實施例中,基本稀疏矢量ak+1、Blri可以與目標矢量V p簡單地求和。換而言 之,在線性組合中使用的每個基本稀疏矢量ak+1、an_i的加權系數可以等于一。然而基本稀 疏矢量的加權稀疏也可以從一偏離以便加強或者減少所述基本矢量表示的詞的貢獻。加權 系數可以例如在范圍〇. 1到10中。
[0155] 圖2示出在基本矢量ap之上繪制的交叉。在通過使用基本矩陣RMl的表示矢量 來更新經驗矩陣EXl時,可以組合矢量從而表示詞W 3的基本矢量ap未對與所述詞W3關聯 的修改的目標矢量Vp有貢獻。詞總是與它本身同現。添加詞的自有基本矢量的貢獻不可 能向經驗矩陣添加有意義的新數據。
[0156] 可以通過用修改的矢量替換第二目標矢量Vlri來修改表示集BAGl中的第二詞(工 作,W 2)的第二目標矢量(例如圖Ic中所示Vlri),該修改的矢量是第二目標矢量Vp與表示 集BAGl中的其它詞W 1 (上午)、W3 (郵件)的基本稀疏矢量ak+1、aP的線性組合。
[0157] 如果集包含第三詞,則可以通過用修改的矢量替換第三目標矢量vk+1來修改表示 集BAGl中的第三詞(上午,W 1)的第三目標矢量(例如圖Ic中所示vk+1),該修改的矢量是 第三目標矢量vk+1與表示集BAGl中的其它詞W 2 (工作)、W3 (郵件)的基本稀疏矢量an_i、aP 的線性組合。
[0158] 如果集包含多于三個詞,則可以通過分別添加集的其它詞的貢獻來更新與每個附 加詞關聯的目標矢量。
[0159] 可以分別通過使用第二個集中的詞以及通過使用任何后續集中的詞來更新矩陣。
[0160] 集BAGl中的兩個或者更多詞W1, W2, W3,...可以由系統(系統詞)和/或客戶端 (客戶端詞)提供。系統詞可以例如是描述時間和/或位置的詞。"客戶端"可以例如是人 類用戶、應用或者網絡服務。客戶端詞可以例如是從人類用戶和/或從運行軟件應用獲得 的詞。詞可以例如描述系統的狀態。
[0161] 圖3a示出通過使用經驗矩陣EXl來進行預測。經驗矩陣EXl可以例如是圖Ic或 者4b中所示矩陣。
[0162] 可以通過使用經驗矩陣EXl來預測表示系統的狀態的一個或者多個詞。預測方 法可以包括接收一個或者多個查詢詞Q 1, Q2,...(圖3c示出通過使用兩個查詢詞來進行預 測)。查詢詞Q1, Q2可以例如由系統和/或由客戶端提供。在一個實施例中,客戶端可以通 過發送一個或者多個查詢詞Q1, Q2來發起預測過程。可以通過使用詞表VOCl來發現經驗矩 陣EXl的與查詢詞Q1 (例如上午)關聯的矢量vk。在單個查詢詞Q1的情況下,可以使用關 聯矢量 Vk作為表示查詢的查詢矢量QVl。
[0163] 現在可以比較查詢矢量QVl與經驗矩陣EXl的矢量Vl,v2, · ... Vn以便標識經驗矩 陣EXl的與查詢矢量QVl基本上相似的一個或者多個矢量Vl,v 2, .... Vn。在比較期間,經 驗矩陣EXl的矢量Vl,v2,.... Vn可以稱為候選矢量。可以確定和提供與查詢矢量QVl具有 最小差的矢量關聯的一個或者多個詞作為預測輸出0UT1。預測方法可以包括確定在查詢矢 量QVl與經驗矩陣EXl的每個矢量V 1, v2,--vn之間的差。
[0164] 圖3b圖示多維空間中在查詢矢量QVl和經驗矩陣EXl的少數矢量的起始點(例 如在原點0RIG1)重合時的這些矢量。DM和DM'表示多維空間的兩個維度(如以上討論 的那樣,空間的維度數目可以例如是IO 4或者更高)。如果兩個矢量在多維空間中具有至少 近似相同的長度和至少近似相同的方向,則這可以被解釋為指示所述兩個矢量與在基本上 相似上下文中出現的兩個詞關聯。如果所述詞之一是用于系統的狀態的有效描述符,則可 能的是另一詞也是用于系統的狀態的有效描述符。
[0165] DV (QVl,v)表示在查詢矢量QVl與經驗矩陣EXl的矢量V之間的差矢量。可以基 于查詢矢量QVl和經驗矩陣EXl的矢量V確定指示在查詢矢量QVl和經驗矩陣EXl的矢 量V之間的差的值。"差"可以例如由在查詢矢量QVl和經驗矩陣EXl的矢量V之間的角 度Θ表達。"差"可以例如由查詢矢量QVl和經驗矩陣EXl的矢量V之間的角度Θ的余 弦COS ( Θ )表達。可以通過使用等式I V I I QVl I COS ( Θ )= V · QVl根據點積計算兩個矢量 V與QVi之間的角度θ的余弦(cos(0))。差可以例如由差矢量DV的歐幾里得長度|dv 表達。差可以例如由矢量的點積QVl · V表達。
[0166] 差可以例如由差矢量Dv的歐幾里得長度|dv|的平方|dv|2表達。差可以例如被 表達為差矢量DV的出租車長度(曼哈頓長度)表達。也可以在定義差矢量DV的長度時使 用其它度量。也可以在評估在矢量之間的差時使用其它度量。
[0167] 現在可以基于查詢矢量QVl與經驗矩陣EXl的矢量之間的差從詞表VOCl選擇一 個或者多個預測輸出詞。如果查詢矢量QVl與候選矢量之間的差滿足選擇標準,則可以提 供與所述候選矢量關聯的詞作為預測詞。
[0168] 可以相互比較差DV以便發現與查詢矢量QVl偏離最小距離DV的稀疏矢量或者矢 量。具體而言,差DV可以被排序。可以提供與具有最小距離DV的稀疏矢量關聯的詞作為 預測方法的輸出0UT1。該輸出可以稱為預測。也可以提供與具有最小距離DV的稀疏矢量 關聯的若干詞作為輸出OUTl。例如可以提供與具有最小距離DV的候選矢量關聯的N p個詞 作為輸出OUTl,其中整數Np可以例如在范圍2到10中。
[0169] 在圖3a的示例中,最小差值(|DV|2 = 6)與矢量VP、Vk和vn_2關聯。如果將數目 Np設置為等于三,則可以提供詞"郵件"、"會議"和"靜默"作為預測詞。
[0170] 已經知道查詢詞QpQ2描述情形。可以將查詢詞QpQ2從預測詞OUTl排除。可以 在比較查詢矢量QVl與經驗矩陣EXl的其它矢量時將與查詢詞%、Q 2關聯的矢量從比較中 排除。
[0171] 可以將一個或者多個預測詞解釋為對條件問題"如果已經通過一個或者多個(已 知)查詢詞%、Q2描述了情形,則哪一個或者哪些預測詞OUTl可能描述該情形"的答案。
[0172] 在圖3a的示例中,預測詞是如從單個查詢詞Ql "上午"確定的"郵件"、"會議"和 "靜默"。這些預測詞中的一個或者多個預測詞可以用于控制系統。
[0173] 例如系統可以在詞"上午"可以描述的情形中自動地激活用于接收和發送電子郵 件的應用。例如系統可以在詞"上午"可以描述的情形中自動地將它本身設置為靜默操作 模式。
[0174] 可以向進行查詢的客戶端傳達回一個或者多個預測詞。可以向不同客戶端傳達一 個或者多個預測詞。系統可以被布置為利用所有預測詞以用于控制,或者系統可以被布置 為利用預測詞的較小子集以用于控制,其中可以忽略一個或者多個預測詞。
[0175] 圖3c示出通過使用兩個或者更多查詢詞Ql、Q2來進行查詢。增加單個查詢的查 詢詞Q1、Q2的數目可以提高一個或者多個預測詞將會是用于情形的有效描述符的概率。在 這一示例中,查詢由兩個詞Q1、Q2構成。可以通過使用詞表VOCl來發現經驗矩陣EXl的與 查詢詞Q 1(例如上午)關聯的第一矢量vk。可以通過使用詞表VOCl來發現與查詢詞Q2 (例 如工作)關聯的第二矢量Vlri。現在可以通過組合與查詢詞Q1、Q2關聯的矢量V1^V lri來確 定查詢矢量QVl。例如可以確定查詢矢量QVl作為與查詢詞Ql、Q2關聯的矢量vk、V lri的 線性組合。具體而言,可以確定查詢矢量QVl作為矢量VpVlri之和。可以通過從矢量v k和 Vlri選擇具有最大絕對值的元素為查詢矢量QVl或者通過另一種組合矢量的方法來形成查 詢矢量QV1。如以上對于圖3a的情況描述的那樣,可以隨后通過比較查詢矢量QVl與經驗 矩陣EXl的矢量 Vl,v2, ... Vn來確定預測詞。
[0176] 可以隨后通過如下方法確定預測詞,該方法包括:
[0177] -確定查詢矢量QVl與經驗矩陣EXl的第一矢量之間的第一差,
[0178] -確定查詢矢量QVl與經驗矩陣EXl的第二矢量之間的第二差,并且
[0179] -比較第一差與第二差。
[0180] 可以將經驗矩陣EXl的與查詢詞Ql、Q2關聯的矢量vk+1、Vlri從比較中排除。
[0181] 在這一情況下,經驗矩陣EXI的矢量Vp表現為提供具有最短長度(IdvI 2 = 2)的 差矢量DV。在這一情況下,與矢量Vp對應的預測是"郵件"。
[0182] 也可以提供與查詢矢量具有最短距離矢量DV的Np個矢量關聯的若干詞作為預 測。數目N p可以例如是三。在這一情況下,可以提供詞"郵件"、"會議"和"靜默"作為預測 。
[0183] 圖Ia至2中所示更新方法基于通過不同基本稀疏矢量ap a2,--an表示個體詞 W1, w2,... Wn。圖4a和4b圖示另一種在經驗矩陣EXl中存儲同現數據的方式。圖4a和4c 中所示更新方法基于通過基本稀疏矢量表示集。
[0184] 圖4a示出三個詞集BAG1、BAG2、BAG3。集可以例如與圖Ib中相同。
[0185] 每個集BAG1、BAG2、BAG3可以與基本稀疏矢量關聯。每個集BAG1、BAG2、 BAG3可以與不同基本稀疏矢量bi,b2,b3關聯,從而單個集(例如BAGl)中的所有詞與相同 基本稀疏矢量(例如Id 1)關聯。
[0186] 基本稀疏矢量Id1, b2, b3可以滿足與圖Ia中所示基本稀疏矢量相同的標準。
[0187] 圖4b示出通過使用從集BAGl導出的同現數據來更新經驗矩陣EX1。集包含兩個 或者更多詞W 1, W2, W3 (例如詞"上午"、"工作"和"郵件")。集BAGl中的每個詞W1, W2, W3現 在由相同基本稀疏矢量(例如bj表示。集BAGl中的詞WpW2, W3與詞表VOCl的詞wP,wk+1, Wlri相同。這允許發現經驗矩陣EXl的與集BAGl中的詞關聯的矢量Vp^kmVlri。這些矢量 可以稱為目標矢量。
[0188] 經驗矩陣EXl可以初始地是零矩陣(空矩陣),但是這不是必需的。經驗矩陣EXl 的若干矢量的初始值可以表現平滑空間變化。矩陣EX可以已經包含已經作為矩陣EXl的 先前矢量與稀疏矢量的線性組合而獲得的矢量。
[0189] 現在可以向與集BAGl中的詞關聯的每個目標矢量vP,vk+1,V lri添加表示集BAGl 的基本稀疏矢量卜。相同基本稀疏矢量匕現在是集BAG中的所有詞公共的。可以向與集 BAGl中的詞關聯的所有目標矢量添加相同基本稀疏矢量、。一般而言,可以形 成與集BAGl中的詞關聯的修改的目標矢量作為與所述詞關聯的目標矢量與基本稀疏矢量 h的線性組合。第二個集BAG2可以由不同基本稀疏矢量(例如b2)表示。現在可以向與 第二個集BAG2中的詞關聯的每個目標矢量添加表示集BAG2的基本稀疏矢量13 2。第三個集 BAG2可以由不同基本稀疏矢量(例如b3)表示。現在可以向與第三個集BAG3中的詞關聯 的每個目標矢量添加表示集BAG3的基本稀疏矢量b 3。
[0190] 因此,可以通過使用多個集BAG1、BAG2、BAG3的內容來更新經驗矩陣EX1。經驗矩 陣EXl的若干矢量可以最終地是不同稀疏矢量bp b2、b3的線性組合。
[0191] 圖4c示出在已經通過使用表示集BAG1、BAG2、BAG3的不同基本稀疏矢量b3而在 經驗矩陣EXl中存儲集的同現數據之后獲得的經驗矩陣EX1。矩陣EXl的所有元素 eik之 和可以等于零。eik表示經驗矩陣EXl的屬于第i列和第k行的元素。元素 eik的值可以是 整數以便最大化數據處理速度。元素 eik的值不限于范圍-1到1。
[0192] 通過使用圖4b中所示方法而確定的經驗矩陣EXl可以用于通過使用圖3a至3c 中所示方法來確定預測詞。
[0193] 經驗矩陣EXl可以具有與參照圖Ic討論的相同的列數目(m)和相同的行數目 (m)。
[0194] 經驗矩陣EXl的個體元素 eik可以具有整數值。整數值還可以大于1(例如2)或 者小于_1 (例如_2)。
[0195] 在使用圖4a和4b中所示更新方法時、即在將集中的所有詞與公共稀疏矢量關聯 時,與圖2中所示更新方法比較,可以用更均勻方式在所得經驗矩陣EXl的列之中分布經驗 矩陣EXl的非零元素值。這可以例如有助于在經驗矩陣EXl中存儲值和/或比較查詢矢量 與經驗矩陣EXl的矢量。
[0196] 在使用圖2中所示更新方法時、即在將集中的詞與詞表定義的稀疏矢量關聯時, 每個詞與如詞表VOCl指定的基本矩陣RMl (圖1)的稀疏矢量關聯。如果某個詞在集中很 頻繁地出現,則這有時可以導致高元素值在經驗矩陣EXl中出現。
[0197] 圖5a至5c示出從緩沖器向單個集收集詞。可以從一個或者多個客戶端和/或從 系統接收詞。接收的詞可以(暫時地)存儲于一個或者多個緩沖器中。可以從緩沖器向集 收集詞。可以通過使用集的內容來更新經驗矩陣。隨后可以通過使用第二(不同)集的內 容來更新經驗矩陣。
[0198] 在圖5a中,集中的詞WutPW2ItnW 3Itl可以表示相同時刻&。集可以包含表示單個 時刻的詞。
[0199] 然而可以通過使用如下集向經驗矩陣添加關于時間關系的信息,該集包含表示系 統在兩個或者不同時間時刻h、t 2的狀態的詞。通過這一種時間組合(時間"配對")而收 集的集也可以例如用于評估如果系統先前在第一狀態中則針對連續第二狀態的概率。
[0200] 在圖5b中,集的詞Widdt2可以表示兩個或者更多時刻V t 2。單個集可以包含表示兩個或者更多不同時刻h、t2的詞。在圖5b的情況下,在單個集 中的詞數目可以大于表示單個時刻A或者t 2的詞數目。
[0201] 在時刻h與t2之間的時間段可以稱為時間跨度。
[0202] 在圖5c中,集中的詞Wutl, W2, tl,W3, tl Wut2J2, t2, W3, t2可以表示兩個或者更多時刻 h、t2。集可以包含表示兩個或者更多不同時刻Vt2的詞。可以例如在目標是收集關于詞 之間的時間關系的信息時使用圖5b和5c中所示的詞收集。可以例如在目標是收集關于在 系統的狀態之間的時間關系的信息時使用圖5b和5c中所示詞收集。
[0203] 可以例如在無關于詞的相關性的較早知識和/或無關于詞的時間關系的較早知 識時使用圖5b的方法。可以例如在關于詞的因果或者時間關系的一些先前知識可用時使 用圖5c的方法。例如如果已知詞W 2, t2的值依賴于詞Wutl的值則可以向相同集收集詞W1, ?,^^時刻^晚于時刻心。
[0204] 詞Wutl可以例如描述在時間h的天氣條件(例如在時間14 :00 "下雨"),并且詞 W2,^可以例如描述在用戶的日歷中的標記(例如在18 :00 "體育運動")。可以例如從內部 服務接收占主導的天氣條件。在這一情況下,在14 :00占主導的天氣條件可以對用戶是否 將真正地在18 :00時在戶外進行體育運動具有因果影響。在這一意義上,向相同集中收集 較早詞"下雨"和較晚詞"體育運動"可以是有用的。
[0205] 圖6示出用于向經驗矩陣存儲同現數據的系統。可以例如從時鐘接收描述時間的 系統詞。可以例如從GPS導航單元(GPS意味著全球定位衛星系統)接收描述(便攜設備 的)位置的系統詞。可以從加速度計接收描述(便攜)設備的加速度的系統詞。也可以從 其它物理傳感器接收詞。可以從一個或者多個客戶端接收客戶端詞。
[0206] 術語"拉取"可以意味著從傳感器向緩沖器的數據通信可以進行以使得通信不是 由傳感器發起的。在一個實施例中,無論何時請求,傳感器可以提供系統詞。在一個實施例 中,來自傳感器的數據通信未開始更新經驗矩陣。
[0207] 術語"推送"可以意味著從客戶端向緩沖器的數據通信可以由客戶端發起。在一 個實施例中,來自客戶端的數據通信也可以發起更新經驗矩陣。
[0208] 術語"刷新"可以意味著通過使用一個或者多個詞集來更新經驗矩陣。可以從緩 沖器的內容收集集。
[0209] 如以上描述的那樣(參見與圖3a_圖3c有關的討論),也可以在提供預測時使用 經驗矩陣。
[0210] 圖7a示出用于處理同現數據的子系統400。子系統400可以被布置為在經驗矩陣 EXl中存儲同現數據。子系統400可以被布置為基于在經驗矩陣EXl中存儲的同現數據提 供預測。
[0211] 子系統400可以包括用于接收和存儲詞的緩沖器BUF1、用于向集收集詞的收集單 元WRU、用于存儲集的詞的存儲器MEM1、用于提供基本稀疏矢量的稀疏矢量供應SUP1、用 于存儲詞表VOCl的存儲器MEM3--該詞表存儲于存儲器MEM3中、用于修改經驗矩陣EXl 的矢量和/或用于形成查詢矢量QVl的組合單元LCU1、用于存儲經驗矩陣EXl的存儲器 MEM2--該經驗矩陣EXl存儲于存儲器MEM2中、用于存儲查詢矢量QVl的存儲器MEM4和 /或用于比較查詢矢量QVl與經驗矩陣EXl的矢量的差分析單元DAUl。子系統400可以可 選地包括用于存儲查詢Ql和/或預測OUTl的緩沖器BUF2和/或緩沖器BUF3。
[0212] 可以從一個或者多個傳感器NAVUG1、從時鐘CLKl和/或從一個或者多個客戶端 Cl接收詞。可以通過收集器單元WRUl將詞收集到個體集。可以在存儲器MEMl中收集(即 暫時地存儲)集中的詞。可以從存儲器MEMl向稀疏矢量供應SUPl傳達每個集的內容。稀 疏矢量供應SUPl可以被配置為提供用于更新經驗矩陣EXl的基本稀疏矢量。
[0213] 可以向可以被配置為(例如通過形成線性組合)修改經驗矩陣EXl的矢量的組合 單元LCUl傳達每個集和基本稀疏矢量的內容。具體而言,組合單元LCUl可以被配置為向 每個集中的詞指定的目標矢量添加基本稀疏矢量。組合單元LCUl可以被布置為通過形成 矩陣(EXl)的第一矢量與一個或者多個稀疏矢量(a 2,bi)的線性組合來修改第一矢量(V1)。
[0214] 組合單元IXUl可以被布置為在硬件級執行矢量求和。組合單元IXUl的電和/或 光電路可以被布置為同時修改與單個集中的詞關聯的若干目標矢量。這可以允許高數據處 理速率。
[0215] 經驗矩陣EXl可以存儲于MEM2中。詞可以通過使用在存儲器MEM3中存儲的詞表 VOCl來與經驗矩陣EXl的矢量關聯。矢量供應SUPl也可以被配置為使用詞表VOCl (或者 不同詞表)以便例如提供與集中的詞關聯的基本稀疏矢量。
[0216] 子系統400可以包括組合單元IXUl或者被配置為基于查詢的詞Ql形成查詢矢 量QVl的又一組合單元IXU2 (未示出)。可以通過組合經驗矩陣EXl的矢量來形成查詢矢 量QV1。可以將查詢矢量QVl形成為經驗矩陣EXl的矢量的線性組合。可以通過使用詞表 VOCl來發現經驗矩陣EXl的相關矢量的位置。查詢矢量QVl可以存儲于存儲器MEM4中。
[0217] 差分析單元DAUl可以被配置為比較查詢矢量QVl與經驗矩陣EXl的矢量。差分 析單元DAUl可以被布置為確定在經驗矩陣EXl的矢量與查詢矢量QVl之間的差。差分析 單元DAUl可以被布置為對針對若干矢量確定的差進行排序。差分析單元DAUl可以被配置 為基于所述比較來提供預測0UT1。
[0218] 可以將查詢詞Ql、Q2本身從預測詞排除。
[0219] 差分析單元DAUl可以被布置為在硬件級比較矢量。組合單元IXUl的電和/或光 電路可以被布置為同時針對經驗矩陣EXl的若干矢量確定定量差描述符(DV)。這可以允許 高數據處理速率。
[0220] 子系統400可以包括用于控制子系統400的操作和/或用于控制系統500 (見圖 11)的操作的控制單元CNT。控制單元CNTl可以包括一個或者多個數據處理器。子系統 400可以包括用于存儲程序代碼PROGl的存儲器MEM5。程序代碼PROGl可以在由一個或者 多個數據處理器執行時用于執行本發明的方法。
[0221] 可以例如從一個或者多個客戶端C1、從一個或者多個傳感器G1、從位置傳感器 NAVl和/或從時鐘CLKl接收詞。可以向客戶端Cl或者向不同客戶端傳達一個或者多個預 測詞OUTl。客戶端Cl也可以從緩沖器BUFl取回系統詞以便例如形成查詢Ql。
[0222] 圖7b通過示例示出如何可以基于在傳感器及其環境之間的物理交互來提供詞。 傳感器Gl可以通過監視它的物理環境來提供一個或者多個電或者光傳感器信號S tl。該監 視包括與物理環境被動或者主動交互。例如在被動交互的情況下,麥克風或者光傳感器可 以接收聲或者光波(并非由系統發起)。信號Stl可以例如是表示麥克風接收的聲波的量值 和頻率的模擬信號。信號S tl可以例如是表示加速度傳感器檢測到的振動的量值和頻率的 模擬信號。
[0223] 在主動交互的情況下,傳感器Gl可以例如發送可以從環境的表面反射的超聲或 者紅外線光。例如可以例如基于麥克風或者光傳感器接收的反射的聲或者光波估計與表面 的距離。可選地,可以通過在傳感器接口 GNIl中處理(模擬)信號Stl來提供數字傳感器 信號S1。數字傳感器信號S 1可以例如包括麥克風接收的聲音的頻譜分析。數字傳感器信 號S1可以包括圖像傳感器捕獲的數字圖像。
[0224] -些傳感器可以直接提供可以直接用作系統詞的量化的數字信號。例如微開關鄰 近傳感器可以或者操縱桿的數字編碼器可以直接提供表示系統的狀態的數字詞。例如微開 關可以提供指定某物是否正在按壓開關的詞" 1"或者詞"〇"。
[0225] 可選地,量化器QUl可以被布置為基于數字傳感器信號S1提供定量的傳感器信 號S 2。如果需要則可以通過使用可以以后修改的映射函數來執行量化。例如范圍從0到 127 (128個不同值)的聲音音量值可以被映射成較少數目的值(例如0、1、2)。
[0226] 可選地,量化器QUl可以包括被布置為將信號S1分類成兩個或者更多不同類的分 析器。量化器QUl可以是分類器。量化器QUl可以提供指定信號類的值。例如量化器 QUl可以被布置為提供值,這些值基于頻譜分析來指定聲音的類(例如"0"=馬達、1 "音 樂"、"2"人聲)。
[0227] 量化器QUl提供的值可以用作為用于系統400的輸入詞。可選地,該值可以被轉 換成(不同)詞以便例如使它對于人類用戶可更容易理解。
[0228] 量化的傳感器信號S2可以可選地被轉換成不同詞,該不同詞以自然語言(例如用 英語或者用芬蘭語)描述傳感器的物理環境。信號S2可以通過使用詞典被轉換成詞。詞 典的內容可以固定或者它可以在以后階段被更新。描述聲音的性質的數值詞(〇,1,2)可以 例如通過使用以下詞典被轉換成自然語言的詞馬達、"1"- "音樂"、"2"_ "語音"。 描述聲音的音量的數值詞(〇, 1,2)可以例如通過使用以下詞典被轉換成自然語言的詞: "靜默"、" 1"- "正常"、"2"- "響亮"。
[0229] 可選地,標記器單元MRKl可以被布置為通過添加使詞唯一并且不同于其它詞的 標識符來修改詞。標識符可以例如指定傳感器Sl的標識或者所述詞指定的數量的類型。例 如在詞是描述聲音音量的數值詞(例如1"和"2")時,前綴"音量"可以被附著到詞 以便形成例如詞"音量0"。
[0230] 因此,傳感器Sl可以被布置為通過使用以上描述的一個或者多個方法步驟來提 供傳感器詞(系統詞)。
[0231] 在一個實施例中,從加速度傳感器接收信號的分析單元可以被布置為確定例如便 攜設備是否靜止、由步行者攜帶、由跑步者攜帶或者在移動車輛中被攜帶。分析單元可以提 供描述這些不同狀態的詞、例如"靜止"、"步行"、"跑步"、"行進"。加速度傳感器可以例如是 電容或者壓電加速度傳感器。
[0232] 然而從傳感器Gl獲得的信號無需被轉換成具有清楚語義含義的傳感器詞、即未 必使用詞典THESA1。在一個實施例中,從加速度傳感器接收信號的分析單元可以被布置為 提供描述不同加速度條件的傳感器詞、例如"加速度A"、"加速度B"和"加速度C"。可以操 作包括子系統400和傳感器Gl的系統500,從而即使傳感器詞的語義含義未知,系統500仍 然可以進行成功預測。
[0233] 可以呈現傳感器Gl提供的詞例如作為包含方案和方案特有部分的統一資源標識 符(URI)。例如使用加速度傳感器而提供的詞可以例如是"運動://移動"或者"運動:// 靜止",其中第一部分"運動"是方案,并且第二部分"移動"或者"靜止"是方案特有部分。 部分可以被符號"://"分離。通過使用加速度傳感器而提供的詞也可以例如是"定向:// 堅直"或者"定向://水平"。
[0234] 參照圖7a至7c,稀疏矢量供應SUPl可以例如通過從存儲器(表)取回先前生成 的稀疏矢量和/或通過實時生成稀疏矢量來提供稀疏矢量。
[0235] 參照圖7c,稀疏矢量供應SUPl可以包括用于存儲與詞表VOCl (例如見圖la)的 詞關聯的基本稀疏矢量a17 a2,. . . an的存儲器。基本稀疏矢量a2,. . . an可以形成基本稀 疏矩陣RMl。基本稀疏矢量&1,a2,... an可以存儲于稀疏矢量供應SUPl的存儲器中。備選 地或者附加地,可以在詞在集中第一次被使用時實時生成與所述詞關聯的個體基本稀疏矢 量。基本稀疏矢量可以例如由隨機數生成器生成。
[0236] 可以例如在執行圖Ia至2中所示更新方法時使用圖7c的配置。
[0237] 參照圖7d,稀疏矢量供應SUPl可以包括用于存儲多個先前確定的基本稀疏矢量 I^b2,...的存儲器。在新集到來時,可以生成觸發信號,并且可以改變計數器COUNl的計 數值。因此,可以從存儲器的被計數器指示的位置取回下一基本稀疏矢量。因此,每個集將 被指派不同基本稀疏矢量。相同基本稀疏矢量可以如在圖4a和4b的更新方法中描述的那 樣表示所述集的每個詞。
[0238] 參照圖7e,新基本稀疏矢量bk可以每當新集到來時由隨機數生成器RVGUl生成。 因此,每個集將被指派不同基本稀疏矢量(生成兩個相同基本稀疏矢量的概率將可忽略不 計)。相同基本稀疏矢量可以如在圖4a和4b的更新方法中描述的那樣表示所述集的每個 。
[0239] 參照圖7f,系統500可以包括用于存儲同現數據和/或用于提供預測的子系統 400。
[0240] 系統可以被配置為:
[0241] -提供與情形關聯的一個或者多個查詢詞,
[0242] -通過使用經驗矩陣和所述一個或者多個查詢詞來進行預測,并且
[0243] -基于所述預測來控制所述系統的操作。
[0244] 系統500可以可選地包括用于提供系統詞的一個或者多個傳感器Gl,這些系統詞 例如描述系統的狀態或者系統的環境的性質。系統500可以可選地包括用于提供時間數據 的時鐘CLK1。系統500可以可選地包括用于提供位置數據的位置檢測器NAV1。位置檢測 器可以例如是GPS導航單元。
[0245] 同現數據可以如以上描述的那樣存儲于經驗矩陣EXl中。
[0246] 客戶端Cl可以向子系統400發送查詢Q1。查詢Ql可以例如包括人類用戶經由用 戶接口 501從應用APPl和/或從系統500的傳感器Gl提供的詞。查詢Ql可以例如包括 通過互聯網服務取回的詞(例如天氣信息)。子系統400可以如以上描述的那樣基于查詢 Ql提供一個或者多個預測詞0UT1。系統500可以被配置為基于預測OUTl啟動和/或停止 應用APPl、APP2。可以基于預測OUTl控制系統500的操作。預測OUTl可以例如用作為用 于web瀏覽器的輸入。系統500可以被配置為基于預測OUTl在用戶接口 501的顯示器上 顯示信息(用戶接口管理)。系統500可以被配置為基于預測OUTl設置操作模式。系統 500可以被配置為基于預測OUTl向不同應用和/或單元分配數據處理能力。系統500可以 被配置為基于預測OUTl啟動和/或停止系統的功能(物理)單元(例如GPS導航單元或 者音頻放大器)的操作。
[0247] 可以基于從系統500的第二設備獲得的詞控制系統500的第一設備的操作。例如 第一設備可以由用戶(第一個人)攜帶,并且第二設備可以由第二個人攜帶。第二個人可 以例如是第一個人的家庭成員、好友或者同事。查詢Ql可以包括與第二設備的狀態有關和 /或與第二個人的日歷有關的一個或者多個詞。系統現在可以基于查詢Ql提供預測OUTl。 系統可以基于預測OUTl提議激活功能。
[0248] 例如如果第二設備已經被設置成靜默模式,則系統500可以基于預測來建議聯系 第二個人的優選方式可以例如是SMS消息或者電子郵件消息而不是進行電話呼叫。經驗矩 陣EXl可以存儲同現數據,該同現數據指示用于進行電話呼叫的嘗試在第二設備已經被設 置成靜默模式時幾乎從未成功。經驗矩陣EXl可以存儲同現數據,該同現數據指示第二設 備的用戶即使在第二設備已經被設置成靜默模式時有時也已經對電子郵件消息立即做出 響應。因此,在第一設備的用戶嘗試向第二個人進行電話呼叫時,系統500可以提議激活用 于向第二設備發送消息(例如SMS消息或者電子郵件)的應用。
[0249] 圖8a至8c示出用于通過使用預測來控制通信系統的操作的示例。
[0250] 可以通過使用圖8a中所示集BAG4至BAG9來更新系統500的經驗矩陣EX。在這 一示例中,集BAG4和BAG7包含詞"會議"、"個人A "和"靜默模式"。集BAG5和BAG8包含 詞"會議"、"個人B "和"與個人C的電話會議"。集BAG6和BAG9包含詞"會議"、"個人C" 和"正常模式"。集BAG4-BAG9也包含指定時間和當周的日子的詞。
[0251] 參照圖8b,系統500可以例如基于在日歷中的標記來確定與個人A的會議被安排 在9:00開始。基于經驗,詞"會議"和"個人A"經常與詞"靜默模式"一起出現。這一同現 數據已經存儲于經驗矩陣EXl中。系統500的客戶端可以形成包含詞"9 :00"、"會議"、"個 人A"的查詢Ql。子系統400可以通過使用圖8a的包括同現數據的經驗矩陣EXl來基于查 詢Q1"提供預測。在這一示例中,子系統400提供的預測可以例如包括詞"靜默模式"。查 詢Ql的詞指定的時間和/或日期也可以對預測結果具有影響。例如具體時間和/或日期 召開的會議可以表現為例如與"播放視頻"關聯。然而在這一示例中,將集的日期和時間分 布為使得仍然不可能檢測該種類的關聯。
[0252] 在會議將要開始時(例如在時間8 :59),系統500可以提議將操作模式("簡檔") 變成靜默模式以便例如避免傳入電話呼叫干擾會議。可以向用戶顯示一個或者多個信息字 段F1-F4。字段Fl可以提議變成靜默模式。用戶例如通過觸摸(虛擬)鍵Bl或者B2來 接受或者拒絕提議。在一個實施例中,可以省略鍵B2。如果用戶在預定時間段內未觸摸鍵 B2,則系統可以自動變成靜默模式。在一個實施例中,可以省略鍵B1。如果用戶未觸摸鍵 B1,則系統可以繼續在正常模式中操作。在一個實施例中,可以省略兩個鍵B1、B2。用戶可 以先前已經授權系統基于預測自動地設置操作模式。
[0253] 字段F2-F4可以顯示輔助信息。字段F3可以可選地顯示例如實際時間。字段F2 可以可選地顯示例如下一相關事件(例如與個人A的會議)。字段F4可以可選地顯示例 如日歷視圖。除了設置操作模式之外,系統500也可以基于預測來控制顯示字段F1-F4和 /或顯示鍵Bl、B2。
[0254] 歸因于基于預測來控制操作,用戶現在可以通過僅觸摸一個鍵來將系統設置成靜 默模式。在一個實施例中,用戶無需為了將系統設置靜默模式而進行任何操作。
[0255] 沒有預測的情況下,用戶可能需要從系統的菜單結構尋找適當菜單以便將系統設 置成靜默模式。通常,這一操作將需要在用戶接口 501的菜單結構的菜單中進行和確認若 干選擇。
[0256] 參照圖8c,系統500可以例如基于在日歷中的標記來確定與個人B的會議是否被 安排在13 :00開始。
[0257] 基于經驗,詞"會議"和"個人B"經常與詞"與個人C的電話會議"一起出現。這 一同現數據已經存儲于經驗矩陣EXl中。
[0258] 系統500的客戶端可以形成包含詞"9 :00"、"會議"、"個人B"的查詢Q1。子系統 400可以通過使用圖8a的包括同現數據的經驗矩陣EXl來基于查詢Q1"提供預測。在這一 示例中,子系統400提供的預測可以例如包括詞"與個人C的電話會議"。在會議即將開始 時(例如在時間12 :59),系統500可以提議開始與個人C的電話會議。可以向用戶顯示一 個或者多個信息字段F1-F4。字段Fl可以提議開始與個人C的電話會議。用戶例如通過觸 摸(虛擬)鍵Bl或者B2來接受或者拒絕提議。
[0259] 如果用戶接受提議,則系統可以自動地開始電話會議。這可以包括自動地激活用 于捕獲用戶的視頻圖像的相機模塊。這可以包括(自動地)打開與在遠程位置的個人C的 接口的視頻通信鏈路和/或音頻通信鏈路。
[0260] 在一個實施例中,可以省略鍵B2。如果用戶在預定時間段內未觸摸鍵B2,則系統 可以自動地打開遠程通信鏈接。在一個實施例中,可以省略鍵B1。如果用戶未觸摸鍵B1, 則系統未打開通信鏈路。在一個實施例中,可以省略兩個鍵B1、B2。用戶可以先前已經授 權系統自動地打開通信鏈路。
[0261] 歸因于基于預測來控制操作,用戶可以通過僅觸摸一個鍵來打開通信鏈路。在一 個實施例中,用戶無需為了打開通信鏈路而進行任何操作。
[0262] 沒有預測的情況下,用戶可能需要從系統的菜單結構尋求適當菜單以便打開遠程 通信鏈路。通常,這一操作將需要在用戶接口 501的菜單結構的菜單中進行和確認若干選 擇。
[0263] 圖8d示出用于更新經驗矩陣EXl和用于基于預測來控制系統的方法步驟。在步 驟705中,可以在系統的存儲器中存儲安排的事件或者實際事件。具體而言,用戶或者另 一個人可以例如經由接口 501向存儲器添加日歷事件。在步驟710中,用戶或者另一個人 可以設置系統的與在步驟705中提到的事件關聯的操作模式。在步驟715中,用戶或者另 一個人可以啟動和/或停止與在步驟705中提到的事件關聯的一個或者多個應用。在步驟 720中,可以將描述事件、操作模式和/或應用的詞收集到集中。可以通過使用集來更新系 統500的經驗矩陣EX1。可以在這一步驟之前已經存儲表示先前事件的同現數據作為矩陣 EXl的(稀疏)矢量、即矩陣無需在步驟720之前變空。可以重復步驟705-720若干次以便 收集與若干不同事件有關的同現數據。
[0264] 在步驟750中,系統可以形成包括描述事件的詞的查詢Q1。查詢Ql也可以包括 指定與事件關聯的附加信息、例如與事件關聯的個人的標識符的詞。在步驟755中,子系統 400可以通過使用查詢Ql和經驗矩陣EXl中先前存儲的矢量來提供預測。在步驟760中, 系統500可以例如提議啟動和/或停止一個或者多個應用并且/或者它可以提議基于預測 來設置操作模式。
[0265] 在步驟765中,系統可以請求來自用戶的用于執行在步驟760中提議的動作的權 限。在一個實施例中,用戶可以已經預先給予該權限。在步驟770中,用戶給予的響應可 以被記錄在存儲器中并且用于更新經驗矩陣EX1。具體而言,可以將描述響應的詞和與查 詢Ql有關的一個或者多個其他詞一起收集在相同集中。集中的詞可以用于更新經驗矩陣 EX1。在步驟775中,可以如果用戶在步驟765中接受根據預測來設置操作模式,則可以這 樣做。在步驟780中,可以根據預測來啟動和/或停止一個或者多個應用,如果用戶在步驟 765中接受了如此操作的話。
[0266] 可以重復步驟705至780。可以例如在屬于系統500的便攜設備的壽命期間每天 重復步驟705至780若干次。壽命可以是若干年、例如多于三年。因此,經驗矩陣EXl可以 最終地包含表示例如多于1000個事件的同現數據(表示多于1000個集的數據)。
[0267] 可以在用戶攜帶的第一便攜設備中包括包含經驗矩陣EXl的存儲器MEM2。第一便 攜設備可以例如稱為智能電話和/或稱為便攜計算機(該便攜計算機可以具有無線通信能 力)。第一便攜設備可以例如是圖11中所示設備1260、1251、1250之一。
[0268] 或早或遲,第一便攜設備可能變成過時,它可能丟失,或者它可能損壞。經驗矩陣 EXl的(備份)副本可以在系統500中存儲于遠程和/或與存儲器MEM2的位置分離的位 置。如果需要,包含先前數據的經驗矩陣EXl可以容易地被復制到一個或者多個便攜設備。
[0269] 經驗矩陣EXl可以從第一個人的設備被復制到第二個人的設備。經驗矩陣EXl可 以例如經由因特網、經由電纜、經由光纜、經由射頻鏈路、經由移動電話網絡或者通過使用 存儲經驗矩陣EXl的物理存儲器(即計算機存儲器產品)從一個設備被傳送或者復制到另 一設備。該復制可以與付款關聯,即經驗矩陣EXl也可以與用于將數據收集到矩陣EXl中 的原有系統500分離地、作為個體項目被銷售。經驗矩陣EXl可以從一個設備被全部地或 者部分地傳送到另一設備,并且可以、但是非必須部分地或者全部地替換目的地矩陣(即 第二經驗矩陣)。例如用戶可以接收與假日旅游有關的經驗矩陣、例如存儲對于在意大利山 區中旅行而言相關的同現的經驗矩陣的更新。
[0270] 存儲于經驗矩陣EXl中的數據可能在查詢Ql包含用于更新經驗矩陣EXl的至少 一個相同詞時有用。存儲于經驗矩陣EXl中的先前數據可以僅在某個類型的系統中適用, 其中數據可能在第二類型的系統中基本上無用,該第二類型的系統使用不同查詢詞和/或 在根本不同的環境中操作。例如僅包括與專業會議有關的數據的經驗矩陣EXl不可能對于 預測用戶希望在他的空閑時間查看的哪些視頻剪輯而言有用。
[0271] 圖9a示出如何可以通過使用哈希表來表示經驗矩陣EXl。經驗矩陣EXl的元素 eik中的多數元素可以是零元素。經驗矩陣EXl的若干矢量可以是零矢量。在該情況下,可 以無需使用存儲器空間來存儲零值。詞表VOCl可以是哈希表,其中存儲于詞表VOCl中的 每個詞可以用作鍵。詞表VOCl中的條目指向值數組INDH,該值數組包含經驗矩陣EXl的非 零元素 eik的實際值。例如個體詞wk可以指向值數組INDHk,該值數組包含經驗矩陣EX的 矢量vk的非零元素的值,所述矢量vk與詞wk關聯。值數組INDH k的所有元素可以非零。
[0272] 第二哈希表CAHl可以用來保持跟蹤經驗矩陣的包含非零元素的那些列。第二哈 希表CAHl可以例如稱為"列激活的哈希表"。第二哈希表CAHl可以具有列編號(i)作為 鍵。第二哈希表中的條目指向出現數組0CCL,這些出現數組又可以包含對經驗矩陣EXl的 每列有貢獻的詞(w k)的行編號(k)的列表。例如出現數組OCCLi可以包含行編號匕,1^2,1^ 以指示在列i和在行匕,k 2, k3的元素 e非零。
[0273] 哈希表V0C1、CAH1、值數組INDH的組和出現數組OCCL的組可以一起完整地指定 經驗矩陣EXl的非零元素的值和位置。
[0274] 值數組INDH可以僅包含經驗矩陣EXl的單個矢量的非零元素的值。它無需指定經 驗矩陣EXl的包含所述非零值的列的索引,因為可以從指向與所述值數組INDH關聯的詞的 出現數組導出這一信息。然而值數組INDH除了非零元素的值之外還包括附加信息、例如經 驗矩陣EXl的包含非零值的列的索引。值數組INDH可以一起形成值矩陣。出現數組OCCL 可以一起形成同現矩陣。
[0275] 圖9b示出用于更新哈希表表示的經驗矩陣EXl的方法步驟。在這一情況下,可以 使用詞表VOCl中包含的詞的預定組,以便避免改變經驗矩陣EXl的行數。可以忽略不屬 于所述預定詞表VOCl的詞。在步驟810中,可以接收詞集。在步驟830中,可以校驗詞表 VOCl中是否包含集中的詞。可以在步驟820中忽略未包含在詞表VOCl中的詞以便避免改 變經驗矩陣EXl的行數。在步驟840中,可以通過使用詞表VOCl和基本稀疏矩陣RMl (見 圖la)來確定表示集中的每個詞的基本稀疏矢量。備選地,可以向單個集中的每個詞指派 公共(即相同)稀疏矢量。可以通過使用一個或者多個基本稀疏矢量來更新在與集中的詞 wk關聯的值數組INDHk中存儲的元素值。可以使用在圖Ia至圖2中描述的更新方法或者 在圖4a至圖4b中描述的更新方法。個體元素值可以被增加、減少或者具有它的先前值。
[0276] 也可能在更新期間需要增加經驗矩陣EXl的矢量的非零元素的數目。因此,可以 增加值數組INDH k的長度以便存儲附加值。在值數組INDHk中存儲的值的位置可以按照與 所述值數組表示的經驗矩陣EXl的矢量中相同的順序。這意味著也可以在值數組INDH k的 中間和/或向值數組INDHk的末尾添加元素。
[0277] 在步驟860中,可以根據可能向值數組INDH添加的新元素來更新哈希表CAHl和 出現數組0CCL。如果非零值存儲于列(i)中的元素 eik中,則可以更新哈希表CAHl以包含 指向出現數組OCCL的指針,該出現數組OCCL又包含指向使用列(i)的詞的一個或者多個 指針。哈希表V0CUCAH1以及數組INDH和OCCL包含經驗矩陣EXl的同現數據。可以通過 使用哈希表VOCl、CAHl以及數組INDH和0CCL、以哈希表格式表示經驗矩陣EXl。
[0278] 圖9c示出用于通過使用經驗矩陣EXl來進行預測的方法步驟。可以根據圖9a、 以哈希表格式表示經驗矩陣EXl。在步驟910中,可以接收包含一個或者多個查詢詞Q1、Q2 的查詢。在步驟920中,可以通過使用詞表VOCl來標識經驗矩陣EXl的與每個查詢詞Q1、 Q2關聯的矢量V。在以哈希表格式表示經驗矩陣EXl時,矢量的非零值可以由數組INDH指 定。
[0279] 在步驟930中,可以形成查詢矢量QVl。在單個查詢詞Ql的情況下,經驗矩陣EXl 的關聯矢量可以這樣用作查詢矢量QV1。在查詢包括兩個或者更多查詢詞Q1、Q2的情況下, 可以將查詢矢量QVl形成為步驟930中標識的矢量的組合。具體而言,可以將查詢矢量QVl 形成為步驟930中標識的矢量之和。
[0280] 在步驟940中,可以比較在步驟930中確定的查詢矢量QVl與經驗矩陣EXl的矢 量。該比較可以包括計算查詢矢量QVl與經驗矩陣EXl的每個矢量之間的差。在以哈希表 格式表示經驗矩陣EXl時,矢量的非零值可以由數組INDH指定。在步驟950中,可以選擇 和提供跟與查詢矢量QVl具有最小差的一個或者多個矢量關聯的一個或者多個詞作為預 測詞。預測詞可以如以上描述的那樣用于控制系統500的操作。
[0281] 因此,可以通過使用哈希表(V0C1,IND,CAHl,0CCL)來表示經驗矩陣EXl,從而矩 陣(EXl)的矢量(V 1)具有矩陣(EXl)的列⑴中的非零元素(eik),并且哈希表(OCCLi)包 含指針,該指針標識詞表(VOCl)的與矢量(V k)關聯的詞(Wk)。系統500或者系統500中 的裝置可以被配置為通過使用哈希表(V0C1,IND,CAHl,0CCL)來表示經驗矩陣(EXl),從而 矩陣(EXl)的矢量(V 1)具有矩陣(EXl)的列⑴中的非零元素(eik),并且哈希表(OCCLi) 包含指針,該指針標識詞表(VOCl)的與矢量(V k)關聯的詞(Wk)。
[0282] 有時,存儲于數組INDH中的元素值可以在更新經驗矩陣EXl期間變為零。在一個 實施例中,可以從數組INDH去除零元素以便最小化存儲器空間消耗。可以分別更新與去除 的元素對應的表CAHl和數組0CCL。
[0283] 圖IOa示出基于一個或者多個原有詞Tl生成一個或者多個輔助詞T2至T6。使用 輔助詞而不是原有詞或者除了原有詞之外還使用輔助詞在更新經驗矩陣EXl時和/或在進 行預測時有時可以更有用。
[0284] 原有詞可以例如是字符串"2012年1月2日09 :03"。在實踐中,另一基本上相同 字符串"2012年1月2日09 :04"將被解釋為完全不同的詞。這可能降低更新和使用經驗 矩陣EXl的效率。
[0285] 更新操作的目的可以例如是收集同現數據,該同現數據允許預測可能在一周的某 日執行的動作。出于這一目的,可以用輔助詞T5替換或者補充原有詞"2012年1月2日 09:03",該輔助詞指定當周的與日期2012年1月2日對應的日子(周一)。可以例如通過 使用日歷來從原有詞確定輔助詞T5。
[0286] 在原有詞"2012年1月2日09 :03"中包含的時間表達式可能出于一些目的而具 有非常高的時間分辨率。例如如果目的是預測什么將是用于例如啟動病毒掃描應用(該病 毒掃描應用將消耗電池功率和數據處理資源)的適當時間,則可以將輔助詞T6確定為輔助 詞T6根據原有詞"2012年1月2日09 :03"而用更低分辨率表示時鐘時間(例如"上午")。 可以例如通過使用詞典和/或通過使用量化器(分類器)來提供輔助詞。
[0287] 例如以下詞可以用來表示時間:
[0288]
【權利要求】
1. 一種方法,包括: -基于系統的狀態和/或基于傳感器檢測到的物理量來確定第一詞, -形成包括所述第一詞和第二詞的第一詞組, -將所述第一詞與第一稀疏矢量或者與公共稀疏矢量關聯, -將所述第二詞與第二稀疏矢量或者與所述公共稀疏矢量關聯, -將所述第一詞與矩陣的第一矢量關聯, -將所述第二詞與所述矩陣的第二矢量關聯, -通過向所述矩陣的所述第一矢量添加所述第二稀疏矢量的貢獻或者所述公共稀疏矢 量的所述貢獻來修改所述矩陣的所述第一矢量,以及 -通過向所述矩陣的所述第二矢量添加所述第一稀疏矢量的貢獻或者所述公共稀疏矢 量的所述貢獻來修改所述矩陣的所述第二矢量。
2. 根據權利要求1所述的方法,其中修改的所述第一矢量被形成為所述矩陣的所述第 一矢量與一個或者多個稀疏矢量的線性組合。
3. 根據權利要求1或者2所述的方法,其中所述第一稀疏矢量的非零元素的數目在4 到1000的范圍中,并且其中所述第一稀疏矢量的非零元素的所述數目還在所述第一稀疏 矢量的長度的〇. 1 %到10%的范圍中。
4. 根據權利要求1至3中的任一權利要求所述的方法,其中所述集中的詞表示從客戶 端獲得的詞。
5. 根據權利要求1至4中的任一權利要求所述的方法,其中所述第一詞表示在第一時 間的狀態,并且所述第二詞表示在不同的第二時間的狀態。
6. 根據權利要求1至5中的任一權利要求所述的方法,其中所述詞通過使用詞表來與 所述稀疏矢量關聯。
7. 根據權利要求6所述的方法,包括: 忽略未被包含在所述詞表中的詞。
8. 根據權利要求6所述的方法,包括: 形成第二詞組,所述第二詞組包括未被包含在所述詞表中的另一詞,以及 在所述另一詞是系統詞、統一資源定位符或者被分類為詞表詞的詞時,向所述詞表添 加所述另一詞。
9. 根據權利要求1至8中的任一權利要求所述的方法,其中所述矩陣通過使用哈希表 來表示,使得所述矩陣的矢量具有所述矩陣的列中的非零元素,并且哈希表包含指針,所述 指針標識詞表中的與所述矢量關聯的詞。
10. 根據權利要求1至9中的任一權利要求所述的方法,包括: 通過使用日歷、詞典、電子地圖和/或符號化來從所述第一詞確定輔助詞。
11. 根據權利要求10所述的方法,其中所述輔助詞是所述第一詞的語義祖先。
12. 根據權利要求1至11中的任一權利要求所述的方法,包括: 從第一設備的存儲器向第二設備的存儲器復制所述矩陣的矢量。
13. 根據權利要求1至12中的任一權利要求所述的方法,其中第一自然語言的詞和第 二自然語言的不同詞通過使用多語言詞典來與所述矩陣的相同矢量關聯。
14. 根據權利要求1至12中的任一權利要求所述的方法,包括: 基于傳感器檢測到的環境條件來確定詞。
15. -種計算機程序,所述計算機程序在由一個或者多個數據處理器執行時用于執行 根據權利要求1至14中的任一權利要求所述的方法。
16. -種存儲計算機代碼的計算機可讀介質,所述計算機代碼在由一個或者多個數據 處理器執行時用于執行根據權利要求1至14中的任一權利要求所述的方法。
17. -種裝置,包括: -第一存儲器,用于存儲一組詞, -稀疏矢量供應,用于提供稀疏矢量, -第二存儲器,用于存儲矩陣的矢量,以及 -組合單元,用于通過添加與所述詞關聯的稀疏矢量的貢獻來修改所述矩陣的矢量。
18. 根據權利要求17所述的裝置,其中所述組合單元被布置為通過形成所述矩陣的所 述第一矢量與一個或者多個稀疏矢量的線性組合來修改所述第一矢量。
19. 根據權利要求17或者18所述的裝置,其中所述第一稀疏矢量的非零元素的數目在 4到1000的范圍中,并且其中所述第一稀疏矢量的非零元素的所述數目還在所述第一稀疏 矢量的長度的〇. 1 %到10%的范圍中。
20. 根據權利要求17至19中的任一權利要求所述的裝置,包括: 用以接收用于所述集的詞的接口。
21. 根據權利要求17至20中的任一權利要求所述的裝置,其中所述第一詞表示在第一 時間的狀態,并且所述第二詞表示在不同的第二時間的狀態。
22. 根據權利要求17至21中的任一權利要求所述的裝置,包括: 用于存儲詞表的存儲器,其中稀疏矢量供應和/或組合單元和/或控制單元被配置為 通過使用所述詞表來將詞與所述稀疏矢量關聯。
23. 根據權利要求22所述的裝置,其中所述稀疏矢量供應和/或所述組合單元和/或 所述控制單元被配置為忽略未被包含在所述詞表中的詞。
24. 根據權利要求22所述的裝置,其中所述稀疏矢量供應和/或所述組合單元和/或 所述控制單元被配置為在另一詞是系統詞、統一資源定位符或者被分類為詞表詞的詞時向 所述詞表添加所述另一詞。
25. 根據權利要求17至24中的任一權利要求所述的裝置,其中組合單元和/或所述控 制單元被配置為通過使用哈希表來存儲所述矩陣的值,使得所述矩陣的矢量具有所述矩陣 的列中的非零元素,并且哈希表包含指針,所述指針標識詞表中的與所述矢量關聯的詞。
26. 根據權利要求17至25中的任一權利要求所述的裝置,其中控制單元被配置為通過 使用日歷、詞典、電子地圖和/或符號化來從第一詞確定輔助詞。
27. 根據權利要求26所述的裝置,其中所述輔助詞是所述第一詞的語義祖先。
28. 根據權利要求17至27中的任一權利要求所述的裝置,包括: 用于從設備向所述裝置的存儲器復制所述矩陣的矢量的接口。
29. 根據權利要求17至28中的任一權利要求所述的裝置,包括: 一個或者多個傳感器,被布置為基于檢測到的環境條件提供一個或者多個詞。
30. 一種系統,包括: -第一存儲器,用于存儲一組詞, -稀疏矢量供應,用于提供稀疏矢量, -第二存儲器,用于存儲矩陣的矢量,以及 -組合單元,用于通過添加與所述詞關聯的稀疏矢量的貢獻來修改所述矩陣的矢量。
31. 根據權利要求30所述的系統,其中所述組合單元被布置為通過形成所述矩陣的所 述第一矢量與一個或者多個稀疏矢量的線性組合來修改所述第一矢量。
32. 根據權利要求30或者31所述的系統,其中所述第一稀疏矢量的非零元素的數目在 4到1000的范圍中,并且其中所述第一稀疏矢量的非零元素的所述數目還在所述第一稀疏 矢量的長度的〇. 1 %到10%的范圍中。
33. 根據權利要求30至32中的任一權利要求所述的系統,包括: 用以接收用于所述集的詞的接口。
34. 根據權利要求30至33中的任一權利要求所述的系統,其中所述第一詞表示在第一 時間的狀態,并且所述第二詞表示在不同的第二時間的狀態。
35. 根據權利要求30至34中的任一權利要求所述的系統,包括: 用于存儲詞表的存儲器,其中稀疏矢量供應和/或組合單元和/或控制單元被配置為 通過使用所述詞表來將詞與所述稀疏矢量關聯。
36. 根據權利要求35所述的系統,其中所述稀疏矢量供應和/或所述組合單元和/或 所述控制單元被配置為忽略未被包含在所述詞表中的詞。
37. 根據權利要求35所述的系統,其中所述稀疏矢量供應和/或所述組合單元和/或 所述控制單元被配置為在另一詞是系統詞、統一資源定位符或者被分類為詞表詞的詞時向 所述詞表添加所述另一詞。
38. 根據權利要求30至27中的任一權利要求所述的系統,其中組合單元和/或所述控 制單元被配置為通過使用哈希表來存儲所述矩陣的值,使得所述矩陣的矢量具有所述矩陣 的列中的非零元素,并且哈希表包含指針,所述指針標識詞表中的與所述矢量關聯的詞。
39. 根據權利要求30至38中的任一權利要求所述的系統,其中控制單元被配置為通過 使用日歷、詞典、電子地圖和/或符號化來從第一詞確定輔助詞。
40. 根據權利要求39所述的系統,其中所述輔助詞是所述第一詞的語義祖先。
41. 根據權利要求30至40中的任一權利要求所述的系統,包括: 用于從設備向所述系統的存儲器復制所述矩陣的矢量的接口。
42. 根據權利要求30至41中的任一權利要求所述的系統,包括: 一個或者多個傳感器,被布置為基于檢測到的環境條件來提供一個或者多個詞。
43. -種用于存儲同現數據的裝置,所述裝置包括: -用于存儲數據的第一裝置,被配置為存儲一組詞, -用于供應稀疏矢量的裝置,被配置為提供稀疏矢量, -用于存儲數據的第二裝置,被配置為存儲矩陣的矢量,以及 -用于組合的裝置,被配置為通過添加與所述詞關聯的稀疏矢量的貢獻來修改所述矩 陣的矢量。
44. 根據權利要求43所述的用于存儲同現數據的裝置,其中所述用于組合的裝置被布 置為通過形成所述矩陣的所述第一矢量與一個或者多個稀疏矢量的線性組合來修改所述 第一矢量。
45. 根據權利要求43或者44所述的用于存儲同現數據的裝置,其中所述第一稀疏矢量 的非零元素的數目在4到1000的范圍中,并且其中所述第一稀疏矢量的非零元素的所述數 目還在所述第一稀疏矢量的長度的0. 1 %到10%的范圍中。
46. 根據權利要求43至45中的任一權利要求所述的用于存儲同現數據的裝置,包括: 用于傳達數據的裝置,被配置為接收用于所述集的詞。
47. 根據權利要求43至46中的任一權利要求所述的用于存儲同現數據的裝置,其中所 述第一詞表示在第一時間的狀態,并且所述第二詞表示在不同的第二時間的狀態。
48. 根據權利要求43至47中的任一權利要求所述的用于存儲同現數據的裝置,包括: 用于存儲數據的裝置,被配置為存儲詞表,其中用于供應稀疏矢量的裝置和/或用于 組合的裝置和/或用于控制的裝置被配置為通過使用所述詞表來將詞與所述稀疏矢量關 聯。
49. 根據權利要求48所述的用于存儲同現數據的裝置,其中所述用于供應稀疏矢量的 裝置和/或所述用于組合的裝置和/或所述用于控制的裝置被配置為忽略未被包含在所述 詞表中的詞。
50. 根據權利要求48所述的用于存儲同現數據的裝置,其中所述用于供應稀疏矢量的 裝置和/或所述用于組合的裝置和/或所述用于控制的裝置被配置為在另一詞是系統詞、 統一資源定位符或者被分類為詞表詞的詞時向所述詞表添加所述另一詞。
51. 根據權利要求43至50中的任一權利要求所述的用于存儲同現數據的裝置,其中所 述用于組合的裝置和/或所述用于控制的裝置被配置為通過使用哈希表來存儲所述矩陣 的值,使得所述矩陣的矢量具有所述矩陣的列中的非零元素,并且哈希表包含指針,所述指 針標識詞表中的與所述矢量關聯的詞。
52. 根據權利要求43至51中的任一權利要求所述的用于存儲同現數據的裝置,其中用 于控制的裝置被配置為通過使用日歷、詞典、電子地圖和/或符號化來從第一詞確定輔助 。
53. 根據權利要求52所述的用于存儲同現數據的裝置,其中所述輔助詞是所述第一詞 的語義祖先。
54. 根據權利要求43至53中的任一權利要求所述的用于存儲同現數據的裝置,包括: 用于傳達數據的裝置,被配置為從設備向所述裝置的存儲器復制所述矩陣的矢量。
55. 根據權利要求43至54中的任一權利要求所述的用于存儲同現數據的裝置,包括: 用于感測的一個或者多個裝置,被配置為基于檢測到的環境條件來提供一個或者多個 。
56. -種用于控制計算機系統的操作的數據結構,所述數據結構包括作為與詞表中的 詞關聯的稀疏高維矢量而被存儲的同現數據,所述矢量與來自下列組中的至少三個類型的 詞關聯:時間描述符詞、位置描述符詞、因特網地址詞、操作狀態描述符詞、品牌名稱、用戶 電話簿姓名和傳感器值詞。
57. 根據權利要求56所述的數據結構,包括所述詞表。
58. 根據權利要求56或者57所述的數據結構,包括標識符,所述標識符指定與所述數 據結構兼容的系統和/或環境。
59. -種在非瞬態計算機可讀介質上實現的計算機程序產品,所述介質包括一個或者 多個計算機可執行指令,所述指令在由一個或者多個處理器執行時使系統執行以下操作: -基于系統的狀態和/或基于傳感器檢測到的物理量來確定第一詞, -形成包括所述第一詞和第二詞的第一詞組, -將所述第一詞與第一稀疏矢量或者與公共稀疏矢量關聯, -將所述第二詞與第二稀疏矢量或者與所述公共稀疏矢量關聯, -將所述第一詞與矩陣的第一矢量關聯, -將所述第二詞與所述矩陣的第二矢量關聯, -通過向所述矩陣的所述第一矢量添加所述第二稀疏矢量的貢獻或者所述公共稀疏矢 量的所述貢獻來修改所述矩陣的所述第一矢量,以及 -通過向所述矩陣的所述第二矢量添加所述第一稀疏矢量的貢獻或者所述公共稀疏矢 量的所述貢獻來修改所述矩陣的所述第二矢量。
60. 根據權利要求59所述的計算機程序產品,其中所述指令在由一個或者多個處理器 執行時使所述系統還執行以下操作: -通過形成所述矩陣的所述第一矢量與一個或者多個稀疏矢量的線性組合來修改所述 第一矢量。
61. -種裝置,包括至少一個處理器、包括用于一個或者多個程序單元的計算機程序代 碼的至少一個存儲器,所述至少一個存儲器和所述計算機程序代碼被配置為與所述處理器 一起使所述裝置至少執行以下操作: -存儲一組詞, -提供稀疏矢量, -存儲矩陣的矢量,以及 -通過添加與所述詞關聯的稀疏矢量的貢獻來修改所述矩陣的矢量。
62. 根據權利要求61所述的裝置,包括被配置為與所述處理器一起使所述裝置至少執 行以下操作的計算機程序代碼: -通過形成所述矩陣的所述第一矢量與一個或者多個稀疏矢量的線性組合來修改所述 第一矢量。
63. 根據權利要求61至62中的任一權利要求所述的裝置,包括用以接收用于所述組的 詞的接口,包括被配置為與所述處理器一起使所述裝置至少執行以下操作的計算機程序代 碼: -通過使用詞表來將詞與所述稀疏矢量關聯。
64. 根據權利要求61至63中的任一權利要求所述的裝置,包括用以接收用于所述組的 詞的接口,包括被配置為與所述處理器一起使所述裝置至少執行以下操作的計算機程序代 碼: -通過使用哈希表來存儲所述矩陣的值,使得所述矩陣的矢量具有所述矩陣的列中的 非零元素,并且哈希表包含指針,所述指針標識詞表中的與所述矢量關聯的詞。
65. 根據權利要求61至64中的任一權利要求所述的裝置,包括用以接收用于所述組的 詞的接口,包括被配置為與所述處理器一起使所述裝置至少執行以下操作的計算機程序代 碼: -通過使用日歷、詞典、電子地圖和/或符號化從第一詞確定輔助詞。
66. 根據權利要求61至65中的任一權利要求所述的裝置,包括: 用于從設備向所述裝置的存儲器復制所述矩陣的矢量的接口。
67. 根據權利要求61至66中的任一權利要求所述的裝置,包括: 一個或者多個傳感器,被布置為基于檢測到的環境條件來提供一個或者多個詞。
【文檔編號】G06F17/30GK104246658SQ201280072488
【公開日】2014年12月24日 申請日期:2012年2月22日 優先權日:2012年2月22日
【發明者】M·埃爾斯通, M·朗福爾斯, E·莫尼, I·貝茨特里, M·特爾霍, L·卡凱南 申請人:諾基亞公司