朱麗麗
(金陵科技學院 軟件工程學院,南京 211169)
隨著計算機科學、互聯網及信息技術的迅速發展,各類信息數據層出不窮,導致信息呈現過載狀態。信息過載下的目標信息獲取問題可以通過搜索引擎及推薦系統兩種方式解決[1-2]。目前比較常用的方式為搜索引擎,用戶在搜索引擎內輸入關鍵字、詞等基礎需求信息,搜索引擎從海量數據中挖掘關聯信息并展示給用戶,從而滿足用戶的搜索需求[3]。通過搜索引擎雖然能夠在過載信息狀態下獲取必要信息,但該方法需要用戶明確搜索方向,按照目標搜索并提供相關信息,若用戶暫無明確搜索方向,則面臨海量信息依舊束手無策,此時推薦系統應運而生。推薦系統是通過用戶以往在互聯網內的交互信息,感知用戶個人興趣愛好,依據用戶興趣愛好為用戶推薦相關信息[4-5]。推薦系統比搜索引擎更懂得如何為用戶推薦專屬信息,在用戶無搜索需求時尋找用戶隱式需求,為用戶推薦其感興趣的信息數據,有效提升用戶在互聯網中的使用體驗[6]。
推薦系統雖優越于搜索引擎,但仍有改進空間,目前已有相關人員針對推薦系統進行研究與改進。姜國義等[7]提出在E-Learning 的基礎上研究移動學習推薦系統,該系統雖有效解決移動終端對大量學習信息數據輸出條件受限制問題,但由于方法復雜度較高,不適用于實際應用;檀彥超等[8]提出在度量學習的基礎上設計推薦系統,該系統依據用戶在互聯網的交互信息,通過多個空間向用戶推薦隱式需求信息,但由于系統空間較多,系統在向用戶推薦信息時易產生同一信息多次推薦現象及信息亂序問題;劉雨萍等[9]提出了同時考慮樣本間類內關系的列表排序跨模態檢索方法;劉音等[10]提出基于改進遺傳算法的回歸測試用例優先級排序方法。引入禁忌搜索方法改進遺傳算法,并在回歸測試中用例優先級排序;岳峰等[11]提出基于異質網絡分析的列表級排序學習推薦方法。在異質網絡中明確科研社交網絡中實體關系的基礎上,將獲取的信息融入列表級排序學習框架中,實現學術論文推薦。
隨機森林算法是機器學習算法之一,該算法以決策樹為基礎,通過模擬與迭代等方式將問題做分類或回歸處理。排序學習方法是在信息檢索中,結合不同信息排序特征對搜索或推薦結果進行排序的監督性學習,常用于解決分類或回歸處理時信息的排序問題。排序學習方法分為點級排序學習、對級排序學習以及列表級排序學習3種方式。本文結合隨機森林算法與列表級排序學習,設計隨機森林算法下列表級排序學習推薦系統,使用戶在操作推薦系統時感受到方便且快捷的用戶體驗。在設計推薦系統時,需提升系統運行效率與擴展性,在滿足用戶隱式需求的前提下為用戶推薦專屬信息數據。
推薦系統即人機交互系統,能夠依據以往用戶與計算機的交互信息,在用戶未明確搜索方向的情況下,為用戶推薦專屬感興趣信息。推薦系統的總體結構主要由數據層、處理層、控制層與用戶層四部分組成,系統總體結構如圖1所示。

