国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于協(xié)同過濾算法的推薦系統(tǒng)設(shè)計

2019-04-25 05:51:50□邵
產(chǎn)業(yè)與科技論壇 2019年5期
關(guān)鍵詞:共軛代價梯度

□邵 娜

隨著互聯(lián)網(wǎng)的迅速普及,大量的信息充斥著人們的生活,這種現(xiàn)象稱為信息超載。面對這一現(xiàn)象,推薦系統(tǒng)應(yīng)運而生。推薦系統(tǒng)結(jié)合推薦算法,通過分析數(shù)據(jù)庫中記錄的興趣愛好,進(jìn)行個性化計算,由系統(tǒng)分析得到推薦信息,引領(lǐng)用戶發(fā)現(xiàn)自己真實需要的物品信息。

一、協(xié)同過濾的推薦算法

本系統(tǒng)設(shè)計假定用戶與商品評價之間是最簡單的線性關(guān)系,我們將基于這種最簡單的線性關(guān)系來敘述數(shù)據(jù)挖掘是如何計算參數(shù)的。當(dāng)要處理更復(fù)雜的關(guān)系時,需要做的就是替換這種關(guān)系,但模型及算法步驟是很相似的。

(一)線性回歸。假定有一組數(shù)據(jù)記作xi,其中i=1,2,…n這是定義域,值域也就是輸出yi,i=1,2,…n,yi=theta0+theta1*xi,這就是假定的線性關(guān)系。數(shù)據(jù)挖掘的一般過程如下。

1.觀測數(shù)據(jù)。進(jìn)行統(tǒng)計假設(shè),可以假設(shè)數(shù)據(jù)近似服從線性關(guān)系y=theta0+theta1*x,同時這個數(shù)學(xué)表達(dá)也就是我們的目標(biāo)函數(shù)。

2.建立代價函數(shù)。假設(shè)后要建立標(biāo)準(zhǔn),看假設(shè)與實際情況相差如何,利用常用的代價函數(shù)最小二乘法以求出最優(yōu)參數(shù):J=sum(theta0-theta1*x-yi)2/n。將這個表達(dá)式記作J,要求的就是使J達(dá)到最小的theta=[theta0;theta1]。

3.求解代價函數(shù)的梯度。這是一個具有凸性的函數(shù)。利用凸優(yōu)化的方法求出全局最優(yōu)解。其核心部分就是求解代價函數(shù)的梯度,這里我們對theta進(jìn)行求偏導(dǎo),以得出梯度,

J'=X*(X*theta-y)/m。

4.梯度下降法。給定theta的初值,我們計算代價函數(shù)在每個點的梯度,讓參數(shù)沿梯度反方向移動一個很小的值,然后再重新計算梯度,直到算法收斂,這就是梯度下降法。用該方法得到的線性回歸結(jié)果。其中核心代碼在MATLAB中如下:

for r=1:num_iters

theta=theta-alpha*X'*(X*theta-y)/m;

Theta(:,r)=theta;

end

(二)協(xié)同過濾。協(xié)同過濾算法架構(gòu)較為復(fù)雜,但具體到每一步其實很簡單,幾乎和線性回歸一樣。本文將使用的算法是共軛梯度下降法。核心步驟就是計算代價函數(shù)的梯度,這一步獨立于算法,是算法的輸出部分。

X=x-alphasumTj-y*Tj+lambda*x

Tj=Tj-alpha(sumTj-y*x+lambda*Tj)

