999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于自注意力深度知識追蹤和協(xié)同過濾的C++教學(xué)輔助方法

2022-02-03 07:12:02晨,劉娟,沈恂,郭
現(xiàn)代計算機(jī) 2022年21期
關(guān)鍵詞:學(xué)生

陳 晨,劉 娟,沈 恂,郭 城

(蚌埠學(xué)院計算機(jī)與信息工程學(xué)院,蚌埠 233030)

0 引言

本校已開展C++慕課(MOOC)和網(wǎng)絡(luò)習(xí)題平臺作為教學(xué)輔助手段多年,新冠疫情更是讓慕課和網(wǎng)課迅速發(fā)展,成為2020 年后的主流教學(xué)方式。教學(xué)過程中發(fā)現(xiàn)的主要問題有:學(xué)生知識水平不一,缺乏課堂教學(xué)實(shí)時反饋,教師難以根據(jù)薄弱環(huán)節(jié)及時調(diào)整,學(xué)生不易發(fā)現(xiàn)自己的知識薄弱點(diǎn)并有針對性地進(jìn)行加強(qiáng)鞏固。因此,急需一種可以幫助學(xué)生迅速定位知識薄弱點(diǎn)的方法。針對此種情況,我們在C++課程教學(xué)中引入了一種基于自注意力深度知識追蹤和協(xié)同過濾的C++教學(xué)輔助方法,利用一種改進(jìn)后的自注意力深度知識追蹤算法SAINT-Lite 發(fā)現(xiàn)知識薄弱點(diǎn),再結(jié)合協(xié)同過濾(Collaborative Filtering,CF)進(jìn)行個性化習(xí)題。本文將這種方法稱為SAINT-Lite-CF。

1 相關(guān)工作

知識追蹤(Knowledge Tracing)是一個時間序列問題,根據(jù)學(xué)生過去的習(xí)題作答情況,預(yù)測未來的答題正確率,反映學(xué)生對知識點(diǎn)的動態(tài)掌握情況。貝葉斯知識追蹤(Bayesian Knowl?edge Tracing,BKT)[1]是經(jīng)典的非深度知識追蹤方法。深度知識追蹤(Deep Knowledge Tracing,DKT)[2]開創(chuàng)了深度知識追蹤方法,主要結(jié)構(gòu)為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和長短時記憶網(wǎng)絡(luò)(LSTM),隨后動態(tài)鍵值對記憶網(wǎng)絡(luò)(Dynamic Key-Value Memory Networks,DKVMN)[3]之類的改進(jìn)均基于RNN和LSTM。扇貝、英語流利說等大量網(wǎng)絡(luò)教學(xué)平臺廣泛應(yīng)用基于LSTM 的DKT算法進(jìn)行知識追蹤。DKT 的不足是需要海量數(shù)據(jù),RNN和LSTM依次處理時間序列數(shù)據(jù),訓(xùn)練時間長,難以應(yīng)用到高校專業(yè)課程這種小規(guī)模教學(xué)上。Transformer[4]提出自注意力機(jī)制,對小數(shù)據(jù)集也有很好的性能,Transformer 結(jié)構(gòu)實(shí)現(xiàn)了時間序列數(shù)據(jù)的并行處理,可以一次處理數(shù)十個甚至上百個時刻數(shù)據(jù),大大提高訓(xùn)練和執(zhí)行效率。SAKT(Self-Attention Knowledge Tracing)[5]是基于自注意力的第一篇知識追蹤論文,使用習(xí)題(Exercise)和答案(Result)成對組成的交互(Interaction)信息,隨后的SAINT(Separated Self-Attention Neural Knowledge Tracing)[6]和SAINT+[7]相對SAKT 的主要改進(jìn)是引入編碼器(Encoder)和解碼器(Decoder),習(xí)題和答案信息分別進(jìn)入編碼器和解碼器處理,實(shí)驗表明這種方式性能更佳。本文工作主要基于SAINT展開。

2 方法

2.1 問題定義