圖1 推薦系統總體結構
采用分層結構將推薦系統合理區分為數據層、處理層、控制層及用戶層(見圖1)。系統向用戶推薦專屬感興趣信息時,各層信息及數據均為雙向傳輸,推薦系統各層結構功能分別為:
1)數據層。數據層內的數據庫是處理層中數據采集模塊通過記錄以往用戶與系統交互信息及數據構建而成,是推薦系統推薦內容的主要依據。
2)處理層。處理層中包含數據采集模塊與信息推薦模塊,數據采集模塊主要采集用戶登錄賬號后,在搜索窗口中搜索的全部信息內容,實時記錄用戶與系統的互動信息并傳輸至數據庫內備用;信息推薦模塊是利用數據庫內的信息,通過列表級排序學習及隨機森林算法計算獲取推薦結果并傳輸給控制層。
3)控制層。控制層是由控制器控制用戶層與處理層中的各項流程,傳輸用戶層中的用戶操作至處理層中處理,并將處理層中產生的推薦結果傳輸至用戶層推薦界面展示給用戶。
4)用戶層。用戶層主要為用戶及系統提供交互界面,用戶通過注冊登錄界面注冊并登錄賬號進入系統主界面,若用戶有搜索方向則進入搜索界面搜索信息;若用戶暫無搜索方向則選擇推薦界面,由系統為用戶推薦專屬感興趣信息,用戶在推薦界面選中感興趣信息后,點擊該信息即可查詢更詳盡的信息內容。
推薦系統的整個推薦流程可以概括為:用戶在用戶層各界面進行操作并將操作信息傳輸至控制層;控制層將用戶操作信息傳輸至處理層;由處理層采集用戶感興趣信息及數據并傳輸至數據層,數據層將數據統一儲存至數據庫中;系統依據數據庫中的人機交互信息,由處理層中的信息推薦模塊獲取推薦結果并傳輸至控制層,控制層將推薦信息傳輸至用戶層推薦界面完成推薦系統對用戶的專屬信息推薦。
1.2.1 推薦系統硬件結構
考慮到目前信息數據的多樣化,除了傳統文字信息以外還有語音信息、動畫視頻信息等,因此在設計推薦系統硬件時,為系統加入Flash 及音頻模塊。依據推薦系統總體結構設計系統硬件,推薦系統硬件結構如圖2所示。

圖2 推薦系統硬件結構
圖2 推薦系統硬件結構中主控制器位于推薦系統總體結構控制層,用于控制用戶層與處理器間信息傳輸流程;CPU為推薦系統中央處理器,負責處理整個系統數據運算及指令等程序的運行;內核處理器主要用于提升推薦系統的擴展性能;電源負責提供推薦系統的工作電壓;SCM 存儲類內存卡用于存儲人機交互信息數據;Flash 模塊及音頻模塊用于展示用戶視頻動畫等信息數據;OLED液晶屏及按鍵模塊位于用戶層,用于為用戶展示系統推薦信息及人機互動操作。
1.2.2 內核處理器
為提升推薦系統運行效率及擴展性能,系統選取英特爾公司MAX 10 系列,型號為10M04DAF256I7G 的內核處理器作為推薦系統內核處理器,該處理器具有4 000 個單元數、I∕O 數178 個、總RAM 位數為193 536 位、內核電壓僅需1.15 V,成本及功耗較低,足以滿足推薦系統運行效率及擴展性能的提升需求。內核處理器的主要處理內容為:
1)響應按鍵模塊并依據按鍵模塊的用戶按鍵信息,接收用戶輸入指令,完成人機交互信息獲取功能。
2)通過訪問SCM 存儲類內存中的信息數據,作為推薦系統的推薦依據。
3)驅動OLED 液晶屏為用戶顯示用戶層各界面信息。
4)傳輸處理器處理內容至主控制器,由主控制器統一控制推薦系統中各層信息傳輸。
1.2.3 推薦系統電源模塊
電源模塊主要為推薦系統中各模塊提供電壓,系統電源模塊的電源芯片選取自TI品牌,型號為LM2940CT-5.0,該電源芯片類型為集成電路的線性低壓差穩壓器,在輸出電壓時噪聲較小,且該芯片具有超溫、短路及反極性保護功能,適用于溫度為0~125 ℃的工作環境內工作。以系統主控制器電源模塊為例,LM2940CT-5.0 電源芯片供電電路圖如圖3所示。LM2940CT-5.0芯片的動態響應性能較高,且具有較好的電源抑制比,若系統負載頻率發生改變,該芯片依然能為系統輸出穩定電壓。

