国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

知識蒸餾在推薦系統(tǒng)中的應用

共 15523字,需瀏覽 32分鐘

 ·

2022-11-24 21:16

點擊上方小白學視覺”,選擇加"星標"或“置頂

重磅干貨,第一時間送達


作者:張俊林 新浪微博 AI Lab 負責人

來源:深度學習前沿筆記@知乎專欄

注:轉載請聯(lián)系作者本人。


導讀:隨著深度學習的快速發(fā)展,優(yōu)秀的模型層出不窮,比如圖像領域的 ResNet、自然語言處理領域的 Bert,這些革命性的新技術使得應用效果快速提升。但是,好的模型性能并非無代價的,你會發(fā)現(xiàn),深度學習模型正在變得越來越復雜,網(wǎng)絡深度越來越深,模型參數(shù)量也在變得越來越多。而這會帶來一個現(xiàn)實應用的問題:將這種復雜模型推上線,模型響應速度太慢,當流量大的時候撐不住。

知識蒸餾就是目前一種比較流行的解決此類問題的技術方向。一般知識蒸餾采取 Teacher-Student 模式:將復雜模型作為 Teacher,Student 模型結構較為簡單,用 Teacher 來輔助 Student 模型的訓練,Teacher 學習能力強,可以將它學到的暗知識 ( Dark Knowledge ) 遷移給學習能力相對弱的 Student 模型,以此來增強 Student 模型的泛化能力。復雜笨重但是效果好的 Teacher 模型不上線,就單純是個導師角色,真正上戰(zhàn)場擋搶撐流量的是靈活輕巧的 Student 小模型。比如 Bert,因為太重,很難直接上線跑,目前很多公司都是采取知識蒸餾的方法,學會一個輕巧,但是因為被 Teacher 教導過,所以效果也很好的 Student 模型部署上線。

01

知識蒸餾典型方法

目前知識蒸餾已經(jīng)成了獨立研究方向,各種新技術層出不窮。但是如果粗略歸納一下的話,主流的知識蒸餾技術有兩個技術發(fā)展主線:Logits 方法及特征蒸餾方法。

我們先簡單說明下 Logits 方法的思路。在介紹之前,首先得明白什么是 Logits。我們知道,對于一般的分類問題,比如圖片分類,輸入一張圖片后,經(jīng)過 DNN 網(wǎng)絡各種非線性變換,在網(wǎng)絡接近最后一層,會得到這張圖片屬于各個類別的大小數(shù)值 zi,某個類別的 z數(shù)值越大,則模型認為輸入圖片屬于這個類別的可能性就越大。什么是 Logits? 這些匯總了網(wǎng)絡內部各種信息后,得出的屬于各個類別的匯總分值 zi,就是 Logits,i 代表第 i 個類別,zi 代表屬于第 i 類的可能性。因為 Logits 并非概率值,所以一般在 Logits 數(shù)值上會用 Softmax 函數(shù)進行變換,得出的概率值作為最終分類結果概率。Softmax 一方面把 Logits 數(shù)值在各類別之間進行概率歸一,使得各個類別歸屬數(shù)值滿足概率分布;另外一方面,它會放大 Logits 數(shù)值之間的差異,使得 Logits 得分兩極分化,Logits 得分高的得到的概率值更偏大一些,而較低的 Logits 數(shù)值,得到的概率值則更小。上圖中的公式 qi,就是一個變體的 Softmax 公式,如果把 T 拿掉或令 T=1,則是個標準的 Softmax 公式,zi 就是第 i 個類別的 Logits 數(shù)值,qi 是 Logits 數(shù)值經(jīng)過 Softmax 變換后,歸屬于第 i 個類別的概率值。

知道了什么是 Logits 后,我們來說什么是 Logits 蒸餾方法。假設我們有一個 Teacher 網(wǎng)絡,一個 Student 網(wǎng)絡,輸入同一個數(shù)據(jù)給這兩個網(wǎng)絡,Teacher 會得到一個 Logits 向量,代表 Teacher 認為輸入數(shù)據(jù)屬于各個類別的可能性;Student 也有一個 Logits 向量,代表了 Student 認為輸入數(shù)據(jù)屬于各個類別的可能性。最簡單也是最早的知識蒸餾工作,就是讓 Student 的 Logits 去擬合 Teacher 的 Logits,即 Student 的損失函數(shù)為:

其中,zt 是 Teacher 的 Logits,zs 是 Student 的 Logits。在這里,Teacher 的 Logits 就是傳給 Student 的暗知識。

Hinton 在論文 Distilling the Knowledge in a Neural Network 中提出了稱為 Softmax Temperature 的改進方法,并第一次正式提出了"知識蒸餾"的叫法。Softmax Temperature 改造了 Softmax 函數(shù) ( 公式參考上圖 ),引入了溫度 T,這是一個超參數(shù)。如果我們把 T 設置成1,就是標準的 Softmax 函數(shù),也就是極端兩極分化版本。如果將 T 設大,則 Softmax 之后的 Logits 數(shù)值,各個類別之間的概率分值差距會縮小,也即是強化那些非最大類別的存在感;反之,則會加大類別間概率的兩極分化。Hinton 版本的知識蒸餾,讓 Student 去擬合 Teacher 經(jīng)過 T 影響后 Softmax 得到的,其實也是讓 Student 去學習 Teacher 的 Logits,無非是加入 T 后可以動態(tài)調節(jié) Logits 的分布。Student 的損失函數(shù)由兩項組成,一個子項是 Ground Truth,就是在訓練集上的標準交叉熵損失,讓 Student 去擬合訓練數(shù)據(jù),另外一個是蒸餾損失,讓 Student 去擬合 Teacher 的 Logits:

H 是交叉熵損失函數(shù),f(x) 是 Student 模型的映射函數(shù),y 是 Ground Truth Label,z是 Teacher 的 Logits,zs 是 Student 的 Logits, ST() 是 Softmax Temperature 函數(shù),λ 用于調節(jié)蒸餾 Loss 的影響程度。

一般而言,溫度 T 要設置成大于1的數(shù)值,這樣會減小不同類別歸屬概率的兩極分化程度,因為 Logits 方法中,Teacher 能夠提供給 Student 的額外信息就包含在 Logits 數(shù)值里。如果我們在蒸餾損失部分,將 T 設置成1,采用常規(guī)的 Softmax,也就是說兩極分化嚴重時,那么相對標準的訓練數(shù)據(jù),也就是交叉熵損失,兩者等同,Student 從蒸餾損失中就學不到任何額外的信息。

另外一種大的知識蒸餾思路是特征蒸餾方法,如上圖所示。它不像 Logits 方法那樣,Student 只學習 Teacher 的 Logits 這種結果知識,而是學習 Teacher 網(wǎng)絡結構中的中間層特征。最早采用這種模式的工作來自于自于論文:"FITNETS:Hints for Thin Deep Nets",它強迫 Student 某些中間層的網(wǎng)絡響應,要去逼近 Teacher 對應的中間層的網(wǎng)絡響應。這種情況下,Teacher 中間特征層的響應,就是傳遞給 Student 的暗知識。在此之后,出了各種新方法,但是大致思路還是這個思路,本質是 Teacher 將特征級知識遷移給 Student。因為介紹各種知識蒸餾方法不是我們的主題,這里不展開了,我們盡快切入主題。

02

知識蒸餾在推薦系統(tǒng)中的三個應用場景

我們知道,工業(yè)界常見推薦系統(tǒng)一般有三個級聯(lián)的過程:召回、粗排以及精排。召回環(huán)節(jié)從海量物品庫里快速篩選部分用戶可能感興趣的物品,傳給粗排模塊,粗排環(huán)節(jié)通常采取使用少量特征的簡單排序模型,對召回物料進行初步排序,并做截斷,進一步將物品集合縮小到合理數(shù)量,向后傳遞給精排模塊,精排環(huán)節(jié)采用利用較多特征的復雜模型,對少量物品進行精準排序。其中,粗排環(huán)節(jié)根據(jù)具體應用可選可不選。

