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

?

個性化推薦系統(tǒng)及在已有系統(tǒng)上的應(yīng)用

2019-06-11 09:07徐立李超
關(guān)鍵詞:用戶行為推薦系統(tǒng)

徐立 李超

摘? 要: 針對信息過載而中小企業(yè)又無力為其用戶提供推薦服務(wù)的現(xiàn)狀,提出了一種個性化的推薦系統(tǒng),為中小企業(yè)已有系統(tǒng)的用戶提供推薦服務(wù)。該推薦系統(tǒng)采用基于用戶行為和基于好友推薦的推薦方法,可以有效的發(fā)掘用戶顯性和隱性需求,為其提供個性化的推薦服務(wù);數(shù)據(jù)來源于原有系統(tǒng)的數(shù)據(jù)庫及操作日志,運算模塊采用map-reduce的方式運算,保障了系統(tǒng)的運算速度和可擴展性。最后以某平臺為例,簡要介紹了個性化推薦系統(tǒng)和已有系統(tǒng)對接的實施方案。

關(guān)鍵詞: 推薦系統(tǒng); 推薦功能; 用戶行為; 好友推薦

中圖分類號: TP 399? ? ? ? ? 文獻(xiàn)標(biāo)志碼: A? ? ? ? ? 文章編號: 1671-2153(2019)01-0093-05

0? 引 言

作為解決當(dāng)前“信息過載”現(xiàn)象的一種有效途徑,推薦系統(tǒng)吸引了越來越多的專家、學(xué)者及企業(yè)的研究和關(guān)注,其研究的熱點在于各種各樣的推薦算法、優(yōu)劣比較等[1];大型互聯(lián)網(wǎng)企業(yè)也紛紛上線自己的推薦系統(tǒng)(如電商中淘寶、京東、亞馬遜[2];視頻中優(yōu)酷、土豆;社交網(wǎng)絡(luò)中人人網(wǎng);新聞中今日頭條等)。這些推薦系統(tǒng)極大的方便了用戶,能夠發(fā)掘用戶的潛在需求,將合適的、個性化的內(nèi)容或商品推薦給不同的用戶;企業(yè)因推薦了合適的內(nèi)容或商品,用戶粘合度和訂單轉(zhuǎn)換率大大提高,企業(yè)、用戶雙方受益。

然而,對于一般中小型企業(yè),由于技術(shù)和資金實力限制,既不能將專家研究出的優(yōu)秀推薦算法付出實施,又不能像大型企業(yè)一樣上線自己的推薦系統(tǒng),錯失了享受推薦系統(tǒng)紅利的機會。本文提出了一種個性化的推薦系統(tǒng)以及將其應(yīng)用到某些已有系統(tǒng)的實施方案,借助該系統(tǒng),一般中小企業(yè)的已有系統(tǒng)可以為用戶提供個性化的推薦服務(wù)。

1? 推薦系統(tǒng)的總體設(shè)計

推薦系統(tǒng)的定位是:為中小企業(yè)已有系統(tǒng)的用戶個性化的推薦該系統(tǒng)下的資源(被推薦對象的種類繁多,如:頁面、新聞、知識條目、商品、視頻等,為了描述的方便,以下統(tǒng)稱為資源),其原理是從已有系統(tǒng)中提取數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗后,按相關(guān)推薦算法運算,最終將得到的“用戶-資源”的推薦結(jié)果進(jìn)行存儲,以某種規(guī)則和形式推薦給用戶,由于對推薦服務(wù)的實時性要求不高,大型企業(yè)的推薦系統(tǒng)也是采用離線計算的方式,才使得該設(shè)計在實時性方面能夠達(dá)到同型系統(tǒng)的一般要求,其總體結(jié)構(gòu)如圖1所示。

要對已有系統(tǒng)增加推薦功能,首先要提取已有系統(tǒng)中的數(shù)據(jù),這些數(shù)據(jù)包括:用戶和資源的基本信息、用戶推薦的資源信息(這是在系統(tǒng)中增加的小功能),這類數(shù)據(jù)屬于從已有系統(tǒng)的數(shù)據(jù)庫中提取的結(jié)構(gòu)化數(shù)據(jù);原有系統(tǒng)訪問日志(一般系統(tǒng)都會有這種日志,一般形式為某用戶通過某一個鏈接操作了某一資源),這些數(shù)據(jù)屬于非結(jié)構(gòu)化數(shù)據(jù)。