令習(xí)題庫總習(xí)題數(shù)為M,某學(xué)生從t1時刻到ti時刻做題序列定義為{I1,I2,I3,…,Ii},Ii為{Ei,Ri},其中:I 是Interaction(交互),表示在第i時刻學(xué)生的一次做題行為,E 是Exercise(習(xí)題),表示習(xí)題庫中一道習(xí)題;R 是Result(答案),表示對應(yīng)習(xí)題學(xué)生答案。知識追蹤的任務(wù)是根據(jù)t1到ti時刻序列預(yù)測ti+1時刻學(xué)生回答所有習(xí)題正確概率,表示為一個M維向量,每1 位取值區(qū)間為[0,1]。

2.2 SAINT-Lite-CF模型介紹

相比DKT 論文中常用的Synthetic、ASSIST和STATICS 數(shù)據(jù)集,本文實(shí)際處理數(shù)據(jù)集規(guī)模較小,為避免模型過擬合和難以收斂,我們對SAINT 模型進(jìn)行裁剪,將其稱為SAINT-Lite。后續(xù)實(shí)驗和實(shí)踐證明,裁剪后的模型在處理小數(shù)據(jù)集時,可以獲得較好性能。本文提出方法的整體結(jié)構(gòu)見圖1。

圖1 SAINT-Lite-CF 主要結(jié)構(gòu)

總體結(jié)構(gòu)包括編碼器、解碼器和最后的全連接層。編碼器的輸出作為解碼器的輸入,解碼器的輸出作為線性層的輸入。

編碼器由一個習(xí)題嵌入層(Exercise Embed?ding Layer)和多個編碼器層組成,習(xí)題和位置信息經(jīng)過嵌入表示后分別生成d_model 維度向量,這些向量相加并輸入習(xí)題嵌入層。每個編碼器層由一個多頭注意力運(yùn)算模塊、點(diǎn)式前饋網(wǎng)絡(luò)(Point-wise Feed-Forward Networks)和層歸一化組成,且每層在其周圍有一個殘差連接。點(diǎn)式前饋網(wǎng)絡(luò)是全連接神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),目的是提高模型非線性能力。殘差連接用于避免深度網(wǎng)絡(luò)中梯度消失問題。

每個多頭注意力運(yùn)算模塊有三個輸入,分別是:Q(查詢,Query)、K(主鍵,Key)、V(數(shù)值,Value),其計算過程分成四個步驟:QKV線性層分拆成多頭,按照比例縮放的點(diǎn)積注意力多頭級聯(lián)(Concat),最后一層線性層。以上過程用公式表示為

其中Mask是上三角掩膜,F(xiàn)FN是點(diǎn)式前饋網(wǎng)絡(luò)。

解碼器由一個答案嵌入層(Result Embed?ding Layer)和多個解碼器層組成,答案和位置信息經(jīng)過嵌入表示后生成d_model維度向量,這些向量相加并輸入答案嵌入層。每個解碼器層由兩個多頭注意力運(yùn)算模塊、點(diǎn)式前饋網(wǎng)絡(luò)和層歸一化組成,第二層多頭注意力模塊的V和K接收編碼器輸出作為輸入,Q接收第一層多頭注意力模塊的輸出,每層在其周圍同樣有一個殘差連接。解碼器關(guān)注編碼器的輸出及其自身輸入(自注意力),來預(yù)測下一個時刻做題的正確概率。

嵌入表示后的習(xí)題矩陣分別作為Q、K、V輸入編碼器(各自權(quán)重不同),輸出O分別作為V、K(各自權(quán)重不同)輸入解碼器的第二層多頭自注意力模塊。嵌入表示后的答案矩陣分別作為另一套Q、K、V(各自權(quán)重不同)輸入解碼器。Q是解碼器第一層多頭自注意力模塊的輸出。編碼器過程用公式表示為

X在第一個編碼器層是習(xí)題嵌入層輸出,其余編碼器層是上一個編碼器層的輸出,Oenc是編碼器輸出,LayerNorm 是層歸一化。解碼器過程用公式表示為