那么,在這種串行級聯(lián)的推薦體系中,知識蒸餾可以應用在哪個環(huán)節(jié)呢?假設我們在召回環(huán)節(jié)采用模型排序 ( FM/FFM/DNN 雙塔等模型 ),那么知識蒸餾在上述三個環(huán)節(jié)都可采用,不同環(huán)節(jié)采用知識蒸餾的目的可能也不太相同。也就是說,精排、粗排以及模型召回環(huán)節(jié)都可以采用知識蒸餾技術來優(yōu)化現(xiàn)有推薦系統(tǒng)的性能和效果,這里的性能指的線上服務響應速度快,效果指的推薦質量好。

1. 精排環(huán)節(jié)采用知識蒸餾

為何在精排環(huán)節(jié)采用知識蒸餾?我們知道,精排環(huán)節(jié)注重精準排序,所以采用盡量多特征,復雜模型,以期待獲得優(yōu)質的個性化推薦結果。但是,這同時也意味著復雜模型的在線服務響應變慢。若承載相同流量,需要增加在線服務并行程度,也就意味著增加機器資源和成本,比如,DNN 排序模型相對 LR / FM 等非深度模型,在線推理速度下降明顯。此時,我們面臨兩難選擇:要么上簡單模型,但是付出的代價是推薦效果不如復雜模型好;要么上復雜模型,雖說效果是提高了,但是要付出額外的機器等資源及成本。有什么技術方案能夠在兩者之間做個均衡么?就是說,希望找到一個模型,這個模型既有較好的推薦質量,又能有快速推理能力。我們可以實現(xiàn)這一目標么?可以的,在精排環(huán)節(jié)上知識蒸餾模型即可。

上圖展示了如何在精排環(huán)節(jié)應用知識蒸餾:我們在離線訓練的時候,可以訓練一個復雜精排模型作為 Teacher,一個結構較簡單的 DNN 排序模型作為 Student。因為 Student 結構簡單,所以模型表達能力弱,于是,我們可以在 Student 訓練的時候,除了采用常規(guī)的 Ground Truth 訓練數(shù)據(jù)外,Teacher 也輔助 Student 的訓練,將 Teacher 復雜模型學到的一些知識遷移給 Student,增強其模型表達能力,以此加強其推薦效果。在模型上線服務的時候,并不用那個大 Teacher,而是使用小的 Student 作為線上服務精排模型,進行在線推理。因為 Student 結構較為簡單,所以在線推理速度會大大快于復雜模型;而因為 Teacher 將一些知識遷移給 Student,所以經(jīng)過知識蒸餾的 Student 推薦質量也比單純 Student 自己訓練質量要高。這就是典型的在精排環(huán)節(jié)采用知識蒸餾的思路。至于具體蒸餾方法,后文會介紹。當然,你也可以根據(jù)前文介紹的經(jīng)典知識蒸餾方案,自己試著想想應該怎么做。

對于精排環(huán)節(jié)來說,我覺得,知識蒸餾比較適合以下兩種技術轉換場景:

一種是排序模型正在從非 DNN 模型初次向 DNN 模型進行模型升級;在超大規(guī)模數(shù)據(jù)場景下,從非 DNN 模型切換到 DNN 模型,切換成本和付出的時間因素可能比你預想得要高,尤其是線上服務環(huán)節(jié),切換到 DNN 模型導致大量增加在線服務機器成本,這對于很多公司來說是無法接受的。如果在做模型升級的時候采取知識蒸餾方案,導致的效果是:相對線上的非 DNN 模型,即使上一個蒸餾小模型,效果也可能是有提升的,同時在線服務占用資源能降下來 ( 相對直接上個復雜 DNN 模型 ),在線服務速度快,所以可以明顯降低模型升級的成本,這樣可以相對容易地切換到 DNN 版本排序模型上來。

第二種情況是:目前盡管線上已經(jīng)采用了 DNN 排序模型,但是模型還非常簡單,這個也有利用知識蒸餾優(yōu)化效果的空間;這種情形下,現(xiàn)有在線模型的服務速度可能是足夠快的,因為在線服務模型還比較簡單,即使換成 Student 小模型,在這方面估計也差不太多。但是,可以期待通過知識蒸餾提升線上模型的推薦質量。我們可以離線訓練一個復雜但是效果明顯優(yōu)于線上簡單 DNN 排序模塊的模型作為 Teacher,然后通過知識蒸餾,訓練一個可以代替目前線上模型的 Student 小模型。如果這樣,是有可能在響應速度不降的前提下,模型效果上有所提升的。所以,感覺這種情況也比較適合采用蒸餾模型。

而對于其它情形,比如目前線上已有較為復雜的 DNN 排序系統(tǒng)的業(yè)務或者公司,至于是否要上知識蒸餾,則需要面臨一個權衡:采用知識蒸餾,線上服務模型從復雜模型切換成小模型,肯定可以明顯提高線上 QPS,減少服務資源,效率提升會比較大;但是,有可能推薦質量比線上的大模型會有下降。所以,業(yè)務場景是否接受這種指標的臨時下降?這個問題的答案決定了不同的選擇,在有些業(yè)務場景下,這是需要好好考慮考慮的。不同業(yè)務環(huán)境可能會作出不同的選擇。

2. 模型召回以及粗排采用知識蒸餾

在模型召回環(huán)節(jié),或者粗排環(huán)節(jié),采取知識蒸餾的方案,是非常自然的一個想法拓展,而且非常合算。目前,這塊基本看不到完全公開細節(jié)的技術資料,所以本文我重點談談在這塊可能采用的技術,和幾位同學討論出若干可能的方案會列在后面,感興趣的同學可以嘗試一下,在這里是很容易作出收益的,所以特別值得關注與嘗試,相信這塊用好了,會對完成你的KPI有幫助。

這里所謂的合算,怎么理解呢?因為召回或者粗排環(huán)節(jié),作為精排的前置環(huán)節(jié),有自己承擔的獨特職責,需要在準確性和速度方面找到一個平衡點,在保證一定推薦精準性的前提下,對物品進行粗篩,減小精排環(huán)節(jié)壓力。所以,這兩個環(huán)節(jié)本身,從其定位來說,并不追求最高的推薦精度,就算模型效果比精排差些,這也完全不成問題,畢竟在這兩個環(huán)節(jié),如果準確性不足可以靠返回物品數(shù)量多來彌補。而模型小,速度快則是模型召回及粗排的重要目標之一。這就和知識蒸餾本身的特點對上了,所以在這里用是特別合算的。

那么,召回或者粗排怎么用蒸餾呢?如果我們如上圖所示,用復雜的精排模型作為 Teacher,召回或粗排模型作為小的 Student,比如 FM 或者雙塔 DNN 模型等,Student 模型模擬精排環(huán)節(jié)的排序結果,以此來指導召回或粗排 Student 模型的優(yōu)化過程。這樣,我們可以獲得滿足如下特性的召回或者粗排模型:首先,推薦效果好,因為 Student 經(jīng)過復雜精排模型的知識蒸餾,所以效果雖然弱于,但是可以非常接近于精排模型效果;其次,Student 模型結構簡單,所以速度快,滿足這兩個環(huán)節(jié)對于速度的要求;再次,通過 Student 模型模擬精排模型的排序結果,可以使得前置兩個環(huán)節(jié)的優(yōu)化目標和推薦任務的最終優(yōu)化目標保持一致,在推薦系統(tǒng)中,前兩個環(huán)節(jié)優(yōu)化目標保持和精排優(yōu)化目標一致,其實是很重要的,但是這點往往在實做中容易被忽略,或者因條件所限無法考慮這一因素,比如非模型召回,從機制上是沒辦法考慮這點的。這里需要注意的一點是:如果召回模型或者粗排模型的優(yōu)化目標已經(jīng)是多目標的,對于新增的模型蒸餾來說,可以作為多目標任務中新加入的一個新目標,當然,也可以只保留單獨的蒸餾模型,完全替換掉之前的多目標模型,貌似這兩種思路應該都是可以的,需要根據(jù)具體情況進行斟酌選擇。

由以上分析,可見,召回或粗排環(huán)節(jié)的知識蒸餾方案,看上去貌似是為召回和粗排環(huán)節(jié)量身定制的推薦系統(tǒng)優(yōu)化技術選項,對于召回或者粗排優(yōu)化來說,應該是必試的一個技術選項。

