• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種基于Spark的改進(jìn)協(xié)同過(guò)濾算法研究

    2017-06-29 12:00:34許智宏蔣新宇董永峰趙嘉偉
    關(guān)鍵詞:密集度分塊類別

    許智宏 蔣新宇 董永峰 趙嘉偉

    1(河北工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院 天津 300401)2(河北省大數(shù)據(jù)計(jì)算重點(diǎn)實(shí)驗(yàn)室 天津 300401)

    一種基于Spark的改進(jìn)協(xié)同過(guò)濾算法研究

    許智宏1,2蔣新宇1董永峰1,2趙嘉偉1

    1(河北工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院 天津 300401)2(河北省大數(shù)據(jù)計(jì)算重點(diǎn)實(shí)驗(yàn)室 天津 300401)

    為提高協(xié)同過(guò)濾算法在大數(shù)據(jù)環(huán)境下的可擴(kuò)展性以及在高維稀疏數(shù)據(jù)下的推薦精度,基于Spark平臺(tái)實(shí)現(xiàn)了一種分層聯(lián)合聚類協(xié)同過(guò)濾算法。利用聯(lián)合聚類對(duì)數(shù)據(jù)集進(jìn)行稀疏性處理并構(gòu)建聚類模型,運(yùn)用層次分析模型并結(jié)合評(píng)分密集度分析聯(lián)合聚類模型中用戶和項(xiàng)目潛在類別權(quán)重,由此進(jìn)行項(xiàng)目相似度計(jì)算并構(gòu)建項(xiàng)目最近鄰居集合,完成在線推薦。通過(guò)在GroupLens提供的不同規(guī)模MovieLens數(shù)據(jù)集上實(shí)驗(yàn)表明,改進(jìn)后的算法能夠明顯提高推薦的準(zhǔn)確度,并且在分布式環(huán)境下具有良好的推薦效率和可擴(kuò)展性。

    協(xié)同過(guò)濾 聯(lián)合聚類 層次分析模型 Spark

    0 引 言

    互聯(lián)網(wǎng)的普及和快速發(fā)展為用戶提供了大量的信息,滿足了用戶的信息需求,但用戶在海量信息中如何獲取對(duì)自己有用的信息成為了一個(gè)急需解決的問(wèn)題,個(gè)性化推薦系統(tǒng)的出現(xiàn)使得這一問(wèn)題得到改善。

    常見的個(gè)性化推薦系統(tǒng),如協(xié)同過(guò)濾、內(nèi)容過(guò)濾和社會(huì)化推薦系統(tǒng)[1]等。其中,基于協(xié)同過(guò)濾的推薦系統(tǒng)最為成熟、有效并且應(yīng)用廣泛。它根據(jù)目標(biāo)用戶對(duì)推薦對(duì)象最近鄰居的評(píng)價(jià)來(lái)預(yù)測(cè)對(duì)推薦對(duì)象的評(píng)價(jià)。通常包括:基于用戶的協(xié)同過(guò)濾[2]、基于項(xiàng)目的協(xié)同過(guò)濾[3]。

    基于項(xiàng)目的協(xié)同過(guò)濾推薦算法需要計(jì)算項(xiàng)目間相似性搜索被推薦項(xiàng)目的最近鄰居,從而為目標(biāo)用戶進(jìn)行評(píng)分預(yù)測(cè)和推薦。由于用戶和項(xiàng)目數(shù)量的不斷增長(zhǎng),協(xié)同過(guò)濾算法面臨著嚴(yán)重的數(shù)據(jù)稀疏性和數(shù)據(jù)規(guī)??蓴U(kuò)展性問(wèn)題。

    針對(duì)數(shù)據(jù)稀疏性問(wèn)題,許多研究者從不同的角度對(duì)協(xié)同過(guò)濾提出了改進(jìn)方法,如文獻(xiàn)[4]從相似度傳播的角度對(duì)數(shù)據(jù)稀疏性問(wèn)題進(jìn)行了相關(guān)研究,但該算法的復(fù)雜度較高,時(shí)空開銷較大。文獻(xiàn)[5]通過(guò)融入社交網(wǎng)絡(luò)好友信任關(guān)系,有效緩解了數(shù)據(jù)的稀疏性問(wèn)題,文獻(xiàn)[6]使用奇異值分解來(lái)降低評(píng)分矩陣的維數(shù)從而達(dá)到降低矩陣稀疏性的目的,但該方法計(jì)算量較大,而且降維也會(huì)導(dǎo)致信息缺失。通過(guò)聚類技術(shù)降低稀疏度的方法,如文獻(xiàn)[7]首先通過(guò)k-means算法進(jìn)行基于項(xiàng)目的聚類,然后在項(xiàng)目聚類的基礎(chǔ)上計(jì)算最近鄰用戶全局相似度。文獻(xiàn)[8]提出了基于雙向聚類的協(xié)同過(guò)濾推薦算法,利用雙向聚類平滑填充的方法去解決數(shù)據(jù)稀疏性問(wèn)題。

    針對(duì)傳統(tǒng)協(xié)同過(guò)濾算法在處理大規(guī)模數(shù)據(jù)所遇到的可擴(kuò)展性問(wèn)題,許多研究者采用分布式計(jì)算實(shí)現(xiàn)協(xié)同過(guò)濾算法來(lái)改善算法的可擴(kuò)展性。文獻(xiàn)[9]將基于用戶的協(xié)同過(guò)濾算法部署在Hadoop分布式處理平臺(tái)上。文獻(xiàn)[10]將改進(jìn)的基于項(xiàng)目的協(xié)同過(guò)濾推薦算法,在Hadoop平臺(tái)下實(shí)現(xiàn)了并行化。文獻(xiàn)[11]提出了一種基于Hadoop平臺(tái)的k-means和slope one的混合協(xié)同過(guò)濾推薦算法。文獻(xiàn)[12]分別在Hadoop和Spark平臺(tái)上實(shí)現(xiàn)了基于項(xiàng)目的協(xié)同過(guò)濾算法,并在Spark平臺(tái)上獲得了更高的執(zhí)行效率。

    本文針對(duì)傳統(tǒng)協(xié)同過(guò)濾算法的稀疏性和可擴(kuò)展性問(wèn)題展開研究,在基于項(xiàng)目的協(xié)同過(guò)濾算法基礎(chǔ)上,引入聯(lián)合聚類、評(píng)分密集度、層次分析模型,提出了一種分層的聯(lián)合聚類協(xié)同過(guò)濾算法(AHCCF),并基于Spark平臺(tái)實(shí)現(xiàn)AHCCF算法并行化。通過(guò)基于用戶維度的聚類將數(shù)據(jù)劃分為不同用戶族,緩解數(shù)據(jù)稀疏性對(duì)相似度計(jì)算的影響。在每個(gè)不同用戶簇中計(jì)算項(xiàng)目的相似性,再根據(jù)聯(lián)合聚類和層次分析模型計(jì)算用戶簇的權(quán)重,進(jìn)而得到項(xiàng)目的最終相似性,提高了推薦的準(zhǔn)確性。通過(guò)Spark平臺(tái)構(gòu)建推薦算法,可以充分利用Spark基于RDD的內(nèi)存計(jì)算優(yōu)勢(shì),在并行計(jì)算階段進(jìn)行高效的數(shù)據(jù)共享,使算法能夠具有良好的可擴(kuò)展性和執(zhí)行效率。

    1 一種分層的聯(lián)合聚類協(xié)同過(guò)濾算法

    1.1 構(gòu)建用戶模型

    協(xié)同過(guò)濾算法的用戶模型通常是一個(gè)m×n的評(píng)分矩陣Rmn,用來(lái)表示m個(gè)用戶數(shù)對(duì)n個(gè)項(xiàng)目的興趣偏好。其中,用戶的興趣偏好可通過(guò)評(píng)分值來(lái)表示,如rij可用來(lái)表示用戶i對(duì)項(xiàng)目j的評(píng)分,評(píng)分高低決定了用戶對(duì)項(xiàng)目感興趣程度。

    1.2 項(xiàng)目相似性度量

    項(xiàng)目的相似性計(jì)算,AHCCF算法主要采用皮爾森相關(guān)相似性[13],其中皮爾森相關(guān)相似性是目前采用比較廣泛的度量方法。皮爾森相關(guān)系數(shù)公式如下:

    (1)

    傳統(tǒng)基于項(xiàng)目的協(xié)同過(guò)濾算法僅僅采用了單一的相似度來(lái)描述項(xiàng)目之間對(duì)于所有用戶的相似程度,而沒(méi)有考慮到用戶所屬類別的不同對(duì)相似度產(chǎn)生的影響。日常經(jīng)驗(yàn)告訴我們,在一個(gè)喜好程度相近的用戶群中,由于其共同喜好,用戶群中的用戶對(duì)感興趣的項(xiàng)目評(píng)分比較密集。因此用戶群感興趣的兩個(gè)項(xiàng)目之間的相似性能夠比較真實(shí)地反映這兩個(gè)項(xiàng)目的實(shí)際的相似性,因此可以在不同的用戶群中考慮項(xiàng)目的相似性,最后通過(guò)用戶群的權(quán)重獲得項(xiàng)目最終的相似性。

    為了改善數(shù)據(jù)稀疏性在相似度計(jì)算過(guò)程中所帶來(lái)的影響,AHCCF算法在皮爾森相關(guān)系數(shù)的基礎(chǔ)上提出了一種新的項(xiàng)目相似性計(jì)算方法。通過(guò)對(duì)評(píng)分矩陣R進(jìn)行用戶聚類得到k個(gè)用戶潛在類別,在每個(gè)用戶潛在類別的評(píng)分矩陣當(dāng)中運(yùn)用式(1)進(jìn)行項(xiàng)目相似性計(jì)算,進(jìn)而得到每個(gè)用戶聚類的相似度矩陣集合simUC={simUC1,simUC2,…,simUCk},使用層次分析模型計(jì)算得到用戶潛在類別權(quán)重向量WUC,根據(jù)式(2)得到最終項(xiàng)目之間的相似度。權(quán)重向量WUC需要通過(guò)聯(lián)合聚類對(duì)原始評(píng)分矩陣分塊,評(píng)估分塊矩陣的評(píng)分密集度,構(gòu)造分層模型計(jì)算得到。

    (2)

    1.2.1 聯(lián)合聚類

    聚類是將具有相同類別屬性的內(nèi)容聚集在一起的機(jī)器學(xué)習(xí)方法,是一種處理海量、稀疏數(shù)據(jù)的有效方法。聯(lián)合聚類(Co-Clustering)是對(duì)于行列相關(guān)的二維矩陣數(shù)據(jù)模型[14],從行、列兩個(gè)角度進(jìn)行聚類。相對(duì)于傳統(tǒng)僅考慮一維相關(guān)信息的單聚類算法,該算法能夠更加有效地挖掘出數(shù)據(jù)模型當(dāng)中的潛在類別。

    如圖1所示,AHCCF算法采用聯(lián)合聚類分別對(duì)用戶維和項(xiàng)目維聚類得到用戶潛在類別、項(xiàng)目潛在類別,其中用戶聚類UC={UC1,UC2,…,UCk}、項(xiàng)目聚類IC={IC1,IC2,…,ICk}。經(jīng)過(guò)聯(lián)合聚類,可從用戶和項(xiàng)目?jī)蓚€(gè)維度上將評(píng)分矩陣劃分成分塊矩陣BC=[BC11,BC12,…,BC1k;…;BCk1,BCk2,BCkk]。通過(guò)聯(lián)合聚類,可獲取用戶類別在項(xiàng)目維度上的評(píng)分分布情況以及項(xiàng)目類別在用戶維度上的評(píng)分分布情況。一般來(lái)說(shuō),一個(gè)用戶群在一個(gè)項(xiàng)目類別中的評(píng)分越密集,表示該類項(xiàng)目更能體現(xiàn)用戶的興趣偏好,計(jì)算的項(xiàng)目相似度越真實(shí)。因此,可通過(guò)分析分塊矩陣以及項(xiàng)目類別矩陣的評(píng)分分布情況,來(lái)計(jì)算每個(gè)用戶群在相似度計(jì)算過(guò)程中所占權(quán)重。

    圖1 聯(lián)合聚類

    AHCCF算法采用k-means算法,從用戶和項(xiàng)目?jī)蓚€(gè)維度上進(jìn)行聯(lián)合聚類(CoCluster),算法具體步驟如下所示:

    聯(lián)合聚類CoCluster流程:

    function [UCIndex, UC, ICIndex,IC] = CoCluster(data, kUCluster, kICluster)

    1. UCIndex =kmeans(data, kUCluster);

    //用戶維聚類劃分

    2. for i = 1: kUCluster

    //循環(huán)遍歷用戶維聚類

    3. UCUserIds = find(UCIndex == i);

    //生成用戶類簇所包含的userId集

    4. for j=1:length(UCUserIds)

    5. uc(j,:)=data(UCUserIds(j),:);

    //獲取用戶類簇包含的評(píng)分向量集

    6. end

    7. UC{i}=uc;

    //保存所有用戶類簇的評(píng)分向量集UC

    8. end

    9. data = data’;

    //轉(zhuǎn)置生成項(xiàng)目-用戶矩陣

    10. ICIndex =kmeans(data,kICluster);

    //項(xiàng)目維聚類劃分

    11. for i = 1: kICluster

    //循環(huán)遍歷項(xiàng)目維聚類

    12. ICItemIds = find(ICIndex == i);

    //生成項(xiàng)目類簇所包含的itemId集

    13. for j=1:length(ICItemIds)

    14. ic(j,:)=data(ICItemIds(j),:);

    //獲取項(xiàng)目類簇包含的評(píng)分向量集

    15. end

    16. IC{i}=ic;

    //保存所有項(xiàng)目類簇的評(píng)分向量集IC

    17. end

    1.2.2 評(píng)分密集度

    分塊矩陣的評(píng)分密集度(Rating Intensity)能夠反映分塊矩陣在項(xiàng)目相似度計(jì)算上的真實(shí)性,一般評(píng)分密集度越高的矩陣計(jì)算的項(xiàng)目相似度越真實(shí)。因此,可通過(guò)評(píng)分密集度來(lái)評(píng)價(jià)分塊矩陣中的評(píng)分分布情況。評(píng)分密集度的計(jì)算方法:

    ri=n/N

    (3)

    其中n為分塊矩陣中非零評(píng)分的個(gè)數(shù),N為分塊矩陣中所有評(píng)分的個(gè)數(shù)。

    根據(jù)式(3)計(jì)算基于項(xiàng)目維度的每個(gè)聚類IC1,IC2,…,ICk的評(píng)分密集度,并構(gòu)造向量RIIC=(riIC1,riIC2,…,riICk)T,計(jì)算每個(gè)分塊矩陣BC(i,j)的評(píng)分密集度,進(jìn)而得到評(píng)分密集度矩陣RIBC=(αIC1,αIC2,…,αICk),其中的每個(gè)列向量為αICk=(riUC1,riUC2,…,riUCk)T,即αICk是圖1中ICk列各分塊矩陣的評(píng)分密集度構(gòu)成的向量。

    AHCCF算法,根據(jù)CoCluster的計(jì)算結(jié)果:用戶聚類評(píng)分矩陣(UC)、項(xiàng)目聚類評(píng)分矩陣(IC)以及項(xiàng)目聚類所包含的項(xiàng)目索引矩陣(ICIndex),可計(jì)算出分塊矩陣(block)和評(píng)分密集度(RatingIntensity)。之后,在AHP中便可通過(guò)評(píng)分密集度,生成相應(yīng)的判斷矩陣,計(jì)算用戶類簇的相似度計(jì)算權(quán)重。評(píng)分密集度計(jì)算的具體步驟如下所示:

    評(píng)分密集度計(jì)算流程:

    function [blockIntensityMat, ICIVector]=RatingIndensity(UC, IC, ICIndex)

    1. for i=1: kICluster

    //項(xiàng)目維聚類遍歷

    2. ICItemIds=find(ICIndex ==i);

    //查找項(xiàng)目簇包含的ItemIds集

    3. for j=1: kUCluster

    //用戶維聚類遍歷

    4. for k=1:length(ICItemIds)

    5. block(:,k)=UC{j}(:,ICItemIds(k));

    //構(gòu)建分塊矩陣

    6. end

    //計(jì)算分塊矩陣評(píng)分密集度矩陣

    7. blockIntensityMat (j,i)=nnz(block)/numel(block);

    8. end

    //計(jì)算項(xiàng)目聚類評(píng)分密集度向量

    9. ICIVector(i)=nnz(IC{i})/numel(IC{i});

    10. end

    1.2.3 層次分析模型

    層次分析法是20世紀(jì)70年代由美國(guó)運(yùn)籌學(xué)家Saaty提出的一種層次權(quán)重決策分析方法。通過(guò)建立層次分析模型,進(jìn)行定量計(jì)算權(quán)重的方法。AHCCF算法通過(guò)層次分析模型,并根據(jù)1.2.2節(jié)中的項(xiàng)目類別評(píng)分密集度以及分塊矩陣評(píng)分密集度來(lái)分析用戶類別在項(xiàng)目相似度計(jì)算過(guò)程中所占權(quán)重。

    AHCCF算法以項(xiàng)目聚類的各個(gè)潛在類別作為準(zhǔn)則層,各個(gè)用戶潛在類別作為方案層,通過(guò)每個(gè)項(xiàng)目潛在類別中的各個(gè)分塊矩陣的評(píng)分密集度作比較,可以得到每個(gè)用戶潛在類別在當(dāng)前項(xiàng)目潛在類別中的權(quán)重,最后綜合各項(xiàng)目潛在類別的權(quán)重得到用戶潛在類別的權(quán)重。計(jì)算用戶潛在類別權(quán)重WUC按照下面3個(gè)步驟進(jìn)行:

    (1) 構(gòu)建層次結(jié)構(gòu)模型

    分層過(guò)程中將用戶潛在類別權(quán)重作為目標(biāo)層,項(xiàng)目潛在類別作為準(zhǔn)則層,用戶潛在類別作為方案層,如圖2所示。

    圖2 層次分析結(jié)構(gòu)圖

    (2) 構(gòu)造各層次的判斷矩陣

    通過(guò)聯(lián)合聚類過(guò)程將用戶和項(xiàng)目劃分成k個(gè)潛在類別,每個(gè)潛在類別的評(píng)分密集度分別為ri1,ri2,…,rik,把這些評(píng)分密集度兩兩比較,得到表示相對(duì)關(guān)系的判斷矩陣:

    將權(quán)重向量w右乘矩陣A,則有:

    (3) 層次單排序和總排序

    根據(jù)步驟(2)得到的項(xiàng)目潛在類別權(quán)重向量WIC和每個(gè)項(xiàng)目潛在類別中用戶潛在類別權(quán)重矩陣WBC,依據(jù)式(4)計(jì)算得到用戶潛在類別權(quán)重WUC。

    WUC=WBC·WIC

    (4)

    在用戶和項(xiàng)目聚類數(shù)均為3時(shí),AHP的層次排序過(guò)程,如表1所示。

    表1 AHP層次排序

    AHCCF算法,采用AHP計(jì)算用戶潛在類別在項(xiàng)目相似度計(jì)算時(shí)所占權(quán)重,權(quán)重計(jì)算的具體步驟如下所示:

    用戶潛在類別權(quán)重計(jì)算:

    function [Wuc]=UCWeight (blockIntensityMat, ICIVector, kICluster)

    1. for i=1:kICluster;

    //計(jì)算每個(gè)項(xiàng)目類別中的每個(gè)分塊矩陣權(quán)重向量

    2. w=AHP(blockIntensityMat(:,i));

    3. Wbc(:,i)=w;

    //將每個(gè)項(xiàng)目類別分塊矩陣權(quán)重向量放入權(quán)重矩陣

    4. end

    5. Wic=AHP(ICIVector)

    //計(jì)算項(xiàng)目類別權(quán)重向量

    6. Wuc= Wbc* Wic

    //層次總排序,計(jì)算用戶類別權(quán)重向量

    1.2.4 項(xiàng)目相似度

    AHCCF算法,經(jīng)過(guò)CoCluster處理后將喜好程度相近的用戶劃分到同一個(gè)簇中。在該用戶族中計(jì)算項(xiàng)目相似性,能夠更加反應(yīng)項(xiàng)目真實(shí)相似性。AHCCF算法,在CoCluster生成的每個(gè)用戶類簇中,運(yùn)用式(1)進(jìn)行項(xiàng)目間相似度計(jì)算。然后,根據(jù)1.2.3節(jié)計(jì)算出的用戶潛在類別權(quán)重,計(jì)算出項(xiàng)目的最終相似度。算法的具體步驟如下所示:

    項(xiàng)目相似度計(jì)算:

    function [sim]=computeSim (UC, kUCluster)

    1. for i = 1: kUCluster

    //循環(huán)遍歷用戶維聚類

    2. uc = UC{i};

    //獲取某個(gè)用戶類簇評(píng)分矩陣

    //皮爾森相似度計(jì)算

    3. for i=1:size(uc,2)

    4. for j=1:size(uc,2)

    5. temp=find(uc(:,i)~=0 & uc (:,j)~=0);

    //查找item共同評(píng)分記錄

    6. Rui=data(temp,i);

    //獲取item i的共同評(píng)分信息

    7. Ruj=data(temp,j);

    //獲取item j的共同評(píng)分信息

    8. Ri=mean(data(:,i));

    //獲取item i的共同評(píng)分均值

    9. Rj=mean(data(:,j));

    //獲取item j的共同評(píng)分均值

    10. D(i,j)=(Rui-Ri)'*(Ruj-Rj)/(norm(Rui-Ri)*norm(Ruj-Rj));

    11. if isnan(D(i,j))

    12. D(i,j)=0;

    13. end

    14. D(i,j)=abs(D(i,j));

    15. D(i,i)=0;

    16. end

    17. end

    18. ucSims(i)=D

    //保存每個(gè)用戶類簇的相似度計(jì)算結(jié)果

    19. end

    20. sim=itemSim(ucSims,Wuc)

    //根據(jù)用戶聚類權(quán)重,計(jì)算項(xiàng)目最終相似度

    1.3 評(píng)分預(yù)測(cè)

    根據(jù)1.2節(jié)計(jì)算出的項(xiàng)目間相似度,找出與目標(biāo)項(xiàng)目最相似的最近鄰居集合,即為其生成一個(gè)相似度遞減排列的最近鄰居列表Ni。該過(guò)程分兩步完成:首先,采用1.2.4節(jié)中的方式計(jì)算項(xiàng)目之間的相似度;其次,將最相似的前k個(gè)項(xiàng)目作為最近鄰居集合。

    經(jīng)過(guò)項(xiàng)目相似度計(jì)算,并生成最近鄰居集Ni后,可對(duì)目標(biāo)用戶u的未評(píng)分項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè),計(jì)算方法如下:

    (5)

    1.4 算法流程

    整個(gè)AHCCF算法的流程如圖3所示。

    圖3 AHCCF算法流程圖

    輸入:目標(biāo)用戶u,用戶-項(xiàng)目評(píng)分矩陣Rm×n,聚類數(shù)k

    輸出:目標(biāo)用戶對(duì)每個(gè)項(xiàng)目的預(yù)測(cè)評(píng)分Pu,j,Top-N推薦

    Step1 對(duì)用戶-項(xiàng)目評(píng)分矩陣Rm×n進(jìn)行用戶聚類劃分得到k個(gè)用戶聚類UC1,UC2,…,UCk,利用式(1)計(jì)算每個(gè)聚類中項(xiàng)目與項(xiàng)目之間的相似度得到項(xiàng)目相似度矩陣集合simUC={simUC1,simUC2,…,simUCk}。

    Step2 對(duì)用戶-項(xiàng)目評(píng)分矩陣Rm×n進(jìn)行項(xiàng)目聚類劃分得到k個(gè)項(xiàng)目聚類IC1,IC2,…,ICk,根據(jù)式(3)計(jì)算每個(gè)聚類的評(píng)分密集度得到RIIC=(riIC1,riIC2,…,riICk)T。

    Step3 根據(jù)步驟1和步驟2將評(píng)分矩陣Rm×n分塊得到分塊矩陣BC=[BC11,BC12,…,BC1k;…;BCk1,BCk2,BCkk],計(jì)算每個(gè)分塊矩陣BCij的評(píng)分密集度得到評(píng)分密集度矩陣RIBC=(αIC1,αIC2,…,αICk),αICk=(riUC1,riUC2,…,riUCk)T。

    Step4 利用層次分析模型(AHP)對(duì)Step2、Step3得到的RIIC和RIBC的列向量αICk構(gòu)造判斷矩陣并計(jì)算特征向量,得到項(xiàng)目潛在類別權(quán)重向量WIC=(wIC1,wIC2,…,wICk)T和每個(gè)項(xiàng)目潛在類別中用戶潛在類別的權(quán)重向量所構(gòu)成的矩陣WBC=(βIC1,βIC2,…,βICk)。

    Step5 利用式(4)計(jì)算得到用戶潛在類別的權(quán)重,再根據(jù)Step1計(jì)算得到的每個(gè)用戶潛在類別中項(xiàng)目之間的相似度,利用式(2)計(jì)算得到項(xiàng)目間的最終相似度矩陣Sim。

    Step6 在Sim中求得目標(biāo)項(xiàng)目i的最近鄰集合Ni={n1,n2,…,nk}。

    Step7 根據(jù)用戶u對(duì)i的最近鄰集合Ni的評(píng)分值,利用式(5)預(yù)測(cè)用戶u對(duì)目標(biāo)項(xiàng)目i的評(píng)分,產(chǎn)生Top-N推薦列表。

    2 基于Spark平臺(tái)AHCCF算法并行化

    AHCCF算法,在Spark分布式計(jì)算平臺(tái)下實(shí)現(xiàn)算法的并行化。通過(guò)基于RDD的內(nèi)存計(jì)算以及數(shù)據(jù)共享等技術(shù)優(yōu)勢(shì),能夠有效提高AHCCF算法的可擴(kuò)展性和執(zhí)行效率。

    并行化AHCCF算法,可分為如圖4所示的三個(gè)階段。階段一,利用基于Spark平臺(tái)的k-means聚類算法[12]分別從用戶維度和項(xiàng)目維度對(duì)數(shù)據(jù)集進(jìn)行聚類劃分,并生成相應(yīng)的聚類模型。階段二,對(duì)用戶-項(xiàng)目評(píng)分記錄進(jìn)行聚類劃分,并進(jìn)行用戶聚類相似度計(jì)算以及利用AHP計(jì)算用戶潛在類別權(quán)重。其中AHP的特征值求解,在Spark平臺(tái)下基于冪法并行求解實(shí)現(xiàn)。階段三,根據(jù)用戶潛在類別項(xiàng)目相似度以及用戶潛在類別權(quán)重,計(jì)算項(xiàng)目最終相似度。然后,生成項(xiàng)目最近鄰居集合,進(jìn)行評(píng)分預(yù)測(cè)及推薦。

    圖4 基于Spark的AHCCF算法流程

    AHCCF算法并行化,采用如上圖所示的三個(gè)階段來(lái)完成。在階段一,需要將訓(xùn)練集中的每個(gè)用戶或項(xiàng)目的評(píng)分記錄(userId,ItemID,rate),轉(zhuǎn)化為相應(yīng)的評(píng)分向量(userID,Vector)/ (itemID,Vector)。進(jìn)而進(jìn)行用戶和項(xiàng)目維度的聚類。由于推薦系統(tǒng)中的評(píng)分矩陣是稀疏矩陣,平均每個(gè)用戶所包含的評(píng)分記錄很少。若在計(jì)算過(guò)程中,直接存儲(chǔ)或傳輸這樣的矩陣將會(huì)占用過(guò)多的內(nèi)存和網(wǎng)絡(luò)資源。因此,在加載用戶-項(xiàng)目評(píng)分矩陣時(shí),為減少內(nèi)存消耗以及網(wǎng)絡(luò)通信量,采用稀疏向量存儲(chǔ)用戶-項(xiàng)目評(píng)分矩陣中的每行記錄。Spark中SparseVector結(jié)構(gòu)如圖5所示。

    圖5 稠密向量和稀疏向量

    SparkVector對(duì)應(yīng)的實(shí)例化簽名為newSparseVector(valsize:Int,valindices:Array[Int],valvalues:Array[Double])。其中,size表示向量長(zhǎng)度,indices表示非零元素索引,values表示非零元素值。因此,采用稀疏向量存儲(chǔ)n×n的稀疏矩陣時(shí),空間復(fù)雜度由O(n2)降為O(nk),遍歷矩陣的時(shí)間復(fù)雜度由O(n2)降為O(nk)。其中,k為每行的非零元素個(gè)數(shù)。

    階段二中,項(xiàng)目聚類劃分結(jié)果(UClusterRDD)和用戶聚類劃分結(jié)果(IClusterRDD),需要被重用。因此通過(guò)Spark的cache算子將其緩存。當(dāng)下次使用該RDD時(shí),不會(huì)進(jìn)行重算,直接從緩存中獲取該RDD,提高算法執(zhí)行效率。

    在進(jìn)行分塊矩陣評(píng)分密集度計(jì)算時(shí),需要根據(jù)用戶類簇評(píng)分矩陣信息UClusterRDD(UCId,Vector)以及每個(gè)項(xiàng)目類簇所包含的項(xiàng)目索引信息ICIndexRDD(ICId,ICItemIndex),進(jìn)行分塊矩陣劃分以及評(píng)分密集度計(jì)算。在Spark平臺(tái)下,需要將UClusterRDD和ICIndexRDD進(jìn)行笛卡兒積(Cartesian),獲取每個(gè)用戶類簇中的項(xiàng)目類簇信息,然后進(jìn)行分塊矩陣劃分以及評(píng)分密集度計(jì)算。少量數(shù)據(jù)時(shí),Cartesian性能良好。當(dāng)數(shù)據(jù)量相對(duì)較大時(shí),Cartesian操作,一方面會(huì)占用大量網(wǎng)絡(luò)資源;另一方面,在Cartesian后會(huì)增加RDD分片數(shù)量,可能會(huì)增加額外的調(diào)度開銷。因此Cartesian操作之后一般需要調(diào)整分區(qū)(repartition),然后再通過(guò)map、reduceByKey等算子統(tǒng)計(jì)評(píng)分密集度。然而repartition同樣會(huì)造成額外的shuffle開銷。 因此,需要對(duì)Cartesian進(jìn)一步優(yōu)化。

    經(jīng)分析發(fā)現(xiàn),參與笛卡兒積的ICIndexRDD其維度要遠(yuǎn)小于UClusterRDD,ICIndexRDD中僅包含每個(gè)項(xiàng)目類簇的編號(hào)(ICId)以及該項(xiàng)目類簇對(duì)應(yīng)的項(xiàng)目索引(ICItemIndex),占用空間較少可視為小表。因此可將ICIndexRDD內(nèi)容轉(zhuǎn)換為一個(gè)HashMap結(jié)構(gòu):ICMap(ICId,ICItemIndex)。通過(guò)Spark廣播機(jī)制,將ICMap廣播發(fā)送到每個(gè)節(jié)點(diǎn)上來(lái)共享該信息。進(jìn)而RDD中的每個(gè)分片均可訪問(wèn)到ICMap,在map-side本地即可完成Cartesian操作,具體流程如圖6所示。

    圖6 評(píng)分密集度計(jì)算

    如圖6所示,經(jīng)broadcast機(jī)制優(yōu)化后,與ICIndexRDD的關(guān)聯(lián)操作在本地即可完成,降低了網(wǎng)絡(luò)IO,而且不影響原始分區(qū)數(shù)量,一般不需要repartition,使得運(yùn)行效率大幅度提高。其中,每個(gè)節(jié)點(diǎn)的平均網(wǎng)絡(luò)IO由O(nc′)變?yōu)镺(c′),n為節(jié)點(diǎn)中的分片數(shù)量,c′為小表容量,c′≤nc′。

    在階段三中,不管是近鄰集合選取還是推薦列表計(jì)算,均需要生成一個(gè)遞減排序的列表項(xiàng)。然后從中選取前k個(gè)列表項(xiàng),即TopK。在少量數(shù)據(jù)情況下,可通過(guò)groupBy算子進(jìn)行分組后,再通過(guò)flatMap算子選取每個(gè)分組的前k個(gè)列表項(xiàng)。在數(shù)據(jù)量較大的情況下,由于groupBy沒(méi)有本地combine特性直接進(jìn)行分組,shuffle過(guò)程中的網(wǎng)絡(luò)通信量較高,影響算法性能。

    因此當(dāng)數(shù)據(jù)量較大時(shí),可通過(guò)mapPartition算子實(shí)現(xiàn)以數(shù)據(jù)分片為粒度,進(jìn)行TopK計(jì)算??梢栽诿總€(gè)分片中維護(hù)一個(gè)大小為k的大根堆,然后對(duì)大根堆進(jìn)行不斷調(diào)整。經(jīng)過(guò)mapPartition處理后,便可求出每個(gè)分區(qū)的TopK。最后,通過(guò)reduceBykey算子,將每個(gè)Key所對(duì)應(yīng)的多個(gè)分區(qū)的TopK進(jìn)行合并,即可生成每個(gè)Key的最終列表項(xiàng),具體流程如圖7所示。

    圖7 計(jì)算每個(gè)Key對(duì)應(yīng)的TopK Value

    經(jīng)過(guò)mapPartition計(jì)算,可過(guò)濾大量信息。因此可降低shuffle過(guò)程中網(wǎng)絡(luò)IO,由O(nc)降到O(nk)。其中,n表示分片數(shù)量,c表示每個(gè)分片中原始數(shù)據(jù)量,k表示每個(gè)分片經(jīng)過(guò)TopK處理后的數(shù)據(jù)量,k?c。

    3 實(shí)驗(yàn)分析

    3.1 數(shù)據(jù)集與實(shí)驗(yàn)環(huán)境

    為了驗(yàn)證AHCCF算法的基本表現(xiàn)和分布式環(huán)境下的并行效率,本文選取明尼蘇達(dá)大學(xué)的GroupLens項(xiàng)目組提供的一組中等規(guī)模和兩組較大規(guī)模的數(shù)據(jù)集,具體描述如表2所示。

    表2 數(shù)據(jù)集信息

    AHCCF算法,在一個(gè)配備有5個(gè)節(jié)點(diǎn)的Spark集群進(jìn)行實(shí)驗(yàn)。1個(gè)主節(jié)點(diǎn),4個(gè)從節(jié)點(diǎn)。在集群的每個(gè)節(jié)點(diǎn)中,操作系統(tǒng)為Ubuntu14.04,Spark版本為1.3.0,Hadoop版本為2.6.0。

    3.2 算法精準(zhǔn)度實(shí)驗(yàn)

    AHCCF算法采用平均絕對(duì)偏差MAE,作為算法精準(zhǔn)的評(píng)價(jià)指標(biāo)。其計(jì)算公式定義如下:

    (6)

    其中,N表示項(xiàng)目數(shù)量,pi表示項(xiàng)目的實(shí)際分?jǐn)?shù),qi表示項(xiàng)目的預(yù)測(cè)分?jǐn)?shù)。MAE越小,推薦質(zhì)量越高。

    AHCCF算法選取MovieLensA數(shù)據(jù)集,來(lái)對(duì)算法的精準(zhǔn)度進(jìn)行驗(yàn)證。設(shè)計(jì)兩組實(shí)驗(yàn):AHCCF算法在不同聯(lián)合聚類數(shù)k下的準(zhǔn)確度、在數(shù)據(jù)不同稀疏度下AHCCF算法與IBCF算法[3]、GBCF算法[7]、BSCF算法[8]的對(duì)比。

    實(shí)驗(yàn)1 測(cè)試不同聯(lián)合聚類數(shù)k對(duì)推薦結(jié)果的影響,k分別取5、10、20、30、40、50,最近鄰居數(shù)取5、10、20、30、40、50、60、70、80、90、100,結(jié)果如圖8所示。

    圖8 不同聯(lián)合聚類參數(shù)K下算法精度

    實(shí)驗(yàn)結(jié)果表明:算法精度受參數(shù)k所影響,聯(lián)合聚類數(shù)k過(guò)大、過(guò)小都會(huì)使推薦精度不理想。一般聚類數(shù)越接近項(xiàng)目真實(shí)類別數(shù),結(jié)果越精確,本實(shí)驗(yàn)中當(dāng)k=30時(shí)算法性能最好,在較少項(xiàng)目最近鄰的情況下,算法很快收斂到誤差最小的推薦結(jié)果。

    實(shí)驗(yàn)2 測(cè)試AHCCF算法在不同稀疏度下的準(zhǔn)確度,并通過(guò)與IBCF算法、BSCF算法、GBCF算法對(duì)比來(lái)驗(yàn)證算法的有效性。實(shí)驗(yàn)過(guò)程中,通過(guò)調(diào)整訓(xùn)練集和測(cè)試集所占評(píng)分比重,觀測(cè)數(shù)據(jù)稀疏度對(duì)算法精度的影響,實(shí)驗(yàn)結(jié)果如表3所示。

    表3 算法運(yùn)行結(jié)果

    實(shí)驗(yàn)結(jié)果表明:隨著訓(xùn)練集在整個(gè)數(shù)據(jù)集中所占比重的提高,數(shù)據(jù)的稀疏度逐漸減小,幾個(gè)算法的MAE值都在減小,即幾個(gè)算法的準(zhǔn)確度不斷提升。其中,BSCF算法、GBCF算法的準(zhǔn)確度均高于傳統(tǒng)IBCF算法,表明兩者在一定程度上緩解了數(shù)據(jù)稀疏性問(wèn)題,提高了算法的準(zhǔn)確度。本文提出的AHCCF算法在每種稀疏度情況下,其MAE值均低于BSCF和GBCF算法,表明AHCCF算法能夠更加有效地處理數(shù)據(jù)的稀疏性問(wèn)題,提供更高的推薦效率。

    3.3 算法并行實(shí)驗(yàn)

    AHCCF算法通過(guò)采用加速比,來(lái)驗(yàn)證通過(guò)對(duì)Spark集群的擴(kuò)展能有效提高不同數(shù)據(jù)規(guī)模下AHCCF算法的執(zhí)行效率。其計(jì)算定義公式如下:

    (7)

    其中,T1表示在單節(jié)點(diǎn)情況下算法運(yùn)行時(shí)間,Tn表示n個(gè)節(jié)點(diǎn)算法的運(yùn)行時(shí)間。理想情況下,依次增加節(jié)點(diǎn)時(shí)S將與y=x重合。

    AHCCF算法選取表1中不同規(guī)模的MovieLens數(shù)據(jù)集來(lái)對(duì)算法的并行效率進(jìn)行驗(yàn)證。設(shè)計(jì)兩組實(shí)驗(yàn):相同數(shù)據(jù)集下AHCCF算法在Hadoop平臺(tái)與Spark平臺(tái)執(zhí)行時(shí)間對(duì)比、不同規(guī)模數(shù)據(jù)集下AHCCF算法的加速比對(duì)比。

    實(shí)驗(yàn)3 測(cè)試在相同數(shù)據(jù)集下AHCCF算法在Hadoop平臺(tái)與Spark平臺(tái)上的執(zhí)行效率。本實(shí)驗(yàn)選取MovieLensB數(shù)據(jù)集,在Hadoop和Spark兩種計(jì)算平臺(tái)上實(shí)驗(yàn),結(jié)果如圖9所示。

    圖14 Hadoop與Spark平臺(tái)運(yùn)行效率對(duì)比

    從圖9實(shí)驗(yàn)結(jié)果可以看出,隨著節(jié)點(diǎn)數(shù)量的增加,AHCCF算法在兩種計(jì)算平臺(tái)上的執(zhí)行時(shí)間逐漸減少。其中,在Spark計(jì)算平臺(tái)上算法獲得更好的執(zhí)行效率,表明了AHCCF算法在Spark平臺(tái)上更具有優(yōu)勢(shì),基于Spark的并行方案是有效的。

    實(shí)驗(yàn)4 測(cè)試不同規(guī)模數(shù)據(jù)集下AHCCF算法加速比隨集群大小的變化情況,集群大小取1~5。偽分布模式下,集群只有一個(gè)節(jié)點(diǎn),master和slave為同一節(jié)點(diǎn),集群大小大于等于2時(shí),為完全分布模式,結(jié)果如圖10所示。

    圖10 不同規(guī)模數(shù)據(jù)集的加速比對(duì)比

    實(shí)驗(yàn)結(jié)果表明,隨著集群節(jié)點(diǎn)數(shù)量的增加,三個(gè)數(shù)據(jù)集的加速比曲線在不斷增大。相同數(shù)據(jù)集在節(jié)點(diǎn)數(shù)量較少時(shí),算法效率提升不是很明顯。這是因?yàn)樵谏倭抗?jié)點(diǎn)時(shí),節(jié)點(diǎn)要分擔(dān)一定計(jì)算任務(wù)的同時(shí),也要分擔(dān)一定的資源調(diào)度等任務(wù),影響節(jié)點(diǎn)的計(jì)算性能。在節(jié)點(diǎn)個(gè)數(shù)大于3時(shí),算法效率提升的更為明顯。與此同時(shí),可以看出在相同節(jié)點(diǎn)情況下,算法效率在規(guī)模較大的數(shù)據(jù)集上提升更為明顯,加速比曲線逐漸向線性靠攏,這也說(shuō)明了并行化的AHCCF算法在處理大數(shù)據(jù)集時(shí)更有優(yōu)勢(shì)。

    4 結(jié) 語(yǔ)

    AHCCF算法針對(duì)傳統(tǒng)協(xié)同過(guò)濾算法存在的稀疏性以及可擴(kuò)展性問(wèn)題展開研究,在基于項(xiàng)目的協(xié)同過(guò)濾算法基礎(chǔ)上,提出了一種分層的聯(lián)合聚類協(xié)同過(guò)濾算法(AHCCF),并在Spark平臺(tái)下實(shí)現(xiàn)了AHCCF算法的并行化。實(shí)驗(yàn)表明,AHCCF算法改善了傳統(tǒng)協(xié)同過(guò)濾算法的性能,提高了算的推薦精度,并在Spark分布式平臺(tái)具有良好的執(zhí)行效率和可擴(kuò)展性。下一步研究需要對(duì)算法進(jìn)行嚴(yán)格的理論推導(dǎo),同時(shí)研究不同維聚類個(gè)數(shù)的選取以及在更大規(guī)模數(shù)據(jù)上算法的并行效率。

    [1] 郭磊,馬軍,陳竹敏,等.一種結(jié)合推薦對(duì)象間關(guān)聯(lián)關(guān)系的社會(huì)化推薦算法[J].計(jì)算機(jī)學(xué)報(bào),2014,37(1):219-228.

    [2]WangJ,VriesAPD,ReindersMJT.Unifyinguser-basedanditem-basedcollaborativefilteringapproachesbysimilarityfusion[C]//Proceedingsofthe29thAnnualInternationalACMSIGIRConferenceonResearchandDevelopmentinInformationRetrieval.ACM,2006:501-508.

    [3] Sarwar B,Karypis G,Konstan J,et al.Item-based collaborative filtering recommendation algorithms[C]//Proceedings of the 10th Internationnal World Wide Web Conference.New York,NY,USA:ACM Press,2001:285-295.

    [4] 趙琴琴,魯凱,王斌.SPCF:一種基于內(nèi)存的傳播式協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)學(xué)報(bào),2013,36(3):671-676.

    [5] 何潔月,馬貝.利用社交關(guān)系的實(shí)值條件受限玻爾茲曼機(jī)協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)學(xué)報(bào),2016,39(1):183-195.

    [6] Kumar R,Verma B K,Rastogi S S.Social popularity based SVD++ recommender system[J].International Journal of Computer Applications,2014,87(14):33-37.

    [7] Wei S,Ye N,Zhang S,et al.Collaborative filtering recommendation algorithm based on item clustering and global similarity[C]//Proceedings of the 5th International Conference on Business Intelligence and Financial Engineering.IEEE,2012:69-72.

    [8] Wang J,Song H,Zhou X.A collaborative filtering recommendation algorithm based on biclustering[C]//Cyber Technology in Automation,Control and Intelligent Systems (CYBER),2015 IEEE Internationa Conference on.IEEE,2015:803-807.

    [9] Zhao Z D,Shang M S.User-based collaborative filtering recommendation algorithms on Hadoop[C]//Proceedings of the 2010 Third International Conference on Knowledge Discovery and Data Mining,2010:478-481.

    [10] Fan L,Li H,Li C.The improvement and implementation of distributed item-based collaborative filtering algorithm on Hadoop[C]//2015 34th Chinese Control Conference (CCC).IEEE,2015:9078-9083.

    [11] Lin K,Wang J,Wang M,et al.A hybrid recommendation algorithm based on Hadoop[C]//2014 9thInternational Conference on Computer Sicence and Education,2014:540-543.

    [12] Kupisz B,Unold O.Collaborative filtering recommendation algorithm based on Hadoop and Spark[C]//Industrial Technology (ICIT),2015 IEEE International Conference on.IEEE,2015:1510-1514.

    [13] 朱銳,王懷民,馮大為.基于偏好推薦的可信服務(wù)選擇[J].軟件學(xué)報(bào),2011,22(5):852-864.

    [14] 吳湖,王永吉,王哲,等.兩階段聯(lián)合聚類協(xié)同過(guò)濾算法[J].軟件學(xué)報(bào),2010,21(5):1042-1054.

    [15] Ketu S,Agarwal S.Performance enhancement of distributed K-Means clustering for big data analytics through in-memory computation[C]//Contemporary Computing (IC3),2015 Eighth International Conference on.IEEE,2015:318-324.

    AN IMPROVED COLLABORATIVE FILTERING ALGORITHM BASED ON SPARK

    Xu Zhihong1,2Jiang Xinyu1Dong Yongfeng1,2Zhao Jiawei1

    1(SchoolofComputerScienceandEngineering,HebeiUniversityofTechnology,Tianjin300401,China)2(HebeiProvinceKeyLaboratoryofBigDataCalculation,Tianjin300401,China)

    In order to improve the scalability of collaborative filtering algorithm in big data environment and the recommendation accuracy in high dimensional sparse data, a hierarchical co-clustering collaborative filtering algorithm based on spark is implemented. The data sets are sparsely processed by using co-clustering and the clustering model is constructed. The potential categories weight of users and projects in the co-clustering model are analyzed by using the analytic hierarchy model combined with the score-density analysis. The project similarity is calculated and the project nearest neighbor set is constructed to complete the online recommendation. The experiments different scale MovieLens datasets provided by GroupLens show that the improved algorithm can significantly improve the accuracy of recommendation, and it has good recommendation efficiency and expansibility in distributed environment.

    Collaborative filtering Co-clustering Analytic hierarchy model Spark

    2016-04-07。天津市科技計(jì)劃項(xiàng)目(14ZCDGSF00124);河北省青年科學(xué)基金項(xiàng)目(F2015202311)。許智宏,副教授,主研領(lǐng)域:分布式技術(shù),智能信息處理。蔣新宇,碩士。董永峰,副教授。趙嘉偉,碩士。

    TP3

    A

    10.3969/j.issn.1000-386x.2017.05.043

    猜你喜歡
    密集度分塊類別
    某大口徑火炮系列殺爆彈地面密集度影響因素回歸分析
    分塊矩陣在線性代數(shù)中的應(yīng)用
    帶彈序的彈幕武器立靶密集度測(cè)試
    反三角分塊矩陣Drazin逆新的表示
    累積海冰密集度及其在認(rèn)識(shí)北極海冰快速變化的作用
    基于自適應(yīng)中值濾波的分塊壓縮感知人臉識(shí)別
    服務(wù)類別
    基于多分辨率半邊的分塊LOD模型無(wú)縫表達(dá)
    論類別股東會(huì)
    商事法論集(2014年1期)2014-06-27 01:20:42
    中醫(yī)類別全科醫(yī)師培養(yǎng)模式的探討
    熟女人妻精品中文字幕| 日本一二三区视频观看| 免费观看的影片在线观看| 国内精品宾馆在线| 乱系列少妇在线播放| 成人性生交大片免费视频hd| 可以在线观看的亚洲视频| 亚洲欧美日韩高清专用| 很黄的视频免费| 国产美女午夜福利| 国产v大片淫在线免费观看| 校园春色视频在线观看| 久久久久久久亚洲中文字幕| 成人一区二区视频在线观看| 91在线观看av| 不卡视频在线观看欧美| 网址你懂的国产日韩在线| 欧美三级亚洲精品| 日韩一本色道免费dvd| 成人三级黄色视频| 精品人妻视频免费看| 在线a可以看的网站| 欧美激情久久久久久爽电影| 白带黄色成豆腐渣| 全区人妻精品视频| 国内少妇人妻偷人精品xxx网站| 精品人妻视频免费看| 国产精品久久久久久精品电影| 在线观看一区二区三区| 久久久久久久久大av| 免费电影在线观看免费观看| 十八禁网站免费在线| 色综合站精品国产| 天美传媒精品一区二区| 久久亚洲真实| 嫁个100分男人电影在线观看| 国产成人影院久久av| 国产亚洲av嫩草精品影院| 日韩 亚洲 欧美在线| 亚洲成a人片在线一区二区| 欧美成人免费av一区二区三区| 天堂影院成人在线观看| 精品国内亚洲2022精品成人| 中文资源天堂在线| 黄色配什么色好看| 成人特级黄色片久久久久久久| 欧美又色又爽又黄视频| 欧美日韩精品成人综合77777| 99久久中文字幕三级久久日本| 久久久久久久午夜电影| 听说在线观看完整版免费高清| 少妇猛男粗大的猛烈进出视频 | 99热6这里只有精品| 特大巨黑吊av在线直播| 中文在线观看免费www的网站| 美女被艹到高潮喷水动态| 亚洲,欧美,日韩| 三级男女做爰猛烈吃奶摸视频| 午夜福利在线观看免费完整高清在 | 91麻豆精品激情在线观看国产| 久久久久久久久大av| 国产精品三级大全| 淫秽高清视频在线观看| 久久6这里有精品| 一本一本综合久久| 国产日本99.免费观看| 内地一区二区视频在线| 人妻丰满熟妇av一区二区三区| 日韩欧美在线乱码| 老司机深夜福利视频在线观看| 国产熟女欧美一区二区| 在线观看av片永久免费下载| 午夜福利在线在线| 最新中文字幕久久久久| 波多野结衣高清作品| 亚洲最大成人av| 久久亚洲真实| 午夜精品久久久久久毛片777| 少妇人妻精品综合一区二区 | 国产午夜精品久久久久久一区二区三区 | 日本三级黄在线观看| 十八禁国产超污无遮挡网站| 天堂av国产一区二区熟女人妻| 久久精品国产亚洲av涩爱 | 又爽又黄无遮挡网站| 国产色爽女视频免费观看| 色综合婷婷激情| 免费av不卡在线播放| 老熟妇仑乱视频hdxx| 自拍偷自拍亚洲精品老妇| 久久久久久伊人网av| 露出奶头的视频| 日本 欧美在线| 国产中年淑女户外野战色| 色尼玛亚洲综合影院| 真人做人爱边吃奶动态| 一个人看的www免费观看视频| 国产精品一区二区三区四区免费观看 | a级一级毛片免费在线观看| 又黄又爽又免费观看的视频| 亚洲专区中文字幕在线| 少妇丰满av| 麻豆国产97在线/欧美| 国产精品女同一区二区软件 | 日韩中文字幕欧美一区二区| 男人舔奶头视频| 久久精品国产亚洲av香蕉五月| 国产精品爽爽va在线观看网站| 在线观看午夜福利视频| 在线免费观看不下载黄p国产 | 成人国产麻豆网| 女生性感内裤真人,穿戴方法视频| 欧美zozozo另类| 亚洲成人久久爱视频| 别揉我奶头 嗯啊视频| 中文字幕高清在线视频| 亚洲经典国产精华液单| 小说图片视频综合网站| 看片在线看免费视频| 免费一级毛片在线播放高清视频| 国产精品亚洲美女久久久| 久久精品91蜜桃| 人人妻人人澡欧美一区二区| 丰满的人妻完整版| 久久久久久国产a免费观看| 狠狠狠狠99中文字幕| 麻豆国产av国片精品| 老司机福利观看| 日日摸夜夜添夜夜添小说| 网址你懂的国产日韩在线| 午夜免费成人在线视频| 亚洲综合色惰| 欧美性感艳星| 美女cb高潮喷水在线观看| 国产69精品久久久久777片| 国产成人a区在线观看| 不卡视频在线观看欧美| 国产一区二区三区视频了| 精品久久久久久久久亚洲 | 可以在线观看毛片的网站| 亚洲色图av天堂| 国产精品久久久久久亚洲av鲁大| av在线观看视频网站免费| 天堂动漫精品| 女人十人毛片免费观看3o分钟| av女优亚洲男人天堂| 免费黄网站久久成人精品| 在线播放国产精品三级| 亚洲国产日韩欧美精品在线观看| 亚洲国产高清在线一区二区三| 国产午夜精品久久久久久一区二区三区 | 国产午夜精品论理片| av天堂中文字幕网| 久久久午夜欧美精品| 在线免费观看的www视频| 男女视频在线观看网站免费| aaaaa片日本免费| 欧美一级a爱片免费观看看| 不卡视频在线观看欧美| 国产三级在线视频| 国产欧美日韩精品亚洲av| 天天躁日日操中文字幕| 精品午夜福利视频在线观看一区| 国产欧美日韩精品一区二区| 亚洲电影在线观看av| 在线观看一区二区三区| 久久久久久国产a免费观看| 一本一本综合久久| 一卡2卡三卡四卡精品乱码亚洲| 亚洲,欧美,日韩| 欧美+亚洲+日韩+国产| 久久精品国产清高在天天线| 色播亚洲综合网| 欧美中文日本在线观看视频| 精品久久久久久久人妻蜜臀av| 999久久久精品免费观看国产| 男人舔女人下体高潮全视频| 观看美女的网站| 韩国av在线不卡| 亚洲欧美日韩高清在线视频| 亚洲人成网站在线播放欧美日韩| 久久精品国产自在天天线| 日韩欧美免费精品| 别揉我奶头~嗯~啊~动态视频| 精品久久久久久久久久免费视频| 国产精品98久久久久久宅男小说| 亚洲成人中文字幕在线播放| 日韩欧美免费精品| aaaaa片日本免费| 99热精品在线国产| 精品一区二区三区人妻视频| 国产蜜桃级精品一区二区三区| a级毛片a级免费在线| 成年人黄色毛片网站| 九九爱精品视频在线观看| 国产精品99久久久久久久久| 12—13女人毛片做爰片一| 国产成年人精品一区二区| 欧美日韩乱码在线| 国产麻豆成人av免费视频| 国产综合懂色| 老熟妇乱子伦视频在线观看| 婷婷精品国产亚洲av在线| 麻豆国产97在线/欧美| 给我免费播放毛片高清在线观看| 老司机福利观看| 熟妇人妻久久中文字幕3abv| 久久欧美精品欧美久久欧美| 天堂√8在线中文| 国模一区二区三区四区视频| 女的被弄到高潮叫床怎么办 | 欧美一区二区亚洲| 国产成人aa在线观看| 欧美一级a爱片免费观看看| 国产黄片美女视频| 91av网一区二区| 少妇裸体淫交视频免费看高清| 好男人在线观看高清免费视频| 别揉我奶头 嗯啊视频| 国产毛片a区久久久久| 国产真实伦视频高清在线观看 | 小蜜桃在线观看免费完整版高清| 不卡一级毛片| 国产91精品成人一区二区三区| 欧美激情在线99| 又爽又黄无遮挡网站| 日韩在线高清观看一区二区三区 | av在线天堂中文字幕| 午夜激情欧美在线| 麻豆一二三区av精品| 两个人的视频大全免费| 在线免费观看的www视频| 嫁个100分男人电影在线观看| 国产色爽女视频免费观看| 国产亚洲精品久久久久久毛片| 搡女人真爽免费视频火全软件 | 深爱激情五月婷婷| 日韩 亚洲 欧美在线| a级一级毛片免费在线观看| 此物有八面人人有两片| 亚洲精品国产成人久久av| 精品无人区乱码1区二区| 精品久久久久久久人妻蜜臀av| 日韩欧美国产一区二区入口| 亚洲av日韩精品久久久久久密| 无人区码免费观看不卡| 亚洲成av人片在线播放无| 久久欧美精品欧美久久欧美| 国产精品自产拍在线观看55亚洲| 免费在线观看成人毛片| 日韩在线高清观看一区二区三区 | 免费人成视频x8x8入口观看| 成人二区视频| 国产伦在线观看视频一区| 午夜福利18| 日本爱情动作片www.在线观看 | 日韩大尺度精品在线看网址| 永久网站在线| 有码 亚洲区| 国产视频内射| 又黄又爽又刺激的免费视频.| 色哟哟哟哟哟哟| 精品久久久久久久久av| 国产精品美女特级片免费视频播放器| 国产欧美日韩精品一区二区| 成人国产一区最新在线观看| 最近视频中文字幕2019在线8| 国产精品伦人一区二区| 国产免费男女视频| 少妇丰满av| 中国美女看黄片| 乱码一卡2卡4卡精品| 日本-黄色视频高清免费观看| 波多野结衣高清作品| 亚洲人与动物交配视频| 91在线观看av| 国产真实伦视频高清在线观看 | 又紧又爽又黄一区二区| 久久久久久久久久黄片| 亚洲最大成人手机在线| 欧美最黄视频在线播放免费| 亚洲 国产 在线| 亚洲无线在线观看| 成人鲁丝片一二三区免费| 欧美日韩国产亚洲二区| 亚洲成人中文字幕在线播放| 亚洲精华国产精华精| 国产精品一区二区免费欧美| 99久久久亚洲精品蜜臀av| 亚洲精品国产成人久久av| 亚洲一区高清亚洲精品| 人妻制服诱惑在线中文字幕| 日韩中字成人| 97热精品久久久久久| 精品久久久久久久久久免费视频| 中文字幕av成人在线电影| 国国产精品蜜臀av免费| 啦啦啦啦在线视频资源| 99久久九九国产精品国产免费| 亚洲av.av天堂| 真人一进一出gif抽搐免费| 天堂av国产一区二区熟女人妻| av天堂在线播放| 国产黄色小视频在线观看| 别揉我奶头 嗯啊视频| 国产一级毛片七仙女欲春2| 久久久久久久午夜电影| 欧美中文日本在线观看视频| 成年版毛片免费区| 一进一出好大好爽视频| 美女cb高潮喷水在线观看| 啦啦啦韩国在线观看视频| 99国产极品粉嫩在线观看| 91在线精品国自产拍蜜月| 亚洲avbb在线观看| 国产熟女欧美一区二区| 亚洲内射少妇av| 精品无人区乱码1区二区| 国产免费男女视频| 热99在线观看视频| 禁无遮挡网站| 赤兔流量卡办理| 18禁黄网站禁片免费观看直播| 久久亚洲真实| 一本精品99久久精品77| 日韩欧美 国产精品| av在线天堂中文字幕| 国产精品久久电影中文字幕| 女同久久另类99精品国产91| 亚洲av成人av| 麻豆国产av国片精品| 欧美绝顶高潮抽搐喷水| 黄色女人牲交| 在现免费观看毛片| 国产精品人妻久久久久久| 搡老岳熟女国产| 毛片一级片免费看久久久久 | 国内精品美女久久久久久| 露出奶头的视频| 亚洲av不卡在线观看| 九九在线视频观看精品| 精品久久久久久,| 啪啪无遮挡十八禁网站| 观看免费一级毛片| 亚洲专区中文字幕在线| 日韩欧美免费精品| 亚洲第一电影网av| 不卡一级毛片| 国产精品精品国产色婷婷| 校园春色视频在线观看| 免费观看在线日韩| 噜噜噜噜噜久久久久久91| 男人狂女人下面高潮的视频| 在线天堂最新版资源| a级毛片免费高清观看在线播放| 如何舔出高潮| 夜夜看夜夜爽夜夜摸| 露出奶头的视频| 欧美日韩亚洲国产一区二区在线观看| 欧美日韩综合久久久久久 | 欧美色欧美亚洲另类二区| 白带黄色成豆腐渣| 久久久久久久久久黄片| 在线看三级毛片| 一级黄色大片毛片| 琪琪午夜伦伦电影理论片6080| 无人区码免费观看不卡| 色综合色国产| 国产精品一区二区三区四区久久| aaaaa片日本免费| 日本成人三级电影网站| 久久久久久大精品| 中文字幕免费在线视频6| 夜夜夜夜夜久久久久| 变态另类成人亚洲欧美熟女| 噜噜噜噜噜久久久久久91| 热99re8久久精品国产| 亚洲专区国产一区二区| 综合色av麻豆| 国产精品永久免费网站| 嫩草影视91久久| 日韩欧美精品免费久久| 日日摸夜夜添夜夜添av毛片 | 国产 一区 欧美 日韩| 亚洲乱码一区二区免费版| 嫩草影院入口| 亚洲成av人片在线播放无| 99热网站在线观看| 色视频www国产| 三级国产精品欧美在线观看| 午夜亚洲福利在线播放| 国产 一区 欧美 日韩| av天堂在线播放| 男人的好看免费观看在线视频| 午夜日韩欧美国产| 久久婷婷人人爽人人干人人爱| 精品无人区乱码1区二区| 三级男女做爰猛烈吃奶摸视频| 亚洲精品粉嫩美女一区| 国产精品久久电影中文字幕| 国产免费一级a男人的天堂| 日日干狠狠操夜夜爽| 免费人成在线观看视频色| www日本黄色视频网| 日韩亚洲欧美综合| 亚洲欧美日韩东京热| 国产高清视频在线观看网站| 久久草成人影院| 亚洲专区中文字幕在线| 免费人成视频x8x8入口观看| 天堂av国产一区二区熟女人妻| avwww免费| 热99re8久久精品国产| 又紧又爽又黄一区二区| 日韩强制内射视频| 亚洲图色成人| 国产三级中文精品| 亚洲精华国产精华精| 亚洲国产日韩欧美精品在线观看| 免费av毛片视频| 日本撒尿小便嘘嘘汇集6| 成人特级黄色片久久久久久久| 校园人妻丝袜中文字幕| 免费在线观看日本一区| 精品国产三级普通话版| 一级黄片播放器| 国产精品亚洲一级av第二区| 免费大片18禁| 免费一级毛片在线播放高清视频| 欧美黑人欧美精品刺激| 天堂影院成人在线观看| 热99在线观看视频| 国产精品久久久久久久久免| 国产精品久久久久久亚洲av鲁大| 国产淫片久久久久久久久| 亚洲国产高清在线一区二区三| 亚洲精华国产精华精| 伦理电影大哥的女人| 国产黄色小视频在线观看| 在线播放无遮挡| 欧美性猛交黑人性爽| 欧美潮喷喷水| 亚洲精品色激情综合| 久久精品国产鲁丝片午夜精品 | 成年女人看的毛片在线观看| 色吧在线观看| 91精品国产九色| 村上凉子中文字幕在线| 国产中年淑女户外野战色| 成人毛片a级毛片在线播放| 久久国内精品自在自线图片| 国产视频一区二区在线看| 在线观看午夜福利视频| 免费无遮挡裸体视频| 91久久精品国产一区二区三区| 亚洲在线自拍视频| 国内揄拍国产精品人妻在线| 蜜桃亚洲精品一区二区三区| 亚洲中文字幕一区二区三区有码在线看| 久久久精品欧美日韩精品| 国产精品一区www在线观看 | 欧美区成人在线视频| 丝袜美腿在线中文| 国产午夜精品论理片| 一区福利在线观看| 又爽又黄无遮挡网站| 全区人妻精品视频| 岛国在线免费视频观看| 精品久久久噜噜| 99热网站在线观看| 日本在线视频免费播放| 国产精品综合久久久久久久免费| 欧美xxxx黑人xx丫x性爽| 精品久久久久久久久久免费视频| 日韩欧美一区二区三区在线观看| 国产黄色小视频在线观看| 国产高清三级在线| 99热网站在线观看| 国产精品一区www在线观看 | 国产免费av片在线观看野外av| 亚洲四区av| 日韩精品中文字幕看吧| 日本免费a在线| 欧美国产日韩亚洲一区| 国产爱豆传媒在线观看| 欧美色视频一区免费| 亚洲无线观看免费| 99久久精品热视频| 国内精品宾馆在线| 搡老熟女国产l中国老女人| 免费不卡的大黄色大毛片视频在线观看 | 成年人黄色毛片网站| 色哟哟·www| 国产成人av教育| 一卡2卡三卡四卡精品乱码亚洲| 国产三级中文精品| 亚洲av第一区精品v没综合| 亚洲av美国av| 亚洲精品乱码久久久v下载方式| 亚洲专区国产一区二区| АⅤ资源中文在线天堂| 99热6这里只有精品| 亚洲中文字幕日韩| 国产精品日韩av在线免费观看| 国产久久久一区二区三区| 中文亚洲av片在线观看爽| 国产高清激情床上av| 成年人黄色毛片网站| 小蜜桃在线观看免费完整版高清| 99国产极品粉嫩在线观看| 无人区码免费观看不卡| 日韩国内少妇激情av| 国产欧美日韩精品亚洲av| 午夜精品一区二区三区免费看| 国内揄拍国产精品人妻在线| 亚洲一区高清亚洲精品| 大型黄色视频在线免费观看| 51国产日韩欧美| 欧美三级亚洲精品| 97热精品久久久久久| 变态另类成人亚洲欧美熟女| 久久精品人妻少妇| 亚洲自偷自拍三级| 联通29元200g的流量卡| 日日撸夜夜添| 久久久久久久亚洲中文字幕| 动漫黄色视频在线观看| 国产成人a区在线观看| 亚洲精品乱码久久久v下载方式| videossex国产| 一个人观看的视频www高清免费观看| 国产伦人伦偷精品视频| 亚洲国产高清在线一区二区三| 99精品在免费线老司机午夜| 男女做爰动态图高潮gif福利片| 麻豆国产av国片精品| 亚洲国产精品合色在线| 午夜亚洲福利在线播放| 中文字幕久久专区| 草草在线视频免费看| 亚洲精品乱码久久久v下载方式| 国产高潮美女av| 一本久久中文字幕| 精品不卡国产一区二区三区| 久久久久久久午夜电影| av黄色大香蕉| 色吧在线观看| 男人狂女人下面高潮的视频| 中文字幕av成人在线电影| bbb黄色大片| 国产视频一区二区在线看| 美女cb高潮喷水在线观看| 亚洲va日本ⅴa欧美va伊人久久| 久久久久久国产a免费观看| 日日摸夜夜添夜夜添小说| 日韩中字成人| 欧美色视频一区免费| 国产伦在线观看视频一区| 少妇裸体淫交视频免费看高清| 欧美成人免费av一区二区三区| 亚洲第一区二区三区不卡| 淫秽高清视频在线观看| 欧美丝袜亚洲另类 | 国产精品免费一区二区三区在线| 中出人妻视频一区二区| 22中文网久久字幕| 国产高清激情床上av| 韩国av在线不卡| 真人做人爱边吃奶动态| 深夜a级毛片| 人妻少妇偷人精品九色| 中文字幕久久专区| 日韩高清综合在线| 91在线观看av| 色综合站精品国产| 伦精品一区二区三区| 麻豆国产97在线/欧美| 麻豆av噜噜一区二区三区| 伊人久久精品亚洲午夜| 久久久久久久精品吃奶| 啦啦啦啦在线视频资源| 在线观看舔阴道视频| 国产黄a三级三级三级人| a级一级毛片免费在线观看| 伊人久久精品亚洲午夜| 国产国拍精品亚洲av在线观看| 久久精品国产鲁丝片午夜精品 | 在线观看66精品国产| 嫁个100分男人电影在线观看| 99久久精品一区二区三区| 亚洲精品日韩av片在线观看| 日韩欧美免费精品| 午夜精品久久久久久毛片777| 亚洲人成网站在线播放欧美日韩| 有码 亚洲区| 日日摸夜夜添夜夜添小说| 丰满乱子伦码专区| 嫩草影院入口| 91狼人影院| 亚州av有码| 美女被艹到高潮喷水动态| 伦精品一区二区三区| 国产精品日韩av在线免费观看| 日日干狠狠操夜夜爽| 免费人成视频x8x8入口观看| 嫩草影院新地址| 国产免费男女视频| 亚洲国产欧美人成| 亚洲av成人精品一区久久| 国产精品爽爽va在线观看网站| 午夜精品一区二区三区免费看| 免费看光身美女| 国产精品爽爽va在线观看网站| 婷婷丁香在线五月| 亚洲国产高清在线一区二区三|