王彥琨
(太原理工大學,山西 晉中 030600)
近年來,數據總量呈現指數級增長趨勢,信息技術的應用范圍和邊界不斷延伸。據統計,全球數據總量預計2020年達到44 ZB,其中中國數據量將達到8 060 EB,占全球數據總量的18%。數據的爆發式增長為互聯網行業帶來了機遇與挑戰,對人類生活產生了重大影響。目前,人們談及的推薦系統在互聯網行業有著廣泛應用,其中絕大部分是涉及“大數據”概念下的人工智能領域技術。個性化推薦系統原理并不復雜,但能大幅提升數據的使用效率。目前,這種基于大數據的統計分析技術已經相對成熟。
用戶行為數據收集是構建推薦系統最關鍵的一步。網站日志記錄是用戶行為數據最簡單的存在形式。網頁原始日志可以按照用戶行為的類別匯總成日志,每個會話用于表示一次用戶行為和相應的行為反饋。會話日志通常存儲在分布式數據系統中。利用網站用戶行為日志可以方便地收集相關數據[1]。
批量化的系統文件日志數據通常使用編寫語言腳本的方式采集,利用各種編程語言的網絡爬蟲方式從網站上獲取批量數據信息,提取網頁日志中文本形式的數據,并均衡分配到分布式存儲系統的不同計算機上,以便進行下一步的統計分析處理。文件數據的收集方式為開發人員提供了一個高可擴展的、高可靠性以及高容錯性的推薦方案。
存儲的用戶行為數據越全面,推薦系統給出的結果就越準確。分布式存儲可以用來實現海量數據的存儲管理,通過可擴展的系統結構,使用多個存儲服務器共享存儲負載,從而滿足大規模存儲應用的需求。此外,分布式存儲系統的自動負載平衡和高容錯性允許在廉價的服務器上構建分布式存儲系統,可以選擇使用標準MySQL數據庫、鍵值數據庫、文檔數據庫甚至是某種實時流處理。不同的數據庫按不同的數據結構進行聯系和組織。
利用統計方法對海量用戶行為數據進行深度分析挖掘,提取所需信息,這一過程稱為數據分析。根據數據的實時性分類,數據分析可以分為實時分析、批量分析以及近實時分析3種方式。
實時數據分析可以通過對訪問用戶日志的實時采集與推送,實現快速對日志數據進行多維度的分析與檢索,在存儲數據的同時進行信息挖掘分析,從而為互聯網用戶提供具有實效性的推薦結果,以獲取更大的數據價值[2]。但是,實時數據流的不斷涌入導致必須重塑系統基本架構。批量數據分析可以給定數據的處理期限,如每隔1 h執行一次數據處理。但是,這種數據分析方式只能在一定程度上滿足用戶需求,無法保證數據一致性和可靠性。近實時分析介于實時分析和批量分析兩種數據分析方式之間,可以在間隔很小的一個時間段內進行用戶行為數據的采集。這樣的推薦系統在用戶每次瀏覽頁面時能給出推薦結果,具有較好的實時性。
數據過濾是整個推薦系統中最核心的部分,本文主要介紹協同過濾算法。協同過濾算法是信息過濾技術中的一種常用方法,一般采用最近鄰技術,處理對象是由用戶行為所表示的數據。協同過濾進一步挖掘了互聯網用戶的興趣所在,旨在找到與大量其他用戶具有相似喜好的用戶,對物品評價以類似于加權的方式進行處理,由此預測系統中該用戶對此信息或物品的興趣程度。
基于用戶的協同過濾算法可以理解為:推薦系統中為單個用戶給出個性化建議時,先要找到和他的興趣愛好具有較高相似程度的用戶群體,通過統計用戶群體大概率喜歡的商品,使得該用戶能找到其他用戶喜歡的且自己沒見過的物品[3]。基于用戶的協同過濾算法主要包括獲取特定用戶的興趣愛好、發現興趣相似的用戶和推薦潛在物品3個基本步驟。
基于物品的協同過濾算法不使用內特征屬性項來計算物品之間的相似度,商品之間的距離通過比較不同用戶的行為記錄來計算。應用該算法可以得出結論,兩個不同的物品具有很大相似度的原因是喜歡其中一件物品的網絡用戶大都對另一件物品感興趣。基于物品的協同過濾算法分兩步實現,即計算不同物品的距離,在此研究基礎上通過生成物品的相似度矩陣,為特定用戶生成物品推薦列表。
目前,主要有3種評測推薦效果的方法。
離線實驗的方法。首先,通過企業網站日志獲取相關數據,按照標準生成一個結構化數據集;其次,將結構化數據集按照一定比例分為訓練集和測試集,分別用于訓練模型和預測;最后,通過建立相應的評測算法,在用戶物品模型上進行預測。存在的缺點是稀疏數據集限制了系統的應用范圍[4]。
用戶行為調查。用戶行為調查需要現實中的用戶在系統中回答給定問題,根據答案和行為計算系統的各項評測性能指標[5]。這有利于了解用戶的主觀感受,及時更正錯誤,因為預測率較高并不等同于用戶確實較為滿意。缺點是時間成本較高,需要盡可能保證用戶行為的真實有效性。
AB測試。在完成離線實驗和用戶行為調查的基礎上,可以執行AB測試。AB測試的基本思想是并行測試多個系統,而不同的系統以某種規則進行比較,且每個測試系統只存在一個不同的變量。缺點是周期較長,為了得到可靠的結果需要進行長期的實驗。
推薦系統上的AB測試與其他系統的聯系如圖1所示。

圖1 評測系統和其他系統的關系
推薦系統的出現一定程度上彌補了傳統信息搜索處理方法的局限。這一系統的執行依賴于海量的用戶信息,能夠快速幫助用戶找到感興趣的信息,目前已應用于大量商業軟件,并將逐漸成為用戶發現信息的重要來源。