下面我們討論下在推薦系統(tǒng)里,在各個環(huán)節(jié)采用知識蒸餾的可能的具體方法。精排蒸餾有兩篇公開文獻可供參考,而召回或粗排方面的蒸餾技術,很少見相關公開資料,所以后面列的多數(shù)是我和幾位同學討論的方案,除個別方法有實踐結果外,大多方法仍處于設想階段,目前并未落地,所以不能保證有效性,這點還需要注意。

03

精排環(huán)節(jié)蒸餾方法

目前推薦領域里,在精排環(huán)節(jié)采用知識蒸餾,主要采用 Teacher 和 Student 聯(lián)合訓練 ( Joint Learning ) 的方法,而目的是通過復雜 Teacher 來輔導小 Student 模型的訓練,將 Student 推上線,增快模型響應速度。

如上圖所示,所謂聯(lián)合訓練,指的是在離線訓練 Student 模型的時候,增加復雜 Teacher 模型來輔助 Student,兩者同時進行訓練,是一種訓練過程中的輔導。從網(wǎng)絡結構來說,Teacher 和 Student 模型共享底層特征 Embedding 層,Teacher 網(wǎng)絡具有層深更深、神經(jīng)元更多的 MLP 隱層,而 Student 則由較少層深及神經(jīng)元個數(shù)的 MLP 隱層構成,兩者的 MLP 部分參數(shù)各自私有。對于所有訓練數(shù)據(jù),會同時訓練 Teacher 和 Student 網(wǎng)絡,對于 Teacher 網(wǎng)絡來說,就是常規(guī)的訓練過程,以交叉熵作為 Teacher 的損失函數(shù)。而對于 Student 網(wǎng)絡來說,損失函數(shù)由兩個部分構成,一個子項是交叉熵,這是常規(guī)的損失函數(shù),它促使 Student 網(wǎng)絡去擬合訓練數(shù)據(jù);另外一個子項則迫使 Student 輸出的 Logits 去擬合 Teacher 輸出的 Logits,所謂蒸餾,就體現(xiàn)在這個損失函數(shù)子項,通過這種手段讓 Teacher 網(wǎng)絡增強 Student 網(wǎng)絡的模型泛化能力。也即:

H 是交叉熵損失函數(shù),f(x) 是 Student 模型的映射函數(shù),y 是 Ground Truth Label,z是 Teacher 的 Logits,zs 是 Student 的 Logits,λ 用于調節(jié)蒸餾 Loss 的影響程度。

這個模型是阿里媽媽在論文 "Rocket Launching: A Universal and Efficient Framework for Training Well-performing Light Net" 中提出的,其要點有三:其一兩個模型同時訓練;其二,Teacher 和 Student 共享特征 Embedding;其三,通過 Logits 進行知識蒸餾。對細節(jié)部分感興趣的同學可以參考原始文獻。

愛奇藝在排序階段提出了雙 DNN 排序模型,可以看作是在阿里的 rocket launching 模型基礎上的進一步改進。如上圖所示,Student 和 Teacher 共享特征 Embedding 參數(shù)層,Student 模型在損失函數(shù)中加入了擬合 Teacher 輸出階段的 Logits 子項,這兩點和 rocket launching 是類似的。主要改進有兩點:首先,為了進一步增強 student 的泛化能力,要求 student 的隱層 MLP 的激活也要學習 Teacher 對應隱層的響應,這點同樣可以通過在 student 的損失函數(shù)中加子項來實現(xiàn)。但是這會帶來一個問題,就是在 MLP 隱層復雜度方面,Student 和 Teacher 是相當?shù)?,我們說過,一般知識蒸餾,老師要比學生博學,那么,在這個結構里,Teacher 相比 student,模型復雜在哪里呢?這引出了第二點不同:雙 DNN 排序模型的 Teacher 在特征 Embedding 層和 MLP 層之間,可以比較靈活加入各種不同方法的特征組合功能,通過這種方式,體現(xiàn) Teacher 模型的較強的模型表達和泛化能力。

愛奇藝給出的數(shù)據(jù)對比說明了,這種模式學會的 Student 模型,線上推理速度是 Teacher 模型的5倍,模型大小也縮小了2倍。Student 模型的推薦效果也比 rocket launching 更接近 Teacher 的效果,這說明改進的兩點對于 Teacher 傳授給 Student 更強的知識起到了積極作用。更多信息可參考:

雙 DNN 排序模型:在線知識蒸餾在愛奇藝推薦的實踐

04

召回/粗排環(huán)節(jié)蒸餾方法

上面介紹了阿里和愛奇藝在精排方面的兩個知識蒸餾應用工作,目前知識蒸餾應用在推薦領域的公開資料很少,雖說上面兩個工作是應用在精排,目的是加快線上模型推理速度,但是稍微改進一下,也可以應用在召回模型以及粗排模型。

假設我們打算使用上述方案改造召回或者粗排模型,一種直觀的想法是:我們基本可以直接參照 rocket launching 的方案稍作改動即可。對于粗排或者召回模型來說,一般大家會用 DNN 雙塔模型建模,只需要將粗排或召回模型作為 Student,精排模型作為 Teacher,兩者聯(lián)合訓練,要求 Student 學習 Teacher 的 Logits,同時采取特征 Embedding 共享。如此這般,就可以讓召回或粗排模型學習精排模型的排序結果。快手曾經(jīng)在 AICon 分享過在粗排環(huán)節(jié)采取上面接近 rocket launching 的蒸餾技術方案,并取得了效果。

因雙塔結構將用戶側和物品側特征分離編碼,所以類似愛奇藝技術方案的要求 Student 隱層學習 Teacher 隱層響應,是很難做到的。粗排尚有可能,設計簡單網(wǎng)絡 DNN 結構的時候不采取雙塔結構即可,召回環(huán)節(jié)幾無可能,除非把精排模型也改成雙塔結構,可能才能實現(xiàn)這點,但這樣可能會影響精排模型的效果。

但是,問題是:我們有必要這么興師動眾,為了訓練召回或粗排的蒸餾模型,去聯(lián)合訓練精排模型么?貌似如果這樣,召回模型對于排序模型耦合得過于緊密了,也有一定的資源浪費。其實我們未必一定要兩者聯(lián)合訓練,也可以采取更節(jié)省成本的兩階段方法。

1. 召回蒸餾的兩階段方法

在專門的知識蒸餾研究領域里,蒸餾過程大都采取兩階段的模式,就是說第一階段先訓練好 Teacher 模型,第二階段是訓練 Student 的過程,在 Student 訓練過程中會使用訓練好 Teacher 提供額外的 Logits 等信息,輔助 Student 的訓練。

私以為,精排環(huán)節(jié)貌似還是聯(lián)合訓練比較好,而召回或粗排環(huán)節(jié)采取兩階段模式估計更有優(yōu)勢。為什么這么說呢?你可以這么想:如果我們的目的是希望訓練一個小的 Student 精排模型,貌似沒有太大的必要采取兩階段訓練過程,因為無論是聯(lián)合訓練也好,還是兩階段訓練也好,反正一大一小兩個模型都需要完整訓練一遍,消耗的資源類似。而如果聯(lián)合訓練,則還可以應用特征 embedding 共享、隱層響應學習等更多可選的技術改進方案。所以貌似沒有太大必要改成兩階段的模式。

但是,如果是召回模型或粗排模型作為 Student,則情況有所不同。首先,比如隱層響應等技術手段,本來召回或粗排 Student 模型就無法使用 ( 粗排如果不用雙塔,而是簡單 DNN 模型,還是可以的 ),所以聯(lián)合訓練相對兩階段訓練增加的好處不明顯。至于 Student 和 Teacher 特征 Embedding 共享,如果是在兩階段模式下,則可以改為使用 Teacher 訓練好的特征 Embedding 初始化 Student 的特征,這樣貌似損失也不大,所以兩階段模式相對聯(lián)合訓練模式,在效果方面并無明顯劣勢。另外,因為我們希望召回或者粗排模型學習精排模型,而一般而言,我們能夠拿到一個已經(jīng)訓練好的精排模型,比如最近上線的精排模型,既然這樣,我們可以直接用當前已訓練好的精排模型,讓它把用于召回模型的訓練數(shù)據(jù)跑一遍,給每個訓練數(shù)據(jù)打上Logits信息,然后,就可以按照與聯(lián)合訓練完全一樣的方式去訓練召回蒸餾模型了,優(yōu)化目標是 Ground Truth 子目標和 Logits 蒸餾子目標。上圖展示了這一過程。這樣做,明顯我們節(jié)省了精排 Teacher 的聯(lián)合訓練迭代成本。不過,這種方法是否有效不確定,感興趣的同學可以嘗試一下,不過推論起來應該是能保證效果的。

