魯浪浪 袁慶達 凌源俊 林云鵬 王浩宇
摘 要 分析和研究如何根據(jù)用戶偏好做到“智能推薦”。以向用戶智能推薦圖書為例,基于人工智能和機器學(xué)習(xí)的思想,利用隱語模型對用戶進行大數(shù)據(jù)分析,實現(xiàn)對用戶的精準(zhǔn)化智能推薦。
關(guān)鍵詞 智能推薦系統(tǒng);隱語義模型;人工智能;機器學(xué)習(xí)
中圖分類號 TP3 文獻標(biāo)識碼 A 文章編號 1674-6708(2018)214-0124-03
在現(xiàn)代這個信息高速流通的時代,用戶每天都會產(chǎn)生海量的數(shù)據(jù),而根據(jù)大數(shù)據(jù)進行分析用戶的偏好從而實現(xiàn)針對每個用戶的精準(zhǔn)化推薦也成為各個公司關(guān)注的焦點。而能夠?qū)崿F(xiàn)這個目的的算法已經(jīng)成為公司的核心競爭力,如小紅傘、今日頭條、網(wǎng)易云音樂等App就憑借其出色的算法實現(xiàn)了精準(zhǔn)營銷在同類市場競爭中占據(jù)了優(yōu)勢。
自90年代以來,學(xué)界涌現(xiàn)了大量的推薦算法模型,代表性的如協(xié)同過濾算法。但由于數(shù)據(jù)量越來越龐大,協(xié)同過濾算法由于結(jié)構(gòu)上的缺陷已經(jīng)無法高效處理,基于此本文采用改進后的隱語義模型來實現(xiàn)高效準(zhǔn)確的智能推薦??偟膩碚f,根據(jù)大數(shù)據(jù)超高維、關(guān)系復(fù)雜等特點,需開展以下研究:
1)謀求大數(shù)據(jù)超高維、高稀疏知識發(fā)掘:鉆研機器學(xué)習(xí)方法理論,構(gòu)建特定數(shù)據(jù)挖掘算法。2)研究復(fù)雜算法編程,將挖掘算法編程模型與分布式處理相統(tǒng)一。3)在已有并行計算平臺上,構(gòu)建成分布式并行化機器學(xué)習(xí)、實現(xiàn)復(fù)雜度低、并行性高的發(fā)掘算法(何清、李寧、羅文娟、史忠植《大數(shù)據(jù)下的機器學(xué)習(xí)算法綜述》)。
1 隱語義模型
隱語義模型LFM屬于隱含語義分析技術(shù),其本質(zhì)在于通過數(shù)據(jù)分析找出潛在的主題或分類。文本挖掘領(lǐng)域首先采用該技術(shù)進行分析,近些年它們開始被應(yīng)用到其他領(lǐng)域中,并取得了不錯的效果。
隱語義模型的假設(shè)前提每個用戶都有各自不同的偏好,以書籍為例,一個用戶可能對歷史類、戰(zhàn)爭類、科技類的書籍有特殊偏好,而這些偏好可以被抽象為一個個隱變量。每一本書在每一個隱變量上的權(quán)重綜合構(gòu)成了用戶對這本書的偏好程度。
由此,產(chǎn)生了3個問題:第一,如何確定用戶隱變量的個數(shù);第二,如何求出每個用戶在每個隱變量的偏好程度;第三,如何確定每本書在每個隱變量上的權(quán)重。
隱語義模型的核心內(nèi)容是隨機梯度下降(SGD),而這也是解決上述3個問題的關(guān)鍵。具體可分為以下步驟:
步驟一:矩陣分解
矩陣分解算法基于數(shù)學(xué)上的矩陣的行列變換。在線性代數(shù)中,矩陣A進行行變換相當(dāng)于A左乘一個矩陣,矩陣A進行列變換等價于矩陣A右乘一個矩陣,因此矩陣A可以表示為A=PEQ=PQ(E是標(biāo) 準(zhǔn)陣)。
矩陣分解目標(biāo)就是把用戶對書籍的評分矩陣R分解成用戶對隱變量評分矩陣和書籍在隱變量上權(quán)重矩陣的乘積。
首先假設(shè),用戶對書籍的真實評分和預(yù)測評分之間的差服從高斯分布,基于這一假設(shè),可推導(dǎo)出目標(biāo)函數(shù)。
最后得到矩陣分解的目標(biāo)函數(shù)如下:
步驟二:隨機梯度下降
從最終得到的目標(biāo)函數(shù)可以直觀地理解,預(yù)測的分值就是盡量逼近真實的已知評分值。有了目標(biāo)函數(shù)之后,下面就開始介紹優(yōu)化方法:隨機梯度下降法(stochastic gradient descent)。
隨機梯度下降算法是被廣泛應(yīng)用的一個算法,其主要思想是分別對用戶-隱變量矩陣和書籍-隱變量矩陣求偏導(dǎo),確定梯度下降方向,讓變量沿著目標(biāo)函數(shù)負梯度的方向移動,最終到達極小值點。求導(dǎo)公式如下:
梯度下降法具體分為以下幾個步驟:
1)確定目標(biāo)函數(shù)y=f(x);
2)對待優(yōu)化的指標(biāo)進行求導(dǎo),確定每次迭代的搜索方向,見公式(2);
3)確定一個學(xué)習(xí)率α作為每次搜索尋優(yōu)的 步長;
4)不斷進行迭代優(yōu)化;
5)滿足迭代終止條件,最終使得待優(yōu)化的指標(biāo)迭代至目標(biāo)值附近;
6)對通過上面的分析,可以獲取梯度下降算法的因子矩陣更新公式,具體如下。
公式(3)中的γ指的是步長,也即是學(xué)習(xí)速率,它是一個需要調(diào)參確定的參數(shù)。對目標(biāo)函數(shù)進行優(yōu)化,學(xué)習(xí)率α的選擇極其重要。若取值較大,即梯度下降迭代的步長較大,可以快速迭代至最優(yōu)解附近,但是可能一直在最優(yōu)解附近徘徊,無法計算出最優(yōu)解,于特殊的函數(shù)也可能會導(dǎo)致不收斂,始終發(fā)散求不出解;若取值較小,即梯度下降迭代的步長較小,下降速度較慢,其迭代出的解精度較高,但會耗費很長時間,這將不利于實際 應(yīng)用。
接下來的部分便主要介紹參數(shù)α和γ的調(diào)整過程。
2 推薦算法調(diào)參
2.1 實驗方案與結(jié)果分析
智能推薦系統(tǒng)建立的關(guān)鍵是求解過程中參數(shù)的調(diào)節(jié)。本次實驗的算法中主要運用到了隨機梯度下降求解誤差項達到了最優(yōu)值的方法。該方法通過不斷迭代使目標(biāo)誤差函數(shù)達到最小值。這次實驗使用用戶-電影訓(xùn)練集,測試集和驗證集來檢測算法效力。用戶-電影測試集中有671個用戶對9126部電影的打分,有10萬條的數(shù)據(jù)。
實驗主要是對隱語義模型的參數(shù)進行調(diào)節(jié)。需要調(diào)節(jié)的參數(shù)包括學(xué)習(xí)速率α、隱變量個數(shù)F、迭代次數(shù)N以及正則化參數(shù)。
2.2 調(diào)節(jié)的過程
步驟一:設(shè)置學(xué)習(xí)速率
學(xué)習(xí)速率確定了學(xué)習(xí)速度的快慢。圖1是梯度下降三維立體示意圖。從圖中可以看到迭代之前的初始點位于紅色半坡位置,在運用SGD的基礎(chǔ)上,算法會隨機選擇下一步迭代的方向,即圖中的兩條路線。學(xué)習(xí)速率可以用線路上兩個十字星點的間距表示。
損失值可以用一條如圖2所示的類二次函數(shù)的曲線來表示。當(dāng)學(xué)習(xí)速率設(shè)置的過大時,就會導(dǎo)致從點1直接越過谷底即最優(yōu)解跳躍到點2,如此循環(huán)往復(fù),最終無法得到最優(yōu)解,如圖3η=2.5顯示出的cost一樣;當(dāng)學(xué)習(xí)速率設(shè)置的過小時,就會在點1到點3的過程出現(xiàn)無數(shù)個間距無限小的點,在這種情況下,雖然能確保不會損失最優(yōu)解,但迭代次數(shù)以及耗時也將會大大的增加,從而使得推薦算法耗時過長。
我們需要在迭代的不同階段調(diào)整所使用的學(xué)習(xí)速率。前期迭代時運用一個大的學(xué)習(xí)速率能快速地擇選出下降方向,在接近最優(yōu)解時則使用一個小的學(xué)習(xí)速率使算法能精確得到最優(yōu)解。所以,在算法中需要介入逐漸衰減的α,定義為每進行一次迭代就減少0.02,即乘上系數(shù)0.98。運用這種形式的學(xué)習(xí)速率的設(shè)置能更好地引導(dǎo)SGD快速而又有效地達到最優(yōu)解。
步驟二:確定迭代次數(shù)
確定了學(xué)習(xí)速率的設(shè)置后,我們需要確定與之相關(guān)的參數(shù),即迭代次數(shù)。迭代次數(shù)決定了學(xué)習(xí)速率發(fā)揮的程度,次數(shù)不夠就會導(dǎo)致沒有達到最優(yōu)值便結(jié)束迭代,即欠擬合,反之次數(shù)過大就會造成時間上的巨大損失以及出現(xiàn)過擬合。前者可以使用網(wǎng)格搜索法,輸入學(xué)習(xí)速率通過均值和標(biāo)準(zhǔn)差得出較好的迭代次數(shù)。后者除了可以用網(wǎng)格搜索法之外,還可以通過設(shè)置一個提前結(jié)束的條件,提前結(jié)束迭代。但仍需加上正則化系數(shù)使其避免出現(xiàn)過擬合的情況。在本次試驗中,lamda即為用來避免過擬合的正則化系數(shù)。
步驟三:確定隱變量
最后一個待確定的變量為隱變量個數(shù)。隱變量的關(guān)鍵在于不用去定義元素,在運算過程中重要的是定義隱變量的數(shù)量,通過設(shè)置分類數(shù)就可以控制粒度,分類數(shù)越大則粒度越細。在實際運算過程中,設(shè)置過大的元素分類數(shù)會影響算法的準(zhǔn)確性,基于學(xué)習(xí)速率,迭代次數(shù)和正則化系數(shù)調(diào)整好的情況,有時反而會適得其反地造成最終的得分的趨同。由于隱變量可查閱資料較少,根據(jù)實驗中不斷的測試優(yōu)化,最后把隱變量確定在10。
綜上,確定了各參數(shù)即學(xué)習(xí)速率為0.25,衰減速率為0.02,迭代次數(shù)為10000,lamda等于2以及隱變量為10,在這種情況下能較好地取到最 優(yōu)解。
3 結(jié)論
智能推薦是根據(jù)用戶的信息數(shù)據(jù)、愛好標(biāo)簽等,將用戶感興趣的信息、產(chǎn)品等推薦給用戶的個性化信息推薦系統(tǒng)。和搜索引擎相比推薦系統(tǒng)通過研究用戶的興趣偏好,進行數(shù)據(jù)分析,發(fā)現(xiàn)用戶的興趣點,從而引導(dǎo)用戶發(fā)現(xiàn)自己的需求。一個好的推薦系統(tǒng)不僅能為用戶提供個性化的服務(wù),還能讓用戶對推薦系統(tǒng)產(chǎn)生依賴,從而增進用戶粘性。使用智能推薦還可以達到精準(zhǔn)營銷,節(jié)省企業(yè)大量時間和資源。在未來,一個高效準(zhǔn)確的推薦系統(tǒng)必然會成為企業(yè)戰(zhàn)勝對手的利器。
參考文獻
[1]李學(xué)龍,龔海剛.大數(shù)據(jù)系統(tǒng)綜述[J].中國科學(xué):信息科學(xué),2015,45(1):1-44.
[2]劉建國,周濤,汪秉宏.個性化推薦系統(tǒng)的研究進展[J].自然科學(xué)進展,2009,19(1):1-15.
[3]張亮.基于機器學(xué)習(xí)的信息過濾和信息檢索的模型和算法研究[D].天津大學(xué),2007.
[4]何清,李寧,羅文娟,等.大數(shù)據(jù)下的機器學(xué)習(xí)算法綜述[J].模式識別與人工智能,2014,27(4):327-336.
[5]陳潔敏,湯庸,李建國,蔡奕彬.個性化推薦算法研究[J].華南師范大學(xué)學(xué)報(自然科學(xué)版),2014,46(5):8-15.
[6]劉紅巖,陳劍,陳國青.數(shù)據(jù)挖掘中的數(shù)據(jù)分類算法綜述[J].清華大學(xué)學(xué)報(自然科學(xué)版),2002(6):727-730.
[7]趙丹群.數(shù)據(jù)挖掘:原理、方法及其應(yīng)用[J].現(xiàn)代圖書情報技術(shù),2000(6):41-44.