圖3 電源芯片供電電路圖
1.3.1 列表級排序學習推薦列表的構建指標
推薦系統處理層信息推薦模塊的排序學習單元,利用列表級排序學習算法構建列表級排序學習推薦列表。考慮到推薦系統需滿足用戶隱式需求,以用戶u感興趣項目的概率分布值Pu為依據,構建包含用戶全部感興趣的列表級排序學習列表,選取最滿足用戶隱式需求的項目作為學習推薦系統的推薦首選。構建列表級排序學習列表時,通常采用推薦系統評價指標NDCG,由于評價指標NDCG存在不可求導特性,需利用函數對NDCG進行近似連續可導計算,從而完成列表級排序學習列表的構建。設置NDCG@k為評價排序學習列表前k個用戶感興趣項目的推薦評價指標,其表達式為:
式(1)中,Nk為函數的最大值,βj為用戶感興趣項目與其在排序學習列表中位置j的關聯程度,g( [βj]) 為增益函數,其表達式為,d(j)為貼現函數,其表達式為,b為貼現系數。將增益函數與貼現函數引入學習推薦評價指標表達式中,獲取學習推薦的評價指標表達式為:
式(2)中,s( )x為某用戶感興趣項目x在排序學習列表中的當前位置。
通過式(2)可知,求導NDCG 評價指標需以用戶感興趣項目位置為基礎,利用隨機森林算法學習列表級排序學習推薦列表時,用戶感興趣項目位置會產生改變[12-13]。為此,本文根據用戶的歷史搜索索引結構,將公式(2)得到的學習推薦的評價指標進行改進,改進后的評價指標如下:
式(3)中,β(x)為用戶感興趣項目x的待推薦程度。β(x)值為最大值時,代表推薦系統需要將該項目推薦至用戶;當β(x)=0 時,代表推薦系統無需向用戶推薦該項目。將某用戶感興趣項目x在排序學習列表中的當前位置函數s(x)近似為連續可導函數,結合概率分布值Pu,重新定義當前位置函數s(x)的表達式為:
采用邏輯函數近似求導公式(4)中的指數函數1{Pux,y<0} ,近似后的函數表達式為:
式(5)中,α為度量常數,α>0 。結合公式(4)與(5),將位置函數s( )x轉換為連續且可導的近似表達式,即:
將式(6)帶入公式(3)中,獲取近似后的學習推薦評價指標表達式為:
將式(7)的學習推薦評價指標,作為列表級排序學習推薦列表的構建依據。
1.3.2 隨機森林算法下列表級排序學習推薦
隨機森林算法具有極高的學習能力,將隨機森林算法作為構建列表級排序學習推薦列表的學習方法[14-15]。設置評價指標NDCG′作為隨機森林算法的分類指標,令隨機森林算法預測未評分項目,構建學習推薦系統的列表級排序學習推薦列表,依據列表順序,為用戶推薦NDCG′評分最高的前E個項目。
隨機森林算法在學習推薦系統處理層信息推薦模塊的數據處理單元中,該算法依據用戶感興趣項目樣本集中的數據樣本,生成并匯總多個決策樹,獲取學習推薦結果。設置E為隨機森林算法的決策樹數量,為決策樹的基本分類單元,其中h 為決策樹,O 為用戶感興趣項目集;Θ 為決策樹深度,該參數由正則化參數決定;e 為決策樹集合,且e=1,2,…,E,通過集成學習獲取組合分類器。
隨機森林算法中的單個決策樹生成步驟如下:
1)利用用戶與互聯網以往的交互信息感知用戶感興趣項目,選取用戶感興趣項目作為學習樣本,采用Bootstrap 重采樣方法反復抽樣,獲取第E個數據集;
2)從第E個數據集中,計算隨機樣本的NDCG′值;
3)在數據集中選取具有最優NDCG′值的節點,作為決策樹的分裂節點;
4)學習分裂后的決策樹節點,直至滿足學習終止條件,結束學習,生成第E棵決策樹。
通過以上步驟生成多個決策樹后,對各決策樹進行匯總形成隨機森林分類器,隨機森林分類器生成結構圖如圖4所示。

圖4 隨機森林分類器生成結構圖
依據圖4生成隨機森林分類器后,輸入學習推薦的測試樣本,隨機森林分類器中的各決策樹進入投票抉擇環節,選取輸出類別最多的決策樹作為學習推薦系統推薦結果,系統推薦結果表達式為:
式(8)中,H(o)與hi分別為組合分類器與單個決策樹模型,I(hi(o)=R)為單個決策樹模型的示性函數,即模型內包含某數值時,函數值為1,反之為0,其中R為學習推薦結果的輸出變量。
為驗證所研究隨機森林算法下列表級排序學習推薦系統的整體性能,在實驗前預設實驗環境為:Windows XP3 操作系統,4 GB 內存,Intel(R)Pentium(R)CPU G630@2.70GHz 2.70GHz,實驗程序使用Java1.6 語言開發,數據庫為Mysql5.0。實驗配置相關參數如表1所示。