上面的方法,還是模仿精排蒸餾方式,無非改成了相對節(jié)省資源的兩階段模式。這里我們關心另外一個問題:對于召回蒸餾 Student 模型來說,是否一定要優(yōu)化那個 Ground Truth 子目標?這可能要分情況看。按理說,蒸餾模型帶上 Ground Truth 優(yōu)化目標肯定效果要好于不帶這個子目標的模型。如果我們的召回模型或者粗排模型是單目標的,比如就優(yōu)化點擊,那么明顯還是應該帶上 Ground Truth 優(yōu)化目標。但是,事實上,很可能我們手上的召回模型或粗排模型已經(jīng)是多目標的了,那么這種情況下,其實蒸餾 Student 模型就沒有太大必要帶 Ground Truth 優(yōu)化目標,因為多目標已經(jīng)各自做了這個事情了。這種情況下,獨立優(yōu)化蒸餾目標,然后將其作為多目標的一個新目標加入召回或粗排模型比較合適。

所以,我們下面介紹的方案,就拋掉 Ground Truth 優(yōu)化目標,單獨優(yōu)化蒸餾目標。如果根據(jù)蒸餾 Student 模型是否需要參考 Teacher 提供的 Logits 信息來對方法進行分類,又可以進一步劃分為參考 Logits 信息的方案,和不參考 Logits 信息的方案。按理說,參考 Logits 信息效果應該好些,但是,這樣 Student 仍然對 Teacher 有依賴,而不參考 Logits 信息的方案比較獨立,基本不需要精排模型的直接介入,所需信息直接可以在常規(guī)的推薦系統(tǒng) Log 里拿到,實現(xiàn)起來更具簡單和獨立性。而且,如果精排模型已經(jīng)是多目標的,可能很難獲得那個 Logits 數(shù)值,但是我們能夠拿到精排模塊的排序結果,這意味著 Student 在優(yōu)化蒸餾目標的時候,就已經(jīng)朝著多目標進行優(yōu)化了,是一種在召回或粗排進行非精細化多目標方向優(yōu)化的一種簡潔手段,所以有額外的好處。如果出于上述目的,此時明顯用非 Logits 方案更從容。綜合而言,從效果考慮,應該考慮引入 Logits,從獨立性和簡潔性角度,可以參考非 Logits 方案。這可能與現(xiàn)實場景相關。

2. Logits 方案

在召回或者精排采用知識蒸餾,此時,精排模型其實身兼二職:主業(yè)是做好線上的精準排序,副業(yè)是順手可以教導一下召回及粗排模型。所以,其實我們?yōu)榱俗?Teacher 能夠教導 Student,在訓練 Student 的時候,并不需要專門訓練一遍 Teacher 精排模型,因為它就在線上跑著呢。而且我們拋開了 Ground Truth 優(yōu)化子目標,所以不需要 Teacher 對訓練數(shù)據(jù)都過一遍,而只需要多做一件事情:線上精排模型在輸出排序結果的時候,對于當前判斷 <User,Item,Context> 實例,除了給出是否點擊等判斷外,只要把對應優(yōu)化目標的 Logits 數(shù)值輸出,并計入 Log 即可。這樣,召回或粗排模型可以直接使用訓練數(shù)據(jù)中記載的 Logits,來作為 Student 的訓練數(shù)據(jù),訓練蒸餾模型,上圖展示了這一過程。所以,綜合看,這種 Logits 方案,是更節(jié)省計算資源的方案。當然,上述都是我的個人推論,實際效果如何,還需要做對比實驗才能說明問題。

3. Without-Logits 方案

另外一類方法可以進一步減少 Student 對 Teacher 的依賴,或適用于無法得到合理 Logits 信息的場合,即 Student 完全不參考 Logits 信息,但是精排作為 Teacher,怎么教導 Student 呢?別忘了,精排模型的輸出結果是有序的,這里面也蘊含了 Teacher 的潛在知識,我們可以利用這個數(shù)據(jù)。也就是說,我們可以讓 Student 模型完全擬合精排模型的排序結果,以此學習精排的排序偏好。我們知道,對于每次用戶請求,推薦系統(tǒng)經(jīng)過幾個環(huán)節(jié),通過精排輸出 Top K 的 Item 作為推薦結果,這個推薦結果是有序的,排在越靠前的結果,應該是精排系統(tǒng)認為用戶越會點擊的物品。

那么,我們其實可以不用 Logits,粗排或者召回環(huán)節(jié)的 Student 的學習目標是:像精排模型一樣排序。這時,精排模型仍然是 Teacher,只是傳給召回或粗排模型的知識不再是 Logits,而是一個有序的列表排序結果,我們希望 Student 從這個排序結果里面獲取額外的知識。如果這樣的話,對于目前的線上推薦系統(tǒng),不需要做任何額外的工作,因為排序結果是會記在 Log 里的 ( 也可以用推薦系統(tǒng)在精排之后,經(jīng)過 Re-ranker 重排后的排序結果,這樣甚至可以學習到一些去重打散等業(yè)務規(guī)則 ),只要拿到 Log 里的信息,我們就可以訓練召回或粗排的 Student 蒸餾模型。

也就是說,對于召回或者粗排模型來說,它看到了若干精排的排序結果列表,精排模型的知識就蘊含在里面,而這可以作為 Student 模型的訓練數(shù)據(jù)來訓練蒸餾模型。很明顯,這是一個典型的 Learning to Rank 問題。我們知道,對于 LTR 問題,常見的優(yōu)化目標包括三種:Point Wise、Pair Wise 和 List Wise。于是,我們可以按照這三種模式來設計召回模型或粗排模型的蒸餾學習任務。其中,下面文中提到的 Point Wise 方式我們已親試有效,至于 Pair Wise 和 List Wise 蒸餾,仍需實驗才能證明是否有效。

4. Point Wise 蒸餾

在 Point Wise 優(yōu)化目標下理解召回模型蒸餾,就是說,我們把精排模型的有序輸出結果作為訓練數(shù)據(jù),把學習目標看作一個二分類問題,通過這種方式試圖學習精排模型的排序偏好。這種情況下,分類模型的正負例如何設定呢?我們不能把精排模型輸出結果列表里用戶行為過的 Item 作為正例,因為這樣你等于在學比如點擊或者互動等用戶行為模型,而不是在學精排模型的排序偏好。一般而言,可以這么做:假設精排每次返回 N 個結果,我們取列表前 Top K 的排序靠前的結果,將其指定為正例,位置K之后的例子,作為負例。意思是通過排名最高的一部分數(shù)據(jù),來學習精排模型的排序偏好。這樣,我們就可以拿這些非標注的排序結果來訓練召回模型。當然,這里的K是個超參,怎么定更合理,可能需要實驗來確定。上圖展示了這一做法。

通過這種方式,我們就可以讓召回模型從精排模型的排序列表中學到排序偏好知識,達成知識蒸餾的目標。這種做法,有個可以改進的點:上述切分正負例的方法,并未強調物品排序位置。比如假設 K 值取5,就是排名前5的物品作為正例,之后的作為負例。正例中排名 Rank 1 的物品,和排名 Rank 4 的物品,都各自作為一條正例,沒有差別。但是,我們知道,Rank 1 應該排名比 Rank 4 更高,但模型訓練過程并沒有利用這個信息。我們可以通過對正例引入 Loss Weight 的簡單處理方法來引入這一信息,比如引入一個跟位置相關的 Weight 函數(shù):

