放大推薦引擎的構建過程
已發表: 2023-08-03人們在 Netflix 上觀看的 80% 以上的節目都是通過該平台的推薦引擎發現的。 這意味著您所看到的大部分內容都是複雜機器做出的決策的結果。
該流媒體服務依靠人工智能來查看內容中的細微差別,並深入了解觀眾的偏好。 可以肯定地說:努力得到回報!
如果您仍落後於潮流,但希望改善客戶對您的業務的體驗,請繼續閱讀。 在這篇博文中,我們將指導您完成構建推薦引擎的過程,並闡明您在轉向人工智能服務供應商之前需要了解的所有信息。
推薦引擎 101:冒險開發之前需要了解的事情
在我們開始討論如何構建推薦引擎之前,讓我們先了解一下推薦引擎的類型、用例和實現選項。
傳統上,推薦系統分為兩大類:基於內容的過濾和協作過濾系統。
基於內容的過濾
基於內容的過濾系統根據內容的特性或特徵生成推薦。 換句話說,他們推薦與用戶之前喜歡或互動過的產品或內容類似的產品或內容。 這樣,推薦引擎就可以向喜歡《西線無戰事》和《第二十二條軍規》的讀者推薦《永別了,武器》。
但引擎如何知道哪些項目是相似的呢? 讓我們看看 Netflix 構建推薦引擎的方法來理解這一點。 雖然Netflix的推薦系統是混合性質的,但它很大程度上依賴於內容的相似性。
該流媒體服務擁有一支標籤團隊,他們會觀看每條新內容並為其貼上標籤。 標籤的範圍很廣,從作品的動感程度到它是否以太空為背景或由特定演員主演。 通過機器學習算法根據觀眾行為分析標籤數據,流媒體平台可以找出與每個用戶真正相關的內容。
協同過濾
協同過濾系統根據用戶反饋提出建議。 此類系統假設喜歡類似商品的用戶可能會對新產品和內容做出類似的反應。
有兩種依賴協同過濾構建推薦引擎的方法:基於用戶的和基於項目的。
通過基於用戶的過濾,您可以創建具有共享偏好的相似用戶細分。 因此,用戶可能會被推薦該細分中其他用戶喜歡的項目。 沒有考慮內容的特徵。
通過基於項目的過濾,引擎根據用戶喜歡的項目與建議的項目的相似性來創建推薦。 聽起來類似於基於內容的過濾,不是嗎? 儘管基於內容的過濾和基於項目的協作過濾系統都使用項目相似性來進行推薦,但它們在確定相似內容的方式上有所不同。
基於內容的過濾系統僅推薦與用戶已經喜歡的項目相似的項目。 通過基於項目的協作過濾,系統會向您推薦與您喜歡的項目相似且您所在細分市場中的用戶也喜歡的項目。
推薦引擎的用例
高度個性化已成為用戶期望的必需品,促使企業通過推薦引擎豐富他們的在線體驗。 推薦引擎已普及的領域包括:
- 零售和電子商務:電子商務中的推薦引擎可以執行任何操作,從對產品進行分類到建議客戶購買新商品。 在電子商務中實施推薦引擎所帶來的影響以及隨之而來的增強的客戶服務、改進的營銷以及更廣泛的追加銷售可能性所帶來的影響很難高估。 例如,著名的電子商務巨頭亞馬遜,其35%的收入都是通過其推薦系統產生的。
- 媒體和娛樂:從策劃播放列表到根據過去的互動提供個性化建議,推薦引擎可以通過向用戶展示他們不會發現的內容來幫助媒體和娛樂平台更長時間地吸引用戶。 YouTube、Netflix 和 Spotify 等最大的媒體和娛樂平台嚴重依賴人工智能生成的個性化推薦來吸引和留住新用戶。
- 社交媒體:社交媒體部門也在利用提供個性化建議的可能性。 社交媒體平台幫助用戶發現相似的頁面和帳戶,促使用戶花更多時間與內容互動,從而提高點擊率並增加收入。
- 銀行和金融:基於人工智能的推薦系統使銀行能夠分析用戶的交易和追加銷售以增加收入。 例如,當用戶購買價值 500 美元的機票時,推薦引擎會自動假設他們要飛往國外,並建議他們購買保險旅行套餐。
可供選擇的實施選項
當您踏上構建推薦引擎的旅程時,您將遇到幾種具有各自優點和注意事項的實現選項,即:
即插即用的推薦引擎
即插即用的推薦引擎提供了一種方便、無憂的方式將個性化推薦融入您的產品或平台。 它們是預先構建的,旨在無縫集成到您現有的基礎設施中。
即插即用推薦引擎的主要優勢在於其簡單性和易用性。 它們通常被設計為用戶友好的,甚至允許非技術受眾以最小的努力來設置它們。 即插即用推薦引擎的示例涵蓋 Recombee、Seldon 和 LiftIgniter 等平台。
即插即用推薦引擎的缺點是定制性和適應性有限。 雖然它們提供了便利和速度,但它們可能無法提供定制解決方案所提供的靈活性和微調水平。
預先訓練的基於雲的推薦服務
基於雲的推薦引擎允許利用雲服務提供商的大量計算資源和專業知識。 這些推薦服務通常提供易於使用的 API,使開發人員能夠輕鬆地將推薦功能集成到他們的應用程序中。
基於雲的推薦引擎也具有高度可擴展性,這使得它們能夠處理龐大的用戶群和高流量負載。 另一個優勢是隨著服務提供商更新和完善底層模型而不斷改進。
Amazon Web Services、Google Cloud Platform 和 Microsoft Azure 等領先的雲服務供應商提供預先訓練的推薦服務。
選擇預先訓練的基於雲的推薦服務時要考慮的因素包括數據隱私、供應商鎖定和定制要求。 雖然這些服務提供了便利性和可擴展性,但它們在定制推薦算法以滿足您的特定業務需求方面可能存在局限性。
定制推薦引擎
自定義推薦引擎提供最高程度的靈活性和控制,使您能夠整合專有算法、利用特定領域的知識並考慮數據的細微差別。 採用自定義方式可以讓您捕獲用戶偏好、項目特徵和上下文因素的複雜性,通常會產生更準確和相關的推薦。
然而,雖然自定義推薦引擎提供了最大的靈活性,但它們也需要大量的開發資源、機器學習方面的專業知識以及持續的維護工作。 因此,在構建自定義推薦引擎之前,請仔細評估您的業務需求、可用資源和長期目標。
經驗法則是在以下場景中採用自定義路線:
- 您有獨特的業務需求:如果您的企業有現成解決方案無法滿足的獨特需求,請進行定制。 它將允許您根據您的特定任務定制算法。 假設您是一個銷售手工產品的利基電子商務平台。 在推薦產品時,您可能有不同的要求:推薦引擎必須考慮產品稀有性、工藝以及用戶對特定款式或材料的偏好等因素。 從頭開始構建推薦引擎將更有可能讓您生成符合用戶偏好的推薦。
- 您想要完全控制和所有權:構建自定義推薦引擎可以讓您完全控制整個推薦生成過程:從數據預處理到算法選擇再到微調。 它使您能夠獲得系統的完全所有權,並隨著業務的發展進行調整,而無需依賴第三方解決方案。
- 您擁有特定領域的知識:如果您擁有特定領域的專業知識或可以訪問可以顯著提高推薦準確性的專業數據,那麼構建自定義解決方案可以讓您有效地利用這些知識。 通過開發定制的推薦引擎,您可以合併預訓練解決方案中可能不可用的特定於領域的功能或約束。
- 您的應用程序需要高可擴展性和性能:如果您預期有大量用戶或項目,有嚴格的延遲限制,或者需要處理大型且複雜的數據集,構建自定義推薦引擎可以讓您靈活地設計和優化系統,以最大限度地提高系統性能。可擴展性和性能。 如果您想生成實時或近實時的推薦,這同樣適用。
- 您希望獲得競爭優勢:如果準確的推薦是您的產品或服務的核心差異化因素,那麼構建自定義推薦引擎可能會給您帶來競爭優勢。 在這種情況下,投資定制解決方案可以提供提供獨特和個性化體驗的機會,從而提高參與度、忠誠度和客戶滿意度。
逐步構建自定義推薦引擎
提供個性化推薦是一項通常通過機器學習解決的任務。 也可以使用神經網絡,但它們的作用主要限於預處理訓練數據。 以下是 ITRex 機器學習開發人員分享的構建推薦引擎過程中的關鍵步驟。
步驟1.設定方向
通過為項目的其餘部分設定方向來啟動開發。 此階段要做的重要事情包括:
設定目標並定義項目範圍
清楚地概述您打算通過推薦系統實現的目標,並根據資源和預算限制權衡設定的目標。 例如,如果您想提高客戶參與度並增加在線商店的銷售額,您可以將項目範圍限制為向已購買的客戶推薦產品。 與構建針對所有客戶的推薦引擎相比,保持範圍相當狹窄需要更少的工作,同時產生投資回報率的潛力仍然很高。
評估可用的數據源
推薦系統的性能在很大程度上取決於訓練數據的數量和質量。 在開始培訓之前,請仔細評估您是否有足夠的數據點來生成建議。
定義績效指標
構建推薦引擎的關鍵挑戰之一應該從一開始就考慮到定義成功指標。 在開始訓練 ML 算法之前,想出一種方法來判斷用戶是否真的喜歡新生成的推薦。
步驟 2. 收集訓練數據
構建自定義推薦系統過程的下一步是收集和準備用於訓練機器學習算法的數據。 要構建可靠的推薦系統,您需要足夠的有關用戶偏好的數據。
根據構建推薦引擎的方法,您的重點會發生變化。 在構建協同過濾系統時,您收集的數據以用戶行為為中心。 通過基於內容的過濾系統,您可以專注於用戶喜歡的內容功能。
協同過濾
有關用戶行為的數據可能有不同的形式:
- 明確的用戶反饋是指任何需要用戶付出努力的事情,例如撰寫評論、喜歡某條內容或產品、抱怨或發起退貨。
- 隱式用戶反饋,例如過去的購買歷史記錄、用戶查看某個優惠的時間、觀看/收聽習慣、社交媒體上留下的反饋等等。
在構建推薦引擎時,我們建議結合顯式反饋和隱式反饋,因為後者可以挖掘用戶可能不願意承認的偏好,從而使系統更加準確。
基於內容的過濾
在為基於內容的過濾系統收集數據時,了解在挖掘用戶喜歡的內容時應該依賴哪些產品/內容功能至關重要。
假設您正在為音樂愛好者構建一個推薦引擎。 您可以依靠頻譜圖分析來了解特定用戶喜歡什麼類型的音樂,並推薦具有相似頻譜圖的音樂。
或者,您可以選擇歌詞作為推薦的基礎,並建議處理類似主題的歌曲。
關鍵是進行測試和調整,以了解什麼最適合您,並準備好不斷改進初始模型。
步驟 3. 清理和處理數據
要構建高性能的推薦引擎,您必須考慮不斷變化的用戶品味。 根據您的推薦,舊的評論或評級可能不再相關。