圖1中,數(shù)據(jù)清洗模塊主要對提取的數(shù)據(jù)進(jìn)行運算前的處理,處理重點在于日志文件,不同的系統(tǒng)提供的日志形式不完全一樣,需要對接原有系統(tǒng)時稍作改動,在開發(fā)時要遵循面向接口編程的規(guī)則,對接時推薦系統(tǒng)的代碼可以不受影響;也可事先分別對幾種常見的開源系統(tǒng)的日志進(jìn)行編程,對接時通過配置文件選擇某一種處理方式,避免硬編碼。

算法計算模塊是推薦系統(tǒng)的核心,由于系統(tǒng)中已有大量真實數(shù)據(jù),算法的運算復(fù)雜度又較高,因此對運算資源的要求較高,單結(jié)點運算顯然是無法滿足性能需求的,因此需要將運算任務(wù)分配到不同結(jié)點,運算結(jié)束后將結(jié)果回收。

結(jié)果存儲模塊將運算得到的結(jié)果持久化,存儲結(jié)果比較簡單:用戶—資源。一般單臺服務(wù)器即可滿足存儲需求,數(shù)據(jù)量大時,可考慮數(shù)據(jù)庫橫向拆分,拆分時要保證同一用戶的所有推薦結(jié)果在一臺服務(wù)器上。

結(jié)果推送模塊主要負(fù)責(zé)將存儲起來的推薦結(jié)果按照某個規(guī)則(推送多少條、過濾掉已采納資源等)和某種形式推送到原有系統(tǒng)。

2? 推薦算法的設(shè)計

常見的推薦方法有:基于內(nèi)容的推薦、協(xié)同過濾推薦和基于關(guān)聯(lián)規(guī)則的推薦,這些方法各有優(yōu)缺點,適用場景不同[3]。資源的多樣性決定了采用的推薦方法不能單一,通過分析用戶和資源的特征、推薦系統(tǒng)的應(yīng)用場景(應(yīng)用于已有系統(tǒng),已存在大量用戶行為數(shù)據(jù),不存在冷啟動的問題),主要采用的推薦方法有:基于用戶行為的推薦和基于好友的推薦兩種。

2.1? 基于用戶行為的推薦

用戶在使用系統(tǒng)時,無論是有目標(biāo)的使用還是無意識的隨意瀏覽,其行為數(shù)據(jù)都有很大價值,這些有價值的數(shù)據(jù)會被系統(tǒng)的操作日志記錄,這部分?jǐn)?shù)據(jù)相對互聯(lián)網(wǎng)的整個用戶行為數(shù)據(jù)庫體量要小的多,價值要大的多。

2.1.1? 用戶行為

用戶訪問和使用系統(tǒng)時,其行為可分為以下幾種:創(chuàng)建資源;編輯資源;瀏覽資源;發(fā)起提問;回答問題;采納答案;瀏覽答案。經(jīng)分析論證,為每種行為賦權(quán)重,行為權(quán)重表如表1所示。

2.1.2? 實現(xiàn)技術(shù)及算法

資源類的操作可根據(jù)行為權(quán)重直接映射到資源,問答由于是用戶發(fā)起和回答的,內(nèi)容無固定格式且沒有關(guān)鍵詞,利用Lucene開源全文檢索工具的中文分詞器對提問和被采納答案的內(nèi)容進(jìn)行切分后加上行為權(quán)重映射到資源。

某用戶對資源的興趣值記為I,其公式為

式中:BW為表1中的行為權(quán)重值;D為該行為的持續(xù)時間,即在頁面上的停留時間。計時有兩種方式:可以借助Ajax技術(shù)來實現(xiàn),當(dāng)用戶在頁面上做點擊鼠標(biāo)、滑動光標(biāo)或敲擊鍵盤等操作時,會觸發(fā)ajax程序向服務(wù)器端發(fā)送信號,從最早接收到信號到最后一次發(fā)送信號之間的時間差可認(rèn)為是停留時間;如果操作日志較為詳細(xì),也可以通過獲取同一用戶相鄰兩條操作記錄,計算其時間差的方式計算停留時間。

某用戶的興趣集中度記為IR,其公式為

式中:Imax為某用戶的最大資源興趣值;IK為該用戶對資源k的興趣值。IR值越大,則表明用戶的興趣點越集中,其目標(biāo)性越強,反之亦然。當(dāng)IR≥50%說明其興趣集中度較高,最大興趣值占據(jù)用戶興趣總值半數(shù)以上,該用戶對該資源興趣濃厚,只推薦與該資源相似度最高的前N條資源,選取前N(N可靈活配置)條進(jìn)行推薦。當(dāng)IR<50%時,說明該用戶目標(biāo)性不強,可能只是隨便了解些知識,此時取最感興趣的前M(M可靈活配置)資源下首位相似資源推薦。