其中,Rank Position 是 Item 的排名名次,將其作為變量引入函數(shù),以此映射函數(shù)的數(shù)值作為正例的 Loss Weight,負例 Loss Weight 權重與常規(guī)訓練一樣,可認為缺省 Loss Weight 權重為1。在具體設計這個函數(shù)的時候,指導思想是:希望這個函數(shù)能做到,排名越靠前的正例,對應的 Loss Weight 越大。將這個 Loss Weight 引入損失函數(shù)中,就可以讓模型更關注排名靠前的物品。比如,我們可以這么定義函數(shù):

這里,Position 是排名位置,比如:

Rank Position=1,則 Position=1

Rank Position=4,則 Position=4

通過這種定義,就能使得排名靠前的正例,對應的 Loss Weight 越大,而 a 可以作為調節(jié)權重,來放大或者縮小排名位置的影響。當然,這里還可以引入其它各種花樣的 Loss Weight 定義方法。

熱門微博嘗試了上述思路 FM 版本的蒸餾召回模型 ( 多目標召回模型基礎上增加蒸餾召回目標 ),線上 AB 測試效果,在時長、點擊、互動等多個指標都有2+%到6+%之間的不同程度的提升作用,目前正在嘗試更多變體模型。

5. Pair Wise 蒸餾

如果我們用 Pair Wise Loss 的方式來看待召回模型優(yōu)化問題,可以這么思考:精排的排序結果是有序列表,在列表內隨機任意抽取兩個 Item,都能維持序關系。那么很明顯,我們可以構造成對的訓練數(shù)據(jù),以 Item 為正例,以排在 Item 后面任意某個 Item 作為負例,以此方式構造訓練數(shù)據(jù)來訓練模型。在推薦領域,最常用的 Pair Wise Loss 是 BPR 損失函數(shù),于是我們可以如法炮制,如上圖所示,假設對于排在第三位的 Item 作為正例,可以抽取排名在其之后的 Item,構造足夠多的成對訓練數(shù)據(jù),以此目標來優(yōu)化召回模型,使得模型可以學會 Item 間的序列關系。

對 <Pos,Neg> 成對的訓練數(shù)據(jù),BPR 損失函數(shù)希望某個預測系統(tǒng)能夠對正例的得分要高于負例的得分,具體計算方法如上圖所示,因為是個基礎概念,此處不展開介紹。

6. List Wise 蒸餾

Point Wise Loss 將學習問題簡化為單 Item 打分問題,Pair Wise Loss 對能夠保持序關系的訓練數(shù)據(jù)對建模,而 List Wise Loss 則對整個排序列表順序關系建模。List Wise Loss 經(jīng)常被用在排序問題中,但是有個現(xiàn)實困難是訓練數(shù)據(jù)不好做,因為排序列表里每個 Item 的價值需要人工標注。

我們來考慮下召回蒸餾模型的 List Wise Loss 優(yōu)化目標怎么做的問題。既然我們能拿到大量精排給出的有序列表,貌似我們是不缺訓練數(shù)據(jù)的,但是這里隱藏著個潛在的問題,問題等會我們再說。我們先說個應用案例,Instagram 的推薦系統(tǒng)在初排階段采用知識蒸餾的方法,使用精排作為 Teacher 來指導 Student 的優(yōu)化,Student 的優(yōu)化目標用的是 NDCG,這是一種非常常用的 List Wise Loss 函數(shù),對 Instagram 推薦系統(tǒng)感興趣的同學可以參考文章:

Instagram 推薦系統(tǒng):每秒預測 9000 萬個模型是怎么做到的?

不過遺憾的是,上述文章并未說明是具體怎么做的,只能靠我們自己來摸索一下。其實細想一下,在這里用 NDCG 來學習精排輸出的有序列表,這面臨待解決的問題:用 NDCG 是有前提條件的,有序列表中的每個 Item,都需要帶有一個價值分。比如對于搜索排序來說,最相關 Item 是5分,次相關 Item 是4分,類似這種分數(shù),這一般是人工標注上的,而 List Wise Loss 就希望排序系統(tǒng)能夠將列表整體獲得的價值分最大化。上面我們提到存在的問題就是:精排系統(tǒng)只給出了 Item 之間的排序關系,每個 Item 并沒有提供對應的價值分。

那么,如果想用 NDCG 或者類似的其它 List Wise 損失函數(shù),怎樣才能得到列表內每個 Item 的價值分呢?人工打標注顯然是不現(xiàn)實的。這里,感覺可以利用一下精排系統(tǒng)輸出的 Logits 信息,假設我們可以設計一個函數(shù):

這個函數(shù)以 Logits 分數(shù)為輸入變量,將其映射到比如1分到5分幾檔上,Logits 得分越大,則對應檔次分越高。如果我們能做到這點,就可以使用 List Wise 損失函數(shù)來訓練召回或粗排模型了。這個函數(shù)定義有各種可能的方法,這里不展開,各位有興趣的同學可以試試。

如果我們想更簡單點,不用 Logits 分數(shù),那么有更加簡單粗暴的方法,比如強行將有序列表排在 Top 5 的 Item 設置成5分,排在6到10位置的 Item 賦予4分…..類似這種。這等價于這么定義 F 函數(shù)的:

這個公式充分展示了工業(yè)界的簡單暴力算法美學,我相信類似的公式充斥于各大公司的代碼倉庫角落里。

05

聯(lián)合訓練召回、粗排及精排模型的設想

如果我們打算把知識蒸餾這個事情在推薦領域做得更徹底一點,比如在模型召回、粗排以及精排三個環(huán)節(jié)都用上,那么其實可以設想一種"一帶三"的模型聯(lián)合訓練方法。

如上圖所示,我們可以設計一個很復雜但是效果很好的排序模型作為 Teacher,然后和召回、粗排、精排三個 Student 聯(lián)合訓練,精排 Student 可以使用 Logits 以及隱層特征響應等各種手段優(yōu)化,追求效果好前提下的盡可能速度快,召回和粗排 Student 則追求在模型小的前提下追求效果盡可能好。因為排序 Teacher 比較復雜,所以能夠提供盡可能好的模型效果,通過它來帶動三個環(huán)節(jié)蒸餾模型的效果,而模型速度快則是蒸餾方法的題中應有之意。

這樣做有不少好處,比如可以一次訓練,多環(huán)節(jié)收益;再比如可以最大程度上保持推薦系統(tǒng)各個環(huán)節(jié)的目標一致性等;做起來又不太難,所以看上去是個可行的方案。

最后,歸納下全文,推薦系統(tǒng)在各個環(huán)節(jié)采取知識蒸餾方法,是可能達到提升推薦質量的同時,提高推薦系統(tǒng)速度的,一舉兩得,比較容易產生效益,所以是值得深入探索及應用的。

致謝:上面列的很多想法是在和幾位同學的討論中形成或完善的,感謝微博機器學習佘青云、王志強等同學提出的思路和建議。

今天的分享就到這里,謝謝大家。

文章作者張俊林,中國中文信息學會理事,中科院軟件所博士。目前擔任新浪微博機器學習團隊 AI Lab 負責人。在此之前,張俊林曾經(jīng)在阿里巴巴任資深技術專家并負責新技術團隊,以及在百度和用友擔任技術經(jīng)理及技術總監(jiān)等職務。他是技術書籍《這就是搜索引擎:核心技術詳解》(該書榮獲全國第十二屆優(yōu)秀圖書獎)、《大數(shù)據(jù)日知錄:架構與算法》的作者。

好消息!

小白學視覺知識星球

開始面向外開放啦??????




下載1:OpenCV-Contrib擴展模塊中文版教程
在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。

下載2:Python視覺實戰(zhàn)項目52講
小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

下載3:OpenCV實戰(zhàn)項目20講
小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

交流群


歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~