表1 實驗配置相關參數
實驗將本系統應用于某大學圖書館內,該學校在校學生共13 241 人,校內圖書館存放各類藏書共10余萬冊,隨機選取該校學生1 000人作為本系統應用的研究對象,并以該校某歷史專業學生為例登錄本文系統賬號,該賬號在本系統的搜索界面如圖5所示。

圖5 學習推薦系統搜索界面圖
該學生登錄系統后進入搜索界面搜索專業學習書籍,點擊進入本系統搜索界面,可以選擇語音搜索或文字搜索兩種方式,同時可以按照搜索欄下方書籍分類選擇合適的圖書類別,方便其查找所需學習書籍。該學生在主頁及搜索界面瀏覽或搜索書籍時,系統將相關瀏覽及搜索記錄存儲至數據庫中。當該學生暫無明確書籍搜索方向時,點擊進入本系統推薦界面,本系統為該學生推薦的推薦界面如圖6所示。

圖6 學習推薦系統推薦界面圖
學生在進入本系統推薦界面后,系統依據數據庫中該學生以往的瀏覽及信息記錄為其推薦相關學習書籍,由于該學生經常瀏覽歷史類書籍,因此系統為其推薦與之相關的歷史書籍(見圖6),可見本文系統能夠有效地為該學生推薦相關專業書籍。
準確率指用戶選中本系統推薦內容的數量與系統推薦總量之比,是評價系統推薦性能準確性的指標之一。為進一步驗證本系統為用戶推薦學習書籍準確性,采用準確率作為推薦系統的評價指標,令1 000 位研究對象分別操作姜國義等[7]基于E-Learning的移動學習推薦系統、檀彥超等[8]基于度量學習的多空間推薦系統及本系統獲取推薦內容,對比3個系統推薦性能的準確率(見圖7)。

圖7 3個系統準確率對比
由圖7 可知,雖然推薦內容數量逐漸增加,但并未影響本系統對用戶推薦的準確率,姜國義等[7]的系統為用戶推薦內容的準確率不超過0.8,檀彥超等[8]的系統為用戶推薦內容的準確率不超過0.9,本系統為用戶推薦內容的準確率為0.9 以上,準確率明顯高于前者,可見本系統的推薦性能較高。
為檢測本系統在運行時的系統性能,測試人員采用LoadRunner負載測試工具預測本系統行為及系統性能,該測試工具能夠實時監測系統性能。將該測試工具應用于本系統中,模擬設置同時段操作用戶人數從100 人逐漸增加至1 000 人,分別通過系統吞吐量、平均運行時間、平均響應時間及操作成功人數對3個系統進行性能測試,測試統計結果如表2所示。

表2 推薦系統性能測試結果
由表2 統計結果可知,同時段操作用戶由100人遞增至1 000 人,3 個系統各項性能指標隨人數增長而增加。其中,姜國義等及檀彥超等的系統吞吐量較小、平均運行時間和響應時間較長,運行速度較慢,進而造成其操作成功人數也相對較低。而本系統當同時段人數增長至1 000 人時系統平均運行速度減緩,但各指標值增長幅度較小,系統運行狀態始終保持穩定且所有操作用戶均成功操作完成,無系統訪問失敗或卡頓現象,可見本系統整體性能較好。
當前推薦系統的優勢已逐漸被越來越多的研究人員發現,若能提升推薦結果的準確性,便能將推薦系統應用于更多領域。為此,本文設計基于隨機森林算法的列表級排序學習推薦系統。首先,在硬件方面加入Flash及音頻模塊,并重點設計了內核處理器和推薦系統電源模塊;然后,在軟件方面在構建列表級排序學習推薦列表指標的基礎上,利用隨機森林算法設計列表級排序學習推薦流程,實現列表級排序學習推薦,最后,將其應用于某大學圖書館內為學生推薦個性化書籍,通過推薦系統推薦界面圖可以看出,學生在使用推薦系統交互瀏覽與查詢時,系統能夠實時記錄交互內容,并準確為學生推薦其感興趣書籍,有效提升用戶對推薦系統的使用體驗。