專利名稱:用于生成推薦的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及因特網應用領域。具體而言,本發(fā)明涉及用于利用來自多個領域的用戶輸入數據生成產品或服務推薦(recommendation)的方法和 系統(tǒng)。
背景技術:
推薦是人們搜索并找到他們所需要的東西的最強有力的方式之一。不 論是想買照相機還是試圖找到餐館,人們都依賴于從諸如朋友、專家和出 版物之類的各種來源獲得推薦。在計算機生成的推薦方面的研究已經開展了幾十年,并且已產生了大 量出版物和各種方法,以及獲得一系列成功的許多工作系統(tǒng)。計算機生成 的推薦可以基于來自各種來源的專門知識的代碼化。這在二十世紀七十年 代和八十年代充斥的基于專家系統(tǒng)的應用就是明證。該方法的問題是在計 算機應用中捕捉和維護專門知識時的努力和困難。解決專家系統(tǒng)的某些缺陷的另一種方法是機器學習系統(tǒng),其中計算機 應用可通過基于過去的執(zhí)行對其自身作出適應性改變來提高其自己的性 能。對于推薦來說,該方法表現(xiàn)為協(xié)同過濾(collaborative filtering)算法 的形式。協(xié)同過濾使推薦基于其他用戶的經驗。當面臨特定領域中的決定時, 人們通常會咨詢在該領域有經驗的朋友。協(xié)同過濾是跨超出朋友和熟人之 外的更大用戶群組來構建這些推薦的一種方式。該方法以評論、評分、評 級、投票等形式獲得這些用戶的反饋作為輸入。輸入數據被分析,以找到 用戶和項目之間的模式和相關性,這些模式和相關性轉化為推薦成功的概 率。公知的使用協(xié)同過濾的個性化電影推薦網站是MovieLens
(http://www.movielens.com)。在該個性化電影推薦服務中,數千用戶基 于它們對電影的喜愛或不喜愛的程度提交對該電影的評分。針對特定用戶 的推薦可以通過査看與該用戶所喜愛的電影相似的電影來進行。這提供了"喜愛這部電影的人還喜愛以下電影"類型的推薦。例如,查看電影Jerry Maguire的用戶可能獲得對A Few Good Men的電影推薦。在這種情況下,"相似"基于對如下的整個用戶群體的評分的分析該用戶群體已對與請 求推薦的特定用戶評分的電影相關的電影進行了評分。如上述示例中所示,協(xié)同過濾領域中的現(xiàn)有系統(tǒng)集中于基于單個領域 內的用戶數據來進行推薦。由于只從單個領域(例如電影)收集輸入數 據,因此可以為該領域內的項目生成推薦。此外,協(xié)同過濾推薦的質量依 賴于可用的用戶輸入數據的量。但是如果在一個領域中只有少量數據可 用,則所生成的推薦就不太相關并且不太可靠。因此,需要一種能夠解決基于從單個領域收集的數據進行推薦的問題 的系統(tǒng)和方法。具體而言,需要一種用于利用來自多個領域的用戶輸入數 據進行產品或服務推薦的系統(tǒng)和方法。發(fā)明內容本發(fā)明公開了一種用跨多個領域的用戶輸入數據來生成產品或服務推 薦的系統(tǒng)和方法。本發(fā)明提供了相對于現(xiàn)有系統(tǒng)的許多改進。首先,本發(fā)明對于業(yè)務興趣跨多個領域的組織是有利的。推薦不局限 于單個領域。相反,來自多個領域的用戶事件可以被綜合考慮以產生在這 些領域中的任何一個中的推薦。例如,通過分析跨購物、新聞和電影的用 戶反饋,系統(tǒng)可以向購買過溜冰板或閱讀過關于溜冰板的新聞文章的用戶 推薦溜冰板電影。此外,本發(fā)明允許訪問更大量的用戶輸入數據,這進而又提高了推薦 質量。在上述溜冰板示例中,單是購物領域內的關于溜冰板的數據量可能 太少,以至于不能進行有質量的推薦。當單獨查看時,在新聞和電影領域 內也是如此。但是,通過允許跨這些領域組合數據,這種模式的溜冰板相 關性可被找到,并被用于以其他方式不可能實現(xiàn)的推薦中。 一種用于生成跨多個產品或服務領域的推薦的方法包括收集數據庫 中的跨多個產品或服務領域的用戶事件;接收針對推薦的觸發(fā)事件;分析 用戶事件以編制數據庫中的用戶事件之間的相關性;以及響應于觸發(fā)事 件,根據數據庫中的用戶事件之間的相關性,生成推薦。一種用于生成跨多個產品或服務領域的推薦的系統(tǒng),包括用于經由 因特網向用戶提供接口并且處理用戶事件的多個領域服務器;用于存儲用 戶事件的數據庫;以及推薦引擎。該推薦引擎還包括一個或多個計算機程 序,所述計算機程序包括用于執(zhí)行以下步驟的指令收集數據庫中的跨多 個產品或服務領域的用戶事件;接收針對推薦的觸發(fā)事件;分析用戶事件 以編制數據庫中的用戶事件之間的相關性;以及響應于觸發(fā)事件,根據數 據庫中的用戶事件之間的相關性,生成推薦。
在結合以下附圖閱讀對本發(fā)明實施例的詳細描述之后,可以更清楚地 理解本發(fā)明的上述特征和優(yōu)點及其其他特征和優(yōu)點。 圖1示出根據本發(fā)明實施例的跨領域推薦系統(tǒng)。圖2A示出根據本發(fā)明實施例用于收集圖1的用戶數據庫114中的用 戶事件的方法。圖2B示出根據本發(fā)明實施例的用于分析圖1的用戶數據庫114中的 用戶事件的方法。圖3示出根據本發(fā)明實施例的用于生成相似項目的推薦的方法。 圖4示出根據本發(fā)明實施例的用于生成個性化推薦的方法。 在所有附圖中使用相似的標號。
具體實施方式
圖1示出根據本發(fā)明實施例的跨領域推薦系統(tǒng)。該推薦系統(tǒng)包括一個 或多個推薦服務器102以及一個或多個客戶端104。推薦服務器102經由 因特網103與客戶端104接口。推薦服務器還包括多個個體領域,例如購 物領域106、新聞領域1Q8、電影領域110和其他領域112。
領域是為特定應用以不同硬件和軟件實現(xiàn)的計算機系統(tǒng),所述特定應用例如是購物應用106、新聞應用108和電影應用110。用戶與每個特定 領域的交互也稱為用戶事件,是在用戶數據庫114中保存并更新的。用戶 數據庫114包括用于從每個個體領域收集到的數據的存儲裝置,所述數據 例如是電影數據116、新聞數據118、購物數據120和其他領域數據122。 用戶104可以具有與所有領域的多個用戶交互。此外,領域可以更一般化 地定義為信息類別。例如,不同領域可以包括人口統(tǒng)計信息(年齡、種 族、工作、教育水平等)、行為信息(互聯(lián)網使用時間、所用網站的多樣 性、用于訪問互聯(lián)網的計算機數目,等等)以及計算機系統(tǒng)信息(互聯(lián)網 連接能力、多媒體系統(tǒng)能力、瀏覽器版本等)。推薦服務器102還包括推薦引擎126。正如下面章節(jié)中將描述的,推 薦引擎126響應于特定用戶事件分析用戶數據庫114的跨多個領域的多個 部分,以找出跨多個領域的相關性,以便產生推薦。推薦引擎126處理來 自各種領域的數據片段124,例如電影數據116、新聞數據118、購物數據 120和其他領域數據122。注意,存儲在不同領域中的用戶事件可能具有 不同的類型、值和結構。推薦引擎126隨后找出用戶事件之間的相關性, 并且基于用戶事件之間的相關性編制它的推薦。收集用戶事件來自協(xié)同過濾的推薦是從對用戶行為的分析導出的。該用戶行為在用 戶數據庫114中被表示為用戶事件。存儲來自多個領域的這些用戶事件比 起存儲來自單個領域的用戶事件更復雜,這是因為來自每個領域的數據格 式可能是不同的。由于從中收集存儲在用戶數據庫114中的用戶事件的領 域的多樣性,這些用戶事件是各不相同的。例如,來自購物領域106的事 件類型可能包括瀏覽產品、購買或退貨。在新聞領域108中,事件類型可 能包括查看標題、查看概要或查看整篇新聞文章。在電影領域110中,事 件類型可能包括對電影進行評分和評論或購買在線電影票。除了事件類型的多樣性之外,存在給定事件的事件值的多樣性 教澄-電影、歌曲等的評分或評級。
*^#度-具有有序標度的文本值,例如高、中、低 ^^Ut本-評論、意見 ^定澄-除上述以外的任何值,通常是一個或多個標簽的集合,例 如(開、關),(已發(fā)電子郵件、已發(fā)消息、已打電話)支持交叉領域推薦的用戶數據庫114能夠存儲這些各種各樣的事件值。此外,用于存儲來自多個領域的用戶事件的用戶數據庫114是跨多個 領域而組織的,如下面的圖2B中所示。在許多組織中,領域是由不同的 個體群組所管理的。所公開的推薦系統(tǒng)對來自多個領域的數據的聚集是跨 不同地理位置中的不同人群而協(xié)調和同步的。此外,推薦系統(tǒng)中的任何正 在發(fā)生的變化被動態(tài)地更新。換言之,所有領域中的變化都被此中央用戶 數據庫114所容納。領域、產品、服務、用戶和用戶事件屬性的集合可以 不斷被改變。如下所述,本發(fā)明提供了對用戶數據庫的這一動態(tài)方面的支 持。圖2A示出根據本發(fā)明實施例用于在圖1的用戶數據庫114中收集用 戶事件的方法。用戶事件由以下輸入參數來描述 wen'J (^戶W)-特定用戶的唯一標識符 ^y《(Ama&)-生成事件的行業(yè)、設施或系統(tǒng),例如購物、新 聞、電影 ^m/J (觀^ W)-領域內的特定項目或產品的唯一標識符 事伴類,(ew"/妙e)—被存儲的事件的類型,例如購買、評分、評論 事伴/f (eve"""/"e)-對于給定領域、項目和事件類型用戶的輸入 該方法開始于步驟202中,然后移動到步驟204,在該歩驟中,該方 法接收要存儲的用戶事件,并且確定這是否是有效的用戶事件。如果它不 是有效事件,則該方法確定它是否應當被丟棄或者數據庫是否應當被擴 展。如果事件不被丟棄,則數據庫被更新以反映新的用戶事件。在步驟206中,評估事件的銀鍵是否有效。如果銀凝有效(206一 是),則該方法在步驟212中繼續(xù)。如果否(206—否),則在步驟208 中,檢查推薦系統(tǒng)的配置以確定當接收到新領域時數據庫是否能夠被動態(tài)更新。如果未啟用動態(tài)領^C更新,則該方法移動到步驟238,在該歩驟 中,事件被丟棄。否則,如果啟用了動態(tài)-#凝更新,則在步驟210中該領— ^^皮添加到有效領域集合,并且該方法在步驟212中繼續(xù)。在步驟212中,該方法檢查,/f類星y是否有效。如果有效(212— 是),則該方法在步驟218中繼續(xù)。如果事/#^^95效(212一否),則在 步驟214中該方法檢查是否啟用了動態(tài)事伴^^便新。如果未啟用動態(tài)事 伴^^便新(214_否),則該方法移動到步驟238并且該事件被丟棄。否 則,如果啟用了動態(tài)事丫f^^便新(214—是),則在步驟218中該事伴類 星,皮添加到有效事件類型集合,并且該方法在步驟218中繼續(xù)。接下來,在步驟218中,該方法檢查事伴虔是否有效。如果有效(218—是),則該方法在步驟224中繼續(xù)。如果事V^遣無效(218—否), 則在步驟220中該方法檢查是否啟用了動態(tài)^^度更新。如果未啟用動態(tài) #/#澄更新(220一否),則該方法移動到步驟238并且該事件被丟棄。否 則,如果啟用了動態(tài),伴澄更新(220—是),則在步驟222中該事伴澄被 添加到有效事件值集合,并且該方法在步驟224中繼續(xù)。能夠擁有動態(tài)接 受各種各樣的事件類型值的靈活性是有利的。例如,對于領域"個人"和 事伴^^v"聯(lián)絡方法",已知的值可以是"(電子郵件、語音郵件、尋呼 機)"。當個人產品變化時,可以添加聯(lián)絡其他人的新方法,例如"網絡 攝像頭"。當用戶利用此新特征時,新的用戶事件將會被生成,其中值"網絡攝像頭"被用于"聯(lián)絡方法"。如果啟用了動態(tài)事^7f更新,則系 統(tǒng)可以接受此用戶事件并且繼續(xù)。此方法允許了系統(tǒng)隨著個體領域應用和 群組而自動生長和變化在歩驟224中,該方法檢查^m^是否有效。如果有效(224—是), 則該方法在步驟224中繼續(xù)。如果^mW無效(224—否),則在步驟226 中該方法檢查是否啟用了動態(tài)^m^更新。如果未啟用動態(tài)^mW更新(226一否),則該方法移動到步驟238并且該事件被丟棄。否則,如果啟 用了動態(tài)"em^更新(226—是),則在步驟228中該"em^被添加到有效 /temW集合,并且該方法在步驟230中繼續(xù)。與上述針對事件值所描述的 靈活性相似,動態(tài)更新"em^的這種靈活性允許了系統(tǒng)自動處理在大多數
商業(yè)應用中不可避免的產品庫存變化。在某些應用中,禁用動態(tài)Z'temW更 新的能力是必要的。例如,如果希望只對項目的子集生成推薦,則在有效itemid列表中只能允許這些項目。禁用動態(tài)"em^更新防止了不需要的項 目潛入候選推薦的池中。為了維護跨所有領域的itemid的唯一性,只在 itemid所發(fā)源的領〕統(tǒng)內檢查其有效性。這允許了每個領 f (群組、性質、 應用)維護其自己的項目標識過程,而不必擔心與其他領域發(fā)生名稱空間 沖突。在步驟230中,該方法檢査wen'd是否有效。如果有效(230_是), 則該方法在步驟236中繼續(xù)。如果wenV/無效(230—否),則在步驟232 中該方法檢查是否啟用了動態(tài)wenV/更新。如果未啟用動態(tài)w^n'J更新 (232一否),則該方法移動到步驟238并且該事件被丟棄。否則,如果啟 用了動態(tài)wwr^更新(232—是),則在步驟234中該M化nW被添加到有效 wwnW集合,并且該方法在步驟236中繼續(xù)。與上述針對MwnV/所描述的 靈活性相似,自動擴展數據庫以存儲新用戶的事件的能力在用戶群體每天 都在變化的大多數因特網應用中是必要的。但是,限制這些更新的靈活性 也可能是有益的,例如在除非用戶同意了服務條款否則用戶的事件不應當 被存儲的情況下。在步驟236中,用戶事件被存儲到用戶數據庫114,并且該方法在步 驟240中結束。分析用戶事件圖2B示出根據本發(fā)明實施例的用于分析圖1的用戶數據庫114中的 用戶事件的方法。如圖2B所示,用戶數據庫114被表示為多維陣列,其 中每個用戶被表示在一個或多個行中,每行包含一個特定的用戶事件。利用上面的溜冰板示例,所收集的第一用戶事件是用戶1查看了關于 溜冰板的整篇新聞文章。在此情況下事/^^f是規(guī)定值("是")。第二事 件是用戶1已用等級80對一部溜冰板電影進行了評級。事斧遣是序數 值,在此情況下是0到100之間(包括0和100在內)的整數。第三事件 是用戶1隨后寫了對此電影的評論。在此情況下事/f遣是自由文本。第四
事件是用戶1購買了溜冰板。在此情況下,事W^f是反映為該項目付款的 量的序數。然后,第五事件示出對這些溜冰板項目的評級。在此情況下事斧;f是序數,在"低"、"中"和"高"標度上的"高"。存在許多可以用來找出用戶事件之間的相關性的協(xié)同過濾算法。在本發(fā)明的一個實施例中,2003年4月16日遞交的標題為"Affinity Analysis Method and Article of Manufacture"的美國專利申請No. 10/417,709中描述 的親合引擎(Affinity Engine)被用于找出用戶事件之間的相關性。這里 通過引用將此美國專利申請No. 10/417,709明確并入。親合引擎處理用戶 數據庫114的在整個用戶群體上收集的跨多個領域的多個部分,以確定用 戶事件之間的相關性,例如用戶1和用戶數據庫中的其他用戶的用戶事件 之間的相關性。相關值被指派以指示規(guī)范的用戶事件之間的關系的權重, 并且相關值被存儲在相似性數據庫中。這些相關值被用于向后續(xù)的表現(xiàn)相 似的用戶行為的用戶生成推薦。例如,如果用戶2也查看了關于溜冰板的 相同的整篇新聞文章,對同一溜冰板電影進行了評級并寫了評論,則可以 基于由用戶群體中的其他用戶所展現(xiàn)的共同規(guī)范用戶事件(例如用戶1的 規(guī)范用戶事件)來針對購買特定溜冰板向用戶2生成推薦。注意,所公開 的發(fā)明獨立于用于計算機用戶事件之間的相關值的協(xié)同過濾算法。在認識 到某些類型的過濾算法可能更適合于對特定類型的用戶事件進行過濾的情 況下,所公開的發(fā)明支持將任何協(xié)同過濾算法作為插件組件集成到推薦系 統(tǒng)中。推薦相似的項目項目之間的相似性提供了用于進行推薦的可能的標準。通常,人們會 找到被認為與其欣賞過的其他書籍相似的書籍來閱讀。這延伸到其他領域電影、歌曲、服裝、游戲和其他產品和服務。如果項目相像,或者更 明確地說,如果它們在其屬性上具有相似的值,則它們被認為是相似的。 例如,在書籍情況下,屬性可以是作者、小說還是非小說、流派和人物發(fā) 展。存在基于項目相似性計算推薦的不同方法。在圖3所示的本發(fā)明的一個實施例中,該方法提供了在交叉領域推薦
的上下文中使用這些項目相似性的一種方式。針對相似的項目推薦的觸發(fā) 事件,例如用戶請求,包括以下輸入參數 -j鍵-包含為之請求相似項目推薦的項目的行業(yè)、設施或系統(tǒng),例 如購物、新聞、電影 ZtemW-領域內的特定項目或產品的唯一標識符 /#澄(Am^oW)-推薦的項目必須具有的最小相似性級別 ,'m'tem -所需要的推薦項目的最小數目 -所需要的推薦項目的最大數目 wc—A maZ;w-推薦的項目應當屬于的(一個或多個)領域。 該方法找出跨所有所需領域的相似項目,并且根據預定的約束集合返 回推薦項目列表。圖3示出根據本發(fā)明實施例的用于由推薦引擎126生成相似項目推薦 的方法。該方法開始于步驟302中,然后移動到步驟304,在該步驟中, 該方法接收針對與指定項目相似的其他項目的推薦的觸發(fā)事件,例如用戶 請求。在步驟306中,確定指定的項目是否存在于用戶數據庫114中。如 果指定的項目不存在(306—否),則該方法在步驟334中結束,并且不生 成推薦。否則,如果指定的項目確實存在(306—是),則該方法在步驟 308中繼續(xù)。對指定項目是否存在的確定是基于是否存在任何被認為與該 指定項目相似的項目來進行的。缺乏相似項目的原因可能有兩個1)這 是先前不存在的新項目;2)該指定項目在請求之前已經存在,但是沒有 足夠的與該指定項目相關聯(lián)的、推薦可基于的用戶事件。接下來,在步驟308至312中,取得不受限制的相似項目的集合;該 集合也被稱為第一推薦列表。不受限相似項目集合依賴于^r—J謹&朋輸 入參數是否被指定。如果wc—d謹d朋被指定(308_是),則在步驟310 中,僅從由wc—^mm'朋指示的領域中提取相似項目集合。如果 wcj畫m'朋未被指定(308—否),則在步驟312中從所有領域中提取相似 項目集合。給定相似項目的第一推薦列表,包括領凝、/if澄、腿'm'tem禾n maxZtem 在內的預定約束集合被應用,以改進交叉領域推薦。在步驟314中,確定
第一推薦列表中的項目數目是否大于預定的m^'tem。如果確定結果是否 定的(314—否),則在步驟332中第一推薦列表被返回。否則,如果確定 結果是肯定的(314—是),則該方法在步驟316中繼續(xù)。在步驟316中,從第一推薦列表形成第二推薦列表。第二推薦列表是 第一推薦列表的子集,其中包括具有高于預定的/if澄的相關值的相似項 目。進行另一個確定,以確定第二推薦列表中的項目數目是否大于 服'""em。如果第二推薦列表中的項目的數目不大于m/m'tem (316_否), 則在步驟330中,該方法從第一推薦列表中按相關值的降序選擇 數目的推薦,以形成第三推薦列表,并且在步驟332中,該方法返回第三 推薦列表。在這種情況下,所推薦的項目中的一個或多個可能具有低于/if 劍勺相關值,但是它們仍被返回,以滿足m纟m'tem約束。在許多常用計算 機和互聯(lián)網應用中,向用戶提供所請求的那么多個項目是有利的。在另一 種情況下,如果第二推薦列表中的項目數目大于mfm'tew (316—是),則 在步驟318中,第二推薦列表被保留,以供步驟320至328中的進一步處 理。在步驟320中,考慮ma;dtem約束。確定第二推薦列表中的項目的數 目是否大于約束。如果結果為否(320—否),則在步驟332中第 二推薦列表被返回。此路徑返回滿足或超過閾值的推薦相似項目的列表, 并且推薦項目的數目大于所請求的項目的最小數目但小于或等于所請求的 項目的最大數目。在另一種情況下(320—是),在應用相似性/if遣約束之 后,如果第二推薦列表中的項目的數目仍大于所需的最大項目數目,則該 方法在步驟322中繼續(xù),以通過使推薦項目分散在從中提取出推薦項目的 領域的集合上來改進第二推薦列表。在步驟322中,根據預定的m^函&朋參數,候選項目被分離成領 域群組。在步驟324至328中,該方法采用循環(huán)(roimd-robin)方案并且 每次一個地移過每個群組(步驟324)。在步驟326中,該方法選擇具有 最高相關值的推薦,以形成第四推薦列表(步驟326)。本領域的技術人 員將會認識到,在選擇過程中可以采用其他優(yōu)先級方案。步驟324和326 被重復,直到第四推薦列表中的項目的數目等于預定的m^'tem為止。最
終結果是與所請求的項目相似的第四推薦集合。此第四推薦集合滿足mz'm'tem和maxzYem約束,并且如果存在足夠的相似項目,還滿足相似性/if 澄。推薦項目集合還反映了跨指定領域的平均選擇。在步驟332中,第四 推薦列表被返回。該方法在步驟334中結束。推薦個性化項目通過考慮用戶的個人偏好的歷史可以進一步改進對相似項目的推薦。 個性化推薦是通過根據用戶的個人偏好的歷史找出與給定個體優(yōu)選的那些 項目相似的項目來進行的。圖4示出了根據本發(fā)明實施例的用于生成個性 化推薦的方法。該方法找出跨所有所需領域的個性化推薦,并且根據預定 的參數集合返回個性化推薦列表。針對個性化推薦的觸發(fā)事件,例如用戶請求,包括以下輸入參數 werW-特定用戶的唯一標識符 Zt度-推薦的項目必須具有的最小相似性級別 mfm'tem -所需要的推薦項目的最小數目 -所需要的推薦項目的最大數目 wc—&mm>w-推薦的項目應當屬于的(一個或多個)領域。 該方法開始于步驟402中,然后移動到步驟404,在該歩驟中,該方 法接收針對個性化推薦的觸發(fā)事件。在步驟406中,進行第一確定,以確 定用戶是否存在。如果用戶不存在(406—否),則該方法在步驟434中結 束,并且不生成個性化推薦。在另一種情況下,如果用戶存在(406— 是),則該方法在步驟408中繼續(xù)。對用戶是否存在的確定是基于在用戶 數據庫114中是否有任何用戶事件來進行的。在步驟408中,取得用戶已 對其表現(xiàn)出傾向性或已經表現(xiàn)出偏好的項目的第一列表。第一項目列表還 處于或高于預定的/if澄。這些優(yōu)選項目被用作找出個性化推薦的基礎。在步驟410和412中, 對于每個優(yōu)選項目(步驟410),取得相似項目的集合(步驟412)。用 于找出相似項目的方法在上文結合圖3進行了描述。以下輸入參數被用于 獲得相似項目的過程中/萄; t"、 m&"em、 禾口 wc—c/omw>w。用于獲
得相似項目的和領凝輸入參數是從優(yōu)選項目列表中的每個項目導出的。在步驟412中,針對每個優(yōu)選項目取得的相似項目的并集被存儲在第一個性化推薦列表中,以用于后續(xù)步驟。給定第一個性化推薦列表,包括領域、 閾值、minitem和maxitem在內的預定約束集合被應用以改進交叉領域推薦。在步驟414中,確定第一推 薦列表中的項目的數目是否大于預定的minitem。如果確定結果是否定的 (414—否),則在步驟432中第一推薦列表被返回。否則,如果確定結果 是肯定的(414—是),則該方法在步驟416中繼續(xù)。在步驟416中,從第一推薦列表形成第二推薦列表。第二推薦列表是 第一推薦列表的子集,其中包括具有高于預定的/if劍勺相關值的項目。進 行另一個確定,以確定第二推薦列表中的項目數目是否大于m纟maxitem。如 果第二推薦列表中的項目的數目不大于minitem (416—否),則在步驟430 中,該方法從第一推薦列表中按相關值的降序選擇冊'm'tem數目的推薦, 以形成第三推薦列表,并且在步驟432中,該方法返回第三推薦列表。在 這種情況下,所推薦的項目中的一個或多個可能具有低于/if劍勺相關值, 但是它們仍被返回,以滿足minitem約束。在許多常用計算機和互聯(lián)網應 用中,向用戶提供所請求的那么多個項目是有利的。在另一種情況下,如 果第二推薦列表中的項目數目大于m纟m'tem (416—是),則在步驟418 中,第二推薦列表被保留,以供步驟420至428中的進一步處理。在步驟420中,考慮maxz'tem約束。確定第二推薦列表中的項目的數 目是否大于m":dtem約束。如果結果為否(420—否),則在步驟432中第 二推薦列表被返回。此路徑返回滿足或超過閾值的推薦項目的列表,并且 推薦項目的數目大于所請求的項目的最小數目但小于或等于所請求的項目 的最大數目。在另一種情況下(420—是),在應用相似性/if澄約束之后, 如果第二推薦列表中的項目的數目仍大于所需的最大項目數目,則該方法 在步驟422中繼續(xù),以通過使推薦項目分散在從中提取出推薦項目的領域 的集合上來改進第二推薦列表。在步驟422中,根據預定的wc—A m&朋參數,候選項目被分離成領 域群組。在步驟424至428中,該方法采用循環(huán)方案并且每次一個地移過22
每個群組(步驟424)。在步驟426中,該方法選擇具有最高相關值的推 薦,以形成第四推薦列表。本領域的技術人員將會認識到,在選擇過程中 可以采用其他優(yōu)先級方案。步驟424和426被重復,直到第四推薦列表中 的項目的數目等于預定的modtem為止。最終結果是針對用戶的優(yōu)選項目 個性化的第四推薦集合。此第四推薦集合滿足服'm'tem和ma:o'tem約束, 并且如果存在足夠的個性化項目,還滿足相關值/萄澄。推薦項目集合還反 映了跨指定領域的平均選擇。在步驟432中,第四推薦列表被返回。該方 法在步驟434中結束。所公開的用于生成推薦的系統(tǒng)提供了相對于現(xiàn)有技術的多個改進。具 體而言,所公開的系統(tǒng)通過考慮跨多個領域的用戶輸入數據來生成更好的 并且更相關的推薦。生成更好的推薦的能力進而又實現(xiàn)了更好的用戶體驗 并且向用戶提供了更寬范圍的產品或服務。本領域的技術人員將會認識到,存在許多可以使用的對所公開的實施 例的可能修改,它們仍采用相同的基本機制和方法。例如,可使用不同的 約束集合,例如用戶的人口統(tǒng)計信息,來改進推薦??刹捎貌煌膬?yōu)先級 方案來取代本發(fā)明的一個實施例中公開的循環(huán)方案。并且可使用不同的算 法來計算跨多個領域的用戶輸入數據之間的相關值。出于說明目的,以上描述是參考特定實施例進行的。但是,以上的說 明性論述并不想要毫無遺漏或者將本發(fā)明限制到所公開的精確形式??紤] 到上述教導,許多修改和變化是可能的。選擇和描述這些實施例是為了最 好地說明本發(fā)明的原理及其實際應用,或者使得本領域的技術人員能夠利 用適合于所構思的特定用途的各種修改來最好地利用本發(fā)明和各種實施 例。
權利要求
1. 一種用于在計算機網絡上生成推薦的方法,包括 收集數據庫中的跨多個領域的用戶事件; 接收針對推薦的觸發(fā)事件;分析所述用戶事件以編制所述數據庫中的用戶事件之間的相關性;以及響應于所述觸發(fā)事件,根據所述數據庫中的用戶事件之間的相關性, 生成推薦。
2. 如權利要求1所述的方法,其中所述收集用戶事件的步驟包括 接收來自所述多個領域的用戶事件,其中所述用戶事件包括一個或多個用戶事件參數;根據預定的規(guī)則集合驗證所述用戶事件參數;如果所述用戶事件未能滿足所述預定規(guī)則集合中的規(guī)則之一,則丟棄 所述用戶事件;以及如果所述用戶事件滿足所述預定規(guī)則集合,則將所述用戶事件存儲在 所述數據庫中。
3. 如權利要求2所述的方法,其中所述驗證特定用戶事件參數的步驟 包括如果所述特定用戶事件參數存在于所述數據庫中,則繼續(xù)驗證另一個 用戶事件參數,直到所有用戶事件參數都被驗證為止;以及如果所述特定用戶事件參數不存在于所述數據庫中,則檢查是否啟用 了與所述特定用戶事件參數相對應的預定的動態(tài)更新配置;如果啟用了與所述特定用戶事件參數相對應的動態(tài)更新配置,則 將所述特定用戶事件參數添加到所述數據庫;以及如果未啟用與所述特定用戶事件參數相對應的動態(tài)更新配置,則 丟棄所述用戶事件。
4. 如權利要求2所述的方法,其中所述驗證所述用戶事件參數的歩驟 包括驗證用戶事件領域; 驗證用戶事件類型; 驗證用戶事件值; 驗證用戶事件項目;以及 驗證用戶標識符。
5. 如權利要求1所述的方法,其中所述分析所及用戶事件的步驟包括對所述用戶事件應用協(xié)同過濾,以計算所述用戶事件之間的相關值;以及將所述相關值存儲在相似性數據庫中。
6. 如權利要求1所述的方法,還包括 接收對推薦相似項目的請求;以及根據所述數據庫中的用戶事件之間的相關性生成相似項目推薦。
7. 如權利要求6所述的方法,還包括根據優(yōu)先級方案生成相似項目推薦。
8. 如權利要求6所述的方法,其中所述生成相似項目推薦的步驟包括驗證所述請求,其中所述請求包括預定參數的集合; 如果源領域被指定,則根據所述源領域生成第一推薦列表;以及 如果所述源領域未被指定,則根據所述數據庫中的所有可用領域生成 所述第一推薦列表。
9. 如權利要求8所述的方法,其中所述生成所述第一推薦列表的步驟 包括如果所述第一推薦列表少于或等于預定最小數目個項目,則返回所述 第一推薦列表;以及如果所述第一推薦列表多于所述預定最小數目個項目,則根據相關值 和所述預定參數集合改進所述第一推薦列表。
10. 如權利要求9所述的方法,其中所述改進所述第一推薦列表的步驟包括 從所述第一推薦列表的項目形成具有等于或高于預定閾值的相關值的 第二推薦列表;如果所述第二推薦列表少于或等于所述預定最小數目個項目,則從所 述第一推薦列表的項目中選擇包括根據相關值區(qū)分優(yōu)先級的最小數目個項 目的第三推薦列表,并且返回所述第三推薦列表;以及如果所述第二推薦列表多于所述預定最小數目個項目,則根據所述相 關值和所述預定參數集合改進所述第二推薦列表。
11. 如權利要求io所述的方法,其中所述改進所述第二推薦列表的步 驟包括如果所述第二推薦列表少于或等于預定最大數目個項目,則返回所述 第二推薦列表;以及如果所生成的所述第二推薦列表多于所述預定最大數目個項目,則根 據所述請求中的預定的源領域進一步改進所述第二推薦列表。
12. 如權利要求11所述的方法,其中所述進一步改進的步驟包括 根據所述預定的源領域將所述第二推薦列表分離成多個群組;(a) —次一個地移過每個群組,選擇具有最高相關值的推薦以形成 第四推薦列表;(b) 重復步驟(a),直到所述第四推薦列表等于所述預定最大數目 個項目為止;以及返回所述第四推薦列表。
13. 如權利要求1所述的方法,還包括 接收對推薦個性化項目的請求;以及根據所述數據庫中的用戶事件之間的相關性生成個性化推薦。
14. 如權利要求13所述的方法,其中所述生成所述個性化推薦的歩驟 包括驗證所述請求,其中所述請求包括預定參數的集合 從所述數據庫取得用戶表現(xiàn)出偏好的第一項目列表,其中每個項目具有大于或等于預定閾值的相關值;(a)為用戶表現(xiàn)出偏好的每個項目創(chuàng)建相似項目的推薦集合; (b)將所述相似項目推薦集合存儲在第一推薦列表中;以及 (C)重復步驟(a)和(b),直到所述第一項目列表中的所有成員都 已被移過為止;以及根據所述相關值和預定參數的集合提煉所述第一推薦列表。
15. 如權利要求14所述的方法,其中所述提煉所述第一推薦列表的歩驟包括如果所述第一推薦列表少于或等于預定最小數目個項目,則返回所述第一推薦列表;以及如果所述第一推薦列表多于所述預定最小數目個項目,則根據相關值 和所述預定參數集合改進所述第一推薦列表。
16. 如權利要求15所述的方法,其中所述改進所述第一推薦列表的歩驟包括從所述第一推薦列表的項目形成具有等于或高于預定閾值的相關值的第二推薦列表;如果所述第二推薦列表少于或等于所述預定最小數目個項目,則從所 述第一推薦列表的項目中選擇包括根據相關值區(qū)分優(yōu)先級的最小數目個項目的第三推薦列表,并且返回所述第三推薦列表;如果所述第二推薦列表多于所述預定最小數目個項目,則根據所述相 關值和所述預定參數集合改進所述第二推薦列表。
17. 如權利要求16所述的方法,其中所述改進所述第二推薦列表的步驟包括如果所述第二推薦列表少于或等于預定最大數目個項目,則返回所述第二推薦列表;以及如果所生成的所述第二推薦列表多于所述預定最大數目個項目,則根 據所述請求中的預定的源領域進一步改進所述第二推薦列表。
18. 如權利要求17所述的方法,其中所述進一步改進的步驟包括根據所述預定的源領域將所述第二推薦列表分離成多個群組; (a) —次一個地移過每個群組,選擇具有最高相關值的推薦以形成 第四推薦列表; (b)重復步驟(a),直到所述第四推薦列表等于所述預定最大數目 個項目為止;以及返回所述第四推薦列表。
19. 一種用于在計算機網絡上生成推薦的系統(tǒng),包括 用于經由因特網處理用戶事件的多個領域服務器; 用于存儲所述用戶事件的數據庫;以及包括一個或多個計算機程序的推薦引擎,所述計算機程序包括用于執(zhí) 行以下步驟的指令收集所述數據庫中的跨多個領域的用戶事件; 接收針對推薦的觸發(fā)事件;分析所述用戶事件以編制所述數據庫中的用戶事件之間的相關性;以及響應于所述觸發(fā)事件,根據所述數據庫中的用戶事件之間的相關性, 生成推薦。
20. 如權利要求19所述的系統(tǒng),其中所述用于收集用戶事件的指令包 括用于執(zhí)行以下歩驟的指令接收來自所述多個領域的用戶事件,其中所述用戶事件包括一個或多 個用戶事件參數;根據預定的規(guī)則集合驗證所述用戶事件參數;如果所述用戶事件未能滿足所述預定規(guī)則集合中的規(guī)則之一,則丟棄 所述用戶事件;以及如果所述用戶事件滿足所述預定規(guī)則集合,則將所述用戶事件存儲在 所述數據庫中。
21. 如權利要求20所述的系統(tǒng),其中所述用于驗證特定用戶事件參數 的指令包括用于執(zhí)行以下步驟的指令如果所述特定用戶事件參數存在于所述數據庫中,則繼續(xù)驗證另一個 用戶事件參數,直到所有用戶事件參數都被驗證為止;以及如果所述特定用戶事件參數不存在于所述數據庫中,則檢查是否啟用 了與所述特定用戶事件參數相對應的預定的動態(tài)更新配置; 如果啟用了與所述特定用戶事件參數相對應的動態(tài)更新配置,則 將所述特定用戶事件參數添加到所述數據庫;以及如果未啟用與所述特定用戶事件參數相對應的動態(tài)更新配置,則 丟棄所述用戶事件。
22. 如權利要求20所述的系統(tǒng),其中所述用于驗證所述用戶事件參數的指令包括用于執(zhí)行以下步驟的指令 驗證用戶事件領域; 驗證用戶事件類型; 驗證用戶事件值; 驗證用戶事件項目;以及 驗證用戶標識符。
23. 如權利要求19所述的系統(tǒng),其中所述用于分析所及用戶事件的指 令包括用于執(zhí)行以下步驟的指令對所述用戶事件應用協(xié)同過濾,以計算所述用戶事件之間的相關值; 以及 將所述相關值存儲在相似性數據庫中。
24. 如權利要求19所述的系統(tǒng),所述推薦引擎的計算機程序還包括用 于執(zhí)行以下步驟的指令接收對推薦相似項目的請求;以及根據所述數據庫中的用戶事件之間的相關性生成相似項目推薦。
25. 如權利要求24所述的系統(tǒng),還包括用于根據優(yōu)先級方案生成相似 項目推薦的指令。
26. 如權利要求24所述的系統(tǒng),其中所述用于生成相似項目推薦的指 令包括用于執(zhí)行以下步驟的指令驗證所述請求,其中所述請求包括預定參數的集合; 如果源領域被指定,則根據所述源領域生成第一推薦列表;以及 如果所述源領域未被指定,則根據所述數據庫中的所有可用領域生成 所述第一推薦列表。
27. 如權利要求26所述的系統(tǒng),其中所述用于生成所述第一推薦列表 的指令包括用于執(zhí)行以下步驟的指令如果所述第一推薦列表少于或等于預定最小數目個項目,則返回所述 第一推薦列表;以及如果所述第一推薦列表多于所述預定最小數目個項目,則根據相關值 和所述預定參數集合改進所述第一推薦列表。
28.如權利要求27所述的系統(tǒng),其中所述用于改進所述第一推薦列表的指令包括用于執(zhí)行以下步驟的指令:從所述第一推薦列表的項目形成具有高于預定閾值的相關值的第二推薦列表;如果所述第二推薦列表少于或等于所述預定最小數目個項目,則從所 述第一推薦列表的項目中選擇包括根據相關值區(qū)分優(yōu)先級的最小數目個項目的第三推薦列表,并且返回所述第三推薦列表;以及如果所述第二推薦列表多于所述預定最小數目個項目,則根據所述相 關值和所述預定參數集合改進所述第二推薦列表。
29. 如權利要求28所述的系統(tǒng),其中所述用于改進所述第二推薦列表 的指令包括用于執(zhí)行以下步驟的指令-如果所述第二推薦列表少于或等于預定最大數目個項目,則返回所述 第二推薦列表;以及如果所生成的所述第二推薦列表多于所述預定最大數目個項目,則根 據所述數據庫中的預定的源領域進一步改進所述第二推薦列表。
30. 如權利要求29所述的系統(tǒng),其中所述用于進一步改進的指令包括 用于執(zhí)行以下步驟的指令根據所述預定的源領域將所述第二推薦列表分離成多個群組;(a) —次一個地移過每個群組,選擇具有最高相關值的推薦以形成 第四推薦列表;(b) 重復步驟(a),直到所述第四推薦列表等于所述預定最大數目 個項目為止;以及返回所述第四推薦列表。
31. 如權利要求19所述的系統(tǒng),所述推薦引擎的計算機程序還包括用 于執(zhí)行以下步驟的指令接收對推薦個性化項目的請求;以及根據所述數據庫中的用戶事件之間的相關性生成個性化推薦。
32. 如權利要求31所述的系統(tǒng),其中所述用于生成所述個性化推薦的 指令包括用于執(zhí)行以下步驟的指令驗證所述請求,其中所述請求包括預定參數的集合從所述數據庫取得用戶表現(xiàn)出偏好的第一項目列表,其中每個項目具 有大于或等于預定閾值的相關值;(a) 為用戶表現(xiàn)出了偏好的每個項目創(chuàng)建相似項目的推薦集合;(b) 將所述相似項目推薦集合存儲在第一推薦列表中;以及(c) 重復步驟(a)和(b),直到所述第一項目列表中的所有成員都 已被移過為止;以及根據所述相關值和預定參數的集合提煉所述第一推薦列表。
33. 如權利要求32所述的系統(tǒng),其中所述用于提煉所述第一推薦列表的指令包括用于執(zhí)行以下步驟的指令如果所述第一推薦列表少于或等于預定最小數目個項目,則返回所述第一推薦列表;以及如果所述第一推薦列表多于所述預定最小數目個項目,則根據所述相 關值和所述預定參數集合改進所述第一推薦列表。
34. 如權利要求33所述的系統(tǒng),其中所述用于改進所述第一推薦列表的指令包括用于執(zhí)行以下步驟的指令從所述第一推薦列表的項目形成具有高于預定閾值的相關值的第二推薦列表;'如果所述第二推薦列表少于或等于所述預定最小數目個項目,則從所 述第一推薦列表的項目中選擇包括根據相關值區(qū)分優(yōu)先級的最小數目個項 目的第三推薦列表,并且返回所述第三推薦列表;如果所述第二推薦列表多于所述預定最小數目個項目,則根據所述相 關值和所述預定參數集合改進所述第二推薦列表。
35. 如權利要求34所述的系統(tǒng),其中所述用于改進所述第二推薦列表 的指令包括用于執(zhí)行以下步驟的指令如果所述第二推薦列表少于或等于預定最大數目個項目,則返回所述 第二推薦列表;以及如果所生成的所述第二推薦列表多于所述預定最大數目個項目,則根 據所述數據庫中的預定的源領域進一歩改進所述第二推薦列表。
36. 如權利要求35所述的系統(tǒng),其中所述用于進一步改進的指令包括用于執(zhí)行以下步驟的指令根據所述預定的源領域將所述第二推薦列表分離成多個群組;(a) —次一個地移過每個群組,選擇具有最高相關值的推薦以形成 第四推薦列表;(b) 重復步驟(a),直到所述第四推薦列表等于所述預定最大數目 個項目為止;以及返回所述第四推薦列表。
37. —種計算機程序產品,包括存儲供一個或多個計算機系統(tǒng)執(zhí)行的 計算機程序的介質,所述計算機程序包括推薦模塊,用于生成跨多個產品或服務領域的推薦,其中所述推薦模 塊是至少結合處理單元、用戶接口和數據庫使用的,并且所述推薦模塊包 括一個或多個計算機程序,所述計算機程序包括用于執(zhí)行以下步驟的指收集數據庫中的跨多個領域的用戶事件; 接收針對推薦的觸發(fā)事件;分析所述用戶事件以編制所述數據庫中的用戶事件之間的相關性;以及響應于所述觸發(fā)事件,根據所述數據庫中的用戶事件之間的相關性, 生成推薦。
全文摘要
公開了一種用于生成跨多個產品或服務領域的推薦的系統(tǒng)。該系統(tǒng)包括用于經由因特網向用戶提供接口并且處理用戶事件的多個領域服務器;用于存儲用戶事件的數據庫;以及推薦引擎。該推薦引擎還包括一個或多個計算機程序,所述計算機程序包括用于執(zhí)行以下步驟的指令收集數據庫中的跨多個產品或服務領域的用戶事件;接收針對推薦的觸發(fā)事件;分析用戶事件以編制數據庫中的用戶事件之間的相關性;以及響應于觸發(fā)事件,根據數據庫中的用戶事件之間的相關性,生成推薦。所公開的技術用來自不同領域的用戶輸入數據產生在這些領域中的任何一個中的推薦。所公開的技術允許訪問更大量的用戶輸入數據,這進而又提高了推薦質量。
文檔編號G06Q30/00GK101124575SQ200580005802
公開日2008年2月13日 申請日期2005年2月25日 優(yōu)先權日2004年2月26日
發(fā)明者史蒂文·K·桑德爾斯, 拉斯·P·尼勒森, 斯科特·A·蓋特茲, 阿什溫庫瑪·P·帕特爾 申請人:雅虎公司