瀏覽 74
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 日韩欧美性爱| 亚洲在线a| 成人小说亚洲一区二区三区| 男人插女人网站| 国产精品XXX视频| 久久伊思人在| 国产成人免费在线视频| 三级午夜在线无码| 久久久人妻| 久久这里都是精品| 91免费看| 国产熟妇婬乱一区二区| 国产成人精品AV在线观| 日本爱爱视频| A级黄色网| 性欧美成人播放77777| 免费无码成人| 一本色道无码人妻精品| 亚洲人成人无码.www粉色| 无码中文在线| 亚洲人成色777777无码| 一曲二曲三曲在线观看中文字| 成人网站免费在线观看| 久久久久久久久久久高清毛片一级 | 色噜噜网站| 亚洲欧洲高清无码| 欧美老妇操逼视频| 手机毛片| 91免费视频在线| 波多野结衣不卡| 日逼片A| 欧美日韩加勒比| 亚洲午夜福利视频在线观看| 老太老熟女城中层露脸60| 熟女人妻ThePorn| 日韩高清无码专区| 无码群交东京热| 午夜黄片| 中文字幕在线欧美| 国产欧美日韩综合在线视频| 久久夜色精品国产噜噜亚洲AV | 亚洲AV无码成人精品区东京热| 国产91丝袜在线播放| 国产日本在线观看| 91在线无码精品秘入口三人 | 东京热视频网站| 久久久亚洲AV无码精品色午夜| 插逼免费视频| 久久精品秘一区二区三免费| 最新av| 久草视频网站| 91在线91| 亚洲日逼网站| 日韩精品一区二区三区黄冈站长| 日逼免费网站| 脓肿是什么原因引起的,该怎么治疗 | 亚洲一区无码在线观看| 成人免费看A片| 91免费看片| 天天干天天操天天射| 手机免费Av| 中文一区在线观看| 日韩乱伦av| 国产精品综合激情| 久热久| 天堂无吗| 91成人小视频| 伊人精品视频| 免费中文视频| 懂色AV无码中字幕一区| 91无码人妻一区二区| 色哟哟av| 佐山爱人妻无码蜜桃| 久久久久久久久久久久高清毛片一级 | 操逼免费| 国产看色免费| 国产a级视频| 嫩草亚洲小泬久久夂| 在线免费小黄片| 26uuu国产| 91视频久久久| 亚洲AV官方网站| AAA精品| 大香蕉欧美视频| 婷婷综合视频| 丁香花免费高清视频小说完整 | 日韩欧美操| 国产激情视频在线观看| 日日综合网| 怡春院久久| 特黄AV| jizz免费视频| 色噜噜狠狠一区二区三区牛牛影视 | 亚洲第一av| 97综合久久| 亚洲人成人无码一区二区三区| 亚洲清高毛无码毛片| 在线免费观看国产| 免费无码国产在线55| 五月天福利视频| 夜色321| 日本久热| av在线无码| 影音先锋蜜桃| 日韩欧美小视频| 午夜无码鲁丝片午夜精品一区二区 | 亚州在线中文字幕经典a| 中文字幕一区二区三区的重点问题| 久久久久少妇| 五月天AV在线| 搡BBB搡BBBB搡BBBB| 激情白浆| 麻豆啪啪| 青娱乐成人在线视频| 欧美激情爱爱| 中文字幕福利电影| 大香蕉伊人综合网| 丁香五月网| 男人天堂无码视频| 日本黄色大片| 特级爱爱视频| 九九精品国产| 人人艹在线观看| 成人精品三级麻豆| 亚洲第一狼人综合网| 国产高清成人| 国产一级内射| 韩国无码一区二区| 在线不卡| 天天操夜夜干| 亚洲第一视频| 中文字字幕在线| 波多野42部无码喷潮更新时间| 日本一级片免费看| 影音先锋亚洲资源| 国产网站视频| 99热伊人| 国产无码高清在线| 日韩成人综合| 亚洲无码av中文字幕| 日韩AV无码电影| 亚洲成人影音先锋| 国产成人网| 99精品视频在线免费观看| www.插插插| 亚洲中文字幕在线无码| 国产精品成人无码免费| 蜜臀AV一区二区| 日韩精品区| 一区二区三区无码区| 人人操在线| av无码一区二区| 中文字幕视频一区| 肏屄视频在线观看| 亚洲AV无码成人专区| 欧美日韩在线播放| 人人做人人做人人做,人人做全句下一 | av久| 西西人体444rt高清大胆模特 | 成人毛片100免费观看| 91黄在线观看| 日本不卡视频在线| 69乱伦视频| 国产高清视频在线观看| 欧美成人看片黄a免费看| 炮友露脸青楼传媒刘颖儿| 国产灌醉| av无码免费观看| 懂色中文字幕| 亚人精品中文字幕在线观看| 思思操在线视频| 良妇露脸15P| 三级av在线观看| 日韩人妻无码精品| 欧美视频a| 先锋影音亚洲AV每日资源网站| 日本一区二区三区在线视频| 欧美综合自拍| 中文字幕久久播放| 亚洲综合另类| 免费尻屄视频| 久久成人综合网| 欧美丰满老熟妇XXXXX性| 玩弄大荫蒂视频| 黄色伊人| 嫩草视频在线观看| 亚洲AV成人片色在线观看麻豆 | 麻豆久久久| 精品无码人妻一区二区媚黑| 青娱乐国产AV| 黑人Av| 特黄视频在线观看| 91精品无码| 五月婷婷综合在线| 2021国产精品视频| 日韩婷婷| 亚洲涩情91日韩一区二区| 中文字幕在线观看网| 肏屄视频在线观看| 亚洲无码成人片| 亚洲第一色婷婷| 色偷偷综合| 免费草逼视频| 中文字幕在线观看日本| 鲁鲁鲁鲁鲁鲁鲁777777| 国产久久久| 日韩无码免费播放| 五月黄色电影| 色图插插插| 乱婬妺妺躁爽A片| 欧美网站在线观看| 91成人久久| 国产在线观看97| 亚洲中文无码在线| 五月天婷婷基地| 夜夜骚av.一区二区三区四区| 国产AV大香蕉| 国产激情综合五月久久| 操逼在线免费观看| 亚洲中文字幕免费在线观看| av一卡二卡| 手机看片久草| 视频一区中文字幕| 中文字幕国产在线| 国产高清免费无码| 欧美在线视频一区二区| 自拍毛片| 黄色视频免费在线观看| 17c精品麻豆一区二区免费| ThePorn-成人网站入口| 日韩加勒比在线| 日本午夜三级视频| 人人操人人色| 久久国产av| 少妇搡BBBB搡BBB搡造水多| 国产精品久久久久久无人区| 欧美激情伊人| 久草社区在线| 91精品久久久久久久| 欧美日韩一区在线| 国产传媒_色哟哟| 91人人精品| 国产伦精品一区二区三区妓女下载| 天天插在线视频| A在线观看| 91豆花成人网站| 伊人大香蕉综合在线| 一级AA视频| 四虎无码视频| 91人妻一区| 成人国产精品| 久99久热| 亚洲无码视频一区二区| 国产AV播放| 蜜桃人妻无码| 日韩欧美高清无码| 爱爱亚洲| 成人毛片在线大全免费| 午夜福利影院在线| 翔田千里无码精品| 中文字幕福利电影| 日韩无码网| 日本人妻视频| 亚洲十八禁| 这里都是精品| 亚洲黄片免费看| 黄色小网站在线观看| 国产a毛片| 国产麻豆精品成人毛片| 三级片导航| 无码1区| 精品中文字幕在线| 欧美精品乱码99久久蜜桃| 国产无码电影在线观看| 九热精品| 久一区| 亚洲天堂三级片| 青草久久久久| av一卡二卡| 黄色A毛片| 国产农村乱婬片A片AAA图片| 黄色电影AV| www.一级片| 欧美精品成人网站| 老妇槡BBBB| www黄色片| 99er在线观看| 艹逼网站| 特黄AAAAAAAA片免费直播| 人人澡视频| 暖暖日本在线| 亚洲成人无码网站| 内射视频在线免费观看| 三级午夜在线无码| 大陆一级片| 亚洲欧美日韩一区| 成人做爰黄AAA片免费直播岛国 | 91乱子伦国产乱子伦| www黄色视频| 岛国AV在线| 日本天堂Tv视频在线观看| 精品人妻一区二区三区四区不卡在 | 天天看天天爽| 欧美成人中文字幕在线| 黄网在线播放| 国产高清色| 大香蕉av在线观看| 成人在线精品| 91狠狠综合| 99视频在线| 成人A电影| 一级片直播| 国产精品一| 欧美国产综合在线| 国产做受91电影| 最新色站| 久久亚洲国产| 日韩一区二区视频| 天天操嫩逼无套视频| 国产精品一品二区三区的使用体验 | 人人澡人人看| 亚洲成人在线视频| 麻豆精品国产| www.欧美精品| 欧美不卡一区二区| 91肏屄视频| 欧美日韩免费一区二区三区| 久久视频免费观看| A片免费网站| 日韩美女免费性爱视频| 欧美日韩视频一区二区| 撒尿BBw搡BBwBBw| 免费A片国产毛无码A片| 亚洲性生活| 中国丰满妇BBwBBwHD| 亚洲三级片在线| 成人网在线观看| 国产精品一卡二卡三卡| 中国婬乱a| 东京热一区二区三区| 精品视频在线播放| 日本乱码视频| 韩国无码高清视频| 色五月在线视频| 男女日比视频| 插丰满少妇在线观看| 国产精品久久久久久亚洲毛片| 91人人妻人人做人人爽| 12—13女人毛片毛片| 色色网五月天| 亚洲国产免费| 五月丁香欧美| 欧美日韩男女淫乱一区二区| 中文字幕一级片| 久久综合操| 色片在线| 天堂a中文在线| 五月天视频网| 国产成人大香蕉| 激情开心五月天| 乳揉みま痴汉电车羽月希免费观看 | 丁香六月婷婷综合缴| 亚洲图片在线观看| 欧美一区二区三区在线| 18禁成人A∨片| 欧美日韩精品一区二区三区视频播放 | 日韩激情视频在线观看| 在线观看视频亚洲| 欧美大黑逼| 亚洲av性爱| 麻豆精品国产传媒| 欧美三级欧美一级| 欧美色大香蕉| 国产白丝精品91爽爽久久| 天天舔天天日| 男人AV网| 色欲熟妇| 亚洲少妇一区| 4080yy午夜理论片成人| 西西4444大胆无码视频| 91香蕉在线观看| 亚洲福利久久| 牛牛AV在线| 人人色人人爱| 免费看A片视频| 精品美女视频在线观看免费软件| 国产偷拍| 日韩精品一二| 婷婷五月丁香激情| 日韩一级一片| 国产精品码ls字幕影视| 中文字幕AV无码| 国产精品久久久久久久久久二区三区| 夜夜骚av.一区二区三区四区| 欧一美一婬一伦一区二区三区黑人| 大香蕉伊人在线手机网| 亚洲欧美久久久| 五月婷婷视频| 在线免费亚洲| 毛片91| 黄色在线欣赏| 久久夜色精品国产噜噜亚洲AV| 成人无码区免费AV毛片| 久久六六| 国产不卡一区| 国产精品91久久久| 精品人妻一区二区三区在线视频不卡| 97超碰碰| 在线中文字幕亚洲| 在线无码AV| 欧美五区| 韩国无码专区| 中文字幕免费中文| 一本一道伊人99久久综| 超碰在线中文字幕| 婷婷深爱激情| 波多野结衣无码电影| 亚洲人成77777| 国产一二三| 亚洲一二三四区| 熟妇导航| 激情综合视频| 丹麦电影《下午》| 囯产精品一区二区三区线一牛影视1| 国产乱子伦日B视频| 午夜天堂在线| gay成人在线观看| 日韩一区在线播放| 欧美第一页| 91亚洲精选| av资源在线| 中文无码在线观看中文字幕av中文 | 91香蕉视频在线看| 91九色91蝌蚪91窝成人| 国产成人视频在线播放| 国产精品77777| 欧美性爱一级视频| 欧美色国| 亚洲视频在线观看中文字幕| 久久久久无码精品国产91福利| 丁香色综合人妻| 欧美成人性爱图片| 欧美夜夜草视频| 俺也去五月婷婷| 精品无码免费看专区| 欧美一级AA大片免费看视频| 日韩女人性爱| 乱伦五月| 成人视频123| 久久新视频| av操逼网| 欧美Aⅴ| 少妇69p| 激情视频在线免费观看| 国产精品色婷婷| 中文AV字幕| 大香蕉尹人在线视频| 在线免费观看AV片| 婷婷色视频| 免费一级无码婬片A片APP直播| 久久久久久久久久久国产| 在线观看视频免费无码| 在线观看国产免费视频| 偷拍亚洲天堂| 蜜桃无码一区| 亚洲www啪成人一区二区麻豆| 亚洲AV永久无码成人| 在线看黄网| 久久爆乳一区二区三区| 婷婷丁香一区二区三区| 日韩免费Av| 一级大片| 欧美成人中文字幕在线| 婷婷五月天激情丁香| 大香伊人中文字幕精品| 亚洲黄色视频免费观看| 色五月婷婷AV| 在线播放JUY-925被丈夫上司侵犯的第7天 | 影音先锋在线成人| 99自拍视频| 国产无码三级| 久久久久久黄片| 91人人人| 热久久在线观看| 动漫日逼| 奇米久久| 亚洲精品乱码久久久久久蜜桃91| 在线观看www视频| 亚洲一级无码视频| 国产精品国产自产拍高清AV| 影音先锋国产资源| 淫香淫色天天影视| 人妻人人操| 中文字幕你懂的| 中文字幕一区二区三区人妻电影| 男女拍拍视频| 五月婷婷六月天| 成熟的国模冰莲[2]| 黄色成人视频网站在线观看| 天天干天天操天天| 影音先锋国产精品| 激情午夜av| 免费69视频| 免费一级黄色片| 北条麻妃网址| 久久国产精品免费视频| 肏屄视频在线看| 青草网在线观看| 九色国产| 亚洲69v久久久无码精品| 淫荡五月天视频导航| 天天撸在线视频| 成人午夜视频在线观看| 青青草在线观看免费| 色综合天天| 免费看成人A片无码照片88hⅤ| 91原创国产内射| 国产三级国产三级国产普通话 | 性BBwBBwBBwBBw禽| 久操福利视频| 亚洲二区视频| 国产g蝌蚪| 国产精品色哟哟| 97免费| 国产又爽又黄视频在线看| 国产一区二区三区成人| 国产福利网| 99这里有精品| a片视频免费| 99热在线中文字幕| 中文无码在线观看| 豆花视频成人精品视频| 无码人妻一区二区三区免水牛视频| 97人妻一区二区精品免费视频| 五月丁香久久| 色婷婷中文字幕| 丁香五月激情啪啪啪| yjizz国产| 竹菊影视一区二区三区| 久久久91| 91日日夜夜| 午夜性爱视频| 黄色一级电影网| 6969电视影片最新更新| 老熟女痒到不行-ThePorn| 十八禁无码网站在线观看| 波多野结衣国产区42部| 强开小嫩苞毛片一二三区| 色婷婷在线播放| 97碰碰碰| 亚洲美女免费视频| 国产伊人网| 黄色片在线视频| 天堂在线最新资源| 久久国产av| 一级免费A片| 亚洲三级电影在线观看| 啪啪成人视频| 国产91白浆四溢| 精品无码一区二区三| 中文无码电影| 日本成人电影在线观看| 男女啪啪啪网站| 日韩av中文字幕在线播放 | 色噜噜在线观看| 亚洲中文视频| 国产欧美一区二区三区在线看蜜臀 | 国产中文字幕免费| 黄网站欧美内射| 中日美朝美女一级片免费看| 一区二区三区在线观看视频| 蜜臀AV成人精品| 亚洲v区| 另类老妇极品BBWBBw| 操B视频在线| 成人性生活一级片| 超碰免费97| 成人无码视频在线观看| 蜜芽成人网站| 久久H| 无码欧精品亚洲日韩一区| 老司机AV| 狠狠插狠狠操| 夜夜骚av.一区二区三区四区 | 影音先锋av色| 国产成人一区| 日韩中文字幕无码| 亚洲精品第一页| 九色PORN视频成人蝌蚪自拍 | 91ThePorn国产| 亚洲福利久久| 欧美三级网站| 熟女中文字幕| 99免费精品视频| 丁香五月天啪啪| 久久久久麻豆V国产精华液好用吗 色噜噜狠狠一区二区三区牛牛影视 | 国产激情AV| jizz99| 色婷婷在线视频观看| 影音先锋av资源在线| 黄色a片视频| 中文激情网| 人妻少妇精品视频一区二区三区| 九九草在线视频| 国产久久久| 成人黄色A片| 伊人五月天激情| 日韩操操操| www.婷婷六月天| 乱子伦国产精品视频一级毛| 九九热视频99| 国产精品人人人人| 热久久在线| 日韩大屌操| 人人做人人爽| 大香蕉尹人在线| 天天看天天操| 久久国产av| 国产亚洲精品久久久久动| 国产成人在线免费| 日韩高清无码网站| 无码无卡| 日本天堂在线视频| 国产我不卡| 日韩综合精品| 激情五月天色色| 久月婷婷| 天天色区| 男人天堂99| 北条麻妃无码在线| 亚洲AV秘无码一区二三月夜| 天堂免费视频| 五月婷婷在线播放| 亚洲日韩av在线| 一本大道DVD中文字幕| 欧美激情爱爱| 高清无码免费视频| 无码AV一区二区| 骚逼影视| 97人妻一区二区精品视频| 91在线无码精品秘入口电车| 中文字幕乱在线| 吴梦梦无码| 国产一毛a一毛a在线观看| 激情久久五月天| 中文AV第一页| 久久夜色视频网| 午夜福利高清在线观看| 中文字幕在线看| 国产在线观看你懂的| 97这里只有精品| 99国产在线观看| 日韩视频一区二区三区| 综合无码| 都市激情亚洲| 天堂中文网| 青草91| 超碰人人操人人| 俄女兵一级婬片A片| 国产精品久久久久久久久久九秃| 成人看片黄a免费看视频| 久久久久久久网站| 成人婷婷| 日韩高清无码一区二区三区| 影音先锋av资源网站| 青娱乐最新官网| 亚洲一区二区在线视频| 男人的天堂免费视频| 国内自拍视频在线观看| 色伊人| 日本少妇高潮| 一本色道久久综合熟妇| 欧美亚洲性爱| 欧一美一伦一A片| 成人黄色大香蕉| 浮力影院久久| 亚洲精品国产精品乱玛不99| 日韩影音| 久久911| 国产在线观看97| 色丁香六月| 成人在线看片| 日日騒av无码| 国产乱子伦一区二区三区视频| 高清毛片AAAAAAAAA郊外| 久草视频资源| 色噜噜狠狠一区二区三区| 一级a一级a爰片免费免免中国A片| 免费视频久久久| 91久久人澡人妻人人澡人人爽| 91精品人妻一区二区三区四区| 青青草原免费在线视频| 免费黄网站在线观看| 色情片免费看| 婷婷国产精品视频| 色色综合视频| 国产香蕉精品视频| 熟女嗷嗷叫高潮合集91| 黄色直播在线观看| 92丨九色丨偷拍老熟女| 日韩国产成人| 都市激情亚洲| 成人无码专区| 奇米久久| 4虎亚洲人成人网www| 日韩图片区小说视频区日| 亚洲天堂av在线免费观看| 91久久久久久久91| av在线观看网站| 91就去干| 国产色色视频| 亚洲乱伦小说网| 蜜桃视频网址| 69色综合| 日逼网站免费观看| 欧美第1页| 欧美艹逼| 国产精品久久久久久久久免费无码 | 伊人在线观看视频| 日韩中文字幕在线观看| 欧美熟女性爱| 五月婷婷啪| Www.黄色| 伊人大香在线| 人人爽人人做| 99久久婷婷国产综合精品漫| 三级亚洲| 国产精品网站在线观看| 国产第一页在线观看| 大乳奶一级婬片A片| 青青草免费在线视| 最新日韩中文字幕| 蜜桃精品一区二区| 日韩视频91| 丁香五月天av| 日本内射在线观看| 欧美人妻少妇| 久久久精品人妻| 嘿咻无码推油| 亚洲高清视频一区| 黄色不卡视频| 久久综合17p| 成人免费A片喷| 丁香婷婷五月色成人网站| 91在线无码精品秘| 波多野结衣无码视频在线观看| 91福利在线观看| 欧美在线国产| 四虎午夜福利| 亚洲AV成人一区二区三区不卡| 日韩AV成人电影| 国产玖玖| 日韩精品五区| 大香蕉视频在线观看| 色丁香视频在线观看的| 亚洲AV无码高清| 玖玖爱这里只有精品| 高清无码第一页| 五月丁香性爱| 熟妇在线观看| 狠狠狠操| 国产中文人人国际| 中国熟睡妇BBwBBw| 国产精品日韩高清北条麻衣| sm在线观看| A级片在线观看| 免费无码在线观看| 亚洲一区二区三区在线++中国| 亚洲精品天堂无码| 久久老女人| 蝌蚪窝久久| 亚洲一区在线免费观看| 日本色色视频| 中文字幕免费视频在线播放| 丝袜二区| 国产视频无码在线| 大香蕉1024| 99色网站| 中文字幕+乱码+中文乱码91| AAA激情| 三级成人AV| 青娱乐免费视频| 五月婷婷激情综合| 亚洲精品国产精品国自产在线| 中文字幕免费在线观看| 色99在线视频| 亚洲av网站在线观看| 国产人妻在线| 护士小雪的yin荡高日记H视频 | 热无码av| 91社区成人影院| 国产嫩苞又嫩又紧AV在线| 天天日夜夜艹| 亚洲天堂免费视频| 亚洲日韩免费在线观看| 欧美MV日韩MV国产网站| 婷婷综合亚洲| 一级黄色视频在线观看| 婷婷五月在线| 亚洲精品成人无码熟妇在线| 国产深喉视频| 一区二区水蜜桃| 国产电影一区二区三区| 日韩免费福利视频| 热久久最新地址| Av黄色| 91蝌蚪网| 污网站在线观看| 无套内射免费视频| 性爱视频网页| 视频一区二区三区在线观看| 操逼大全| 精品福利一区二区三区| 日韩精品无码一区二区三区| 999国产视频| 五月婷婷色色| 嘿咻无码| 黄色国产视频在线观看| 亚洲乱伦电影| 翔田千里无码XXXXXX| 国产一区二区00000视频| 日韩黄色片在线观看| 91成人福利视频| 日韩午夜精品| 精品中文在线视频| 免费看黄色毛片| 国产亚洲欧美精品综合在线| 丰满欧美熟妇免费视频| 欧美色色影院| 欧美成人精品三级网站| 五月天婷婷丁香综合视频| 香蕉视频国产| 欧美偷拍一区二区| 成人黄网站免费视频| 国产精品乱| 国精产品乱码一区一区三区四区| 五月丁香在线播放| 日日搔av一区二区三区| 真实国产乱子伦毛片| 乳揉みま痴汉电车羽月希免费观看 | 黄色片视频在线观看| 人人爽人人爽| 特级爱爱视频| AV福利在线| 大香蕉三级片| 美女啪啪网站| 先锋久久| HEZ-502搭讪绝品人妻系列 | 山西真实国产乱子伦| 综合无码| 在线99精品| 五月天婷婷成人| 人人干人人干人人| 久久久久久久久久国产精品免费观看-百度 | 超碰在线网站| v天堂在线| 婷婷五月天成人社区| 日本人妻在线视频| 日韩无码小电影| 一级性生活视频| 欧美成人福利在线观看| 狠狠干大香蕉| 久久中文字幕综合| 日韩免费高清无码视频| 激情黄色视频| 国产三级片网站| 午夜视频成人| 99福利视频| 国产高清自拍| 天天射日| 精品国产黄色| 91人人操| 亚洲人人18XXX—20HD| 日逼视频免费| 一道本在线| 国产精品视频在线播放| 韩国精品在线| 欧美一级a| 亚洲毛片亚洲毛片亚洲毛片| 丝袜足交在线| 漂亮人妻吃鸡啪啪哥哥真的好| 中文字幕国产在线观看| www.精品视频| 激情男人网| 内射网站在线看| 福利视频亚洲| 香蕉av在线播放| AV色天堂| 久久国产av| 精品国产午夜福利| 成人AV三级片| 日本不卡二区| h成人在线| 一区二区三区四区高清无码 | 国产又粗又长| AV无码人妻| 亚洲视频a| 在线无码视频| 国产免费性爱| 99视频在线观看免费|