丁 一, 沈至榕, 謝穎華
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
校園二手書交易網(wǎng)站推薦引擎的設(shè)計(jì)與實(shí)現(xiàn)
丁 一, 沈至榕, 謝穎華
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
大學(xué)二手書交易同一般網(wǎng)絡(luò)購(gòu)物不同,直接應(yīng)用普通推薦算法設(shè)計(jì)推薦引擎不能很好地進(jìn)行推薦。為了使大學(xué)生二手書購(gòu)物網(wǎng)站能夠更好地為用戶推薦書籍,提高推薦結(jié)果的準(zhǔn)確性及推薦效率,在原有推薦模塊的基礎(chǔ)上針對(duì)大學(xué)生用戶的特殊性提出了一種適用于二手書購(gòu)物網(wǎng)站的推薦算法模塊優(yōu)化推薦引擎。該算法模塊有以下特性:①在基于物品推薦算法的基礎(chǔ)上,結(jié)合書籍評(píng)分、新舊等因子優(yōu)化推薦結(jié)果;②為方便用戶購(gòu)書新增打包推薦功能,使用戶可以一鍵購(gòu)買多本所需書籍;③根據(jù)用戶群體購(gòu)書可預(yù)測(cè)的特性加入了基于時(shí)間節(jié)點(diǎn)的推薦算法,即按時(shí)得需,按需推薦。
推薦算法; 評(píng)分機(jī)制; 新舊因子; 打包推薦; 時(shí)間節(jié)點(diǎn)
隨著可持續(xù)發(fā)展理念的進(jìn)一步加強(qiáng),為了節(jié)約書本資源,二手書交易在高校蓬勃發(fā)展。在信息化時(shí)代的背景下,二手書互聯(lián)網(wǎng)交易平臺(tái)應(yīng)運(yùn)而生。二手書購(gòu)物網(wǎng)站出售的書籍種類繁多,涉及到教材、課外讀物等多個(gè)領(lǐng)域,此外,教材類書籍又包含學(xué)校多個(gè)專業(yè)的不同教材,簡(jiǎn)單的站內(nèi)搜索引擎[1]已不能很好地滿足用戶需要,因此二手書購(gòu)物網(wǎng)站同樣面臨著信息過(guò)載[2]的問(wèn)題,個(gè)性化推薦引擎的應(yīng)用與創(chuàng)新便更加具有價(jià)值。而大學(xué)二手書交易同一般網(wǎng)絡(luò)購(gòu)物不同,大學(xué)二手書交易具有以下特點(diǎn):①用戶群體的特殊性,均為在校大學(xué)生;②購(gòu)書需求的特殊性及可預(yù)測(cè)性,一般為科本教材、輔導(dǎo)讀物等;③大學(xué)二手書與普通新書交易不同,具有新舊、時(shí)間等影響因子[3-4]。因此,直接應(yīng)用普通推薦算法設(shè)計(jì)推薦引擎不能很好進(jìn)行推薦。推薦算法是推薦引擎的核心內(nèi)容,也是決定推薦效率以及推薦品質(zhì)的關(guān)鍵。推薦的個(gè)性化以及合理化是衡量推薦算法的重要指標(biāo)。本文結(jié)合實(shí)際情況合理設(shè)計(jì)與改進(jìn)推薦算法,完善推薦引擎,使得網(wǎng)站的用戶能夠得到及時(shí)、有效且相對(duì)滿意的推薦結(jié)果。
1.1 基于物品的推薦算法的應(yīng)用
第一部分:基于物品的推薦算法(Item-Based Method)[5],該算法是為物品分類標(biāo)簽,將與用戶曾經(jīng)購(gòu)買過(guò)的物品屬性相同或相似的另一種物品推薦給該用戶。針對(duì)本次應(yīng)用對(duì)象——大學(xué)生,本文將書籍分類為小說(shuō)、課本、輔導(dǎo)書等,并且在各大類的每本書上加上相關(guān)標(biāo)簽。例如《模擬電子技術(shù)基礎(chǔ)同步輔導(dǎo)及習(xí)題全解》這本書,其標(biāo)簽有①作者:于登峰,邊文思;②類別:輔導(dǎo)書;③適用課程:模擬電子技術(shù)基礎(chǔ)④專業(yè)大類:電氣信息類等。如果該用戶之前買過(guò)《模擬電子技術(shù)基礎(chǔ)》這本書,便將該書推薦給該用戶。同時(shí),基于用戶具有特殊性[6-7]的事實(shí),根據(jù)用戶所在學(xué)院,專業(yè)以及年級(jí)的不同,對(duì)其進(jìn)行相應(yīng)的推薦,使推薦結(jié)果更具針對(duì)性,實(shí)效性。
第二部分:基于物品的協(xié)同過(guò)濾算法(Item-Based Collaborative Filtering Recommendation Algorithms)[8]。本文針對(duì)書籍的標(biāo)簽機(jī)制[9-10],將該算法應(yīng)用于此次推薦算法中。在兩本書之間有兩個(gè)以上的相同標(biāo)簽的情況下,根據(jù)以下公式計(jì)算兩個(gè)物品之間的相似度[11-12]:
(1)
式中:N(u)是含有用戶喜歡的物品的集合;S(j,K)是和物品j最相似的K個(gè)物品的集合,這里根據(jù)書籍標(biāo)簽相似度取K為10,即取與書籍j相似度排名前十的書籍的集合;wji是書籍j與書籍i的相似度;rui是用戶u對(duì)物品i的興趣。利用該公式以及標(biāo)簽機(jī)制,可以在用戶數(shù)據(jù)缺乏的時(shí)候?qū)τ脩糇龀霰M可能準(zhǔn)確對(duì)推薦。
1.2 一般推薦算法未能解決的問(wèn)題
以上算法是基本算法,利用物品之間對(duì)的相似度以及相互之間的聯(lián)系(課本與該課本輔導(dǎo)書的關(guān)系)對(duì)用戶進(jìn)行推薦,這樣的好處是簡(jiǎn)單高效。由于大學(xué)校園二手書交易的特殊性,這樣的算法有以下待解決的問(wèn)題:①推薦結(jié)果未考慮二手書交易特有的影響因子——新舊程度;②重復(fù)推薦,即推薦給用戶其已有或不需要的物品,例如學(xué)生只需要1本關(guān)于《模擬電子技術(shù)基礎(chǔ)》的輔導(dǎo)書,而推薦給他內(nèi)容相近的3本輔導(dǎo)書,那么對(duì)于用戶而言推薦后仍然需要篩選,降低推薦效率;③用戶購(gòu)書需一本一本查找選擇,不能使用戶方便高效地購(gòu)物;④推薦結(jié)果具有滯后性,不能預(yù)測(cè)用戶購(gòu)物需求,即完全依賴用戶購(gòu)買記錄,沒有用到用戶基本屬性的預(yù)測(cè)作用。⑤結(jié)合標(biāo)簽機(jī)制的協(xié)同過(guò)濾算法面臨的問(wèn)題是標(biāo)簽數(shù)量有限導(dǎo)致相似度處于同一等級(jí)的書籍?dāng)?shù)量較多,會(huì)使推薦結(jié)果繁多。
2.1 推薦引擎的結(jié)構(gòu)
2.1.1 推薦系統(tǒng)的結(jié)構(gòu)功能[13]
(1) 數(shù)據(jù)收集和存儲(chǔ)模塊。UI系統(tǒng)負(fù)責(zé)給用戶展示網(wǎng)頁(yè)并和用戶交互。網(wǎng)站會(huì)通過(guò)日志系統(tǒng)將用戶在UI上的各種各樣的行為記錄到用戶行為日志中(見圖1)。
圖1 推薦引擎結(jié)構(gòu)圖
(2) 推薦引擎模塊。它是推薦系統(tǒng)的最核心部分,采用的推薦技術(shù)決定著推薦系統(tǒng)的性能優(yōu)劣(見圖2)。本文所采用的推薦函數(shù)一共有4個(gè),分別對(duì)應(yīng)下文結(jié)合新舊因子的推薦、基于評(píng)分機(jī)制的推薦、打包推薦、基于時(shí)間節(jié)點(diǎn)的推薦算法的應(yīng)用。
圖2 推薦引擎模塊結(jié)構(gòu)
2.1.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)用于保存和管理用戶行為數(shù)據(jù)和所售商品的特征數(shù)據(jù),是推薦引擎的數(shù)據(jù)存儲(chǔ)模塊。本文針對(duì)此次應(yīng)用實(shí)例將數(shù)據(jù)庫(kù)設(shè)計(jì)如圖3所示。
圖3 數(shù)據(jù)庫(kù)ER圖
2.2 推薦算法模塊的設(shè)計(jì)
推薦算法模塊是推薦引擎的核心部分,該部分所采用的推薦技術(shù)直接決定推薦引擎推薦效果的品質(zhì)。本文針對(duì)大學(xué)校園二手書交易平臺(tái)的實(shí)際情況設(shè)計(jì)完善推薦引擎的推薦算法模塊,以解決上文分析的待解決的問(wèn)題。
2.2.1 結(jié)合新舊因子的推薦
二手書交易不同于新書購(gòu)物,具有特定影響因子:新舊程度??梢詾闀驹鎏硇碌臉?biāo)簽用來(lái)記錄書本新舊程度。書籍上架前,由工作人員根據(jù)一定的標(biāo)準(zhǔn)將書籍劃分為1~4個(gè)等級(jí),其中等級(jí)1為九成新;等級(jí)2為八成新;等級(jí)3為七成新;等級(jí)4為六成新及以下。等級(jí)對(duì)應(yīng)書籍品質(zhì)參閱京東網(wǎng)對(duì)二手書分級(jí)標(biāo)準(zhǔn),結(jié)果見表1。
將二手書新舊等級(jí)賦值變量Icr用于推薦價(jià)值計(jì)算。
2.2.2 基于評(píng)分機(jī)制的推薦算法
針對(duì)原有基于物品推薦算法的重復(fù)推薦的問(wèn)題,本文采用建立評(píng)分機(jī)制[14],并結(jié)合書籍熱度對(duì)推薦結(jié)果進(jìn)行優(yōu)化的方法(見圖4)。在本文中熱度指的是一本書被評(píng)分的次數(shù)。為了避免因出現(xiàn)一本書雖然評(píng)分人數(shù)較少但卻評(píng)分很高這種情況,導(dǎo)致其推薦次序靠后的問(wèn)題,本文采用對(duì)評(píng)分結(jié)果和熱度進(jìn)行加權(quán)相加來(lái)計(jì)算推薦價(jià)值的大小。
針對(duì)基于物品的協(xié)同過(guò)濾算法計(jì)算相似度式(1)做出以下調(diào)整:N(u)表示所有含有用戶喜歡的標(biāo)簽的書的集合,rui的值:當(dāng)用戶u對(duì)書籍i評(píng)分過(guò)為“1”,否則為“0”;并增添wji的求解公式[11-12]:
表1 二手書新舊程度對(duì)應(yīng)等級(jí)表
注:常見問(wèn)題1殘缺、粘連、水漬、變形、蟲蛀、修補(bǔ);常見問(wèn)題2墨跡、污損、簽章、磨損
圖4 基于評(píng)分機(jī)制的推薦算法流程圖
(3)
式中:Mji為M對(duì)書籍j和書籍i評(píng)分過(guò)的用戶;Iui對(duì)書籍i評(píng)分過(guò)的用戶數(shù);Juj為對(duì)書籍j評(píng)分過(guò)的用戶數(shù)。
推薦價(jià)值計(jì)算公式如下:
(4)
式中:Pi為書籍i的推薦價(jià)值;a、b為比例系數(shù),本文采用a=b=0.5;Si為書籍i的評(píng)分值;Hi為書籍i的熱度(即被評(píng)分次數(shù)),Ion為書籍新舊等級(jí)。
加入評(píng)分機(jī)制后,可以更加客觀地對(duì)書籍的推薦價(jià)值進(jìn)行排名,基于“擇優(yōu)推薦”的基本構(gòu)想,便可以大大提高推薦質(zhì)量;同時(shí)為對(duì)推薦數(shù)量進(jìn)行限制,進(jìn)一步優(yōu)化推薦結(jié)果;結(jié)合熱度的加權(quán)算法可以提高推薦結(jié)果的準(zhǔn)確度。
2.2.3 打包推薦功能
在原有推薦算法模塊的基礎(chǔ)上,結(jié)合用戶群體的特質(zhì)進(jìn)行改進(jìn),加入打包推薦的功能。通過(guò)調(diào)查,用戶購(gòu)書高峰期一般為學(xué)期末和開學(xué)前,用戶主要購(gòu)書需求是對(duì)下一學(xué)年所開課程的課本。二手書購(gòu)物網(wǎng)的書籍一般是按本出售的,所以用戶面臨的問(wèn)題是①一學(xué)期所開設(shè)的課程內(nèi)容需要到學(xué)校教務(wù)網(wǎng)查詢;②挑選課本時(shí)需要按課程表一一查找,費(fèi)時(shí)費(fèi)力。針對(duì)以上問(wèn)題在原有的算法基礎(chǔ)上加入了“打包推薦”的理念,在后臺(tái)服務(wù)系統(tǒng)中將學(xué)院不同專業(yè)各個(gè)學(xué)期所開設(shè)的課程以及課程所需課本(不含輔導(dǎo)書)記錄下來(lái),將其中所設(shè)計(jì)的圖書打包為“XXX專業(yè)大X第X學(xué)期課本包”,將這一選項(xiàng)添加到推薦結(jié)果中去。
增加該功能的優(yōu)點(diǎn)是可以將多本圖書一步推薦,同時(shí)解決了學(xué)生不清楚課本的種類的問(wèn)題,免去了學(xué)生查詢教務(wù)網(wǎng)、按課表一一查找的繁瑣,提高了推薦效率和用戶使用體驗(yàn)。該項(xiàng)功能的缺點(diǎn)是需要保證后臺(tái)數(shù)據(jù)的正確性與實(shí)時(shí)性,即專業(yè)課程安排要正確,并且當(dāng)學(xué)校課程安排有變化時(shí)要及時(shí)更新打包推薦的內(nèi)容。同時(shí)要確保推薦內(nèi)容與推薦對(duì)象的匹配正確,即推薦內(nèi)容要與用戶的專業(yè)和學(xué)期相對(duì)應(yīng)。
2.2.4 基于時(shí)間節(jié)點(diǎn)的推薦算法
通過(guò)分析得出購(gòu)書高峰期為學(xué)期末或?qū)W期始,這時(shí)候大家對(duì)下學(xué)期的課本具有需求,我們可以發(fā)現(xiàn)這之間有一個(gè)很明確的關(guān)系:時(shí)間與需求的關(guān)系。即在不同的時(shí)間推薦不同的書籍[15],其流程見圖5。
該算法將原本的根據(jù)購(gòu)物數(shù)據(jù)的推薦拓展為結(jié)合時(shí)間的動(dòng)態(tài)推薦,這樣能在不同的時(shí)刻滿足用戶不同的需求,及時(shí)提供他們需要的商品推薦,或者潛在需要的商品,例如用戶本學(xué)期按學(xué)校安排需要參加CET4的考試,那么在本學(xué)期開學(xué)前便將《星火英語(yǔ)-黑旋風(fēng)試卷》(上海交大出版社出版)推薦給他,在推薦給他的同時(shí)也起到了提醒作用。
3.1 結(jié)合新舊因子及評(píng)分機(jī)制推薦算法的實(shí)現(xiàn)
為每一本書添加“用戶評(píng)分”標(biāo)簽,使用戶在購(gòu)買或?yàn)g覽圖書時(shí)能為書籍進(jìn)行評(píng)分,根據(jù)用戶的評(píng)分對(duì)書籍進(jìn)行排名,將用戶普遍評(píng)分高的書籍推薦給有需求的用戶;結(jié)合書籍熱度利用加權(quán)求和的算法將推薦結(jié)果進(jìn)行優(yōu)化,同時(shí)結(jié)合書籍新舊因子計(jì)算推薦價(jià)值,
圖5 基于時(shí)間節(jié)點(diǎn)的推薦算法流程圖
將最終推薦價(jià)值較高的書推薦給用戶,這樣便可以實(shí)現(xiàn)對(duì)推薦結(jié)果的優(yōu)化。
部分相關(guān)php代碼如下:
?
〈head〉
〈meta http-equiv="Content-Type" content="text/html; charset=utf-8" /〉
〈title〉推薦規(guī)則4_新上架的10(非專業(yè))本書按照評(píng)價(jià)數(shù)量(熱度)來(lái)推薦〈/title〉
〈/head〉
〈?php
function function_recommend_rule4(db)
{
$query="select book_id from (select * from book where course_id=111 order by register_timedesc limit 0,10) as temp order by book_heatdesc "; //無(wú)輸入,返回rcmd_rule4數(shù)組
$result=mysqli_query(db,query);
$num_result=mysqli_num_rows(result);
for($i=0;$i<$num_result;$i++)
{
$row=mysqli_fetch_assoc(result);
$output_rcmd_rule4[i]=row[‘book_id’];
}
mysqli_free_result(result);
return output_rcmd_rule4;
}
?>
?
$like_book=a_array_unique(like_book);
foreach (like_book as key=>value)//對(duì)評(píng)分進(jìn)行排序
{
$id[$key] = $value[‘id’];
$score[key] = value[‘score’];
}
array_multisort(score,SORT_DESC,SORT_NUMERIC,$like_book);
foreach ($like_book as $key=>value)//只返回id
{
$id[key] = $value[‘id’];
$score[$key] = $value[‘score’];
}
return id;
}
?>
?
3.2 打包推薦功能的實(shí)現(xiàn)
采用從學(xué)校教務(wù)處對(duì)課程安排進(jìn)行統(tǒng)計(jì),確保課程包的正確性,同時(shí)隨時(shí)關(guān)注教務(wù)網(wǎng)的動(dòng)態(tài),一旦有課程更新,及時(shí)對(duì)課程包數(shù)據(jù)進(jìn)行修正。針對(duì)推薦匹配問(wèn)題,采用的解決辦法為:在用戶注冊(cè)時(shí)要求用戶注明自己的院系專業(yè)及入學(xué)年份,記錄在用戶數(shù)據(jù)庫(kù)中,可以直接根據(jù)其記錄屬性進(jìn)行相關(guān)推薦。
3.3 基于時(shí)間節(jié)點(diǎn)推薦算法的實(shí)現(xiàn)
首先這是根據(jù)時(shí)間節(jié)點(diǎn)的推薦算法,那么就要將用戶的時(shí)間分為幾個(gè)部分,首先是假期,在該時(shí)間段內(nèi)學(xué)生處于無(wú)功課狀態(tài),此時(shí)便可以為其推薦能力提高類,旅游娛樂(lè)類,文學(xué)作品類,以再提高和休息娛樂(lè)為主要目的進(jìn)行推薦,在這幾類推薦給用戶的同時(shí)也讓他們發(fā)現(xiàn)新的興趣點(diǎn),得到意外驚喜發(fā)掘出潛在需求,例如該學(xué)生本來(lái)對(duì)文學(xué)作品不太感興趣,對(duì)推薦結(jié)果中的書名《盜墓筆記》產(chǎn)生一點(diǎn)點(diǎn)興趣,他開始去嘗試,結(jié)果使他喜歡上了小說(shuō),從而獲得驚喜。然后是在校期間,這個(gè)時(shí)間段還會(huì)繼續(xù)細(xì)分成開學(xué)前、期中和期末,同時(shí)要根據(jù)安排加入社會(huì)考試時(shí)期,如四六級(jí)、計(jì)算機(jī)二級(jí)等。在開學(xué)前(期末),就推薦課本包,將本(下)一學(xué)期要用到的課本打包推薦給用戶,同時(shí)要對(duì)本(下)學(xué)期有社會(huì)考試的同學(xué)進(jìn)行相關(guān)題庫(kù)復(fù)習(xí)資料的推薦;在期中時(shí)則對(duì)有期中考試的同學(xué)進(jìn)行題庫(kù)、復(fù)習(xí)資料的推薦;期末同期中類似也是針對(duì)考試進(jìn)行備考資料的推薦。
部分相關(guān)php代碼如下:
?
〈head〉
〈meta http-equiv="Content-Type" content="text/html; charset=utf-8" /〉
〈title〉推薦規(guī)則3(在選課以及開學(xué)期間推送新學(xué)期所用到的專業(yè)書)
〈/head〉
〈body〉
〈?php
function
function_recommend_rule3(&phpmajor,&$cur_grade,$db)
{
$query="select book_id from major,course,book where major.major_id=phpmajor
andmajor.course_id=course.course_id
andcourse.course_term=cur_grade
andcourse.course_id=book.course_id";
$result=mysqli_query($db,$query);
$num_result=mysqli_num_rows($result);
if($num_result==0)
return;
for($i=0;$i { $row=mysqli_fetch_assoc($result); $output_rcmd_rule3[$i]=$row[‘book_id’]; } mysqli_free_result(result); return output_rcmd_rule3; } ?〉 〈/body〉 ? 3.4 算法檢驗(yàn)結(jié)果分析 為了驗(yàn)證新設(shè)計(jì)的算法的性能,采用對(duì)比應(yīng)用傳統(tǒng)基于物品的推薦算法Item-Based Method以及Item-Based Collaborative Filtering Recommendation Algorithms這兩種算法與應(yīng)用設(shè)計(jì)后的算法的推薦結(jié)果指標(biāo)的方法。采用本校信息學(xué)院各專業(yè)學(xué)生作為測(cè)試數(shù)據(jù)集,推薦指標(biāo)采用準(zhǔn)確P[1]率和平均購(gòu)書時(shí)間Ta。其中測(cè)試平均購(gòu)書時(shí)間的數(shù)據(jù)集為4個(gè)專業(yè)隨機(jī)挑選的5名學(xué)生,分別為:電氣專業(yè)1名(男),大三;通信專業(yè)2名(男、女)大三;自動(dòng)化專業(yè)1名(男),大二;電子專業(yè)1名(女)大一。測(cè)量準(zhǔn)確率的數(shù)據(jù)集為隨機(jī)抽取購(gòu)書學(xué)生50名通過(guò)走訪各班,以問(wèn)卷調(diào)查方式得出其對(duì)推薦欄書的滿意度。 測(cè)試方法為線下本地測(cè)試。在同學(xué)有較大購(gòu)書需求的學(xué)期初,通過(guò)邀請(qǐng)本學(xué)院不同學(xué)生(數(shù)據(jù)集上文已介紹),先使用傳統(tǒng)推薦算法進(jìn)行本地運(yùn)行,使學(xué)生進(jìn)行購(gòu)書行為,利用后臺(tái)記錄其操作數(shù)據(jù),并發(fā)放問(wèn)卷對(duì)第一次滿意度和準(zhǔn)確率進(jìn)行調(diào)查;再加入新的推薦算法再次使同一用戶進(jìn)行購(gòu)書行為,記錄其操作數(shù)據(jù),發(fā)放問(wèn)卷調(diào)查第二次滿意度及準(zhǔn)確率。 平均購(gòu)書時(shí)間Ta:該指標(biāo)為檢測(cè)新算法的加入是否提高了用戶的購(gòu)書效率,計(jì)算公式為 (5) 式中:T為用戶從登錄購(gòu)物網(wǎng)頁(yè)到完成下單操作所使用的全部時(shí)間;n為該用戶購(gòu)買書籍的本書。 準(zhǔn)確率:推薦列表中用戶喜歡的產(chǎn)品和所有被推薦產(chǎn)品的比率,計(jì)算方法為 (6) 式中:Nrs推薦內(nèi)容中用戶喜歡的產(chǎn)品個(gè)數(shù);Nr用戶喜歡的所有產(chǎn)品的個(gè)數(shù);Ns為所有被推薦產(chǎn)品的個(gè)數(shù)。 從圖6中數(shù)據(jù)可以看出單純使用基于物品的推薦算法Item-Based Method以及Item-Based Collaborative Filtering Recommendation Algorithms的算法用戶平均購(gòu)買時(shí)間絕大部分是要高于加入新算法后用戶平均購(gòu)買時(shí)間的,可以反映出用戶購(gòu)書效率有了一定程度的提高。 從圖7中可以得出,準(zhǔn)確率在加入新的算法后有了一定程度的提升,而在用戶購(gòu)買書本較少時(shí)由于推薦書本數(shù)一般大于用戶購(gòu)買數(shù),所以導(dǎo)致準(zhǔn)確率較低;當(dāng)用戶購(gòu)買的書本在5~6本時(shí)準(zhǔn)確率最高,此時(shí)推薦滿意度最好;當(dāng)購(gòu)買書籍超過(guò)6本后準(zhǔn)確率變化不大,維持在一個(gè)恒定水平。由于購(gòu)書用戶通常一次購(gòu)買書籍不超過(guò)10本所以沒有測(cè)得當(dāng)用戶一次購(gòu)書超過(guò)10本的數(shù)據(jù)。同時(shí)課本打包推薦的加入也極大的提高了推薦的準(zhǔn)確率。 圖6 平均購(gòu)書時(shí)間Ta前后對(duì)比圖7 準(zhǔn)確率隨購(gòu)買本書變化及前后對(duì)比圖 針對(duì)推薦引擎直接應(yīng)用普通推薦算法不能很好地滿足大學(xué)校園二手書交易平臺(tái)推薦需求這一問(wèn)題,提出了應(yīng)用結(jié)合新舊因子的推薦、基于評(píng)分機(jī)制的推薦,增加打包推薦功能以及采用基于時(shí)間節(jié)點(diǎn)的推薦的方法。結(jié)合新舊因子的方法將所售書籍中成色較好的優(yōu)先推薦給用戶;引入評(píng)分機(jī)制后可以將大多數(shù)用戶評(píng)價(jià)較高的書籍推薦給用戶;增加一鍵購(gòu)書功能后可以使用戶更方便更快捷地完成購(gòu)物;應(yīng)用基于時(shí)間節(jié)點(diǎn)的推薦算法[16]后使推薦結(jié)果更加貼近用戶群體(大學(xué)生)的學(xué)習(xí)、生活,能及時(shí)滿足用戶的購(gòu)書需求。通過(guò)對(duì)用戶購(gòu)買數(shù)據(jù)的統(tǒng)計(jì),以準(zhǔn)確率和平均購(gòu)買時(shí)間為評(píng)價(jià)指標(biāo),得出的結(jié)果顯示此次算法的改進(jìn)進(jìn)一步提高了推薦引擎的推薦質(zhì)量。以上方法的使用極大地優(yōu)化了二手書交易平臺(tái)的推薦功能,使用戶有了更好的使用體驗(yàn),為大學(xué)校園二手書交易發(fā)展提供了推動(dòng)力。 而在本次研究應(yīng)用中,由于學(xué)生購(gòu)書本書一般不超過(guò)10本,故所獲得數(shù)據(jù)缺乏購(gòu)書本書更多的數(shù)據(jù),不能進(jìn)一步驗(yàn)證當(dāng)一次性購(gòu)書較多時(shí)本系統(tǒng)對(duì)推薦準(zhǔn)確率和效率的影響;而當(dāng)購(gòu)書本書較少時(shí),由于推薦本書較多,所以準(zhǔn)確率會(huì)偏低,這也是未解決的問(wèn)題之一。希望后續(xù)工作者能研究解決。 [1] 王國(guó)霞,劉賀平.個(gè)性化推薦系統(tǒng)綜述[J].計(jì)算機(jī)工程與應(yīng)用,2012(7):66-76. [2] Resnick P,Iacovou N,etal. GroupLens: an open architecture for collaborative filtering of netnews[C]// Proceedings of the 1994 ACM con-Ference on Computer Supported Cooperative Work.ChapelHill,NorthCarolina,UnitedStates,October 22-26,1994. [3] Adomavicius G,Sankaranarayanan R,Shahana S,etal.Incorpo-rating contextual information in recommendation systems using a multidimensional approach[J].ACM Transactions on Infor- mation Systems,2005,23(1):103-145. [4] Weng S S,Lin B S,Chen W J.Using contextual information and multidimensional approach for recommendation[J].ExpertSystem with Applications,2009(36):1268-1279. [5] 劉 瑋.電子商務(wù)系統(tǒng)中的信息推薦方法研究[J].情報(bào)科學(xué),2006, 24(2):300-303. [6] Zhao Jinghe,Liu Guiquan.Automatic modeling based on interest clustering[J].AI Commun,2001,14(3):129-147. [7] Zhang Yulian,Wang Quan.User profile mining of combining Web behavior and content analysis[J].New Technology of Library and Information Service,2007(6):52-55. [8] 查大元. 個(gè)性化推薦系統(tǒng)的研究和實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2011,28(1): 47-49,98. [9] Zhou T C, Ma H, King I,etal. UserRec: A user recommendation framework in social tagging systems[C]//In: Proc. of the 24th AAAI Conf. on Artificial Intelligence. AAAI Press, 2010. 1486-1491. [10] Wu L, Chen EH, Liu Q,etal. Leveraging tagging for neighborhood-aware probabilistic matrix factorization. In: Proc. of the ACM Int’l Conf. on Information and Knowledge Management. ACM Press, 2012. 1854-1858. [doi: 10.1145/ 2396761.2398531] [11] 項(xiàng) 亮.推薦系統(tǒng)實(shí)踐[M].北京:人民郵電出版社,2012. [12] Luke Welling,Laura Thomson.PHP和MySQL Web開發(fā)[M].北京:機(jī)械工業(yè)出版社,2009. [13] 許海玲.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報(bào),2009,20(2): 350-362. [14] Liu Q, Chen EH, Xiong H,etal. Enhancing collaborative filtering by user interests expansion via personalized ranking[J]. IEEE Trans on Systems, Man and Cybernetics—B, 2012,42(1):218-233. [doi: 10.1109/TSMCB.2011.2163711] [15] Li B, Zhu XQ, Li RJ,etal. Cross-domain collaborative filtering over time[C]//In: Proc. of the 22nd Int’l Joint Conf. on Artificial Intelligence. IJCAI/AAAI Press, 2011. 2292-2298. [doi: 10.5591/978-1-57735-516-8/IJCAI11-382] [16] 孫光福, 吳 樂(lè), 劉 淇, 等.基于時(shí)序行為的協(xié)同過(guò)濾推薦算法[J].軟件學(xué)報(bào),2013,24(11):2721-2733. Design and Implementation of Recommendation Engine Based on University Campus’ Used Book Shopping Network DINGYi,SHENGZhirong,XIEYinghua (School of Information Science and Technology, Donghua University, Shanghai 201620, China) College used book trade is different from the general online shopping. Recommendation engine applied common recommendation algorithm cannot be very good to recommend. In order to make students’ used book shopping site better to recommend books to users, to improve the accuracy of the results and the efficiency of recommendation, based on the original recommendation module, the paper proposed a suitable mode for shopping website of used books recommendation engine with an optimal recommendation algorithm module. The new algorithm module has the following characteristics: (1) Based on the items of the recommendation algorithm, books’ scores and "old and new" factors are taken into consideration to optimize recommendation results; (2) For the convenience of users purchase, a new packaged recommendation function is added, so users can buy the required books by pushing one key; (3) According to the fact that the needs of students can be predicted, the recommendation algorithm was designed based on time nodes. recommendation algorithm; scoring mechanism; “old and new” factors; packaged recommendation function; time-based 2016-08-22 丁 一(1994-),男,河北張家口人,本科生,主要研究方向:數(shù)據(jù)挖掘。Tel.:18818010121;E-mail:200188881@qq.com 謝穎華(1972-),女,上海人,碩士,副教授,主要研究方向:大數(shù)據(jù)。Tel.:13701773541;E-mail:yh_xie@dhu.edu.cn TP 39 A 1006-7167(2017)05-0148-064 結(jié) 語(yǔ)