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

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