• <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)模式的探討
    午夜久久久久精精品| ponron亚洲| 欧美黑人精品巨大| 久久中文字幕一级| 在线观看免费午夜福利视频| 久久人妻av系列| 激情在线观看视频在线高清| 精品久久久久久,| 久久久久久国产a免费观看| 日韩大码丰满熟妇| 久久午夜综合久久蜜桃| 国语自产精品视频在线第100页| 此物有八面人人有两片| 久久久国产精品麻豆| 国产亚洲av嫩草精品影院| 夜夜夜夜夜久久久久| 怎么达到女性高潮| 国产99白浆流出| 国产主播在线观看一区二区| 男女视频在线观看网站免费 | 亚洲专区国产一区二区| 久久这里只有精品中国| 欧美日韩乱码在线| 精品久久蜜臀av无| 亚洲国产日韩欧美精品在线观看 | 亚洲午夜精品一区,二区,三区| 午夜福利在线在线| 视频区欧美日本亚洲| 一本一本综合久久| 一级毛片女人18水好多| 每晚都被弄得嗷嗷叫到高潮| 黄色视频不卡| 黄片大片在线免费观看| 成年免费大片在线观看| 一本大道久久a久久精品| 又粗又爽又猛毛片免费看| 岛国视频午夜一区免费看| 亚洲人成网站高清观看| 少妇熟女aⅴ在线视频| 99国产极品粉嫩在线观看| 亚洲精品粉嫩美女一区| bbb黄色大片| 男女那种视频在线观看| 妹子高潮喷水视频| 国产精品一区二区三区四区久久| tocl精华| 国产激情欧美一区二区| 精品一区二区三区视频在线观看免费| 长腿黑丝高跟| 午夜精品久久久久久毛片777| 国产精品一区二区免费欧美| 国产99白浆流出| 免费电影在线观看免费观看| 午夜精品在线福利| 亚洲精品av麻豆狂野| 精品国产超薄肉色丝袜足j| 黄色女人牲交| 国产精品久久视频播放| 国产成人av激情在线播放| 精品少妇一区二区三区视频日本电影| 18禁国产床啪视频网站| 欧美乱妇无乱码| 国产亚洲精品综合一区在线观看 | 在线看三级毛片| 成人欧美大片| 午夜免费成人在线视频| 亚洲av电影在线进入| 亚洲人成电影免费在线| 欧美日本视频| 亚洲国产精品999在线| 欧美不卡视频在线免费观看 | 国产精品久久电影中文字幕| 在线观看66精品国产| 亚洲国产看品久久| 国产精品久久久久久人妻精品电影| 久久久久国产一级毛片高清牌| 搡老熟女国产l中国老女人| 神马国产精品三级电影在线观看 | 日韩精品中文字幕看吧| 欧美午夜高清在线| 香蕉国产在线看| 国产精品一区二区免费欧美| 91字幕亚洲| 国产精品九九99| 免费在线观看黄色视频的| 日日夜夜操网爽| 国产高清视频在线播放一区| 亚洲狠狠婷婷综合久久图片| 中出人妻视频一区二区| 又黄又爽又免费观看的视频| 欧美午夜高清在线| 别揉我奶头~嗯~啊~动态视频| 亚洲 欧美一区二区三区| 精品国产超薄肉色丝袜足j| 亚洲av美国av| 久99久视频精品免费| 可以在线观看毛片的网站| 悠悠久久av| 长腿黑丝高跟| 97超级碰碰碰精品色视频在线观看| 人人妻人人看人人澡| 日韩欧美国产一区二区入口| 天天添夜夜摸| 人妻久久中文字幕网| 岛国在线观看网站| 99热只有精品国产| 国产麻豆成人av免费视频| 一级毛片高清免费大全| 色噜噜av男人的天堂激情| 人成视频在线观看免费观看| 日本三级黄在线观看| 小说图片视频综合网站| 哪里可以看免费的av片| 一进一出抽搐动态| 搡老熟女国产l中国老女人| 精品久久久久久,| av视频在线观看入口| 亚洲国产中文字幕在线视频| 亚洲中文字幕日韩| 亚洲精品粉嫩美女一区| 特大巨黑吊av在线直播| 亚洲熟女毛片儿| 日韩欧美三级三区| 国产熟女午夜一区二区三区| 国产免费男女视频| 在线观看一区二区三区| 欧美成狂野欧美在线观看| 国产99久久九九免费精品| 男人舔女人的私密视频| 亚洲欧美一区二区三区黑人| 丰满人妻熟妇乱又伦精品不卡| 夜夜看夜夜爽夜夜摸| 88av欧美| 亚洲免费av在线视频| 国产免费男女视频| 亚洲,欧美精品.| 麻豆国产av国片精品| 岛国视频午夜一区免费看| 日本一二三区视频观看| 亚洲av成人一区二区三| 日韩欧美精品v在线| 免费搜索国产男女视频| 丁香六月欧美| 男人舔女人下体高潮全视频| 99在线视频只有这里精品首页| 中文字幕av在线有码专区| 男女午夜视频在线观看| 免费看十八禁软件| 人妻丰满熟妇av一区二区三区| 大型黄色视频在线免费观看| 我要搜黄色片| 91大片在线观看| 身体一侧抽搐| 18禁美女被吸乳视频| 在线播放国产精品三级| 亚洲精品在线美女| 少妇裸体淫交视频免费看高清 | 亚洲精品在线观看二区| 1024视频免费在线观看| 麻豆一二三区av精品| 日韩成人在线观看一区二区三区| 一本久久中文字幕| 久久久久免费精品人妻一区二区| 久久中文看片网| 久99久视频精品免费| 国产精品亚洲美女久久久| 午夜a级毛片| 成人手机av| 精品久久久久久,| 最近最新免费中文字幕在线| 欧美高清成人免费视频www| 亚洲国产精品999在线| 久久天躁狠狠躁夜夜2o2o| 国产成人av激情在线播放| 日韩欧美国产一区二区入口| av超薄肉色丝袜交足视频| 国产在线精品亚洲第一网站| 精品久久久久久,| 免费人成视频x8x8入口观看| 可以在线观看毛片的网站| 午夜影院日韩av| 亚洲精华国产精华精| 国产在线精品亚洲第一网站| 在线视频色国产色| 99在线视频只有这里精品首页| 女人爽到高潮嗷嗷叫在线视频| 搡老岳熟女国产| 久久精品成人免费网站| netflix在线观看网站| 亚洲国产精品sss在线观看| 99riav亚洲国产免费| 成人精品一区二区免费| 在线永久观看黄色视频| 国产亚洲欧美98| 国产黄片美女视频| 极品教师在线免费播放| 精品久久久久久久久久免费视频| 中文字幕人成人乱码亚洲影| 一进一出抽搐动态| 熟女电影av网| 日日干狠狠操夜夜爽| 国产片内射在线| 午夜福利高清视频| 性色av乱码一区二区三区2| 91大片在线观看| 神马国产精品三级电影在线观看 | 999久久久精品免费观看国产| 舔av片在线| 国产成人啪精品午夜网站| 我的老师免费观看完整版| 日本免费a在线| 欧洲精品卡2卡3卡4卡5卡区| 我的老师免费观看完整版| 男女之事视频高清在线观看| 50天的宝宝边吃奶边哭怎么回事| 一a级毛片在线观看| 好男人在线观看高清免费视频| 搡老熟女国产l中国老女人| 丰满的人妻完整版| 桃色一区二区三区在线观看| 我的老师免费观看完整版| 日本免费a在线| 国产精品一区二区免费欧美| 成人av一区二区三区在线看| 床上黄色一级片| 老司机午夜福利在线观看视频| 国产精品98久久久久久宅男小说| 91成年电影在线观看| 亚洲色图 男人天堂 中文字幕| 窝窝影院91人妻| 伊人久久大香线蕉亚洲五| 男女床上黄色一级片免费看| 色av中文字幕| ponron亚洲| cao死你这个sao货| 色综合婷婷激情| 久久亚洲精品不卡| xxxwww97欧美| 999精品在线视频| 国产黄色小视频在线观看| 国产aⅴ精品一区二区三区波| 伊人久久大香线蕉亚洲五| 夜夜爽天天搞| av片东京热男人的天堂| 亚洲精品一卡2卡三卡4卡5卡| videosex国产| 亚洲国产精品久久男人天堂| 最好的美女福利视频网| 国产精品久久久久久人妻精品电影| 日日夜夜操网爽| avwww免费| 精品熟女少妇八av免费久了| 熟女电影av网| 国产黄色小视频在线观看| 午夜精品一区二区三区免费看| 欧美av亚洲av综合av国产av| 午夜老司机福利片| 精品一区二区三区视频在线观看免费| 亚洲五月天丁香| 亚洲av中文字字幕乱码综合| 亚洲,欧美精品.| 国产成人欧美在线观看| 久久欧美精品欧美久久欧美| 真人一进一出gif抽搐免费| 欧美 亚洲 国产 日韩一| 男女床上黄色一级片免费看| 国产高清videossex| 欧美日本亚洲视频在线播放| bbb黄色大片| 在线观看免费视频日本深夜| 欧美zozozo另类| 亚洲 欧美一区二区三区| 国产高清激情床上av| 无人区码免费观看不卡| 国产亚洲av高清不卡| 在线观看美女被高潮喷水网站 | 亚洲成人中文字幕在线播放| 欧美色欧美亚洲另类二区| 精品国产超薄肉色丝袜足j| 久久精品国产亚洲av高清一级| 久久 成人 亚洲| 国产av一区二区精品久久| 国产亚洲欧美98| 人妻夜夜爽99麻豆av| 亚洲av熟女| 在线国产一区二区在线| 老汉色av国产亚洲站长工具| xxx96com| 国内揄拍国产精品人妻在线| 国产v大片淫在线免费观看| 日韩欧美 国产精品| 欧美成人一区二区免费高清观看 | 老熟妇仑乱视频hdxx| cao死你这个sao货| 天天一区二区日本电影三级| 亚洲狠狠婷婷综合久久图片| 成人一区二区视频在线观看| 岛国视频午夜一区免费看| 欧美一级毛片孕妇| 人人妻,人人澡人人爽秒播| 欧美乱妇无乱码| 国产精品99久久99久久久不卡| 嫩草影院精品99| 精品久久久久久久久久免费视频| 宅男免费午夜| 久久伊人香网站| 日韩欧美精品v在线| 一进一出抽搐动态| 国产精品综合久久久久久久免费| 真人一进一出gif抽搐免费| 婷婷精品国产亚洲av| 香蕉丝袜av| 日日夜夜操网爽| 国产精品,欧美在线| 亚洲精品国产一区二区精华液| 最好的美女福利视频网| 97超级碰碰碰精品色视频在线观看| 悠悠久久av| 日韩大码丰满熟妇| 精品不卡国产一区二区三区| 精品久久久久久久末码| 国产乱人伦免费视频| 大型av网站在线播放| 久久人妻av系列| 午夜a级毛片| 亚洲一区高清亚洲精品| 女人高潮潮喷娇喘18禁视频| 国产麻豆成人av免费视频| 欧美日韩黄片免| 欧美成人一区二区免费高清观看 | 午夜影院日韩av| 免费在线观看黄色视频的| 亚洲电影在线观看av| 亚洲五月天丁香| 国内精品一区二区在线观看| 黄频高清免费视频| 中文资源天堂在线| 久久中文字幕人妻熟女| 在线观看舔阴道视频| 国产一区二区在线av高清观看| 观看免费一级毛片| 丰满人妻一区二区三区视频av | 日韩av在线大香蕉| 亚洲欧美日韩东京热| 亚洲av电影在线进入| 一级毛片精品| 日韩三级视频一区二区三区| 国内精品久久久久精免费| 亚洲成人国产一区在线观看| 正在播放国产对白刺激| 91麻豆精品激情在线观看国产| 成人亚洲精品av一区二区| 欧美日本亚洲视频在线播放| 亚洲一区高清亚洲精品| 在线视频色国产色| 久久久久国产一级毛片高清牌| 国产野战对白在线观看| 97超级碰碰碰精品色视频在线观看| 亚洲全国av大片| 精品欧美国产一区二区三| 午夜两性在线视频| 国产成人影院久久av| 国产精品1区2区在线观看.| 搡老妇女老女人老熟妇| 欧美日韩瑟瑟在线播放| 两个人视频免费观看高清| 欧美 亚洲 国产 日韩一| 亚洲国产欧洲综合997久久,| 精品第一国产精品| av国产免费在线观看| 国产亚洲av嫩草精品影院| 中文亚洲av片在线观看爽| a级毛片在线看网站| 老熟妇乱子伦视频在线观看| 精品久久久久久久末码| 女同久久另类99精品国产91| 俺也久久电影网| 国产黄片美女视频| 这个男人来自地球电影免费观看| 夜夜看夜夜爽夜夜摸| 一本久久中文字幕| 不卡一级毛片| 免费在线观看黄色视频的| 老熟妇仑乱视频hdxx| 欧美日韩一级在线毛片| 久久精品人妻少妇| 两人在一起打扑克的视频| 亚洲精品在线观看二区| 久久久国产成人精品二区| 久久国产乱子伦精品免费另类| xxxwww97欧美| 美女免费视频网站| 欧美另类亚洲清纯唯美| 日韩欧美一区二区三区在线观看| 正在播放国产对白刺激| 宅男免费午夜| 精品第一国产精品| 亚洲熟妇熟女久久| 日韩欧美在线乱码| 日本免费a在线| 99国产精品一区二区三区| 亚洲av第一区精品v没综合| 国产精品乱码一区二三区的特点| 欧美在线一区亚洲| 黑人巨大精品欧美一区二区mp4| 这个男人来自地球电影免费观看| 国产99白浆流出| 久9热在线精品视频| 亚洲成人久久性| 亚洲成av人片免费观看| 天天躁夜夜躁狠狠躁躁| 亚洲人与动物交配视频| 成人国产一区最新在线观看| 国内精品久久久久久久电影| 国产亚洲精品第一综合不卡| 老司机午夜福利在线观看视频| 美女午夜性视频免费| 午夜福利成人在线免费观看| 亚洲精品久久成人aⅴ小说| 亚洲国产中文字幕在线视频| 国产精品,欧美在线| 精品久久久久久久久久免费视频| 国产亚洲欧美在线一区二区| 欧美日本视频| 欧美zozozo另类| 婷婷亚洲欧美| 一级片免费观看大全| 亚洲精品一卡2卡三卡4卡5卡| 日韩大码丰满熟妇| 欧美日韩黄片免| 日韩有码中文字幕| 人人妻人人澡欧美一区二区| 精品欧美一区二区三区在线| 一进一出好大好爽视频| 精品国内亚洲2022精品成人| 国产精品精品国产色婷婷| 99国产精品一区二区三区| 啪啪无遮挡十八禁网站| 成人特级黄色片久久久久久久| 两性夫妻黄色片| 免费在线观看影片大全网站| aaaaa片日本免费| 搡老岳熟女国产| 日韩欧美在线二视频| 在线永久观看黄色视频| 午夜成年电影在线免费观看| 黄色女人牲交| 一级毛片女人18水好多| 黄色视频,在线免费观看| 国产精品乱码一区二三区的特点| 亚洲欧美日韩高清专用| 久久精品人妻少妇| 久久久久久亚洲精品国产蜜桃av| 国产真人三级小视频在线观看| svipshipincom国产片| 美女黄网站色视频| 黄色毛片三级朝国网站| 久久中文字幕人妻熟女| 婷婷精品国产亚洲av| 国产亚洲av嫩草精品影院| 美女免费视频网站| 午夜久久久久精精品| 国产av不卡久久| 久久精品国产综合久久久| а√天堂www在线а√下载| 亚洲欧美精品综合一区二区三区| 亚洲成av人片免费观看| 午夜免费成人在线视频| 欧洲精品卡2卡3卡4卡5卡区| 一二三四社区在线视频社区8| 国产av麻豆久久久久久久| 欧美日韩亚洲综合一区二区三区_| 成人国产综合亚洲| 久久午夜亚洲精品久久| 免费看a级黄色片| 欧美成人免费av一区二区三区| 黄色女人牲交| 看免费av毛片| 黄色视频,在线免费观看| 亚洲午夜精品一区,二区,三区| 1024视频免费在线观看| 亚洲成人久久性| 亚洲免费av在线视频| 色噜噜av男人的天堂激情| 中出人妻视频一区二区| 国产精品免费一区二区三区在线| 看黄色毛片网站| 亚洲av熟女| 亚洲电影在线观看av| 中文字幕精品亚洲无线码一区| 少妇人妻一区二区三区视频| 国产又黄又爽又无遮挡在线| 琪琪午夜伦伦电影理论片6080| 不卡av一区二区三区| www.www免费av| 18禁观看日本| 成年女人毛片免费观看观看9| 欧美午夜高清在线| 久久久久亚洲av毛片大全| 精品久久蜜臀av无| 欧美黄色片欧美黄色片| 色综合欧美亚洲国产小说| 国产蜜桃级精品一区二区三区| 免费在线观看日本一区| 搡老妇女老女人老熟妇| 欧美三级亚洲精品| 免费在线观看亚洲国产| 国产主播在线观看一区二区| 亚洲精品av麻豆狂野| 亚洲av第一区精品v没综合| 一级毛片女人18水好多| 精品国产乱码久久久久久男人| 在线观看66精品国产| 欧美日韩福利视频一区二区| 一级a爱片免费观看的视频| 久久国产精品人妻蜜桃| 舔av片在线| 国产精品免费视频内射| 亚洲人成电影免费在线| 一a级毛片在线观看| 人妻丰满熟妇av一区二区三区| 免费看美女性在线毛片视频| 小说图片视频综合网站| 国内精品久久久久久久电影| 国产蜜桃级精品一区二区三区| 久久 成人 亚洲| 99国产精品一区二区蜜桃av| 99久久久亚洲精品蜜臀av| 首页视频小说图片口味搜索| 丰满人妻一区二区三区视频av | 久久午夜亚洲精品久久| 国产亚洲精品第一综合不卡| 国产又黄又爽又无遮挡在线| 听说在线观看完整版免费高清| 国语自产精品视频在线第100页| 别揉我奶头~嗯~啊~动态视频| 美女免费视频网站| 啦啦啦观看免费观看视频高清| 男女之事视频高清在线观看| 日本黄大片高清| 老司机午夜福利在线观看视频| 欧美黑人欧美精品刺激| 欧美绝顶高潮抽搐喷水| 男插女下体视频免费在线播放| 男女午夜视频在线观看| 九色国产91popny在线| 国产精品av久久久久免费| 一级黄色大片毛片| 在线看三级毛片| 国产精品一及| 久久久久免费精品人妻一区二区| 桃红色精品国产亚洲av| 亚洲成人精品中文字幕电影| 亚洲av成人精品一区久久| 免费观看人在逋| 久久久久久免费高清国产稀缺| 亚洲一区高清亚洲精品| 深夜精品福利| 在线十欧美十亚洲十日本专区| 两性夫妻黄色片| 亚洲国产精品sss在线观看| 熟女少妇亚洲综合色aaa.| av欧美777| 黑人欧美特级aaaaaa片| 亚洲av第一区精品v没综合| 老汉色∧v一级毛片| 18禁黄网站禁片午夜丰满| 国产亚洲精品第一综合不卡| www.精华液| 91成年电影在线观看| 精品不卡国产一区二区三区| 最新在线观看一区二区三区| 亚洲18禁久久av| 岛国在线观看网站| 最近在线观看免费完整版| 一级a爱片免费观看的视频| 99热这里只有是精品50| 精品国产乱码久久久久久男人| 动漫黄色视频在线观看| 亚洲欧美精品综合久久99| 19禁男女啪啪无遮挡网站| 国产黄片美女视频| 久久久久性生活片| 亚洲av美国av| 欧美日韩瑟瑟在线播放| 亚洲人与动物交配视频| 91麻豆精品激情在线观看国产| 国产伦在线观看视频一区| 久久久久九九精品影院| 午夜福利18| 一本精品99久久精品77| 黄频高清免费视频| 一进一出抽搐gif免费好疼| 熟女少妇亚洲综合色aaa.| 久久久久久大精品| 中文亚洲av片在线观看爽| 老司机午夜福利在线观看视频| 国产黄a三级三级三级人| 黄色成人免费大全| 久久久久久亚洲精品国产蜜桃av| 波多野结衣高清作品| 亚洲色图av天堂| 午夜精品在线福利| 亚洲国产精品sss在线观看| 精品国产乱子伦一区二区三区| 国产精品久久久久久人妻精品电影| 欧美又色又爽又黄视频| 九色国产91popny在线| 岛国在线免费视频观看| 亚洲av成人不卡在线观看播放网| 久久热在线av| 欧美zozozo另类| 久久久久久九九精品二区国产 | 国产一区二区在线av高清观看| 国产黄片美女视频|