X在第一個解碼器層是答案嵌入層輸出,其余解碼器層是上一個解碼器層的輸出,Odec是解碼器輸出。解碼器的最后輸出經(jīng)過一個全連接層,采用Sigmod 激活函數(shù),輸出每個知識點(diǎn)掌握情況,并映射回所有習(xí)題正確概率。

2.3 學(xué)生知識水平向量/矩陣

令共有I個學(xué)生,習(xí)題庫共M個習(xí)題,N個知識點(diǎn),習(xí)題同知識點(diǎn)是多對多關(guān)系,Km表示第m個習(xí)題對應(yīng)的N位一維知識點(diǎn)向量,每位取0 或1,K為所有習(xí)題對應(yīng)知識點(diǎn)的M×N矩陣。SAINT-Lite 輸入時只使用主要知識點(diǎn)ID,輸出N維向量SKi,表示第i個學(xué)生所有知識點(diǎn)掌握情況,以主要知識點(diǎn)ID 預(yù)測結(jié)果表示習(xí)題ID 預(yù)測結(jié)果,將N維向量映射回M維,令其為SEi,所有學(xué)生向量組成I×M的答題正確概率矩陣SE。用答題正確概率矩陣點(diǎn)乘所有習(xí)題對應(yīng)知識點(diǎn)矩陣,即SE×K,歸一化后得到所有學(xué)生知識水平矩陣Y。令Yi表示第i個學(xué)生的知識水平向量,Yij表示第i個學(xué)生對第j個知識點(diǎn)的掌握情況,則KPj為第j個知識點(diǎn)均值:

所有KPj組成N維知識水平均值向量(KP1,KP2,KP3,…,KPN),對KPj小于閾值(本文取0.5)的知識點(diǎn)向教師進(jìn)行教學(xué)預(yù)警,表明此知識點(diǎn)是共性的薄弱環(huán)節(jié),教師應(yīng)進(jìn)行集中復(fù)習(xí)講解,對特定學(xué)生KPj過低的知識點(diǎn)向該學(xué)生提示重新學(xué)習(xí)課程。

2.4 個性化習(xí)題推薦

獲得學(xué)生答題正確概率矩陣后,使用協(xié)同過濾來進(jìn)行個性化習(xí)題推薦。協(xié)同過濾目前廣泛應(yīng)用于電子商務(wù)網(wǎng)站的商品推薦,其本質(zhì)思想是找到與當(dāng)前目標(biāo)類似的目標(biāo)群體,即找到水平接近的學(xué)生近鄰集合,預(yù)測學(xué)生對沒有做過習(xí)題的得分水平。令全體學(xué)生答題正確概率矩陣為U,Ui表示第i行,為第i個學(xué)生的答題正確概率向量,則Uj為第j個學(xué)生的答題正確概率向量,遍歷所有行,以余弦相似度判斷Ui和Uj相似度:

得分大于一定閾值(本文取0.9)的作為相似學(xué)生。根據(jù)馬驍睿等[8]提出的方法計算第i個學(xué)生的習(xí)題得分向量為

average(NUi)表示同第i個學(xué)生相似學(xué)生答題正確概率向量的平均值,p取值0 到1,用于調(diào)節(jié)相似學(xué)生對于習(xí)題得分向量的影響力,p為1時,習(xí)題得分向量完全退化為答題正確概率向量。向?qū)W生推薦預(yù)測得分在某個區(qū)間的習(xí)題,對于預(yù)測得分過低甚至為0 的習(xí)題和學(xué)習(xí)內(nèi)容,本文認(rèn)為這樣的內(nèi)容學(xué)生完全沒有掌握,應(yīng)重新學(xué)習(xí)而不是直接做題。

3 實(shí)驗

3.1 數(shù)據(jù)集