2.2? 基于好友的推薦

這里的好友與社交網(wǎng)絡(luò)中的好友不同:社交網(wǎng)絡(luò)中的好友來源很廣,有可能是生活中的朋友,生意上的伙伴,其興趣點有可能截然不同;該“好友”對用戶是不可見的,它是通過用戶相似度計算獲得的,其計算公式與基于用戶的協(xié)調(diào)過濾算法中的計算公式相同。然而,該方法與后者不同:后者強調(diào)用戶A和B相似度高,則推薦給A的資源,也可推薦給B;該方法強調(diào),A主動推薦的資源,可以推薦給B,這樣可以糾正算法計算時的偏差和失真,發(fā)揮用戶的主觀能動性,盡可能大的利用互聯(lián)網(wǎng)萬千用戶的智力資源,其推薦結(jié)果將更準(zhǔn)確、效果更好。

3? 系統(tǒng)的部分實現(xiàn)

由2中的算法描述可以看到:基于用戶行為的推薦方法首先要從每個用戶的行為找到其在某段時間內(nèi)關(guān)注最多的數(shù)個資源,然后從眾多資源中找出每個資源最相關(guān)的數(shù)個資源進(jìn)行推薦;基于好友的推薦也是要找到每個用戶的“好友”,也就是關(guān)注點最相關(guān)的用戶,運算量是巨大的,單憑一個主機是無法滿足性能需求的。為了提升推薦系統(tǒng)的運算性能必須采用map?螄reduce的方式將計算任務(wù)分配給多個運算節(jié)點,運算結(jié)束后將結(jié)果匯總。Hadoop提供了一個很好的并行化分布式計算框架,其兩大核心組件[4]:HDFS用于分布式存儲文件;MapReduce用戶并行化運算。

在實現(xiàn)map?螄reduce計算之前,先看一下獲取推薦給用戶資源列表和用戶“好友”列表的流程,如圖2所示。

圖2中,對應(yīng)主要代碼段如下:

/*推薦給用戶的資源列表*/

public List itemRecommend(long userID, int howMany, IDRescorer rescorer, boolean includeKnownItems) throws TasteException {

PreferenceArray preFromUser = getDataModel().getPreferencesFromUser(userID);

if (preFromUser.length() == 0) {return Collections.emptyList();}

FastIDSet possItems = getAllOtherItems(userID, preFromUser, includeKnownItems);

TopItems.Estimator estimator = new Estimator(userID, preFromUser);

if(concentrating>50%) {

List topItems = TopItems.getTopItems(howMany, possItems.iterator().next(), rescorer,estimator);}else {List topItems = TopItems.getTopItems(howMany, possItems.iterator(), rescorer,estimator);}

return topItems;}

/*獲取用戶的“好友”*/

public long[] getUserNeighbors(long userID) throws TasteException {DataModel dataModel = getDataModel();

UserSimilarity userSimImpl = getUserSimilarity();

TopItems.Estimator estimator = new Estimator(userSimImpl, userID, minSimilarity);

LongPrimitiveIterator userIDs = SamplingLongPrimitiveIterator.

maybeWrapIterator(dataModel.getUserIDs(),getSamplingRate());

return TopItems.getTopUsers(n, userIDs, null, estimator);}

MapReduce是用來解決海量數(shù)據(jù)的計算問題提出的一種多節(jié)點并行化運算方式,在Hadoop框架下用戶只需實現(xiàn)map()和reduce()方法即可完成并行化運算,具體到資源推薦,定義類ItemRecommend,public class ItemRecommend extends Configured implements Tool,該類集成了org.apache.hadoop.conf包下的Configured,實現(xiàn)了Tool接口。在該類里定義Item Recommend Mapper和Item Recommend Reducer兩個靜態(tài)內(nèi)部類,在main方法中,通過job.set Mapper Class(Item Recommend Mapper.class)和job.set Reducer Class(Item Recommend Reducer.class)運行。

4? 推薦系統(tǒng)的應(yīng)用舉例

推薦系統(tǒng)可以應(yīng)用于中小企業(yè)的已有系統(tǒng),為其用戶提供個性化推薦功能,以茶文化知識平臺為例,簡單介紹其應(yīng)用。

茶文化推廣平臺是一個集知識管理、問答、交友的茶文化綜合平臺,包括茶知識、茶問答、茶友空間和后臺管理等功能,其功能模塊如圖3所示。