為了防止出現錯誤,請考慮僅查看更有可能代表當前用戶品味的功能,刪除不再相關的數據,並為最近的用戶操作(而不是較舊的操作)添加更多權重。
步驟 4. 選擇最佳算法
構建推薦引擎過程的下一步是選擇適合您的任務的機器學習算法。 ITRex 的數據科學家建議考慮以下因素:
- 矩陣分解將大型數據集分解為較小的部分,以發現用戶和項目之間隱藏的模式和相似性。
- 張量分解是矩陣分解的擴展,可以處理稱為張量的更高維數據結構。 它通過將張量分解為潛在因子來捕獲更複雜的模式,從而提供對用戶-項目交互的更詳細的理解。
- 分解機是可以處理高維和稀疏數據的強大模型。 它們捕獲功能之間的交互,並可應用於推薦任務。 通過考慮功能交互,即使數據不完整,他們也可以提供準確的建議。
- 鄰域模型根據屬性或行為發現用戶或項目之間的相似性。 它們對於協作過濾特別有效,它們在網絡中的用戶或項目之間建立連接,並根據相似用戶或項目的偏好提出推薦。
- 隨機遊走是一種基於圖的算法,用於探索網絡中項目或用戶之間的連接。 通過導航網絡,它捕獲項目或用戶之間的相似性,並根據捕獲的連接提出建議。
- SLIM是推薦系統中使用的一種技術,用於了解項目之間的相互關係。 它專注於尋找項目之間關係的模式,並使用這些模式來提出建議。
- 線性模型根據特徵之間的線性關係預測用戶項目偏好。 雖然它們很容易理解並且可以快速訓練,但它們可能無法像其他方法那樣有效地捕獲複雜的模式。
此外,您還可以選擇以下深度學習模型:
- DSSM (深度結構化語義模型)學習文本或文檔的表示。 他們專注於在結構化框架內捕捉單詞的語義及其關係。
- 圖卷積網絡是為圖結構數據而設計的。 它們對圖進行操作,捕獲圖中節點之間的關係和交互。
- 變分自動編碼器是一種生成模型,它通過捕獲數據的底層潛在空間來學習數據的表示。 這些模型使用編碼器-解碼器架構將數據壓縮到低維空間並重建它。
- Transformer是一種使用自註意力機制來捕獲句子或文檔中單詞之間的上下文關係的模型。
需要注意的是,上述方法很少單獨使用。 相反,它們通過以下技術和算法組合:
- 集成涉及獨立訓練多個模型,然後通過各種技術組合它們的預測。 每個模型對最終預測的貢獻相同,並且組合通常很簡單,不涉及訓練額外的模型。
- 堆疊採用了更先進的方法。 它涉及訓練多個模型(稱為基礎模型),然後通過元模型組合它們的預測。 基礎模型根據輸入數據進行預測,它們的預測成為元模型的輸入特徵。 然後訓練元模型以做出最終預測。
- AdaBoost是一種集成學習算法,通過在不同的數據子集上迭代訓練基礎模型來提高基礎模型的準確性。 該方法重點關注難以正確分類的實例,並在後續訓練迭代中給予它們更多關注。 在每次迭代中,AdaBoost 根據訓練實例的分類精度為其分配權重。 然後,它在加權數據上訓練表現不佳的模型,其中權重強調先前迭代中錯誤分類的實例。
- XGBoost是一種集成方法,它迭代地組合弱預測模型以創建更強的模型。 它以順序方式訓練模型,其中每個後續模型都會糾正前一個模型所犯的錯誤。
步驟 4. 訓練和驗證模型
一旦您確定了推薦引擎的算法,就可以訓練和驗證模型了。 構建推薦引擎過程中的這一步如下所示:
首先,您需要將數據分為兩組:訓練集和測試集。 顧名思義,訓練集會教您的模型識別用戶偏好的模式。 測試集有助於評估模型在新數據上的性能。
準備好訓練集後,開始訓練您的模型。 這涉及將算法暴露給數據,使其能夠學習底層的模式和關係。
訓練階段結束後,是時候使用測試集評估模型的性能了。 這將幫助您了解模型如何有效地推廣到新數據。
或者,您可以依靠實時反饋來了解模型的執行情況。 這樣,您就可以在生產中部署模型並將生成的建議映射到用戶反饋。 然後您進入下一步,設置模型以通過迭代學習過程調整其參數。
步驟 5. 調整模型超參數
評估模型的性能後,您可以根據需要對其進行微調。 讓我們考慮一個基於協同過濾算法的推薦系統的示例。
在協同過濾中,鄰居的數量決定了在進行推薦時會考慮多少相似的用戶或項目。 假設您正在構建一個依賴於協作過濾並推薦新電影的推薦引擎。 最初,您將鄰居數量設置為 10,這意味著模型在生成推薦時會考慮 10 個最相似用戶的偏好。
評估模型的性能後,您發現建議的精度低於預期。 為了改進這一點,您決定通過調整鄰居數量來微調模型。
要探索不同鄰居大小的影響,您可以使用範圍值進行實驗。 例如,將鄰居數量減少到 5 個可能會導致精度顯著提高。 但是,您可能會注意到召回率略有下降,這表明該模型錯過了一些相關建議。 反過來,增加數字 20 可能會導致召回率略有提高,但建議可能會變得不那麼個性化。
關鍵是要在準確率和召回率之間取得折衷,並在捕獲不同用戶偏好和保持準確推薦之間取得平衡。
步驟 6. 實施、監控和更新模型
模型準備就緒並準備好運行後,就到了實施它的時候了。
為了確保成功實施,請考慮將模型合併到現有基礎設施中的最有效方法。 例如,您可以將模型嵌入到網站的後端,確保它與用戶界面無縫交互。 這種集成可以實現動態適應用戶偏好的實時推薦。
或者,您可以將模型部署為服務,例如推薦引擎 API,應用程序的其他組件可以輕鬆調用該服務。 這種面向服務的方法確保了靈活性和可擴展性,使您的應用程序能夠輕鬆地利用推薦引擎的功能。
實施階段也是考慮如何向用戶呈現建議的好時機。 它們是否會在網站主頁上顯示為個性化建議,並在直觀的界面中整齊地分類? 或者它們會無縫集成到應用程序的界面中,在適當的時刻出現給用戶帶來驚喜嗎? 選擇權在您,但始終將用戶體驗放在首位。
最後,嚴格測試已實現的模型以確保其無縫功能至關重要。 運行全面的測試來驗證其在各種用戶交互中的性能和行為,以確保推薦準確、及時且符合用戶期望。
構建推薦引擎的挑戰以及如何解決這些挑戰
了解構建推薦引擎的挑戰對於提供個性化和相關的推薦至關重要。 以下是最常見的概述:
挑戰 1. 衡量成功
構建推薦引擎的關鍵挑戰之一應該從一開始就考慮到定義成功指標。 換句話說,在開始收集數據和訓練 ML 算法之前,您應該找到一種可靠的方法來判斷用戶是否真的喜歡新生成的推薦。 這將指導您的開發過程。
比如說,你是一個流媒體平台。 您可以計算點贊數或每月付費訂閱數來衡量推薦引擎的性能。 然而,很可能你的建議是好的,而用戶卻不願意明確說明他們的偏好或為服務付費。
我們數據科學家的經驗表明,用戶行為是衡量推薦系統性能的更可靠方法。 如果用戶一晚上狂看了某個節目,即使沒有給出明確的反饋,我們也不會懷疑他們是否喜歡該節目。
挑戰2.維數詛咒
數據維度是指數據集中特徵的數量。 更多的輸入特徵通常會使構建準確的推薦引擎變得更具挑戰性。 我們以 YouTube 為例。 在平台上,數十億視頻和用戶共存,每個用戶都在尋求個性化推薦。 然而,人力和計算資源是有限的,幾乎沒有人願意花幾個小時等待建議加載。
為了應對這一挑戰,在啟動推薦算法之前需要一個額外的步驟,即候選生成。 此步驟可以將數十億個視頻的範圍縮小到數万個。 然後這個較小的組用於生成推薦。
候選生成使用各種策略,其中最近鄰搜索是最突出的一種。 克服維度問題的其他常見做法包括探索相似年齡組的人之間共享的流行類別或偏好。
挑戰3.冷啟動
構建推薦引擎過程中的另一個常見問題是,當系統缺乏有關用戶或項目的足夠信息時,就會出現冷啟動難題,從而難以提供準確的推薦。 克服這一障礙需要採用協作過濾、基於內容的過濾或混合方法等方法。
挑戰 4. 長尾
推薦系統可能會遭受一種稱為“長尾”的現象。 這意味著受歡迎的商品會受到更多關注和推薦,而不太受歡迎的商品仍然不會被用戶注意到。 解決這個問題需要生成個性化推薦並考慮個人用戶偏好。
挑戰5.新項目的冷啟動
當新項目添加到系統中時,它幾乎沒有甚至沒有用於生成推薦的歷史數據,因此很難創建相關建議。 解決這個問題的一種方法是使用內容過濾器並通過促銷或廣告積極吸引用戶與新商品互動。
挑戰六、新用戶冷啟動
同樣,新用戶可能沒有足夠的歷史數據來進行準確的推薦。 為了克服這一挑戰,可以採用基於內容的過濾、反饋請求和初始用戶調查等方法。
挑戰7.數據稀疏性
在推薦系統中,數據稀疏是一種常見現象,即許多用戶對少量項目進行評分或交互。 這對預測用戶偏好提出了挑戰。 為了解決這個問題,可以使用結合降維、正則化和其他技術的矩陣分解方法。
把它們加起來
構建推薦引擎是一個由算法、用戶洞察和迭代細化推動的旅程。 從定義問題到選擇正確的方法,再到細緻的數據預處理到模型訓練,每一步都有助於創建強大的推薦系統。
推薦引擎了解用戶偏好並提供量身定制的推薦的能力可以為您的業務帶來巨大的潛力。 亞馬遜、YouTube、Spotify 和許多其他鮮為人知但同樣成功的企業徹底改變了自己的產品,隨後通過量身定制的推薦增加了收入。
例如,音樂流媒體平台 Spotify 依靠高度個性化的推薦作為關鍵的差異化因素,其用戶群和收入每年都在持續增長。 僅在 2022 年第四季度,發現一首新的喜愛歌曲的承諾就使該平台的每月活躍用戶增加了 20%,淨增用戶達到 3300 萬。
如果您仍然落後於潮流,那麼是時候利用人工智能的力量並通過自定義推薦引擎徹底改變您的用戶體驗了。
尋求通過強大的推薦引擎增強您的解決方案? 與 ITRex 顧問交談。
最初於 2023 年 6 月 6 日發佈於 https://itrexgroup.com。