使用兩個公開數(shù)據(jù)集ASSISTments 2009(以下簡稱ASSIST)、STATICS 2011(以下簡稱STATICS)和一個本文數(shù)據(jù)集來驗證習(xí)題。ASSIST 收集自ASSISTments 教育平臺2009 年數(shù)據(jù),為高中數(shù)學(xué)題,對應(yīng)124個知識點(diǎn),包含了4217 名學(xué)生共525535 次答題記錄。STATICS 收集自大學(xué)工程力學(xué)課程,對應(yīng)1223 個知識點(diǎn),包含了333 個學(xué)生共189927 條答題記錄。本文數(shù)據(jù)集來自本校已使用多年的C++網(wǎng)絡(luò)習(xí)題平臺,共1374 道習(xí)題,對應(yīng)173 個C++知識點(diǎn),采集自2018 年和2019 年不同專業(yè)532 人共32843條答題記錄。為使ASSIST、STATICS 數(shù)據(jù)規(guī)模同本文數(shù)據(jù)集接近,從ASSIST、STATICS中分別抽取一段時間內(nèi)數(shù)據(jù),處理后所有數(shù)據(jù)集具體信息見表1。數(shù)據(jù)分布上,ASSIST 更接近本文數(shù)據(jù)集,將其稱為稀疏數(shù)據(jù)集,將STATICS稱為稠密數(shù)據(jù)集。

表1 所有數(shù)據(jù)集信息

3.2 系統(tǒng)實(shí)現(xiàn)細(xì)節(jié)

訓(xùn)練在i7 CPU、16 G 內(nèi)存、GTX 2060 顯卡的機(jī)器上進(jìn)行,使用PyTorch 框架實(shí)現(xiàn),使用Adam 優(yōu)化器,學(xué)習(xí)率0.001,迭代次數(shù)100 次。數(shù)據(jù)集根據(jù)學(xué)生按照8∶2 的比例分為訓(xùn)練集和測試集。

本文數(shù)據(jù)集中包括以下幾項特征:練習(xí)題ID,對應(yīng)的一個主要知識點(diǎn)ID,對應(yīng)的多個附屬知識點(diǎn)ID,學(xué)生答題結(jié)果。習(xí)題的特征包括習(xí)題對應(yīng)的主要知識點(diǎn)ID、位置信息。答案的特征包括回答正確與否(取值0 或1)、位置信息。先預(yù)處理數(shù)據(jù)集,得到每個學(xué)生對應(yīng)答題序列,此時只使用主要知識點(diǎn)ID,將此序列轉(zhuǎn)換為知識點(diǎn)獨(dú)熱(one-hot)編碼和答案獨(dú)熱編碼。模型一次并行處理windows_size 個時刻數(shù)據(jù),舍棄所有做題數(shù)目不超過windows_size 的學(xué)生數(shù)據(jù),超過windows_size 的分拆后分批處理,分拆后不足window_size部分舍棄。

所有特征各自嵌入表示降為d_model維,再求和。由于習(xí)題和答案位置一一對應(yīng),兩者共享同樣的位置編碼。位置編碼用于保留因并行處理丟失的序列信息,即學(xué)生做題先后順序,反映學(xué)生知識技能動態(tài)掌握程度。

答案的輸入比習(xí)題的輸入推遲一個時刻,即在一次訓(xùn)練迭代中,編碼器輸入window_size個時刻的習(xí)題信息,解碼器輸入只有win?dow_size-1 個時刻的答案信息,最后輸出win?dow_size個r_,使用上三角掩膜避免模型在使用習(xí)題信息預(yù)測t時刻答題正確概率時參考t時刻之后的答案信息。訓(xùn)練時候使用最小化二分類交叉熵?fù)p(Binary Cross Entropy Loss)作為損失函數(shù),計算輸出和標(biāo)簽的誤差并執(zhí)行反向傳播,優(yōu)化模型參數(shù)。推理時只關(guān)注最后時刻輸出的r_。

3.3 超參數(shù)選擇實(shí)驗