步驟如下:第一,初始化x和theta,這個初始化是隨機(jī)的,一般用高斯函數(shù)來產(chǎn)生。注意隨機(jī)不代表隨意,如果胡亂取值,是不會得到好的結(jié)果的,事實上收斂速度和你取的初值是有關(guān)聯(lián)的。第二,用梯度下降法來計算X和theta,方法是固定X用公式f求theta,固定theta,用公式求X。核心代碼如下:J=(X*Theta'-Y).*R;X_grad=J*Theta+lambda*X;Theta_grad=J'*X+lambda*Theta;J=J(:)'*J(:)/2+(Theta(:)'*Theta(:)+X(:)'*X(:))*lambda/2。第三,用共軛梯度下降法反復(fù)迭代直到收斂,得到想要的數(shù)據(jù)關(guān)系。

圖1 正則化后的數(shù)據(jù)

(三)共軛梯度下降算法。首先是數(shù)據(jù)需要進(jìn)行中心化和單位化。比如Y=[5 5 3; 3 2 1; 0 1 3],中心化后為[2. 33 2.33 0.667 ; 0.333 -0.667 -1.333; -2.667 -1.667 0.667],然后進(jìn)行單位化,這個在計算過程中特別重要,特別是對參數(shù)lambda的影響。關(guān)于共軛梯度下降法需要注意兩個關(guān)鍵點,一是收斂條件,選取的是Wolfe-Powell條件。這個條件講的是,當(dāng)找到梯度之后,沿著這個梯度方向移動最適合。二是共軛梯度的計算。采用的是Polack-Ribiere共軛梯度法。共軛梯度法并沒有計算函數(shù)的二次導(dǎo)數(shù),即Hessian矩陣,而是將Hessian矩陣與數(shù)據(jù)矩陣的乘積看成一個整體進(jìn)行估計。

圖2 填充后的結(jié)果

二、系統(tǒng)設(shè)計

以某個電影數(shù)據(jù)庫為例,通過系統(tǒng)如下的設(shè)計原理:第一,將己有數(shù)據(jù)載入,并進(jìn)行預(yù)處理;第二,協(xié)同過濾算法,構(gòu)造代價函數(shù)和梯度函數(shù);第三,梯度下降法求解參數(shù);第四,參數(shù)對用戶的愛好進(jìn)行預(yù)測。設(shè)計電影為代價函數(shù)中的X的前綴,對應(yīng)的評分就是數(shù)據(jù)矩陣,上千部電影,900+用戶評分。正則化之后的數(shù)據(jù)矩陣如圖1所示。那么推薦系統(tǒng)需要做的工作就是求出theta,然后對數(shù)字為0的地方進(jìn)行填充,得到結(jié)果如圖2所示。

對數(shù)據(jù)再進(jìn)行一些后續(xù)加工處理就可以得到輸出結(jié)果,比如對某電影的平均評分,還可以得到某用戶對某些電影的喜好預(yù)測等。上述就是協(xié)同過濾的全過程。

三、結(jié)語

本文提出一種新的電影推薦方法,詳細(xì)描述了協(xié)同過濾的過程及系統(tǒng)的設(shè)計。但是由于時間的限制,電影系統(tǒng)的功能只實現(xiàn)了簡單的電影推薦以及電影信息查看。在以后的研究中需進(jìn)一步完善系統(tǒng)的功能,使推薦系統(tǒng)在實際生活中,為用戶提供更多的功能選擇。

猜你喜歡
共軛代價梯度
一個帶重啟步的改進(jìn)PRP型譜共軛梯度法
一個改進(jìn)的WYL型三項共軛梯度法
巧用共軛妙解題
一種自適應(yīng)Dai-Liao共軛梯度法
一類扭積形式的梯度近Ricci孤立子
愛的代價
海峽姐妹(2017年12期)2018-01-31 02:12:22
代價
成熟的代價
河南科技(2014年3期)2014-02-27 14:05:45
代價
吕梁市| 八宿县| 辽阳县| 东山县| 乡城县| 中宁县| 大洼县| 香港 | 肥乡县| 汽车| 年辖:市辖区| 临澧县| 光山县| 邯郸市| 宁明县| 汝阳县| 乐安县| 额敏县| 永吉县| 旅游| 晋州市| 定州市| 竹北市| 芮城县| 西吉县| 瑞丽市| 仲巴县| 改则县| 山西省| 龙门县| 扎赉特旗| 南岸区| 旬邑县| 福州市| 礼泉县| 台湾省| 七台河市| 靖西县| 龙南县| 平阴县| 鹿邑县|