推薦的資源為茶文化相關(guān)的知識條目,該平臺是基于一些常見開源系統(tǒng)(hdwiki,UCenter等)的二次開發(fā)搭建的,主要功能均由開源系統(tǒng)提供。因此,無論從日志的完整性和規(guī)范性,還是代碼的規(guī)范性來講,都為其開發(fā)推薦功能提供了方便。

鑒于推薦系統(tǒng)中基于好友的推薦算法中,需要使用用戶推薦的數(shù)據(jù),對系統(tǒng)進(jìn)行開發(fā)增加用戶推薦功能,該功能簡單,數(shù)據(jù)庫中新增用戶-資源對照表uc_ recommender,用戶推薦后數(shù)據(jù)庫里新增一條記錄即可,相應(yīng)的取消推薦功能類似。

獲取數(shù)據(jù)時:一部分?jǐn)?shù)據(jù)來自于數(shù)據(jù)庫,如wiki_doc(條目基本信息表)、uc_members(用戶基本信息表)、uc_asks(提問表)和uc_anwsers(答案表)以及uc_recommender(用戶推薦條目表)等,這部分?jǐn)?shù)據(jù)數(shù)據(jù)結(jié)構(gòu)型數(shù)據(jù),基本不需要處理;另一部分來自于原系統(tǒng)中的操作日志,操作日志中記錄了用戶通過某個類操作了某個資源,這里只關(guān)注表1中列舉的操作,需要過濾掉的數(shù)據(jù)較多,逐條判斷,把符合條件的記錄抽取用戶id,資源id和操作類名等信息,實現(xiàn)起來較簡單。至此,已完成了推薦系統(tǒng)與現(xiàn)有系統(tǒng)之間的無縫對接。

5? 結(jié)束語

通過研究推薦系統(tǒng),提出了一種個性化推薦系統(tǒng)和基于用戶行為和基于好友推薦的方法相結(jié)合的推薦方法:推薦算法運算時采用map-reduce的方式,運算能力較強;運算量大時可以任意新增運算節(jié)點,可擴展性良好;該系統(tǒng)的實施技術(shù)難度不大、成本較低、可以方便的應(yīng)用到中小企業(yè)現(xiàn)有系統(tǒng)中,為其用戶提供個性化的推薦服務(wù)。本文以茶文化知識平臺為例,實施了該推薦系統(tǒng)。

參考文獻(xiàn):

[1] 冷亞軍,陸青,梁昌勇. 協(xié)同過濾推薦技術(shù)綜述[J]. 模式識別與人工智能,2014,27(8):720-734.

[2] 洪亮,任秋圜,梁樹賢. 國內(nèi)電子商務(wù)網(wǎng)站推薦系統(tǒng)信息服務(wù)質(zhì)量比較研究——以淘寶、京東、亞馬遜為例[J]. 圖書情報工作,2016,60(23):97-110.

[3] 黃立威,江碧濤,呂守業(yè),等. 基于深度學(xué)習(xí)的推薦系統(tǒng)研究綜述[J/OL]. 計算機學(xué)報,2018:1-29.

[4] 董新華,李瑞軒,周灣灣,等. Hadoop系統(tǒng)性能優(yōu)化與功能增強綜述[J]. 計算機研究與發(fā)展,2013,50(S2):1-15.

猜你喜歡
用戶行為推薦系統(tǒng)
數(shù)據(jù)挖掘在選課推薦中的研究
電力高校圖書館轉(zhuǎn)型智庫服務(wù)的研究
基于用戶偏好的信任網(wǎng)絡(luò)隨機游走推薦模型
社會化媒體用戶使用動機與行為探析
基于個性化的協(xié)同過濾圖書推薦算法研究
個性化推薦系統(tǒng)關(guān)鍵算法探討
淺談Mahout在個性化推薦系統(tǒng)中的應(yīng)用
移動互聯(lián)網(wǎng)環(huán)境下用戶行為社交化變遷的探析
關(guān)于協(xié)同過濾推薦算法的研究文獻(xiàn)綜述
基于云計算技術(shù)的大數(shù)據(jù)用戶行為引擎設(shè)計
平潭县| 公主岭市| 邵东县| 拉萨市| 恩施市| 邳州市| 镇赉县| 蓬溪县| 逊克县| 尼勒克县| 蒲江县| 九台市| 广水市| 华宁县| 镶黄旗| 福清市| 宾阳县| 弥勒县| 栾城县| 苏尼特左旗| 呈贡县| 永平县| 县级市| 灵武市| 河西区| 商南县| 封开县| 福安市| 怀来县| 贵阳市| 宜宾县| 滁州市| 瑞丽市| 霍州市| 泗水县| 聂拉木县| 汽车| 武陟县| 独山县| 林周县| 湘潭市|