超參數(shù)n是解碼器/編碼器層堆疊數(shù)(多頭自注意力模塊重復(fù)次數(shù)),SAINT 取4,分別設(shè)置n為2 和4 進(jìn)行消融測試。深度知識追蹤一般使用準(zhǔn)確率(Accuracy,ACC)和受試者工作特性(ROC)曲線下面積(Area Under the Curve,AUC),ACC為正確預(yù)測結(jié)果占全部結(jié)果的百分比,AUC被定義為ROC 曲線與下坐標(biāo)軸圍成的面積,兩個指標(biāo)均是越高,說明模型性能越好,具體計算方法見SAINT/SAINT+論文。結(jié)果見表2及圖2。

表2 超參數(shù)n的不同取值對ACC和AUC的影響

圖2 超參數(shù)n的不同取值對ACC和AUC的影響

n為4 時,在STATICS 上AUC和ACC均升高,表現(xiàn)變好,ASSIST 和本文數(shù)據(jù)集上AUC和ACC均降低,表現(xiàn)變差。n為2 時,在STATICS上表現(xiàn)變差,ASSIST和本文數(shù)據(jù)集上表現(xiàn)變好。本文認(rèn)為n為4 更適合STATICS 類的稠密數(shù)據(jù)集,n為2更適合ASSIST和本文數(shù)據(jù)集類的稀疏數(shù)據(jù)集。本文系統(tǒng)實(shí)際應(yīng)用中n取2。

超參數(shù)d_model是每個編碼器層或解碼器層輸入或輸出的維數(shù),SAINT 取256 和512,分別設(shè)置d_model 為64、128 和256 進(jìn)行消融測試。結(jié)果見表3及圖3。

表3 超參數(shù)d_model的不同取值對ACC和AUC的影響

圖3 超參數(shù)d_model的不同取值對ACC和AUC的影響

縱向比較,隨著d_model 取值增大,在STATICS 上ACC和AUC均升高。在ASSIST和本文數(shù)據(jù)集上,當(dāng)d_model 是64 或128 時,ACC和AUC 差別不大,甚至在d_model 為256 時,ACC和AUC 均出現(xiàn)下降。橫向比較,d_model 為256或128 時,在STATICS 上ACC和AUC均升高,表現(xiàn)變好;ASSIST 和本文數(shù)據(jù)集上ACC和AUC均降低,表現(xiàn)變差。d_model為64在STATICS上表現(xiàn)變差,ASSIST 和本文數(shù)據(jù)集上表現(xiàn)變好。我們認(rèn)為d_model 為64 即可處理ASSIST 和本文數(shù)據(jù)集類的稀疏數(shù)據(jù)集,更高的取值適合STATICS 類的稠密數(shù)據(jù)集。本文系統(tǒng)實(shí)際應(yīng)用中d_model取64。

超參數(shù)window_size 表示模型一次處理幾個時刻的數(shù)據(jù),本文取100。超參數(shù)h表示多頭注意力機(jī)制頭(head)數(shù),SAINT 中取8,本文取2,即64 維(d_model 維)的QKV 被拆分成32 維進(jìn)行注意力計算。訓(xùn)練時的超參數(shù)batch_size,表示模型在一個時刻處理幾批數(shù)據(jù),本文取16。所有超參數(shù)最終取值見表4。

表4 所有超參數(shù)及取值

3.4 同其他知識追蹤模型比較實(shí)驗

本實(shí)驗使用Paper with code 網(wǎng)站上開源的DKT、SAKT 和SAINT 在PyTorch 下實(shí) 現(xiàn),將三種數(shù)據(jù)集在四種模型上重新訓(xùn)練測試。評測指標(biāo)為ACC、AUC和RMSE(Root Mean Squared Er?ror)。RMSE被定義為預(yù)測值與真實(shí)值的均方根誤差,其值越低,說明模型性能越好。結(jié)果見表5及圖4。

圖4 DKT、SAKT、SAINT和SAINT-Lite在ACC、AUC、RMSE上的得分對比

表5 SAINT-Lite同DKT、SAKT和SAINT的對比

在ACC和AUC這兩個評測指標(biāo)上,SAINTLite 在ASSIST 和本文數(shù)據(jù)集下表現(xiàn)比DKT 和SAKT 要好,比SAINT 略差,但在STATICS 下表現(xiàn)較差,僅比DKT 稍好,比同樣使用自注意力機(jī)制的SAKT 和SAINT 均差。在RMSE 這個指標(biāo)上,SAINT-Lite 在ASSIST 和本文數(shù)據(jù)集下表現(xiàn)最好,在STATICS 下表現(xiàn)同樣較差,僅比DKT稍好。我們認(rèn)為這是由于STATICS 知識點(diǎn)較多,簡化模型結(jié)構(gòu)使得系統(tǒng)不能很好擬合這種復(fù)雜數(shù)據(jù),但是對于小數(shù)據(jù)集,裁剪后的結(jié)構(gòu)也可以獲得較好的性能,其結(jié)果是可信的,可以用于教學(xué)預(yù)警和后續(xù)的習(xí)題推薦。

3.5 個性化習(xí)題推薦實(shí)驗

一些論文或者系統(tǒng)使用答題正確率來衡量推薦習(xí)題質(zhì)量,本文認(rèn)為這不符合實(shí)際,極端情況下推薦最簡單的習(xí)題必然都是正確的。本文通過判斷答題正確率是否符合期望來驗證習(xí)題推薦效果,將習(xí)題推薦難度平均分為五個區(qū)間,使用三個測試集中每個學(xué)生的200次答題記錄推薦50 題,并計算推薦習(xí)題的實(shí)際答題正確率,結(jié)果見表6。

表6 不同難度區(qū)間推薦習(xí)題的實(shí)際答題正確率

表6數(shù)據(jù)表明,基于STATICS訓(xùn)練模型的習(xí)題推薦有部分實(shí)際正確率未落在對應(yīng)區(qū)間內(nèi),再次說明本文使用的解碼器/編碼器堆疊層數(shù)2不能很好擬合STATICS 這種知識點(diǎn)較多的復(fù)雜數(shù)據(jù),而基于ASSIST 和本文數(shù)據(jù)集訓(xùn)練模型的習(xí)題推薦所有實(shí)際正確率都落在對應(yīng)區(qū)間內(nèi),表明實(shí)際應(yīng)用中SAINT-Lite-CF 的推薦結(jié)果是可信的。

3.6 實(shí)際應(yīng)用

本校C++一學(xué)期共16 周課程,從第2 周開始,除共同課后作業(yè)外,向每個學(xué)生進(jìn)行個性化習(xí)題推薦,推薦區(qū)間為[0.6,0.8)。統(tǒng)計全體學(xué)生每周所有習(xí)題的平均正確率,結(jié)果見圖5。

圖5 全體學(xué)生16周內(nèi)所有習(xí)題的平均正確率

橫軸為周次,縱軸為平均正確率,圖中出現(xiàn)兩次較明顯的平均正確率下降,分別是第2周和第8 周,原因是第1 周主要復(fù)習(xí)C 語言內(nèi)容,第2 周開始教學(xué)C++新內(nèi)容,第8 周和第9 周開始教學(xué)繼承和多態(tài)。這兩周均有大量重點(diǎn)難點(diǎn)內(nèi)容,學(xué)生初期掌握不好,通過個性化習(xí)題推薦和教學(xué)預(yù)警后教師針對薄弱知識點(diǎn)的補(bǔ)強(qiáng),提升了學(xué)生的平均正確率,其效果反映在預(yù)測和多次真實(shí)考試中,最后的期終考試也取得了師生滿意的成績。

4 結(jié)語

本文提出的SAINT-Lite-CF 方法在C++教學(xué)實(shí)踐中起到了很好的輔助作用,幫助學(xué)生和教師快速定位薄弱知識點(diǎn),進(jìn)行教學(xué)預(yù)警和個性化習(xí)題推薦。受平臺限制,SAINT-Lite 使用的特征沒有考慮時間對知識遺忘的影響,后續(xù)可以改進(jìn)本校C++網(wǎng)絡(luò)習(xí)題平臺,收集學(xué)生做題相關(guān)的時間信息用于訓(xùn)練,提高模型對學(xué)生知識水平的擬合和表達(dá)能力。本文方法應(yīng)用協(xié)同過濾較簡單,后續(xù)可以考慮更復(fù)雜的個性化習(xí)題推薦算法。本文使用2018 年和2019 年積累的數(shù)據(jù)來預(yù)測2020 年,后續(xù)會擴(kuò)充數(shù)據(jù)集,繼續(xù)輔助C++教學(xué)。

猜你喜歡
學(xué)生
快把我哥帶走
親愛的學(xué)生們,你們并沒有被奪走什么
英語文摘(2020年9期)2020-11-26 08:10:12
如何喚醒學(xué)生自信心
甘肅教育(2020年6期)2020-09-11 07:45:16
怎樣培養(yǎng)學(xué)生的自信
甘肅教育(2020年22期)2020-04-13 08:10:54
如何加強(qiáng)學(xué)生的養(yǎng)成教育
甘肅教育(2020年20期)2020-04-13 08:04:42
“學(xué)生提案”
《李學(xué)生》定檔8月28日
電影(2018年9期)2018-11-14 06:57:21
趕不走的學(xué)生
學(xué)生寫話
學(xué)生寫的話
主站蜘蛛池模板: 精品一区二区三区波多野结衣 | 青青国产视频| 亚洲精品午夜天堂网页| 精品国产一区91在线| 免费国产黄线在线观看| 伊人色综合久久天天| 91伊人国产| 99热这里都是国产精品| 丁香五月激情图片| 国产精品嫩草影院av| 最新痴汉在线无码AV| 久草性视频| 欧美日韩中文字幕二区三区| 国产精品思思热在线| 久久综合九色综合97网| 久久九九热视频| 18黑白丝水手服自慰喷水网站| 中文字幕波多野不卡一区| 午夜无码一区二区三区在线app| 99re在线视频观看| 亚洲高清在线天堂精品| 亚洲最大看欧美片网站地址| 欧美在线一级片| 强奷白丝美女在线观看| 成人在线观看不卡| 国产亚洲欧美在线中文bt天堂| 国产一区二区三区精品欧美日韩| 粗大猛烈进出高潮视频无码| 欧美精品一区在线看| 国产无码制服丝袜| 丝袜亚洲综合| 亚洲精品欧美重口| 3p叠罗汉国产精品久久| 狠狠色噜噜狠狠狠狠奇米777| 国产丰满成熟女性性满足视频| 国内精品自在欧美一区| 亚洲AV无码乱码在线观看代蜜桃 | 亚洲中文精品久久久久久不卡| 色悠久久久久久久综合网伊人| 四虎成人在线视频| 久久大香伊蕉在人线观看热2| av大片在线无码免费| av一区二区人妻无码| 美女国内精品自产拍在线播放| 69av免费视频| 一本综合久久| 亚洲中文字幕精品| 乱色熟女综合一区二区| 欧美成人怡春院在线激情| 久久婷婷五月综合97色| 日韩高清欧美| 91在线国内在线播放老师| 国产成人av一区二区三区| 久久国产精品国产自线拍| 欧美一区二区丝袜高跟鞋| 一本色道久久88亚洲综合| av色爱 天堂网| 日韩美一区二区| 欧美综合成人| 女人18毛片水真多国产| 538精品在线观看| 国产一区二区视频在线| 亚洲,国产,日韩,综合一区| 色精品视频| 国产97公开成人免费视频| 久久国产精品电影| 91探花国产综合在线精品| 女人一级毛片| 在线观看无码av免费不卡网站| 欧美激情视频一区二区三区免费| 又黄又湿又爽的视频| 欧美日本不卡| 国产高清色视频免费看的网址| 日韩小视频在线播放| 九九免费观看全部免费视频| 波多野结衣视频一区二区| 在线观看免费人成视频色快速| 日韩大片免费观看视频播放| 99视频精品在线观看| 国产第一页第二页| 99这里只有精品在线| 乱色熟女综合一区二区|