3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

从FM推演各深度学习CTR预估模型

發布時間:2024/1/17 pytorch 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从FM推演各深度学习CTR预估模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文的PDF版本、代碼實現和數據可以在我的github取到。

1.引言

點擊率(click-through rate, CTR)是互聯網公司進行流量分配的核心依據之一。比如互聯網廣告平臺,為了精細化權衡和保障用戶、廣告、平臺三方的利益,準確的CTR預估是不可或缺的。CTR預估技術從傳統的邏輯回歸,到近兩年大火的深度學習,新的算法層出不窮:DeepFM, NFM, DIN, AFM, DCN……?
然而,相關的綜述文章不少,但碎片羅列的居多,模型之間內在的聯系和演化思路如何揭示?怎樣才能迅速get到新模型的創新點和適用場景,快速提高新論文速度,節約理解、復現模型的成本?這些都是亟待解決的問題。?
我們認為,從FM及其與神經網絡的結合出發,能夠迅速貫穿很多深度學習CTR預估網絡的思路,從而更好地理解和應用模型

2.本文的思路與方法

  • 我們試圖從原理上進行推導、理解各個深度CTR預估模型之間的相互關系,知其然也知其所以然。(以下的分析與拆解角度,是一種我們嘗試的理解視角,并不是唯一的理解方式)
  • 推演的核心思路:“通過設計網絡結構進行組合特征的挖掘”
  • 具體來說有兩條:其一是從FM開始推演其在深度學習上的各種推廣(對應下圖的紅線),另一條是從embedding+MLP自身的演進特點結合CTR預估本身的業務場景進行推演(對應下圖黑線部分)。?


  • 為了便于理解,我們簡化了數據案例——只考慮離散特征數據的建模,以分析不同神經網絡在處理相同業務問題時的不同思路
  • 同時,我們將各典型論文不同風格的神經網絡結構圖統一按照計算圖來繪制,以便于對比不同模型
  • 3.FM:降維版本的特征二階組合

    CTR預估本質是一個二分類問題,以移動端展示廣告推薦為例,依據日志中的用戶側的信息(比如年齡,性別,國籍,手機上安裝的app列表)、廣告側的信息(廣告id,廣告類別,廣告標題等)、上下文側信息(渠道id等),去建模預測用戶是否會點擊該廣告。?
    FM出現之前的傳統的處理方法是人工特征工程加上線性模型(如邏輯回歸Logistic Regression)。為了提高模型效果,關鍵技術是找到到用戶點擊行為背后隱含的特征組合。如男性、大學生用戶往往會點擊游戲類廣告,因此“男性且是大學生且是游戲類”的特征組合就是一個關鍵特征。但這本質仍是線性模型,其假設函數表示成內積形式一般為:

    ?

    ylinear=σ(?w??,x???)ylinear=σ(?w→,x→?)

    ?

    其中x??x→為特征向量,w??w→為權重向量,σ()σ()為sigmoid函數。

    但是人工進行特征組合通常會存在諸多困難,如特征爆炸、特征難以被識別、組合特征難以設計等。為了讓模型自動地考慮特征之間的二階組合信息,線性模型推廣為二階多項式(2d?Polynomial2d?Polynomial)模型:

    ?

    ypoly=σ(?w??,x???+∑i=1n∑j=1nwij?xi?xj)ypoly=σ(?w→,x→?+∑i=1n∑j=1nwij?xi?xj)

    ?

    其實就是對特征兩兩相乘(組合)構成新特征(離散化之后其實就是“且”操作),并對每個新特征分配獨立的權重,通過機器學習來自動得到這些權重。將其寫成矩陣形式為:

    ?

    ypoly=σ(w??T?x??+x??T?W(2)?x??)ypoly=σ(w→T?x→+x→T?W(2)?x→)

    ?

    其中W(2)W(2)為二階特征組合的權重矩陣,是對稱矩陣。而這個矩陣參數非常多,為O(n2)O(n2)。為了降低該矩陣的維度,可以將其因子分解(FactorizationFactorization)為兩個低維(比如n?kn?k)矩陣的相乘。則此時WW矩陣的參數就大幅降低,為O(nk)O(nk)。公式如下:

    ?

    W(2)=WT?WW(2)=WT?W

    ?

    這就是RendleRendle等在2010年提出因子分解機(Factorization Machines,FM)的名字的由來。FM的矩陣形式公式如下:

    ?

    yFM=σ(w??T?x??+x??T?WT?W?x??)yFM=σ(w→T?x→+x→T?WT?W?x→)

    ?

    將其寫成內積的形式:?

    yFM=σ(?w??,x???+?W?x??,W?x???)yFM=σ(?w→,x→?+?W?x→,W?x→?)


    利用?∑ni=1ai→,∑ni=1ai→?=∑ni=1∑nj=1?ai→,aj→??∑i=1nai→,∑i=1nai→?=∑i=1n∑j=1n?ai→,aj→?,可以將上式進一步改寫成求和式的形式:?

    yFM=σ(?w??,x???+∑i=1n∑j=1n?xi?v??i,xj?v??j?)yFM=σ(?w→,x→?+∑i=1n∑j=1n?xi?v→i,xj?v→j?)


    其中vi→vi→向量是矩陣WW的第ii列。為了去除重復項與特征平方項,上式可以進一步改寫成更為常見的FM公式:?

    yFM=σ(?w??,x???+∑i=1n∑j=i+1n?v??i,v??j?xi?xj)yFM=σ(?w→,x→?+∑i=1n∑j=i+1n?v→i,v→j?xi?xj)


    對比二階多項式模型,FM模型中特征兩兩相乘(組合)的權重是相互不獨立的,它是一種參數較少但表達力強的模型。

    ?

    此處附上FM的TensorFlow代碼實現,完整數據和代碼請戳這里。注意FM通過內積進行無重復項與特征平方項的特征組合過程使用了一個小trick,就是:?

    ∑i=1n∑j=i+1nxixj=1/2×[(∑i=1nxi)2?∑i=1nx2i]∑i=1n∑j=i+1nxixj=1/2×[(∑i=1nxi)2?∑i=1nxi2]

    ?

    class FM(Model):def __init__(self, input_dim=None, output_dim=1, factor_order=10, init_path=None, opt_algo='gd', learning_rate=1e-2,l2_w=0, l2_v=0, random_seed=None):Model.__init__(self)# 一次、二次交叉、偏置項init_vars = [('w', [input_dim, output_dim], 'xavier', dtype),('v', [input_dim, factor_order], 'xavier', dtype),('b', [output_dim], 'zero', dtype)]self.graph = tf.Graph()with self.graph.as_default():if random_seed is not None:tf.set_random_seed(random_seed)self.X = tf.sparse_placeholder(dtype)self.y = tf.placeholder(dtype)self.vars = init_var_map(init_vars, init_path)w = self.vars['w']v = self.vars['v']b = self.vars['b']# [(x1+x2+x3)^2 - (x1^2+x2^2+x3^2)]/2# 先計算所有的交叉項,再減去平方項(自己和自己相乘)X_square = tf.SparseTensor(self.X.indices, tf.square(self.X.values), tf.to_int64(tf.shape(self.X)))xv = tf.square(tf.sparse_tensor_dense_matmul(self.X, v))p = 0.5 * tf.reshape(tf.reduce_sum(xv - tf.sparse_tensor_dense_matmul(X_square, tf.square(v)), 1),[-1, output_dim])xw = tf.sparse_tensor_dense_matmul(self.X, w)logits = tf.reshape(xw + b + p, [-1])self.y_prob = tf.sigmoid(logits)self.loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=logits, labels=self.y)) + \l2_w * tf.nn.l2_loss(xw) + \l2_v * tf.nn.l2_loss(xv)self.optimizer = get_optimizer(opt_algo, learning_rate, self.loss)#GPU設定config = tf.ConfigProto()config.gpu_options.allow_growth = Trueself.sess = tf.Session(config=config)# 圖中所有variable初始化tf.global_variables_initializer().run(session=self.sess)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    4.用神經網絡的視角看FM:嵌入后再進行內積

    我們觀察FM公式的矩陣內積形式:

    ?

    yFM=σ(?w??,x???+?W?x??,W?x???)yFM=σ(?w→,x→?+?W?x→,W?x→?)

    ?

    發現W?x??W·x→部分就是將離散系數特征通過矩陣乘法降維成一個低維稠密向量。這個過程對神經網絡來說就叫做嵌入(embedding)。所以用神經網絡視角來看:

  • FM首先是對離散特征進行嵌入。
  • 之后通過對嵌入后的稠密向量進行內積來進行二階特征組合
  • 最后再與線性模型的結果求和進而得到預估點擊率。?
    其示意圖如下。為了表述清晰,我們繪制的是神經網絡計算圖而不是網絡結構圖——在網絡結構圖中增加了權重WW的位置。?

  • 5.FM的實際應用:考慮領域信息

    廣告點擊率預估模型中的特征以分領域的離散特征為主,如:廣告類別、用戶職業、手機APP列表等。由于連續特征比較好處理,為了簡化起見,本文只考慮同時存在不同領域的離散特征的情形。處理離散特征的常見方法是通過獨熱(one-hot)編碼轉換為一系列二值特征向量。然后將這些高維稀疏特征通過嵌入(embedding)轉換為低維連續特征。前面已經說明FM中間的一個核心步驟就是嵌入,但這個嵌入過程沒有考慮領域信息。這使得同領域內的特征也被當做不同領域特征進行兩兩組合了。?
    其實可以將特征具有領域關系的特點作為先驗知識加入到神經網絡的設計中去:同領域的特征嵌入后直接求和作為一個整體嵌入向量,進而與其他領域的整體嵌入向量進行兩兩組合。而這個先嵌入后求和的過程,就是一個單領域的小離散特征向量乘以矩陣的過程。此時FM的過程變為:對不同領域的離散特征分別進行嵌入,之后再進行二階特征的向量內積。其計算圖圖如下所示:?


    這樣考慮其實是給FM增加了一個正則:考慮了領域內的信息的相似性。而且還有一個附加的好處,這些嵌入后的同領域特征可以拼接起來作為更深的神經網絡的輸入,達到降維的目的。接下來我們將反復看到這種處理方式。?
    此處需要注意,這與“基于領域的因子分解機”(Field-aware Factorization Machines,FFM有區別。FFM也是FM的另一種變體,也考慮了領域信息。但其不同點是同一個特征與不同領域進行特征組合時,其對應的嵌入向量是不同的。本文不考慮FFM的作用機制。?
    經過這些改進的FM終究還是淺層網絡,它的表現力仍然有限。為了增加模型的表現力(model capacity),一個自然的想法就是將該淺層網絡不斷“深化”

    ?

    6.embedding+MLP:深度學習CTR預估的通用框架

    embedding+MLP是對于分領域離散特征進行深度學習CTR預估的通用框架。深度學習在特征組合挖掘(特征學習)方面具有很大的優勢。比如以CNN為代表的深度網絡主要用于圖像、語音等稠密特征上的學習,以W2V、RNN為代表的深度網絡主要用于文本的同質化、序列化高維稀疏特征的學習。CTR預估的主要場景是對離散且有具體領域的特征進行學習,所以其深度網絡結構也不同于CNN與RNN。?
    具體來說, embedding+MLP的過程如下:

  • 對不同領域的one-hot特征進行嵌入(embedding),使其降維成低維度稠密特征。
  • 然后將這些特征向量拼接(concatenate)成一個隱含層。
  • 之后再不斷堆疊全連接層,也就是多層感知機(Multilayer Perceptron, MLP,有時也叫作前饋神經網絡)。
  • 最終輸出預測的點擊率。?
    其示意圖如下:?

  • embedding+MLP的缺點是只學習高階特征組合,對于低階或者手動的特征組合不夠兼容,而且參數較多,學習較困難。

    7.FNN:FM與MLP的串聯結合

    Weinan Zhang等在2016年提出的因子分解機神經網絡(Factorisation Machine supported Neural Network,FNN)將考FM與MLP進行了結合。它有著十分顯著的特點:

  • 采用FM預訓練得到的隱含層及其權重作為神經網絡的第一層的初始值,之后再不斷堆疊全連接層,最終輸出預測的點擊率。
  • 可以將FNN理解成一種特殊的embedding+MLP,其要求第一層嵌入后的各領域特征維度一致,并且嵌入權重的初始化是FM預訓練好的
  • 不是一個端到端的訓練過程,有貪心訓練的思路。而且如果不考慮預訓練過程,模型網絡結構也沒有考慮低階特征組合。?
    其計算圖如下所示:?

  • 通過觀察FFN的計算圖可以看出其與embedding+MLP確實非常像。不過此處省略了FNN的FM部分的線性模塊。這種省略為了更好地進行兩個模型的對比。接下來的計算圖我們都會省略線性模塊。

    此處附上FNN的代碼實現,完整數據和代碼請戳這里。:

    class FNN(Model):def __init__(self, field_sizes=None, embed_size=10, layer_sizes=None, layer_acts=None, drop_out=None,embed_l2=None, layer_l2=None, init_path=None, opt_algo='gd', learning_rate=1e-2, random_seed=None):Model.__init__(self)init_vars = []num_inputs = len(field_sizes)for i in range(num_inputs):init_vars.append(('embed_%d' % i, [field_sizes[i], embed_size], 'xavier', dtype))node_in = num_inputs * embed_sizefor i in range(len(layer_sizes)):init_vars.append(('w%d' % i, [node_in, layer_sizes[i]], 'xavier', dtype))init_vars.append(('b%d' % i, [layer_sizes[i]], 'zero', dtype))node_in = layer_sizes[i]self.graph = tf.Graph()with self.graph.as_default():if random_seed is not None:tf.set_random_seed(random_seed)self.X = [tf.sparse_placeholder(dtype) for i in range(num_inputs)]self.y = tf.placeholder(dtype)self.keep_prob_train = 1 - np.array(drop_out)self.keep_prob_test = np.ones_like(drop_out)self.layer_keeps = tf.placeholder(dtype)self.vars = init_var_map(init_vars, init_path)w0 = [self.vars['embed_%d' % i] for i in range(num_inputs)]xw = tf.concat([tf.sparse_tensor_dense_matmul(self.X[i], w0[i]) for i in range(num_inputs)], 1)l = xw#全連接部分for i in range(len(layer_sizes)):wi = self.vars['w%d' % i]bi = self.vars['b%d' % i]print(l.shape, wi.shape, bi.shape)l = tf.nn.dropout(activate(tf.matmul(l, wi) + bi,layer_acts[i]),self.layer_keeps[i])l = tf.squeeze(l)self.y_prob = tf.sigmoid(l)self.loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=l, labels=self.y))if layer_l2 is not None:self.loss += embed_l2 * tf.nn.l2_loss(xw)for i in range(len(layer_sizes)):wi = self.vars['w%d' % i]self.loss += layer_l2[i] * tf.nn.l2_loss(wi)self.optimizer = get_optimizer(opt_algo, learning_rate, self.loss)config = tf.ConfigProto()config.gpu_options.allow_growth = Trueself.sess = tf.Session(config=config)tf.global_variables_initializer().run(session=self.sess)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    8.DeepFM: FM與MLP的并聯結合

    針對FNN需要預訓練的問題,Huifeng Guo等提出了深度因子分解機模型(Deep Factorisation Machine, DeepFM, 2017)。該模型的特點是:

  • 不需要預訓練。
  • 將考慮領域信息的FM部分與MLP部分并聯起來(借用初中電路的術語),其實就是對兩個模型進行聯合訓練
  • 考慮領域信息的FM部分的嵌入向量拼接起來作為MLP部分的輸入特征,也就是是兩個模型共享嵌入后的特征。?
    其計算圖如下所示:?

  • 通過觀察DeepFM的計算圖可以看出紅色虛線以上部分其實就是FM部分,虛線以下就是MLP部分

    此處附上DeepFM的代碼實現,完整數據和代碼請戳這里。:

    def model_fn(features, labels, mode, params):"""Bulid Model function f(x) for Estimator."""#------超參數的設定----field_size = params["field_size"]feature_size = params["feature_size"]embedding_size = params["embedding_size"]l2_reg = params["l2_reg"]learning_rate = params["learning_rate"]#batch_norm_decay = params["batch_norm_decay"]#optimizer = params["optimizer"]layers = map(int, params["deep_layers"].split(','))dropout = map(float, params["dropout"].split(','))#------權重------FM_B = tf.get_variable(name='fm_bias', shape=[1], initializer=tf.constant_initializer(0.0))FM_W = tf.get_variable(name='fm_w', shape=[feature_size], initializer=tf.glorot_normal_initializer())# FFM_V = tf.get_variable(name='fm_v', shape=[feature_size, embedding_size], initializer=tf.glorot_normal_initializer())# F * E #------build feaure-------feat_ids = features['feat_ids']feat_ids = tf.reshape(feat_ids,shape=[-1,field_size]) # None * f/K * Kfeat_vals = features['feat_vals']feat_vals = tf.reshape(feat_vals,shape=[-1,field_size]) # None * f/K * K#------build f(x)------with tf.variable_scope("First-order"):feat_wgts = tf.nn.embedding_lookup(FM_W, feat_ids) # None * f/K * Ky_w = tf.reduce_sum(tf.multiply(feat_wgts, feat_vals),1)with tf.variable_scope("Second-order"):embeddings = tf.nn.embedding_lookup(FM_V, feat_ids) # None * f/K * K * Efeat_vals = tf.reshape(feat_vals, shape=[-1, field_size, 1]) # None * f/K * K * 1 ?embeddings = tf.multiply(embeddings, feat_vals) #vij*xi sum_square = tf.square(tf.reduce_sum(embeddings,1)) # None * K * Esquare_sum = tf.reduce_sum(tf.square(embeddings),1)y_v = 0.5*tf.reduce_sum(tf.subtract(sum_square, square_sum),1) # None * 1with tf.variable_scope("Deep-part"):if FLAGS.batch_norm:#normalizer_fn = tf.contrib.layers.batch_norm#normalizer_fn = tf.layers.batch_normalizationif mode == tf.estimator.ModeKeys.TRAIN:train_phase = True#normalizer_params = {'decay': batch_norm_decay, 'center': True, 'scale': True, 'updates_collections': None, 'is_training': True, 'reuse': None}else:train_phase = False#normalizer_params = {'decay': batch_norm_decay, 'center': True, 'scale': True, 'updates_collections': None, 'is_training': False, 'reuse': True}else:normalizer_fn = Nonenormalizer_params = Nonedeep_inputs = tf.reshape(embeddings,shape=[-1,field_size*embedding_size]) # None * (F*K)for i in range(len(layers)):#if FLAGS.batch_norm:# deep_inputs = batch_norm_layer(deep_inputs, train_phase=train_phase, scope_bn='bn_%d' %i)#normalizer_params.update({'scope': 'bn_%d' %i})deep_inputs = tf.contrib.layers.fully_connected(inputs=deep_inputs, num_outputs=layers[i], \#normalizer_fn=normalizer_fn, normalizer_params=normalizer_params, \weights_regularizer=tf.contrib.layers.l2_regularizer(l2_reg), scope='mlp%d' % i)if FLAGS.batch_norm:deep_inputs = batch_norm_layer(deep_inputs, train_phase=train_phase, scope_bn='bn_%d' %i) #放在RELU之后 https://github.com/ducha-aiki/caffenet-benchmark/blob/master/batchnorm.md#bn----before-or-after-reluif mode == tf.estimator.ModeKeys.TRAIN:deep_inputs = tf.nn.dropout(deep_inputs, keep_prob=dropout[i]) #Apply Dropout after all BN layers and set dropout=0.8(drop_ratio=0.2)#deep_inputs = tf.layers.dropout(inputs=deep_inputs, rate=dropout[i], training=mode == tf.estimator.ModeKeys.TRAIN)y_deep = tf.contrib.layers.fully_connected(inputs=deep_inputs, num_outputs=1, activation_fn=tf.identity, \weights_regularizer=tf.contrib.layers.l2_regularizer(l2_reg), scope='deep_out')y_d = tf.reshape(y_deep,shape=[-1])#sig_wgts = tf.get_variable(name='sigmoid_weights', shape=[layers[-1]], initializer=tf.glorot_normal_initializer())#sig_bias = tf.get_variable(name='sigmoid_bias', shape=[1], initializer=tf.constant_initializer(0.0))#deep_out = tf.nn.xw_plus_b(deep_inputs,sig_wgts,sig_bias,name='deep_out')with tf.variable_scope("DeepFM-out"):#y_bias = FM_B * tf.ones_like(labels, dtype=tf.float32) # None * 1 warning;這里不能用label,否則調用predict/export函數會出錯,train/evaluate正常;初步判斷estimator做了優化,用不到label時不傳y_bias = FM_B * tf.ones_like(y_d, dtype=tf.float32) # None * 1y = y_bias + y_w + y_v + y_dpred = tf.sigmoid(y)predictions={"prob": pred}export_outputs = {tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: tf.estimator.export.PredictOutput(predictions)}# Provide an estimator spec for `ModeKeys.PREDICT`if mode == tf.estimator.ModeKeys.PREDICT:return tf.estimator.EstimatorSpec(mode=mode,predictions=predictions,export_outputs=export_outputs)#------bulid loss------loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=y, labels=labels)) + \l2_reg * tf.nn.l2_loss(FM_W) + \l2_reg * tf.nn.l2_loss(FM_V) #+ \ l2_reg * tf.nn.l2_loss(sig_wgts)# Provide an estimator spec for `ModeKeys.EVAL`eval_metric_ops = {"auc": tf.metrics.auc(labels, pred)}if mode == tf.estimator.ModeKeys.EVAL:return tf.estimator.EstimatorSpec(mode=mode,predictions=predictions,loss=loss,eval_metric_ops=eval_metric_ops)#------bulid optimizer------if FLAGS.optimizer == 'Adam':optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate, beta1=0.9, beta2=0.999, epsilon=1e-8)elif FLAGS.optimizer == 'Adagrad':optimizer = tf.train.AdagradOptimizer(learning_rate=learning_rate, initial_accumulator_value=1e-8)elif FLAGS.optimizer == 'Momentum':optimizer = tf.train.MomentumOptimizer(learning_rate=learning_rate, momentum=0.95)elif FLAGS.optimizer == 'ftrl':optimizer = tf.train.FtrlOptimizer(learning_rate)train_op = optimizer.minimize(loss, global_step=tf.train.get_global_step())# Provide an estimator spec for `ModeKeys.TRAIN` modesif mode == tf.estimator.ModeKeys.TRAIN:return tf.estimator.EstimatorSpec(mode=mode,predictions=predictions,loss=loss,train_op=train_op)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123

    9.NFM:通過逐元素乘法延遲FM的實現過程

    我們再回到考慮領域信息的FM,它仍有改進的空間。因為以上這些網絡的FM部分都是只進行嵌入向量的兩兩內積后直接求和,沒有充分利用二階特征組合的信息。Xiangnan He等在2017年提出了神經網絡因子分解機(Neural Factorization Machines,NFM)對此作出了改進。其計算圖如下所示:?

    ?

    NFM的基本特點是:

  • 利用二階交互池化層(Bi-Interaction Pooling)對FM嵌入后的向量兩兩進行元素級別的乘法,形成同維度的向量求和后作為前饋神經網絡的輸入。計算圖中用圈乘??表示逐元素乘法運算。
  • NFM與DeepFM的區別是沒有單獨的FM的淺層網絡進行聯合訓練,而是將其整合后直接輸出給前饋神經網絡
  • 當MLP的全連接層都是恒等變換且最后一層參數全為1時,NFM就退化成了FM。可見,NFM是FM的推廣,它推遲了FM的實現過程,并在其中加入了更多非線性運算
  • 另一方面,我們觀察計算圖會發現NFM與FNN非常相似。它們的主要區別是NFM?在embedding之后對特征進行了兩兩逐元素乘法。因為逐元素相乘的向量維數不變,之后對這些向量求和的維數仍然與embedding的維數一致。因此輸入到MLP的參數比起直接concatenate的FNN更少。
  • 此處附上NFM的代碼實現,完整數據和代碼請戳這里:

    def model_fn(features, labels, mode, params):"""Bulid Model function f(x) for Estimator."""#------hyperparameters----field_size = params["field_size"]feature_size = params["feature_size"]embedding_size = params["embedding_size"]l2_reg = params["l2_reg"]learning_rate = params["learning_rate"]#optimizer = params["optimizer"]layers = map(int, params["deep_layers"].split(','))dropout = map(float, params["dropout"].split(','))#------bulid weights------Global_Bias = tf.get_variable(name='bias', shape=[1], initializer=tf.constant_initializer(0.0))Feat_Bias = tf.get_variable(name='linear', shape=[feature_size], initializer=tf.glorot_normal_initializer())Feat_Emb = tf.get_variable(name='emb', shape=[feature_size,embedding_size], initializer=tf.glorot_normal_initializer())#------build feaure-------feat_ids = features['feat_ids']feat_ids = tf.reshape(feat_ids,shape=[-1,field_size])feat_vals = features['feat_vals']feat_vals = tf.reshape(feat_vals,shape=[-1,field_size])#------build f(x)------with tf.variable_scope("Linear-part"):feat_wgts = tf.nn.embedding_lookup(Feat_Bias, feat_ids) # None * F * 1y_linear = tf.reduce_sum(tf.multiply(feat_wgts, feat_vals),1)with tf.variable_scope("BiInter-part"):embeddings = tf.nn.embedding_lookup(Feat_Emb, feat_ids) # None * F * Kfeat_vals = tf.reshape(feat_vals, shape=[-1, field_size, 1])embeddings = tf.multiply(embeddings, feat_vals) # vij * xisum_square_emb = tf.square(tf.reduce_sum(embeddings,1))square_sum_emb = tf.reduce_sum(tf.square(embeddings),1)deep_inputs = 0.5*tf.subtract(sum_square_emb, square_sum_emb) # None * Kwith tf.variable_scope("Deep-part"):if mode == tf.estimator.ModeKeys.TRAIN:train_phase = Trueelse:train_phase = Falseif mode == tf.estimator.ModeKeys.TRAIN:deep_inputs = tf.nn.dropout(deep_inputs, keep_prob=dropout[0]) # None * Kfor i in range(len(layers)):deep_inputs = tf.contrib.layers.fully_connected(inputs=deep_inputs, num_outputs=layers[i], \weights_regularizer=tf.contrib.layers.l2_regularizer(l2_reg), scope='mlp%d' % i)if FLAGS.batch_norm:deep_inputs = batch_norm_layer(deep_inputs, train_phase=train_phase, scope_bn='bn_%d' %i) #放在RELU之后 https://github.com/ducha-aiki/caffenet-benchmark/blob/master/batchnorm.md#bn----before-or-after-reluif mode == tf.estimator.ModeKeys.TRAIN:deep_inputs = tf.nn.dropout(deep_inputs, keep_prob=dropout[i]) #Apply Dropout after all BN layers and set dropout=0.8(drop_ratio=0.2)#deep_inputs = tf.layers.dropout(inputs=deep_inputs, rate=dropout[i], training=mode == tf.estimator.ModeKeys.TRAIN)y_deep = tf.contrib.layers.fully_connected(inputs=deep_inputs, num_outputs=1, activation_fn=tf.identity, \weights_regularizer=tf.contrib.layers.l2_regularizer(l2_reg), scope='deep_out')y_d = tf.reshape(y_deep,shape=[-1])with tf.variable_scope("NFM-out"):#y_bias = Global_Bias * tf.ones_like(labels, dtype=tf.float32) # None * 1 warning;這里不能用label,否則調用predict/export函數會出錯,train/evaluate正常;初步判斷estimator做了優化,用不到label時不傳y_bias = Global_Bias * tf.ones_like(y_d, dtype=tf.float32) # None * 1y = y_bias + y_linear + y_dpred = tf.sigmoid(y)predictions={"prob": pred}export_outputs = {tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: tf.estimator.export.PredictOutput(predictions)}# Provide an estimator spec for `ModeKeys.PREDICT`if mode == tf.estimator.ModeKeys.PREDICT:return tf.estimator.EstimatorSpec(mode=mode,predictions=predictions,export_outputs=export_outputs)#------bulid loss------loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=y, labels=labels)) + \l2_reg * tf.nn.l2_loss(Feat_Bias) + l2_reg * tf.nn.l2_loss(Feat_Emb)# Provide an estimator spec for `ModeKeys.EVAL`eval_metric_ops = {"auc": tf.metrics.auc(labels, pred)}if mode == tf.estimator.ModeKeys.EVAL:return tf.estimator.EstimatorSpec(mode=mode,predictions=predictions,loss=loss,eval_metric_ops=eval_metric_ops)#------bulid optimizer------if FLAGS.optimizer == 'Adam':optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate, beta1=0.9, beta2=0.999, epsilon=1e-8)elif FLAGS.optimizer == 'Adagrad':optimizer = tf.train.AdagradOptimizer(learning_rate=learning_rate, initial_accumulator_value=1e-8)elif FLAGS.optimizer == 'Momentum':optimizer = tf.train.MomentumOptimizer(learning_rate=learning_rate, momentum=0.95)elif FLAGS.optimizer == 'ftrl':optimizer = tf.train.FtrlOptimizer(learning_rate)train_op = optimizer.minimize(loss, global_step=tf.train.get_global_step())# Provide an estimator spec for `ModeKeys.TRAIN` modesif mode == tf.estimator.ModeKeys.TRAIN:return tf.estimator.EstimatorSpec(mode=mode,predictions=predictions,loss=loss,train_op=train_op)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108

    10.AFM: 對簡化版NFM進行加權求和

    NFM的主要創新點是在FM過程中添加了逐元素相乘的運算來增加模型的復雜度。但沒有在此基礎上添加更復雜的運算過程,比如對加權求和。Jun Xiao等在2017年提出了注意力因子分解模型(Attentional Factorization Machine,AFM)就是在這個方向上的改進。其計算圖如下所示:?

    ?

    AFM的特點是:

  • AFM與NFM都是致力于充分利用二階特征組合的信息,對嵌入后的向量兩兩進行逐元素乘法,形成同維度的向量。而且AFM沒有MLP部分。
  • AFM通過在逐元素乘法之后形成的向量進行加權求和,而且權重是基于網絡自身來產生的。其方法是引入一個注意力子網絡(Attention Net)
  • 當權重都相等時,AFM退化成無全連接層的NFM
  • “注意力子網絡”的主要操作是進行矩陣乘法,其最終輸出結果為softmax,以保證各分量的權重本身是一個概率分布
  • 11.PNN:通過改進向量乘法運算延遲FM的實現過程

    再回到FM。既然AFM、NFM可以通過添加逐元素乘法的運算來增加模型的復雜度,那向量乘法有這么多,可否用其他的方法增加FM復雜度?答案是可以的。Huifeng Guo等在2016年提出了基于向量積的神經網絡(Product-based Neural Networks,PNN)就是一個典型例子。其簡化計算圖如下所示:?


    對比之前模型的計算圖,我們可以發現PNN的基本特點是:

    ?

  • 利用二階向量積層(Pair-wisely Connected Product Layer)對FM嵌入后的向量兩兩進行向量積,形成的結果作為之后MLP的輸入。計算圖中用圓點?表示向量積運算。PNN采用的向量積有內積與外積兩種形式。
  • 需要說明的是,本計算圖中省略了PNN中向量與常數1進行的乘法運算。這部分其實與FNN類似,不是PNN的主要創新點。故在此圖中省略。
  • 對于內積形式的PNN,因為兩個向量相乘的結果為標量,可以直接把各個標量“拼接”成一個大向量,就可以作為MLP的輸入了。
  • 當MLP的全連接層都是恒等變換且最后一層參數全為1時,內積形式的PNN就退化成了FM
  • 對于外積形式的PNN,因為兩個向量相乘相當于列向量與行向量進行矩陣相乘,得到的結果為一個矩陣。各個矩陣向之前內積形式的操作一樣直接拼接起來維數太多,論文的簡化方案是直接對各個矩陣進行求和,得到的新矩陣(可以理解成之后對其拉長成向量)就直接作為MLP的輸入。
  • 觀察計算圖發現外積形式的PNN與NFM很像,其實就是PNN把NFM的逐元素乘法換成了外積
  • 此處分別附上PNN的內積與外積形式代碼,完整數據和代碼請戳這里。

    class PNN1(Model):def __init__(self, field_sizes=None, embed_size=10, layer_sizes=None, layer_acts=None, drop_out=None,embed_l2=None, layer_l2=None, init_path=None, opt_algo='gd', learning_rate=1e-2, random_seed=None):Model.__init__(self)init_vars = []num_inputs = len(field_sizes)for i in range(num_inputs):init_vars.append(('embed_%d' % i, [field_sizes[i], embed_size], 'xavier', dtype))num_pairs = int(num_inputs * (num_inputs - 1) / 2)node_in = num_inputs * embed_size + num_pairs# node_in = num_inputs * (embed_size + num_inputs)for i in range(len(layer_sizes)):init_vars.append(('w%d' % i, [node_in, layer_sizes[i]], 'xavier', dtype))init_vars.append(('b%d' % i, [layer_sizes[i]], 'zero', dtype))node_in = layer_sizes[i]self.graph = tf.Graph()with self.graph.as_default():if random_seed is not None:tf.set_random_seed(random_seed)self.X = [tf.sparse_placeholder(dtype) for i in range(num_inputs)]self.y = tf.placeholder(dtype)self.keep_prob_train = 1 - np.array(drop_out)self.keep_prob_test = np.ones_like(drop_out)self.layer_keeps = tf.placeholder(dtype)self.vars = init_var_map(init_vars, init_path)w0 = [self.vars['embed_%d' % i] for i in range(num_inputs)]xw = tf.concat([tf.sparse_tensor_dense_matmul(self.X[i], w0[i]) for i in range(num_inputs)], 1)xw3d = tf.reshape(xw, [-1, num_inputs, embed_size])row = []col = []for i in range(num_inputs-1):for j in range(i+1, num_inputs):row.append(i)col.append(j)# batch * pair * kp = tf.transpose(# pair * batch * ktf.gather(# num * batch * ktf.transpose(xw3d, [1, 0, 2]),row),[1, 0, 2])# batch * pair * kq = tf.transpose(tf.gather(tf.transpose(xw3d, [1, 0, 2]),col),[1, 0, 2])p = tf.reshape(p, [-1, num_pairs, embed_size])q = tf.reshape(q, [-1, num_pairs, embed_size])ip = tf.reshape(tf.reduce_sum(p * q, [-1]), [-1, num_pairs])# simple but redundant# batch * n * 1 * k, batch * 1 * n * k# ip = tf.reshape(# tf.reduce_sum(# tf.expand_dims(xw3d, 2) *# tf.expand_dims(xw3d, 1),# 3),# [-1, num_inputs**2])l = tf.concat([xw, ip], 1)for i in range(len(layer_sizes)):wi = self.vars['w%d' % i]bi = self.vars['b%d' % i]l = tf.nn.dropout(activate(tf.matmul(l, wi) + bi,layer_acts[i]),self.layer_keeps[i])l = tf.squeeze(l)self.y_prob = tf.sigmoid(l)self.loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=l, labels=self.y))if layer_l2 is not None:self.loss += embed_l2 * tf.nn.l2_loss(xw)for i in range(len(layer_sizes)):wi = self.vars['w%d' % i]self.loss += layer_l2[i] * tf.nn.l2_loss(wi)self.optimizer = get_optimizer(opt_algo, learning_rate, self.loss)config = tf.ConfigProto()config.gpu_options.allow_growth = Trueself.sess = tf.Session(config=config)tf.global_variables_initializer().run(session=self.sess)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    class PNN2(Model):def __init__(self, field_sizes=None, embed_size=10, layer_sizes=None, layer_acts=None, drop_out=None,embed_l2=None, layer_l2=None, init_path=None, opt_algo='gd', learning_rate=1e-2, random_seed=None,layer_norm=True):Model.__init__(self)init_vars = []num_inputs = len(field_sizes)for i in range(num_inputs):init_vars.append(('embed_%d' % i, [field_sizes[i], embed_size], 'xavier', dtype))num_pairs = int(num_inputs * (num_inputs - 1) / 2)node_in = num_inputs * embed_size + num_pairsinit_vars.append(('kernel', [embed_size, num_pairs, embed_size], 'xavier', dtype))for i in range(len(layer_sizes)):init_vars.append(('w%d' % i, [node_in, layer_sizes[i]], 'xavier', dtype))init_vars.append(('b%d' % i, [layer_sizes[i]], 'zero', dtype))node_in = layer_sizes[i]self.graph = tf.Graph()with self.graph.as_default():if random_seed is not None:tf.set_random_seed(random_seed)self.X = [tf.sparse_placeholder(dtype) for i in range(num_inputs)]self.y = tf.placeholder(dtype)self.keep_prob_train = 1 - np.array(drop_out)self.keep_prob_test = np.ones_like(drop_out)self.layer_keeps = tf.placeholder(dtype)self.vars = init_var_map(init_vars, init_path)w0 = [self.vars['embed_%d' % i] for i in range(num_inputs)]xw = tf.concat([tf.sparse_tensor_dense_matmul(self.X[i], w0[i]) for i in range(num_inputs)], 1)xw3d = tf.reshape(xw, [-1, num_inputs, embed_size])row = []col = []for i in range(num_inputs - 1):for j in range(i + 1, num_inputs):row.append(i)col.append(j)# batch * pair * kp = tf.transpose(# pair * batch * ktf.gather(# num * batch * ktf.transpose(xw3d, [1, 0, 2]),row),[1, 0, 2])# batch * pair * kq = tf.transpose(tf.gather(tf.transpose(xw3d, [1, 0, 2]),col),[1, 0, 2])# b * p * kp = tf.reshape(p, [-1, num_pairs, embed_size])# b * p * kq = tf.reshape(q, [-1, num_pairs, embed_size])# k * p * kk = self.vars['kernel']# batch * 1 * pair * kp = tf.expand_dims(p, 1)# batch * pairkp = tf.reduce_sum(# batch * pair * ktf.multiply(# batch * pair * ktf.transpose(# batch * k * pairtf.reduce_sum(# batch * k * pair * ktf.multiply(p, k),-1),[0, 2, 1]),q),-1)## if layer_norm:# # x_mean, x_var = tf.nn.moments(xw, [1], keep_dims=True)# # xw = (xw - x_mean) / tf.sqrt(x_var)# # x_g = tf.Variable(tf.ones([num_inputs * embed_size]), name='x_g')# # x_b = tf.Variable(tf.zeros([num_inputs * embed_size]), name='x_b')# # x_g = tf.Print(x_g, [x_g[:10], x_b])# # xw = xw * x_g + x_b# p_mean, p_var = tf.nn.moments(op, [1], keep_dims=True)# op = (op - p_mean) / tf.sqrt(p_var)# p_g = tf.Variable(tf.ones([embed_size**2]), name='p_g')# p_b = tf.Variable(tf.zeros([embed_size**2]), name='p_b')# # p_g = tf.Print(p_g, [p_g[:10], p_b])# op = op * p_g + p_bl = tf.concat([xw, kp], 1)for i in range(len(layer_sizes)):wi = self.vars['w%d' % i]bi = self.vars['b%d' % i]l = tf.nn.dropout(activate(tf.matmul(l, wi) + bi,layer_acts[i]),self.layer_keeps[i])l = tf.squeeze(l)self.y_prob = tf.sigmoid(l)self.loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=l, labels=self.y))if layer_l2 is not None:self.loss += embed_l2 * tf.nn.l2_loss(xw)#tf.concat(w0, 0))for i in range(len(layer_sizes)):wi = self.vars['w%d' % i]self.loss += layer_l2[i] * tf.nn.l2_loss(wi)self.optimizer = get_optimizer(opt_algo, learning_rate, self.loss)config = tf.ConfigProto()config.gpu_options.allow_growth = Trueself.sess = tf.Session(config=config)tf.global_variables_initializer().run(session=self.sess)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118

    12.DCN:高階FM的降維實現

    以上的FM推廣形式,主要是對FM進行二階特征組合。高階特征組合是通過MLP實現的。但這兩種實現方式是有很大不同的,FM更多是通過向量embedding之間的內積來實現,而MLP則是在向量embedding之后一層一層進行權重矩陣乘法實現。可否直接將FM的過程在高階特征組合上進行推廣?答案是可以的。Ruoxi Wang等在2017提出的深度與交叉神經網絡(Deep & Cross Network,DCN)就是在這個方向進行改進的。DCN的計算圖如下:?


    DCN的特點如下:

    ?

  • Deep部分就是普通的MLP網絡,主要是全連接。
  • 與DeepFM類似,DCN是由embedding+MLP部分與cross部分進行聯合訓練的。Cross部分是對FM部分的推廣。
  • cross部分的公式如下:?

    ?

  • 可以證明,cross網絡是FM的過程在高階特征組合的推廣。完全的證明需要一些公式推導,感興趣的同學可以直接參考原論文的附錄。
  • 而用簡單的公式證明可以得到一個很重要的結論:只有兩層且第一層與最后一層權重參數相等時的Cross網絡與簡化版FM等價。
  • 此處對應簡化版的FM視角是將拼接好的稠密向量作為輸入向量,且不做領域方面的區分(但產生這些稠密向量的過程是考慮領域信息的,相對全特征維度的全連接層減少了大量參數,可以視作稀疏鏈接思想的體現)。而且之后進行embedding權重矩陣W只有一列——是退化成列向量的情形。
  • 與MLP網絡相比,Cross部分在增加高階特征組合的同時減少了參數的個數,并省去了非線性激活函數
  • 13.Wide&Deep: DeepFM與DCN的基礎框架

    開篇已經提到,本文思路有兩條主線。到此為止已經將基于FM的主線介紹基本完畢。接下來將串講從embedding+MLP自身的演進特點的CTR預估模型主線,而這條思路與我們之前的FM思路同樣有千絲萬縷的聯系。?
    Google在2016年提出的寬度與深度模型(Wide&Deep)在深度學習CTR預估模型中占有非常重要的位置,它奠定了之后基于深度學習的廣告點擊率預估模型的框架。?
    Wide&Deep將深度模型與線性模型進行聯合訓練,二者的結果求和輸出為最終點擊率。其計算圖如下:?


    我們將Wide&Deep的計算圖與之前的模型進行對比可知:

    ?

  • Wide&Deep是前面介紹模型DeepFM與DCN的基礎框架。這些模型均采用神經網絡聯合訓練的思路,對神經網絡進行并聯。
  • DeepFM、DCN與Wide&Deep的Deep部分都是MLP
  • Wide&Deep的Wide部分是邏輯回歸,可以手動設計組合特征。
  • DeepFM的Wide部分是FM,DCN的Wide部分是Cross網絡,二者均不強求手動設計特征。但此時都與字面意義上的Wide有一定差異,因為均共享了降維后的嵌入特征
  • 此處附上DeepFM的代碼實現,完整數據和代碼請戳這里:

    def get_model(model_type, model_dir):print("Model directory = %s" % model_dir)# 對checkpoint去做設定runconfig = tf.contrib.learn.RunConfig(save_checkpoints_secs=None,save_checkpoints_steps = 100,)m = None# 寬模型if model_type == 'WIDE':m = tf.contrib.learn.LinearClassifier(model_dir=model_dir,feature_columns=wide_columns)# 深度模型if model_type == 'DEEP':m = tf.contrib.learn.DNNClassifier(model_dir=model_dir,feature_columns=deep_columns,hidden_units=[100, 50, 25])# 寬度深度模型if model_type == 'WIDE_AND_DEEP':m = tf.contrib.learn.DNNLinearCombinedClassifier(model_dir=model_dir,linear_feature_columns=wide_columns,dnn_feature_columns=deep_columns,dnn_hidden_units=[100, 70, 50, 25],config=runconfig)print('estimator built')return m
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    14.Deep Cross: DCN由其殘差網絡思想進化

    由K. He等提出的深度殘差網絡能夠大大加深神經網絡的深度,同時不會引起退化的問題,顯著提高了模型的精度。Ying Shan等將該思路應用到廣告點擊率預估模型中,提出深度交叉模型(DeepCross,2016DeepCross,2016)。Deep Cross的計算圖如下:?


    將Deep Cross與之前的模型對比,可以發現其特點是:

    ?

  • 對embedding+MLP的改進主要是MLP部分增加跳躍連接成為殘差網絡
  • Deep Cross?與傳統的殘差網絡的區別主要是沒有采用卷積操作。其中一個原因是在廣告點擊率預估領域,特征不具備平移不變性
  • DCN其實是從Deep Cross進化出來的版本。DCN相對Deep Cross的主要貢獻是解耦了Deep 與Cross(特征交叉)部分
  • 因此DCN中的Cross部分可以理解為殘差網絡的變體:其將Deep Cross的跨越鏈接縮短為只有一層,而全連接部分改為與權重向量和輸入向量的內積。
  • 15.DIN:對同領域歷史信息引入注意力機制的MLP

    以上神經網絡對同領域離散特征的處理基本是將其嵌入后直接求和,這在一般情況下沒太大問題。但其實可以做得更加精細。比如對于歷史統計類特征。以用戶歷史瀏覽的商戶id為例,假設用戶歷史瀏覽了10個商戶,這些商戶id的常規處理方法是作為同一個領域的特征嵌入后直接求和得到一個嵌入向量。但這10個商戶只有一兩個商戶與當前被預測的廣告所在的商戶相似,其他商戶關系不大。增加這兩個商戶在求和過程中的權重,應該能夠更好地提高模型的表現力。而增加求和權重的思路就是典型的注意力機制思路。?
    由?Bahdanau et al. (2015)?引入的現代注意力機制,本質上是加權平均(權重是模型根據數據學習出來的),其在機器翻譯上應用得非常成功。受注意力機制的啟發,Guorui Zhou等在2017年提出了深度興趣網絡(Deep Interest Network,DIN)。DIN主要關注用戶在同一領域的歷史行為特征,如瀏覽了多個商家、多個商品等。DIN可以對這些特征分配不同的權重進行求和。其網絡結構圖如下:?

    ?

  • 此處采用原論文的結構圖,表示起來更清晰。
  • DIN考慮對同一領域的歷史特征進行加權求和,以加強其感興趣的特征的影響。
  • 用戶的每個領域的歷史特征權重則由該歷史特征及其對應備選廣告特征通過一個子網絡得到。即用戶歷史瀏覽的商戶特征與當前瀏覽商戶特征對應,歷史瀏覽的商品特征與當前瀏覽商品特征對應。
  • 權重子網絡主要包括特征之間的元素級別的乘法、加法和全連接等操作
  • AFM也引入了注意力機制。但是AFM是將注意力機制與FM同領域特征求和之后進行結合,DIN直接是將注意力機制與同領域特征求和之前進行結合
  • 16.多任務視角:信息的遷移與補充

    對于數據驅動的解決方案而言,數據和模型同樣重要,數據(特征)通常決定了效果的上限,各式各樣的模型會以不同的方式去逼近這個上限。而所有算法應用的老司機都知道很多場景下,如果有更多的數據進行模型訓練,效果一般都能顯著得到提高。廣告也是一樣的場景,在很多電商的平臺上會有很多不同場景的廣告位,每個場景蘊含了用戶的不同興趣的表達,這些信息的匯總與融合可以帶來最后效果的提升。但是將不同場景的數據直接進行合并用來訓練(ctr/cvr)模型,結果很多時候并不是很樂觀,仔細想想也是合理的,不同場景下的樣本分布存在差異,直接對樣本累加會影響分布導致效果負向。?


    而深度學習發展,使得信息的融合與應用有了更好的進展,用Multi?taskMulti?task?learning(MTL)learning(MTL)的方式可以很漂亮的解決上面提到的問題。我們不直接對樣本進行累加和訓練,而是像上圖所示,把兩個場景分為兩個task,即分為兩個子網絡。對單個網絡而言,底層的embedding層的表達受限于單場景的數據量,很可能學習不充分。而上圖這樣的網絡結合,使得整個訓練過程有了表示學習的共享(Shared Lookup Table),這種共享有助于大樣本的子任務幫助小樣本的子任務,使得底層的表達學習更加充分。?DeepFM和DCN也用到了這個思路!只是它們是對同一任務的不同模型進行結合,而多任務學習是對不同任務的不同模型進行結合。而且,我們可以玩得更加復雜。?
    Multi-task learning(MTL)整個結構的上層的不同的task的子網絡是不一樣的,這樣每個子網絡可以各自去擬合自己task對應的概念分布。并且,取決于問題與場景的相似性和復雜度,可以把底層的表達學習,從簡單的共享embedding到共享一些層次的表達。極端的情況是我們可以直接共享所有的表達學習(representation learning)部分,而只接不同的網絡head來完成不一樣的任務。這樣帶來的另外一個好處是,不同的task可以共享一部分計算,從而實現計算的加速。?
    值得一提的另一篇paper是阿里媽媽團隊提出的“完整空間多任務模型”(Entire Space Multi-Task Model,ESMM),也是很典型的多任務學習和信息補充思路,這篇paper解決的問題不是ctr(點擊率)預估而是cvr(轉化率)預估,傳統CVR預估模型會有比較明顯的樣本選擇偏差(sample selection bias)和訓練數據過于稀疏(data sparsity )的問題,而ESMM模型利用用戶行為序列數據,在完整的樣本數據空間同時學習點擊率和轉化率(post-view clickthrough&conversion rate,CTCVR),在一定程度上解決了這個問題。?
    在電商的場景下,用戶的決策過程很可能是這樣的,在觀察到系統展現的推薦商品列表后,點擊自己感興趣的商品,進而產生購買行為。所以用戶行為遵循這樣一個決策順序:impression → click → conversion。CVR模型旨在預估用戶在觀察到曝光商品進而點擊到商品詳情頁之后購買此商品的概率,即pCVR = p(conversion|click,impression)。?
    預估點擊率pCTR,預估點擊下單率pCVR和預估點擊與下單率pCTCVR關系如下。?

    ?

    傳統的CVR預估任務通常采用類似于CTR預估的技術進行建模。但是不同于CTR預估任務的是,這個場景面臨一些特有的挑戰:1) 樣本選擇偏差;2) 訓練數據稀疏;3) 延遲反饋等。?


    ESMM模型提出了下述的網絡結構進行問題建模?


    EMMS的特點是:

    ?

  • 在整個樣本空間建模。pCVR 可以在先估計出pCTR 和pCTCVR之后計算得出,如下述公式。從原理上看,相當于分別單獨訓練兩個模型擬合出pCTR 和pCTCVR,進而計算得到pCVR 。?


    注意到pCTR 和pCTCVR是在整個樣本空間上建模得到的,pCVR 只是一個中間變量。因此,ESMM模型是在整個樣本空間建模,而不像傳統CVR預估模型那樣只在點擊樣本空間建模。
  • 特征表示層共享。ESMM模型借鑒遷移學習和multi-task learning的思路,在兩個子網絡的embedding層共享特征表示詞典。embedding層的表達參數占了整個網絡參數的絕大部分,參數量大,需要大量的訓練樣本才能學習充分。顯然CTR任務的訓練樣本量要大大超過CVR任務的訓練樣本量,ESMM模型中特征表示共享的機制能夠使得CVR子任務也能夠從只有展現沒有點擊的樣本中學習,從而在一定程度上緩解訓練數據稀疏性問題。
  • 17.各種模型的對比和總結

    前面介紹了各種基于深度學習的廣告點擊率預估算法模型,針對不同的問題、基于不同的思路,不同的模型有各自的特點。各個模型具體關系比較如下表1所示:?

    表 1. 各模型對比

    ?

    Embedding+MLPFMAttentionResnet
    Wide&Deep××
    FNN×
    DeepFM×
    NFM×
    DIN×
    AFM×
    Deep Cross××
    DCN×

    本文從開篇就說明這些模型推演的核心思路是“通過設計網絡結構進行組合特征的挖掘”,其在各個模型的實現方式如下:

  • FM其實是對嵌入特征進行兩兩內積實現特征二階組合;FNN在FM基礎上引入了MLP;
  • DeepFM通過聯合訓練、嵌入特征共享來兼顧FM部分與MLP部分不同的特征組合機制;
  • NFM、PNN則是通過改造向量積的方式來延遲FM的實現過程,在其中添加非線性成分來提升模型表現力;
  • AFM更進一步,直接通過子網絡來對嵌入向量的兩兩逐元素乘積進行加權求和,以實現不同組合的差異化,也是一種延遲FM實現的方式;
  • DCN則是將FM進行高階特征組合的方向上進行推廣,并結合MLP的全連接式的高階特征組合機制;
  • Wide&Deep是兼容手工特征組合與MLP的特征組合方式,是許多模型的基礎框架;
  • Deep Cross是引入殘差網絡機制的前饋神經網絡,給高維的MLP特征組合增加了低維的特征組合形式,啟發了DCN;
  • DIN則是對用戶側的某歷史特征和廣告側的同領域特征進行組合,組合成的權重反過來重新影響用戶側的該領域各歷史特征的求和過程;
  • 多任務視角則是更加宏觀的思路,結合不同任務(而不僅是同任務的不同模型)對特征的組合過程,以提高模型的泛化能力。
  • 當然,廣告點擊率預估深度學習模型還有很多,比如Jie Zhu提出的基于決策樹的神經網絡(Deep Embedding Forest)將深度學習與樹型模型結合起來。如果數據特征存在圖像或者大量文本相關特征,傳統的卷積神經網絡、循環神經網絡均可以結合到廣告點擊率預估的場景中。各個深度模型都有相應的特點,限于篇幅,我們就不再贅述了。

    18.后記

    目前深度學習的算法層出不窮,看論文確實有些應接不暇。我們的經驗有兩點:要有充分的生產實踐經驗,同時要有扎實的算法理論基礎。很多論文的亮點其實是來自于實際做工程的經驗。也辛虧筆者一直都在生產一線并帶領算法團隊進行工程研發(當然也因此荒廢了近2年的博客,T△T ),積淀了一些特征工程、模型訓練的經驗,才勉強跟得上新論文。比如DIN“對用戶側的某領域歷史特征基于廣告側的同領域特征進行加權求和”的思想,其實與傳統機器學習對強業務相關特征進行針對性特征組合的特征工程思路比較相似。另一方面,對深度學習的經典、前沿方法的熟悉也很重要。從前面我們的串講也能夠看出,CTR預估作為一個業務特點很強的場景,在應用深度學習的道路上,也充分借鑒了注意力機制、殘差網絡、聯合訓練、多任務學習等經典的深度學習方法。了解博主的朋友也知道我們一直推崇理論與實踐相結合的思路,我們自身對這條經驗也非常受用。當然,計算廣告是一個很深的領域,自己研究尚淺,串講難免存在紕漏。歡迎大家指出問題,共同交流學習。

    參考文獻

  • 陳巧紅,余仕敏,賈宇波. 廣告點擊率預估技術綜述[J]. 浙江理工大學學報. 2015(11).
  • 紀文迪,王曉玲,周傲英. 廣告點擊率估算技術綜述[J]. 華東師范大學學報(自然科學版). 2013(03).
  • Rendle S. Factorization machines. Data Mining (ICDM), 2010 IEEE 10th International Conference on. 2010.
  • Heng-Tze Cheng and Levent Koc. Wide & deep learning for recommender systems. In Proceedings of the 1st Workshop on Deep Learning for Recommender Systems, pages 7–10. ACM, 2016.
  • Weinan Zhang, Tianming Du, and Jun Wang. Deep learning over multi-field categorical data - - A case study on user response prediction. In ECIR, 2016.
  • Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, and Xiuqiang He. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction. arXiv preprint arXiv:1703.04247 (2017).
  • Xiangnan He and Tat-Seng Chua. Neural Factorization Machines for Sparse Predictive Analytics SIGIR. 355–364. 2017.
  • Guorui Zhou, Chengru Song, Xiaoqiang Zhu, Xiao Ma, Yanghui Yan, Xingya Dai, Han Zhu, Junqi Jin, Han Li, and Kun Gai. 2017. Deep Interest Network for Click-Through Rate Prediction. arXiv preprint arXiv:1706.06978 (2017).
  • J. Xiao, H. Ye, X. He, H. Zhang, F. Wu, and T.-S. Chua. Attentional factorization machines: Learning the weight of feature interactions via attention networks. In IJCAI, 2017.

  • Ying Shan, T Ryan Hoens, Jian Jiao, Haijing Wang, Dong Yu, and JC Mao. 2016. Deep Crossing: Web-Scale Modeling without Manually Cra ed Combinatorial Features. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 255–262.

  • Wang, R., Fu, B., Fu, G., Wang, M.: Deep & cross network for ad click predictions. In: Proceedings of the ADKDD 17. pp. 12:1–12:7 (2017).
  • Ying Shan, T Ryan Hoens, et al. Deep crossing: Web-scale modeling without manually crafted combinatorial features. KDD ’16. ACM, 2016.
  • Paul Covington, Jay Adams, and Emre Sargin. Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM Conference on Recommender Systems, pages 191–198. ACM, 2016.
  • Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. 2015. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385 (2015).
  • 總結

    以上是生活随笔為你收集整理的从FM推演各深度学习CTR预估模型的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲精品欧美二区三区中文字幕 | 青青草原综合久久大伊人精品 | 老熟女乱子伦 | 精品无码国产自产拍在线观看蜜 | 国产亲子乱弄免费视频 | 东京无码熟妇人妻av在线网址 | 风流少妇按摩来高潮 | 久久久久久久人妻无码中文字幕爆 | 超碰97人人做人人爱少妇 | 国产黄在线观看免费观看不卡 | 国产一区二区三区四区五区加勒比 | 性欧美疯狂xxxxbbbb | 亚洲成av人影院在线观看 | 国产精品无码永久免费888 | 成人无码精品1区2区3区免费看 | 精品久久久中文字幕人妻 | 国产性生交xxxxx无码 | 亚洲欧美日韩综合久久久 | 亚洲中文字幕va福利 | 无遮挡国产高潮视频免费观看 | 久久综合九色综合欧美狠狠 | 乱人伦人妻中文字幕无码 | 亚洲日韩av一区二区三区四区 | 久久天天躁狠狠躁夜夜免费观看 | 牲交欧美兽交欧美 | 国内少妇偷人精品视频 | 国产亚洲欧美在线专区 | 丰满少妇人妻久久久久久 | 国产av一区二区三区最新精品 | 任你躁国产自任一区二区三区 | 国产高清不卡无码视频 | 午夜精品久久久久久久 | 无码精品人妻一区二区三区av | 无遮挡啪啪摇乳动态图 | 蜜臀av在线播放 久久综合激激的五月天 | 99国产精品白浆在线观看免费 | 国产精品久久国产三级国 | 午夜精品久久久久久久久 | 日韩av无码一区二区三区 | 国产乱码精品一品二品 | 中文字幕乱码人妻无码久久 | 日产国产精品亚洲系列 | 狠狠躁日日躁夜夜躁2020 | 亚洲精品综合一区二区三区在线 | 大屁股大乳丰满人妻 | 午夜精品一区二区三区在线观看 | 波多野结衣aⅴ在线 | 久久国产精品萌白酱免费 | 夜精品a片一区二区三区无码白浆 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 亚洲色偷偷男人的天堂 | 高潮喷水的毛片 | 中文精品久久久久人妻不卡 | 国产色视频一区二区三区 | av人摸人人人澡人人超碰下载 | 久久国产劲爆∧v内射 | 国产特级毛片aaaaaa高潮流水 | 蜜臀aⅴ国产精品久久久国产老师 | 福利一区二区三区视频在线观看 | 亚洲人成影院在线无码按摩店 | 欧美35页视频在线观看 | 人人澡人人透人人爽 | 美女极度色诱视频国产 | 亚洲国产精品一区二区第一页 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲 日韩 欧美 成人 在线观看 | 精品国产青草久久久久福利 | 欧美丰满少妇xxxx性 | 久久久久免费看成人影片 | 日本大乳高潮视频在线观看 | 又大又硬又黄的免费视频 | 亚洲爆乳大丰满无码专区 | 欧美日韩一区二区综合 | 狂野欧美性猛交免费视频 | 亚洲精品久久久久久一区二区 | 久精品国产欧美亚洲色aⅴ大片 | 日韩欧美群交p片內射中文 | 国产成人无码av在线影院 | 精品一区二区不卡无码av | 国产精品自产拍在线观看 | 国产成人人人97超碰超爽8 | 精品国产一区av天美传媒 | 精品久久久中文字幕人妻 | 亚洲人成无码网www | 无码人妻黑人中文字幕 | 在线观看免费人成视频 | 国产人妻久久精品二区三区老狼 | 国产69精品久久久久app下载 | 久久99精品国产麻豆蜜芽 | 美女张开腿让人桶 | 亚洲の无码国产の无码影院 | 国产绳艺sm调教室论坛 | 亚洲成av人影院在线观看 | 亚洲综合精品香蕉久久网 | 久久亚洲中文字幕无码 | 在线播放亚洲第一字幕 | 亚洲国产精品久久久天堂 | 午夜肉伦伦影院 | 久久久久久av无码免费看大片 | 国产 精品 自在自线 | 任你躁国产自任一区二区三区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产偷国产偷精品高清尤物 | 免费无码av一区二区 | 四虎国产精品免费久久 | 高潮毛片无遮挡高清免费视频 | 欧美怡红院免费全部视频 | 国产精品毛多多水多 | 噜噜噜亚洲色成人网站 | 无码纯肉视频在线观看 | 伊人久久婷婷五月综合97色 | 精品一区二区三区无码免费视频 | 国产亚洲精品久久久久久久 | 国产福利视频一区二区 | 黑人大群体交免费视频 | 亚洲国产精品无码久久久久高潮 | 欧美日本免费一区二区三区 | 国产精品人人爽人人做我的可爱 | 强辱丰满人妻hd中文字幕 | 亚洲天堂2017无码中文 | 玩弄少妇高潮ⅹxxxyw | 美女毛片一区二区三区四区 | 蜜桃视频韩日免费播放 | 亚洲成a人片在线观看无码3d | 欧美变态另类xxxx | 日本大乳高潮视频在线观看 | 国产艳妇av在线观看果冻传媒 | 成人一在线视频日韩国产 | 亚洲精品一区二区三区大桥未久 | 动漫av网站免费观看 | 亚洲国产精品成人久久蜜臀 | 欧美日韩色另类综合 | 四虎4hu永久免费 | 久久国产精品偷任你爽任你 | 久久久久免费看成人影片 | 牛和人交xxxx欧美 | 综合激情五月综合激情五月激情1 | 国产在线一区二区三区四区五区 | 久久精品国产日本波多野结衣 | 久久aⅴ免费观看 | 久久天天躁夜夜躁狠狠 | 久久久久久久久蜜桃 | 久久视频在线观看精品 | 成人动漫在线观看 | 一区二区传媒有限公司 | 亚洲精品国产精品乱码不卡 | 无码精品国产va在线观看dvd | 捆绑白丝粉色jk震动捧喷白浆 | 国产免费久久精品国产传媒 | 黑人大群体交免费视频 | 日本熟妇浓毛 | 久久久中文久久久无码 | 亚洲人成人无码网www国产 | 老熟女乱子伦 | 国产人妻大战黑人第1集 | 99久久无码一区人妻 | 亚洲爆乳精品无码一区二区三区 | 亚洲中文字幕av在天堂 | 乱人伦人妻中文字幕无码久久网 | 亚洲人交乣女bbw | 精品国产成人一区二区三区 | 亚洲国产精品久久久久久 | 日本一卡2卡3卡四卡精品网站 | 国产精品久久久久影院嫩草 | 人妻少妇精品视频专区 | a片免费视频在线观看 | 日本一区二区更新不卡 | 精品一二三区久久aaa片 | 四十如虎的丰满熟妇啪啪 | 亚洲中文字幕在线观看 | 久久99精品国产麻豆蜜芽 | 暴力强奷在线播放无码 | 精品国精品国产自在久国产87 | 图片小说视频一区二区 | 国产午夜无码精品免费看 | 久激情内射婷内射蜜桃人妖 | 国产精品免费大片 | 国内少妇偷人精品视频 | 一本久久伊人热热精品中文字幕 | 少妇性荡欲午夜性开放视频剧场 | 在教室伦流澡到高潮hnp视频 | 国产午夜福利100集发布 | 国产精品福利视频导航 | 少妇无码一区二区二三区 | 中文字幕无码日韩专区 | 国产精品无套呻吟在线 | 亚洲欧美日韩综合久久久 | 成人影院yy111111在线观看 | 亚洲小说图区综合在线 | 国产亚洲人成在线播放 | 成人欧美一区二区三区 | 国产亚洲人成a在线v网站 | 成人亚洲精品久久久久软件 | 国产人妻大战黑人第1集 | 丰满少妇熟乱xxxxx视频 | 亚洲毛片av日韩av无码 | 久久久精品人妻久久影视 | 亚洲国产精品久久久久久 | 男女性色大片免费网站 | 久久久久av无码免费网 | 在线观看国产午夜福利片 | 国产xxx69麻豆国语对白 | 亚洲综合在线一区二区三区 | 美女极度色诱视频国产 | 久久亚洲日韩精品一区二区三区 | 国产精品亚洲综合色区韩国 | 一本大道伊人av久久综合 | 老司机亚洲精品影院无码 | 亚洲熟悉妇女xxx妇女av | 黑人巨大精品欧美黑寡妇 | 动漫av一区二区在线观看 | 国产亚洲精品久久久久久大师 | 又湿又紧又大又爽a视频国产 | 国产精品爱久久久久久久 | 国产情侣作爱视频免费观看 | 久久精品国产一区二区三区肥胖 | 亚洲成av人片天堂网无码】 | 精品国产精品久久一区免费式 | 欧美第一黄网免费网站 | 国产成人综合美国十次 | 亚洲成av人影院在线观看 | 欧美熟妇另类久久久久久多毛 | 日韩精品久久久肉伦网站 | 国产成人综合在线女婷五月99播放 | 丰满人妻一区二区三区免费视频 | 久久久无码中文字幕久... | 亚洲精品欧美二区三区中文字幕 | 国产sm调教视频在线观看 | 青青草原综合久久大伊人精品 | 久久国内精品自在自线 | 欧美熟妇另类久久久久久多毛 | 黑人粗大猛烈进出高潮视频 | 国产香蕉97碰碰久久人人 | 久久综合给久久狠狠97色 | 少妇被粗大的猛进出69影院 | 日产国产精品亚洲系列 | 色婷婷久久一区二区三区麻豆 | 最新国产乱人伦偷精品免费网站 | 精品久久久久久人妻无码中文字幕 | 亚洲成熟女人毛毛耸耸多 | 少妇无码一区二区二三区 | 奇米影视7777久久精品人人爽 | 国产亚洲精品久久久久久大师 | 国产成人精品视频ⅴa片软件竹菊 | 1000部啪啪未满十八勿入下载 | 76少妇精品导航 | 日日橹狠狠爱欧美视频 | 亚欧洲精品在线视频免费观看 | 久青草影院在线观看国产 | 久久精品国产精品国产精品污 | 麻豆成人精品国产免费 | 国产一区二区三区影院 | 丰满岳乱妇在线观看中字无码 | 免费人成在线视频无码 | 亚洲成av人综合在线观看 | 四虎永久在线精品免费网址 | 欧美老妇与禽交 | 性色av无码免费一区二区三区 | 少妇的肉体aa片免费 | 亚洲国产av美女网站 | 精品久久8x国产免费观看 | 日韩视频 中文字幕 视频一区 | 久久综合狠狠综合久久综合88 | 女人和拘做爰正片视频 | 久久久中文久久久无码 | 亚洲乱亚洲乱妇50p | 日本精品高清一区二区 | 亚洲精品www久久久 | 自拍偷自拍亚洲精品被多人伦好爽 | 在线播放无码字幕亚洲 | 国产极品美女高潮无套在线观看 | 99视频精品全部免费免费观看 | 亚洲综合无码久久精品综合 | 亚洲一区二区三区四区 | 亚洲日韩av一区二区三区四区 | 97无码免费人妻超级碰碰夜夜 | 精品无人区无码乱码毛片国产 | 乱人伦人妻中文字幕无码 | 玩弄人妻少妇500系列视频 | www一区二区www免费 | 欧美日韩一区二区免费视频 | 日韩av无码中文无码电影 | 天天综合网天天综合色 | 伊在人天堂亚洲香蕉精品区 | 人妻夜夜爽天天爽三区 | 久久国产精品精品国产色婷婷 | 99国产欧美久久久精品 | 欧美肥老太牲交大战 | 中文久久乱码一区二区 | 亚洲国产精华液网站w | 天堂亚洲2017在线观看 | 亚洲国产av美女网站 | 日日碰狠狠躁久久躁蜜桃 | 又大又紧又粉嫩18p少妇 | 熟妇人妻中文av无码 | 日本护士xxxxhd少妇 | 欧美自拍另类欧美综合图片区 | 97资源共享在线视频 | 国产亲子乱弄免费视频 | 鲁一鲁av2019在线 | 久久人人97超碰a片精品 | 熟妇人妻中文av无码 | 巨爆乳无码视频在线观看 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 日本一卡2卡3卡四卡精品网站 | 波多野结衣一区二区三区av免费 | 亚洲日本一区二区三区在线 | 极品尤物被啪到呻吟喷水 | 无码成人精品区在线观看 | 在教室伦流澡到高潮hnp视频 | 国产av久久久久精东av | 日本一卡2卡3卡四卡精品网站 | 一本无码人妻在中文字幕免费 | 日本精品少妇一区二区三区 | 偷窥日本少妇撒尿chinese | 久久伊人色av天堂九九小黄鸭 | 色诱久久久久综合网ywww | 久久久久久久人妻无码中文字幕爆 | 久久99国产综合精品 | 人妻天天爽夜夜爽一区二区 | 国产精品第一区揄拍无码 | 国产在线精品一区二区高清不卡 | 亚洲 高清 成人 动漫 | 国产香蕉尹人综合在线观看 | 亚洲小说图区综合在线 | 99re在线播放 | 免费视频欧美无人区码 | 精品无码国产自产拍在线观看蜜 | 国产精品久免费的黄网站 | 久激情内射婷内射蜜桃人妖 | 国产凸凹视频一区二区 | 国产精品高潮呻吟av久久4虎 | 久久这里只有精品视频9 | 又大又硬又爽免费视频 | 久久精品中文字幕大胸 | 国产区女主播在线观看 | 亚洲一区二区三区在线观看网站 | 精品国产一区二区三区四区 | 久久久av男人的天堂 | 成人亚洲精品久久久久 | 人妻有码中文字幕在线 | 日韩欧美群交p片內射中文 | 精品无码av一区二区三区 | 九九综合va免费看 | 亚洲色大成网站www国产 | a在线观看免费网站大全 | 国产精品美女久久久久av爽李琼 | а√天堂www在线天堂小说 | 精品国产青草久久久久福利 | 久久精品人人做人人综合 | 日韩精品乱码av一区二区 | 77777熟女视频在线观看 а天堂中文在线官网 | 丰满少妇高潮惨叫视频 | 午夜肉伦伦影院 | 亚洲伊人久久精品影院 | 国产热a欧美热a在线视频 | 国产口爆吞精在线视频 | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲国产欧美国产综合一区 | 亲嘴扒胸摸屁股激烈网站 | 日本又色又爽又黄的a片18禁 | 捆绑白丝粉色jk震动捧喷白浆 | 免费看男女做好爽好硬视频 | 日韩少妇内射免费播放 | 国产精品久久久午夜夜伦鲁鲁 | 欧美变态另类xxxx | 国产综合久久久久鬼色 | 久久人妻内射无码一区三区 | 女高中生第一次破苞av | 黑人大群体交免费视频 | 东京热男人av天堂 | 国产精品资源一区二区 | 67194成是人免费无码 | 67194成是人免费无码 | 精品国产一区二区三区av 性色 | 日本一本二本三区免费 | 又湿又紧又大又爽a视频国产 | 亚洲精品一区三区三区在线观看 | 久久综合给久久狠狠97色 | 日本一区二区更新不卡 | 亚洲日韩一区二区 | 亚洲人成影院在线无码按摩店 | 中文字幕无码热在线视频 | 国产莉萝无码av在线播放 | 131美女爱做视频 | 无码国模国产在线观看 | 少女韩国电视剧在线观看完整 | 无码毛片视频一区二区本码 | 丝袜 中出 制服 人妻 美腿 | 免费人成在线观看网站 | 一本色道久久综合亚洲精品不卡 | 成人动漫在线观看 | 人人澡人人妻人人爽人人蜜桃 | 精品一区二区三区波多野结衣 | 76少妇精品导航 | 波多野42部无码喷潮在线 | 国产精品资源一区二区 | 亚洲毛片av日韩av无码 | 少妇高潮喷潮久久久影院 | 亚洲一区av无码专区在线观看 | 人人妻人人藻人人爽欧美一区 | 欧美人与禽zoz0性伦交 | 国产特级毛片aaaaaaa高清 | 桃花色综合影院 | 一本色道久久综合狠狠躁 | 秋霞成人午夜鲁丝一区二区三区 | 99国产欧美久久久精品 | 伊人久久婷婷五月综合97色 | 亚洲精品久久久久久久久久久 | 国产精品久久精品三级 | 久久99热只有频精品8 | 内射巨臀欧美在线视频 | 国产精品美女久久久久av爽李琼 | 国产做国产爱免费视频 | 久久国产劲爆∧v内射 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产午夜亚洲精品不卡 | 国内精品久久毛片一区二区 | v一区无码内射国产 | 九一九色国产 | 色五月五月丁香亚洲综合网 | 奇米影视888欧美在线观看 | 亚洲熟女一区二区三区 | 亚洲一区二区三区偷拍女厕 | 色综合天天综合狠狠爱 | 久久精品人人做人人综合试看 | av无码不卡在线观看免费 | 国产精品毛片一区二区 | 亚洲欧洲中文日韩av乱码 | 欧美乱妇无乱码大黄a片 | 中文字幕无码人妻少妇免费 | 亚洲精品成人av在线 | 精品无人国产偷自产在线 | 欧洲极品少妇 | 国产乱码精品一品二品 | 亚洲国产av美女网站 | 精品无码av一区二区三区 | 精品一区二区三区无码免费视频 | 国产精品多人p群无码 | 无码一区二区三区在线观看 | 骚片av蜜桃精品一区 | 亚洲色欲久久久综合网东京热 | 色诱久久久久综合网ywww | 无码人妻精品一区二区三区下载 | 中文字幕无码日韩专区 | 亚洲乱亚洲乱妇50p | 无码人妻丰满熟妇区毛片18 | 小sao货水好多真紧h无码视频 | 国产精品高潮呻吟av久久4虎 | 免费国产成人高清在线观看网站 | 久久午夜无码鲁丝片秋霞 | 一本久道久久综合婷婷五月 | 内射巨臀欧美在线视频 | 欧美成人免费全部网站 | 亚洲aⅴ无码成人网站国产app | 日韩精品一区二区av在线 | 久久久久久久久蜜桃 | 欧美性生交活xxxxxdddd | a国产一区二区免费入口 | 一本久道久久综合婷婷五月 | 亚洲aⅴ无码成人网站国产app | 久久久精品成人免费观看 | 欧美老妇交乱视频在线观看 | 成人毛片一区二区 | 永久免费精品精品永久-夜色 | 亚洲精品国偷拍自产在线麻豆 | 国产情侣作爱视频免费观看 | 欧洲极品少妇 | 又粗又大又硬又长又爽 | 日本大乳高潮视频在线观看 | 性欧美牲交xxxxx视频 | 图片小说视频一区二区 | 精品亚洲韩国一区二区三区 | 亚洲第一网站男人都懂 | 精品无码一区二区三区的天堂 | 牲交欧美兽交欧美 | 国产特级毛片aaaaaaa高清 | 国产成人无码a区在线观看视频app | 亚洲呦女专区 | 亚洲综合在线一区二区三区 | 亚洲无人区午夜福利码高清完整版 | 亚洲色偷偷男人的天堂 | 天天摸天天透天天添 | 西西人体www44rt大胆高清 | 久久久久成人片免费观看蜜芽 | 免费无码av一区二区 | 国产无套粉嫩白浆在线 | 一本久道高清无码视频 | 亚拍精品一区二区三区探花 | 久久精品国产99久久6动漫 | 国产精品鲁鲁鲁 | 国产亚洲精品久久久闺蜜 | 男女下面进入的视频免费午夜 | 日产精品高潮呻吟av久久 | 亚洲精品午夜无码电影网 | 免费乱码人妻系列无码专区 | 欧美日韩一区二区免费视频 | 超碰97人人射妻 | 国产精品香蕉在线观看 | 国产精品va在线观看无码 | 亚洲国产成人a精品不卡在线 | 亚洲小说春色综合另类 | 综合激情五月综合激情五月激情1 | 99久久99久久免费精品蜜桃 | 男人的天堂2018无码 | 国产成人无码av一区二区 | 四虎国产精品免费久久 | 美女极度色诱视频国产 | 无码成人精品区在线观看 | 午夜不卡av免费 一本久久a久久精品vr综合 | 色综合久久中文娱乐网 | 日韩视频 中文字幕 视频一区 | 99久久精品午夜一区二区 | 中文字幕无码热在线视频 | 国产精品99爱免费视频 | 综合人妻久久一区二区精品 | 成在人线av无码免观看麻豆 | 天干天干啦夜天干天2017 | 熟妇女人妻丰满少妇中文字幕 | 久久99精品久久久久婷婷 | 纯爱无遮挡h肉动漫在线播放 | 亚洲国产精品无码久久久久高潮 | 亚洲成a人片在线观看日本 | 国产成人精品无码播放 | 国产亚洲日韩欧美另类第八页 | 国产成人精品视频ⅴa片软件竹菊 | 国语自产偷拍精品视频偷 | 午夜无码区在线观看 | 性生交大片免费看女人按摩摩 | 激情亚洲一区国产精品 | 性史性农村dvd毛片 | 麻豆国产人妻欲求不满谁演的 | 亚洲国产高清在线观看视频 | 狂野欧美性猛xxxx乱大交 | 300部国产真实乱 | 久久久中文字幕日本无吗 | 无码午夜成人1000部免费视频 | 国产精品欧美成人 | 黑人巨大精品欧美黑寡妇 | 性啪啪chinese东北女人 | 国产色视频一区二区三区 | 午夜福利一区二区三区在线观看 | 丰满人妻精品国产99aⅴ | 玩弄人妻少妇500系列视频 | 一个人看的www免费视频在线观看 | 香蕉久久久久久av成人 | 欧美日韩一区二区免费视频 | 久久zyz资源站无码中文动漫 | 亚洲欧洲无卡二区视頻 | 色诱久久久久综合网ywww | 成人片黄网站色大片免费观看 | 娇妻被黑人粗大高潮白浆 | 熟妇人妻激情偷爽文 | 一本大道伊人av久久综合 | 亚洲精品久久久久久一区二区 | 国产黑色丝袜在线播放 | 大胆欧美熟妇xx | 东北女人啪啪对白 | 国産精品久久久久久久 | 亚洲の无码国产の无码步美 | 在线 国产 欧美 亚洲 天堂 | 欧美成人高清在线播放 | 午夜时刻免费入口 | 国产午夜亚洲精品不卡 | 欧美 日韩 人妻 高清 中文 | 国产精品内射视频免费 | 亲嘴扒胸摸屁股激烈网站 | 狠狠色丁香久久婷婷综合五月 | 亚洲の无码国产の无码影院 | 亚洲中文字幕成人无码 | 小鲜肉自慰网站xnxx | 久久 国产 尿 小便 嘘嘘 | 久久午夜无码鲁丝片午夜精品 | 永久免费精品精品永久-夜色 | 一本色道久久综合狠狠躁 | 中文字幕色婷婷在线视频 | 老司机亚洲精品影院无码 | 性欧美videos高清精品 | 蜜桃臀无码内射一区二区三区 | 国产欧美熟妇另类久久久 | 亚洲无人区午夜福利码高清完整版 | 玩弄少妇高潮ⅹxxxyw | 丁香啪啪综合成人亚洲 | 任你躁在线精品免费 | av人摸人人人澡人人超碰下载 | 成人动漫在线观看 | 欧美熟妇另类久久久久久多毛 | 精品一区二区三区无码免费视频 | 久久国产精品_国产精品 | 18黄暴禁片在线观看 | 国产精品久久久久影院嫩草 | 久久伊人色av天堂九九小黄鸭 | 娇妻被黑人粗大高潮白浆 | 在线精品国产一区二区三区 | 亚洲成av人影院在线观看 | 国产69精品久久久久app下载 | 一本大道伊人av久久综合 | 人妻尝试又大又粗久久 | 牲欲强的熟妇农村老妇女 | 久久97精品久久久久久久不卡 | 欧美黑人乱大交 | 国产高清不卡无码视频 | 人妻少妇精品无码专区动漫 | 亚洲熟妇色xxxxx欧美老妇 | 在线欧美精品一区二区三区 | 东京无码熟妇人妻av在线网址 | 欧美激情一区二区三区成人 | 在线播放无码字幕亚洲 | 人妻与老人中文字幕 | 亚洲欧美日韩国产精品一区二区 | 欧美喷潮久久久xxxxx | 国产精品无码成人午夜电影 | 蜜臀av在线播放 久久综合激激的五月天 | 日日麻批免费40分钟无码 | 曰本女人与公拘交酡免费视频 | 色综合久久久久综合一本到桃花网 | 精品久久久久久人妻无码中文字幕 | 国内精品九九久久久精品 | 亚洲成a人片在线观看日本 | 国内老熟妇对白xxxxhd | 午夜福利一区二区三区在线观看 | 国产一区二区三区日韩精品 | 欧美35页视频在线观看 | 人人澡人人妻人人爽人人蜜桃 | 人妻互换免费中文字幕 | 色综合久久久久综合一本到桃花网 | 亲嘴扒胸摸屁股激烈网站 | 人妻少妇精品无码专区二区 | 熟女体下毛毛黑森林 | 天天av天天av天天透 | 少妇厨房愉情理9仑片视频 | 亚洲欧美色中文字幕在线 | 久久国内精品自在自线 | 在线观看国产一区二区三区 | 丰满妇女强制高潮18xxxx | 国产亚洲欧美在线专区 | 在线观看国产一区二区三区 | 国产精品高潮呻吟av久久4虎 | 亚洲精品久久久久avwww潮水 | 国产av剧情md精品麻豆 | 激情亚洲一区国产精品 | 国产乱人伦偷精品视频 | 色偷偷人人澡人人爽人人模 | 亚洲精品久久久久avwww潮水 | 久久zyz资源站无码中文动漫 | 亚洲国产精品无码一区二区三区 | 亚洲人成影院在线观看 | 国产一精品一av一免费 | 国产麻豆精品精东影业av网站 | 久青草影院在线观看国产 | 性色av无码免费一区二区三区 | 日日摸天天摸爽爽狠狠97 | 色欲综合久久中文字幕网 | a在线观看免费网站大全 | 国产精品内射视频免费 | 天堂亚洲2017在线观看 | 久久久久久亚洲精品a片成人 | 久久精品中文字幕一区 | 性史性农村dvd毛片 | 亚洲综合在线一区二区三区 | 成人无码精品1区2区3区免费看 | 久久99精品久久久久久动态图 | 久久综合久久自在自线精品自 | 欧美日韩一区二区三区自拍 | 久久久成人毛片无码 | 清纯唯美经典一区二区 | 极品嫩模高潮叫床 | 18无码粉嫩小泬无套在线观看 | 亚洲成av人片天堂网无码】 | 一本久久a久久精品亚洲 | 精品久久久久香蕉网 | 国产精品无码一区二区桃花视频 | 亚洲 另类 在线 欧美 制服 | 国产熟妇高潮叫床视频播放 | 国产国语老龄妇女a片 | 一二三四社区在线中文视频 | 日韩人妻无码一区二区三区久久99 | 大地资源网第二页免费观看 | 97精品国产97久久久久久免费 | 一本精品99久久精品77 | 亚洲午夜久久久影院 | 一本久久伊人热热精品中文字幕 | 亚洲乱亚洲乱妇50p | 久久国产精品精品国产色婷婷 | 天海翼激烈高潮到腰振不止 | 少妇人妻偷人精品无码视频 | 国产女主播喷水视频在线观看 | 免费人成在线视频无码 | 久精品国产欧美亚洲色aⅴ大片 | 无码福利日韩神码福利片 | 成人欧美一区二区三区黑人 | 亚洲国产精品成人久久蜜臀 | 麻豆国产97在线 | 欧洲 | 97久久超碰中文字幕 | 亚洲色欲久久久综合网东京热 | 国产真实乱对白精彩久久 | 男人扒开女人内裤强吻桶进去 | v一区无码内射国产 | 国产一区二区三区日韩精品 | 色欲人妻aaaaaaa无码 | 乱人伦人妻中文字幕无码 | 国产黄在线观看免费观看不卡 | 久久亚洲a片com人成 | 日产精品高潮呻吟av久久 | 欧美老熟妇乱xxxxx | 伊人久久大香线焦av综合影院 | 亚洲一区二区三区含羞草 | 国产成人无码区免费内射一片色欲 | 男女性色大片免费网站 | 一个人免费观看的www视频 | 国产精品国产三级国产专播 | 丰满少妇高潮惨叫视频 | 国产69精品久久久久app下载 | 亚洲精品国产品国语在线观看 | 国产av一区二区精品久久凹凸 | 国产内射老熟女aaaa | 日韩欧美成人免费观看 | 亚拍精品一区二区三区探花 | 成人精品一区二区三区中文字幕 | 水蜜桃av无码 | 国产精品亚洲а∨无码播放麻豆 | 青春草在线视频免费观看 | 久久国产自偷自偷免费一区调 | 扒开双腿吃奶呻吟做受视频 | 在线观看欧美一区二区三区 | 国产精品美女久久久 | 黑森林福利视频导航 | 国产肉丝袜在线观看 | 亚欧洲精品在线视频免费观看 | 国产在线无码精品电影网 | 97精品人妻一区二区三区香蕉 | 国产性生大片免费观看性 | 99久久久无码国产精品免费 | 日韩在线不卡免费视频一区 | 高潮毛片无遮挡高清免费 | 未满小14洗澡无码视频网站 | 美女扒开屁股让男人桶 | 亚洲娇小与黑人巨大交 | 成熟妇人a片免费看网站 | 欧美35页视频在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 图片区 小说区 区 亚洲五月 | 亚洲熟悉妇女xxx妇女av | 在线a亚洲视频播放在线观看 | 亚洲午夜福利在线观看 | 九九综合va免费看 | 97夜夜澡人人爽人人喊中国片 | 在线视频网站www色 | 红桃av一区二区三区在线无码av | 伊人色综合久久天天小片 | 好屌草这里只有精品 | 青青草原综合久久大伊人精品 | 2019nv天堂香蕉在线观看 | 激情五月综合色婷婷一区二区 | 欧美xxxx黑人又粗又长 | 精品久久久无码中文字幕 | 亚洲熟女一区二区三区 | 国产绳艺sm调教室论坛 | 清纯唯美经典一区二区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 又粗又大又硬毛片免费看 | 国产精品-区区久久久狼 | 日本护士毛茸茸高潮 | 亚洲精品一区二区三区大桥未久 | 久久精品中文闷骚内射 | 国产成人精品一区二区在线小狼 | 国产人妻精品一区二区三区不卡 | 奇米影视7777久久精品 | 麻豆国产97在线 | 欧洲 | 色综合视频一区二区三区 | 亚洲爆乳精品无码一区二区三区 | 三级4级全黄60分钟 | 无码人妻av免费一区二区三区 | 亚洲国产精品无码久久久久高潮 | 亚洲国产av精品一区二区蜜芽 | 亚洲s码欧洲m码国产av | 极品尤物被啪到呻吟喷水 | 日韩欧美成人免费观看 | 午夜福利不卡在线视频 | 国产精品久久久久久久影院 | 乱人伦人妻中文字幕无码久久网 | 无码人妻av免费一区二区三区 | 欧美日韩久久久精品a片 | 婷婷六月久久综合丁香 | 国产成人无码av片在线观看不卡 | 欧美老妇交乱视频在线观看 | 日本在线高清不卡免费播放 | 国产凸凹视频一区二区 | 亚洲国产欧美国产综合一区 | 国产亚av手机在线观看 | 麻豆精产国品 | 国产做国产爱免费视频 | 中文亚洲成a人片在线观看 | 国产亚av手机在线观看 | 少妇激情av一区二区 | 精品国产成人一区二区三区 | 少女韩国电视剧在线观看完整 | 免费看男女做好爽好硬视频 | 5858s亚洲色大成网站www | 欧美野外疯狂做受xxxx高潮 | 成人aaa片一区国产精品 | 激情爆乳一区二区三区 | 久久精品国产大片免费观看 | 在线观看免费人成视频 | 一本大道伊人av久久综合 | 精品日本一区二区三区在线观看 | 美女极度色诱视频国产 | 中文字幕色婷婷在线视频 | 国产高潮视频在线观看 | 女高中生第一次破苞av | 亚洲日本在线电影 | 久青草影院在线观看国产 | 激情国产av做激情国产爱 | 99久久久无码国产aaa精品 | 少妇邻居内射在线 | 亲嘴扒胸摸屁股激烈网站 | 国产在热线精品视频 | 亚洲精品午夜国产va久久成人 | 永久免费精品精品永久-夜色 | 国产精品久久久久久亚洲影视内衣 | 亚洲精品成人av在线 | 久激情内射婷内射蜜桃人妖 | 国产乱码精品一品二品 | 野狼第一精品社区 | 欧美日韩一区二区三区自拍 | 日韩欧美成人免费观看 | 亚洲七七久久桃花影院 | 国产乱人无码伦av在线a | 亚洲中文字幕无码中文字在线 | аⅴ资源天堂资源库在线 | 国产两女互慰高潮视频在线观看 | 天海翼激烈高潮到腰振不止 | 亚洲国产精品一区二区美利坚 | 骚片av蜜桃精品一区 | 欧美一区二区三区 | 国产人妻久久精品二区三区老狼 | 内射巨臀欧美在线视频 | 国产乱人伦偷精品视频 | 麻豆人妻少妇精品无码专区 | 色婷婷av一区二区三区之红樱桃 | 国产福利视频一区二区 | 99久久久无码国产精品免费 | 国产内射爽爽大片视频社区在线 | 奇米影视7777久久精品 | 国产一区二区三区精品视频 | 欧美人与动性行为视频 | 噜噜噜亚洲色成人网站 | 国产艳妇av在线观看果冻传媒 | 国产三级精品三级男人的天堂 | 国产成人无码区免费内射一片色欲 | 大屁股大乳丰满人妻 | 成人三级无码视频在线观看 | 免费无码午夜福利片69 | 成人一区二区免费视频 | 久久久久免费精品国产 | 人人爽人人澡人人高潮 | 亚洲日韩精品欧美一区二区 | 熟女俱乐部五十路六十路av | 欧美乱妇无乱码大黄a片 | 亚洲国产成人a精品不卡在线 | 夜先锋av资源网站 | 台湾无码一区二区 | 欧美野外疯狂做受xxxx高潮 | 最新国产乱人伦偷精品免费网站 | 97无码免费人妻超级碰碰夜夜 | 国产精品自产拍在线观看 | 亚洲日本一区二区三区在线 | 国产亚洲精品久久久久久久久动漫 | 亚洲国产精品毛片av不卡在线 | 丝袜美腿亚洲一区二区 | 欧美人与禽zoz0性伦交 | 国产精品久久久午夜夜伦鲁鲁 | 少妇久久久久久人妻无码 | 亚洲精品久久久久中文第一幕 | 亚洲男人av香蕉爽爽爽爽 | 亚洲狠狠婷婷综合久久 | 久久人妻内射无码一区三区 | 亚洲色欲色欲天天天www | 中文字幕无码乱人伦 | 亚洲国产av美女网站 | 国产一区二区三区精品视频 | 偷窥村妇洗澡毛毛多 | 日本xxxx色视频在线观看免费 | 日本丰满护士爆乳xxxx | 大乳丰满人妻中文字幕日本 | 国产熟妇高潮叫床视频播放 | 无码福利日韩神码福利片 | 欧美日韩在线亚洲综合国产人 | 亚洲国产精品无码一区二区三区 | 在线а√天堂中文官网 | 人妻有码中文字幕在线 | 成人性做爰aaa片免费看 | 亚洲一区二区三区 | 国产av无码专区亚洲awww | 乌克兰少妇性做爰 | 亚洲精品国偷拍自产在线麻豆 | 日韩精品乱码av一区二区 | 国产综合色产在线精品 | 女人和拘做爰正片视频 | 曰本女人与公拘交酡免费视频 | 国产精品成人av在线观看 | 漂亮人妻洗澡被公强 日日躁 | 国产情侣作爱视频免费观看 | 精品人妻人人做人人爽夜夜爽 | 亚洲gv猛男gv无码男同 | 国产一区二区三区四区五区加勒比 | 成人试看120秒体验区 | 亚洲a无码综合a国产av中文 | 纯爱无遮挡h肉动漫在线播放 | 成人片黄网站色大片免费观看 | 亚洲码国产精品高潮在线 | 曰本女人与公拘交酡免费视频 | 波多野结衣 黑人 | 久久zyz资源站无码中文动漫 | 中文字幕乱码中文乱码51精品 | 亚洲中文字幕乱码av波多ji | 丰满人妻精品国产99aⅴ | 色婷婷香蕉在线一区二区 | 国内精品人妻无码久久久影院蜜桃 | 成人性做爰aaa片免费看不忠 | 久精品国产欧美亚洲色aⅴ大片 | √天堂中文官网8在线 | 牲交欧美兽交欧美 | 男女下面进入的视频免费午夜 | 国产精品久久久久久久影院 | 动漫av网站免费观看 | 中文字幕无码热在线视频 | 妺妺窝人体色www婷婷 | 亚洲成av人在线观看网址 | 男人的天堂av网站 | 欧美 亚洲 国产 另类 | 国产精品亚洲一区二区三区喷水 | 久久精品人妻少妇一区二区三区 | 永久黄网站色视频免费直播 | 999久久久国产精品消防器材 | 三上悠亚人妻中文字幕在线 | 1000部夫妻午夜免费 | yw尤物av无码国产在线观看 | 97夜夜澡人人爽人人喊中国片 | 国产精品内射视频免费 | 国产精品免费大片 | 欧洲精品码一区二区三区免费看 | 亚洲男女内射在线播放 | 免费看男女做好爽好硬视频 | 午夜无码区在线观看 | 国产片av国语在线观看 | 国产高清av在线播放 | 中文字幕无码人妻少妇免费 | 亚洲国产欧美在线成人 | 99久久精品午夜一区二区 | 久久久久国色av免费观看性色 | 久久久精品欧美一区二区免费 | а√资源新版在线天堂 | 亚洲综合无码一区二区三区 | av无码电影一区二区三区 | 日本熟妇大屁股人妻 | 人妻夜夜爽天天爽三区 | 国产艳妇av在线观看果冻传媒 | 又湿又紧又大又爽a视频国产 | 熟女少妇在线视频播放 | 国产香蕉97碰碰久久人人 | 欧美自拍另类欧美综合图片区 | 人妻无码αv中文字幕久久琪琪布 | 国产真实夫妇视频 | 精品人妻人人做人人爽 | 巨爆乳无码视频在线观看 | 久久久久久国产精品无码下载 | 中国女人内谢69xxxxxa片 | 欧美亚洲日韩国产人成在线播放 | 国产精品久久久久9999小说 | 图片区 小说区 区 亚洲五月 | 国产电影无码午夜在线播放 | 日韩精品成人一区二区三区 | 色情久久久av熟女人妻网站 | 亚洲精品一区二区三区婷婷月 | 亚洲色欲久久久综合网东京热 | 精品无码一区二区三区爱欲 | 国内揄拍国内精品人妻 | 成人免费视频视频在线观看 免费 | 欧美freesex黑人又粗又大 | 人妻尝试又大又粗久久 | 久久亚洲日韩精品一区二区三区 | 国精产品一区二区三区 | 欧美老人巨大xxxx做受 | а天堂中文在线官网 | 国产精品无码一区二区桃花视频 | 扒开双腿吃奶呻吟做受视频 | 日韩精品成人一区二区三区 | 国产欧美熟妇另类久久久 | 亚洲aⅴ无码成人网站国产app | 欧美野外疯狂做受xxxx高潮 | 欧美国产日韩亚洲中文 | 无码人妻精品一区二区三区不卡 | 亚洲人成网站免费播放 | 成人aaa片一区国产精品 | 亚洲精品国产品国语在线观看 | 久久熟妇人妻午夜寂寞影院 | 夜夜躁日日躁狠狠久久av | 国产午夜无码精品免费看 | 成人无码精品一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 成人无码精品一区二区三区 | 熟妇人妻无码xxx视频 | 窝窝午夜理论片影院 | 未满成年国产在线观看 | 又粗又大又硬毛片免费看 | 香港三级日本三级妇三级 | 精品无码一区二区三区的天堂 | 中文字幕日产无线码一区 | 黑人巨大精品欧美一区二区 | 牲欲强的熟妇农村老妇女 | 亚洲爆乳精品无码一区二区三区 | 欧洲美熟女乱又伦 | 天天拍夜夜添久久精品大 | 成人试看120秒体验区 | 国产精品99爱免费视频 | 久久精品中文闷骚内射 | 国产午夜亚洲精品不卡下载 | 国产成人无码a区在线观看视频app | 国产成人无码av片在线观看不卡 | 中国女人内谢69xxxxxa片 | 熟妇女人妻丰满少妇中文字幕 | 2020最新国产自产精品 | 日韩av激情在线观看 | 色婷婷综合中文久久一本 | 无码人妻精品一区二区三区不卡 | 日本精品人妻无码77777 天堂一区人妻无码 | 黑人粗大猛烈进出高潮视频 | 国产成人午夜福利在线播放 | 国产两女互慰高潮视频在线观看 | 欧美精品无码一区二区三区 | 久久 国产 尿 小便 嘘嘘 | 久久久久久av无码免费看大片 | 久久精品国产一区二区三区肥胖 | 一本久道久久综合婷婷五月 | 国产成人人人97超碰超爽8 | 狠狠综合久久久久综合网 | 四虎国产精品一区二区 | 双乳奶水饱满少妇呻吟 | 国产精品美女久久久久av爽李琼 | 欧美猛少妇色xxxxx | 亚洲日本在线电影 | 亚洲午夜无码久久 | 国産精品久久久久久久 | 成年女人永久免费看片 | 人人妻人人澡人人爽欧美精品 | 久久天天躁夜夜躁狠狠 | 丰满岳乱妇在线观看中字无码 | 日韩少妇白浆无码系列 | 欧美精品免费观看二区 | www国产亚洲精品久久久日本 | 影音先锋中文字幕无码 | 少妇厨房愉情理9仑片视频 | 欧美猛少妇色xxxxx | 内射爽无广熟女亚洲 | 欧美国产日韩久久mv | 欧美亚洲日韩国产人成在线播放 | 欧美人与禽zoz0性伦交 | 成人女人看片免费视频放人 | 奇米影视888欧美在线观看 | 十八禁真人啪啪免费网站 | 国产99久久精品一区二区 | 国产精品高潮呻吟av久久 | www国产精品内射老师 | 日韩亚洲欧美中文高清在线 | 久久久www成人免费毛片 | 日韩欧美中文字幕公布 | 免费网站看v片在线18禁无码 | 色五月五月丁香亚洲综合网 | 国产亚洲视频中文字幕97精品 | 亚洲大尺度无码无码专区 | 少妇性俱乐部纵欲狂欢电影 | 中文字幕无码日韩欧毛 | 风流少妇按摩来高潮 | 亚洲中文字幕无码中文字在线 | 欧美成人免费全部网站 | 日本精品少妇一区二区三区 | 亚洲成色在线综合网站 | 欧美放荡的少妇 | 伊人色综合久久天天小片 | 中文字幕无码免费久久99 | 亚洲国产精品久久久天堂 | 九月婷婷人人澡人人添人人爽 | 男人扒开女人内裤强吻桶进去 | 久久久成人毛片无码 | 色婷婷久久一区二区三区麻豆 | 婷婷五月综合缴情在线视频 | 国产一区二区三区精品视频 | 国产乱人伦偷精品视频 | 午夜时刻免费入口 | 欧美刺激性大交 | 亚洲另类伦春色综合小说 | 老熟女重囗味hdxx69 | 亚洲精品无码国产 | 日日橹狠狠爱欧美视频 | 领导边摸边吃奶边做爽在线观看 | 久久久久免费精品国产 | 高潮毛片无遮挡高清免费视频 | 超碰97人人做人人爱少妇 | 无码国产激情在线观看 | 日本一卡2卡3卡四卡精品网站 | 熟女少妇在线视频播放 | 国产精品久久久 | 欧美老妇交乱视频在线观看 | 人人妻人人澡人人爽人人精品 | 国产人妻精品午夜福利免费 | 亚洲一区二区三区无码久久 | 在线欧美精品一区二区三区 | 中文无码伦av中文字幕 | 成在人线av无码免费 | 131美女爱做视频 | 蜜臀aⅴ国产精品久久久国产老师 | 日韩 欧美 动漫 国产 制服 | a在线观看免费网站大全 | 国产亚洲视频中文字幕97精品 | 精品无码国产自产拍在线观看蜜 | 亚洲熟悉妇女xxx妇女av | 午夜精品一区二区三区在线观看 | 亚洲国产精品无码久久久久高潮 | 久久99精品国产麻豆蜜芽 | 亚洲精品一区二区三区婷婷月 | 中文字幕无码日韩专区 | 啦啦啦www在线观看免费视频 | 日韩少妇内射免费播放 | 国产三级精品三级男人的天堂 | 人人爽人人澡人人人妻 | 成人精品视频一区二区 | 午夜精品久久久内射近拍高清 | 国产美女极度色诱视频www | 亚洲综合无码久久精品综合 | 狠狠躁日日躁夜夜躁2020 | 免费无码的av片在线观看 | 国产精品亚洲专区无码不卡 | 色欲综合久久中文字幕网 | 色一情一乱一伦一区二区三欧美 | 亚洲色欲久久久综合网东京热 | 亚洲精品久久久久久久久久久 | 久久午夜无码鲁丝片秋霞 | 人妻与老人中文字幕 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 小泽玛莉亚一区二区视频在线 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲精品久久久久久一区二区 | 网友自拍区视频精品 | 日产精品99久久久久久 | 午夜精品久久久内射近拍高清 | 天天做天天爱天天爽综合网 | 人妻无码αv中文字幕久久琪琪布 | 日韩精品a片一区二区三区妖精 | 免费无码一区二区三区蜜桃大 | 欧美成人午夜精品久久久 | 日本丰满护士爆乳xxxx | 中文字幕人妻无码一区二区三区 | 日本一区二区更新不卡 | 一个人看的视频www在线 | 中文字幕中文有码在线 | 国产真实伦对白全集 | 国产精品办公室沙发 | 久久精品人人做人人综合试看 | 国产乱人无码伦av在线a | 中文字幕无码免费久久9一区9 | 在线观看欧美一区二区三区 | 色综合久久久无码网中文 | 俄罗斯老熟妇色xxxx | 国产精品久久久久久亚洲影视内衣 | 少妇无码av无码专区在线观看 | 麻豆果冻传媒2021精品传媒一区下载 | 久精品国产欧美亚洲色aⅴ大片 | 天天爽夜夜爽夜夜爽 | 人妻少妇被猛烈进入中文字幕 | 呦交小u女精品视频 | 丰满诱人的人妻3 | 国产精品久久久久9999小说 | 久久综合给合久久狠狠狠97色 | 日本一区二区三区免费高清 | 亚洲理论电影在线观看 | 2019午夜福利不卡片在线 | 国产熟女一区二区三区四区五区 | 国产成人午夜福利在线播放 | 国产精品视频免费播放 | 麻豆成人精品国产免费 | 久久精品视频在线看15 | 国产性生大片免费观看性 | 300部国产真实乱 | 国产精品高潮呻吟av久久4虎 | 欧美老妇与禽交 | 亚洲精品综合五月久久小说 | 久久视频在线观看精品 | 国产明星裸体无码xxxx视频 | 97资源共享在线视频 | 亚洲一区二区三区含羞草 | 国产成人无码av一区二区 | 久久综合网欧美色妞网 | 色婷婷欧美在线播放内射 | 荫蒂添的好舒服视频囗交 | 少妇激情av一区二区 | 国产成人综合在线女婷五月99播放 | 欧洲美熟女乱又伦 | 国产精品亚洲专区无码不卡 | 国产色视频一区二区三区 | 四虎影视成人永久免费观看视频 | 国产亚洲美女精品久久久2020 | 国产欧美亚洲精品a | 99久久婷婷国产综合精品青草免费 | 国产美女极度色诱视频www | 亚洲国产精品无码一区二区三区 | 国精产品一区二区三区 | 无码任你躁久久久久久久 | 国产精品国产自线拍免费软件 | 国产精品久免费的黄网站 | 97夜夜澡人人爽人人喊中国片 | 97精品国产97久久久久久免费 | 在线看片无码永久免费视频 | 日本熟妇乱子伦xxxx | 亚洲成a人一区二区三区 | 国产色在线 | 国产 | 久久综合久久自在自线精品自 | 高潮毛片无遮挡高清免费 | 国产av无码专区亚洲a∨毛片 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 欧美人妻一区二区三区 | 性做久久久久久久免费看 | www一区二区www免费 | 亚洲欧美精品伊人久久 | 国产激情精品一区二区三区 | 亚洲 激情 小说 另类 欧美 | 丰满人妻一区二区三区免费视频 | 99在线 | 亚洲 | 无码中文字幕色专区 | 无码国产激情在线观看 | 亚洲精品中文字幕久久久久 | 亚洲欧美日韩成人高清在线一区 | 欧美野外疯狂做受xxxx高潮 | 日日麻批免费40分钟无码 | 亚洲经典千人经典日产 | 亚洲爆乳无码专区 | 欧美 亚洲 国产 另类 | 中文字幕精品av一区二区五区 | 精品无码av一区二区三区 | 色妞www精品免费视频 | 狠狠噜狠狠狠狠丁香五月 | 欧美亚洲日韩国产人成在线播放 | 亚洲欧美精品伊人久久 | 色老头在线一区二区三区 | 国产午夜福利100集发布 | 国产成人精品三级麻豆 | 日韩av无码一区二区三区 | 国产成人精品一区二区在线小狼 | 日韩精品无码一本二本三本色 | 国产精品国产三级国产专播 | 西西人体www44rt大胆高清 | 国产在热线精品视频 | 在线 国产 欧美 亚洲 天堂 | 女人被男人躁得好爽免费视频 | 中文字幕人妻无码一夲道 | 国产黄在线观看免费观看不卡 | 亚洲精品久久久久久一区二区 | 国产精品多人p群无码 | 麻豆国产人妻欲求不满谁演的 | 全黄性性激高免费视频 | 亚洲春色在线视频 | 蜜臀aⅴ国产精品久久久国产老师 | 免费国产成人高清在线观看网站 | 国产在线无码精品电影网 | 亚欧洲精品在线视频免费观看 | 欧美老熟妇乱xxxxx | 国产色精品久久人妻 | 天天躁夜夜躁狠狠是什么心态 | 激情综合激情五月俺也去 | 国产午夜手机精彩视频 | 男人的天堂2018无码 | 网友自拍区视频精品 | 蜜桃av抽搐高潮一区二区 | 美女毛片一区二区三区四区 | 在线精品国产一区二区三区 | 色欲久久久天天天综合网精品 | 亚洲国产精品一区二区第一页 | 无人区乱码一区二区三区 | 国产精品18久久久久久麻辣 | 国产综合色产在线精品 | 装睡被陌生人摸出水好爽 | 高清无码午夜福利视频 | 色欲久久久天天天综合网精品 | 综合人妻久久一区二区精品 | 88国产精品欧美一区二区三区 | 波多野结衣av在线观看 | 狠狠噜狠狠狠狠丁香五月 | 成在人线av无码免观看麻豆 | 给我免费的视频在线观看 | 亚洲最大成人网站 | 又大又紧又粉嫩18p少妇 | 又色又爽又黄的美女裸体网站 | 国产精品久久久久无码av色戒 | 国产人妻人伦精品1国产丝袜 | 一个人看的www免费视频在线观看 | 丰满人妻一区二区三区免费视频 | 国产成人无码专区 | av无码不卡在线观看免费 | 在线观看国产午夜福利片 | 亚洲午夜福利在线观看 | 一区二区三区高清视频一 | 噜噜噜亚洲色成人网站 | 无套内射视频囯产 | 婷婷丁香五月天综合东京热 | 欧美日韩一区二区综合 | 亚洲人成网站免费播放 | 最新国产麻豆aⅴ精品无码 | 欧美国产日韩亚洲中文 | 久久久久久久人妻无码中文字幕爆 | 久久久久99精品成人片 | 国产精品无码一区二区三区不卡 | 亚拍精品一区二区三区探花 | 国产极品视觉盛宴 | 搡女人真爽免费视频大全 | 色综合久久久无码中文字幕 | 性色欲情网站iwww九文堂 | 久久精品国产日本波多野结衣 | 99精品国产综合久久久久五月天 | 日韩av无码中文无码电影 | 丰满少妇高潮惨叫视频 | 国产特级毛片aaaaaa高潮流水 | 日本高清一区免费中文视频 | 亚洲精品国产第一综合99久久 | 精品一区二区三区无码免费视频 | 东京无码熟妇人妻av在线网址 | 免费无码一区二区三区蜜桃大 | 国产精品二区一区二区aⅴ污介绍 | 天堂а√在线中文在线 | 黑人大群体交免费视频 | 啦啦啦www在线观看免费视频 | 熟女少妇在线视频播放 | 黑人大群体交免费视频 | 精品久久久久久人妻无码中文字幕 | 久久五月精品中文字幕 | 国产做国产爱免费视频 | 美女黄网站人色视频免费国产 | 日本熟妇乱子伦xxxx | 国产成人精品一区二区在线小狼 | 亚洲一区二区三区四区 | 成人一在线视频日韩国产 | 午夜福利不卡在线视频 | 动漫av一区二区在线观看 | 国产精品久久久久久亚洲影视内衣 | 天天拍夜夜添久久精品 | 精品厕所偷拍各类美女tp嘘嘘 | 人人爽人人澡人人人妻 | 国产在线精品一区二区三区直播 | 中文字幕乱码亚洲无线三区 | 天天做天天爱天天爽综合网 | 天天燥日日燥 | 国产精品美女久久久 | 免费人成在线视频无码 | 国产香蕉97碰碰久久人人 | 精品国精品国产自在久国产87 | 亚洲大尺度无码无码专区 | 日本大香伊一区二区三区 | 精品久久久无码人妻字幂 | 国产精品久久久av久久久 | 一本久久伊人热热精品中文字幕 | 日日天日日夜日日摸 | 欧美亚洲日韩国产人成在线播放 | 亚洲一区二区三区播放 | 青春草在线视频免费观看 | 亚洲综合无码久久精品综合 | 国产农村乱对白刺激视频 | 免费观看激色视频网站 | 亚洲第一无码av无码专区 | 人人妻人人澡人人爽欧美一区九九 | 青青青手机频在线观看 | 色综合久久88色综合天天 | 色妞www精品免费视频 | 亚洲成色在线综合网站 | 人人爽人人澡人人高潮 | 成人无码视频在线观看网站 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲色成人中文字幕网站 | 巨爆乳无码视频在线观看 | 少妇被黑人到高潮喷出白浆 | 日本丰满熟妇videos | 亚洲国精产品一二二线 | 偷窥日本少妇撒尿chinese | 国产va免费精品观看 | 真人与拘做受免费视频 | www成人国产高清内射 | 中文字幕精品av一区二区五区 | 亚洲成av人片在线观看无码不卡 | 日日碰狠狠丁香久燥 | 无码人妻精品一区二区三区不卡 | 麻豆md0077饥渴少妇 | 日韩在线不卡免费视频一区 | 扒开双腿疯狂进出爽爽爽视频 | 国产成人无码一二三区视频 | 欧美成人高清在线播放 | 狠狠躁日日躁夜夜躁2020 | 日本熟妇人妻xxxxx人hd | 欧美熟妇另类久久久久久不卡 | 日韩少妇内射免费播放 | 麻豆果冻传媒2021精品传媒一区下载 | 久久午夜夜伦鲁鲁片无码免费 | 77777熟女视频在线观看 а天堂中文在线官网 | 伊人久久大香线蕉av一区二区 | 亚洲国产精品无码久久久久高潮 | www成人国产高清内射 | 中文字幕无码日韩欧毛 | 国产av人人夜夜澡人人爽麻豆 | 国产午夜无码视频在线观看 | 精品无码国产自产拍在线观看蜜 | 人妻无码久久精品人妻 | 丰满人妻被黑人猛烈进入 | 国产精品内射视频免费 | 中文字幕人妻无码一区二区三区 | 77777熟女视频在线观看 а天堂中文在线官网 | 高清国产亚洲精品自在久久 | 婷婷五月综合激情中文字幕 | 国产精品永久免费视频 | 成人综合网亚洲伊人 | 亚洲中文字幕无码一久久区 | 日韩av无码一区二区三区 | 日韩欧美群交p片內射中文 | 成人精品视频一区二区三区尤物 | 亚洲 欧美 激情 小说 另类 | 九九热爱视频精品 | 国产一精品一av一免费 | 国精产品一品二品国精品69xx | 色婷婷av一区二区三区之红樱桃 | 美女黄网站人色视频免费国产 | 亚洲成a人一区二区三区 | 午夜时刻免费入口 | 日韩av无码一区二区三区不卡 | 日韩精品久久久肉伦网站 | 国产成人人人97超碰超爽8 | 亚洲熟妇色xxxxx亚洲 | 午夜熟女插插xx免费视频 | 精品国产成人一区二区三区 | 成人无码视频免费播放 | 成人精品视频一区二区三区尤物 | 99riav国产精品视频 | 久久久精品456亚洲影院 | 欧美日韩亚洲国产精品 | 久久精品人人做人人综合 | 国产成人一区二区三区别 | 无码av免费一区二区三区试看 | 人人超人人超碰超国产 | 亚洲国产精品久久久久久 | 日韩av无码一区二区三区 | 国产莉萝无码av在线播放 | 久久人人爽人人爽人人片av高清 | 曰韩少妇内射免费播放 | 国内精品人妻无码久久久影院 | 国产成人精品一区二区在线小狼 | 少妇性荡欲午夜性开放视频剧场 | 在教室伦流澡到高潮hnp视频 | 国产真实乱对白精彩久久 | 成年女人永久免费看片 | 免费无码一区二区三区蜜桃大 | 成人av无码一区二区三区 | 国产成人精品三级麻豆 | 亚洲国产午夜精品理论片 | 日韩av无码中文无码电影 | 内射老妇bbwx0c0ck | 国产特级毛片aaaaaaa高清 | 亚洲gv猛男gv无码男同 | 2019午夜福利不卡片在线 | 国产欧美熟妇另类久久久 | 国产精品免费大片 | 在线观看欧美一区二区三区 | 无套内谢老熟女 | 高中生自慰www网站 | 亚洲乱码日产精品bd | 无码精品国产va在线观看dvd | 自拍偷自拍亚洲精品被多人伦好爽 | 久久久久av无码免费网 | 亚洲中文字幕无码中字 | 精品午夜福利在线观看 | 精品成人av一区二区三区 | 午夜福利不卡在线视频 | 国产精品美女久久久 | 亚洲精品无码人妻无码 | 久久久久人妻一区精品色欧美 | 国内精品一区二区三区不卡 | 天天躁夜夜躁狠狠是什么心态 | 99久久久无码国产精品免费 | 国产精品久久久av久久久 | 波多野结衣高清一区二区三区 | 捆绑白丝粉色jk震动捧喷白浆 | 日本熟妇浓毛 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 乱码av麻豆丝袜熟女系列 | 国产乱人偷精品人妻a片 | 欧美熟妇另类久久久久久多毛 | 99久久精品午夜一区二区 | 亚洲精品综合五月久久小说 | 丰满少妇高潮惨叫视频 | 色偷偷人人澡人人爽人人模 | 思思久久99热只有频精品66 | 夜夜躁日日躁狠狠久久av | 色婷婷久久一区二区三区麻豆 | 国产熟女一区二区三区四区五区 | 无码纯肉视频在线观看 | 日韩欧美成人免费观看 | 亚洲乱码日产精品bd | 久久综合久久自在自线精品自 | 乱人伦人妻中文字幕无码 | 亚洲成在人网站无码天堂 | 亚洲综合无码一区二区三区 | 一本色道久久综合亚洲精品不卡 | 国产福利视频一区二区 | 国产黑色丝袜在线播放 | 麻豆国产丝袜白领秘书在线观看 | 天干天干啦夜天干天2017 | 欧洲vodafone精品性 | 国产精品-区区久久久狼 | 国产成人亚洲综合无码 | 麻豆av传媒蜜桃天美传媒 | 波多野结衣乳巨码无在线观看 | 久久精品视频在线看15 | 88国产精品欧美一区二区三区 | √天堂中文官网8在线 | 日韩av无码中文无码电影 | 日产精品高潮呻吟av久久 | 日韩av无码一区二区三区不卡 | 国产精品亚洲五月天高清 | 一个人看的www免费视频在线观看 | v一区无码内射国产 | 九九久久精品国产免费看小说 | 丰满人妻翻云覆雨呻吟视频 | 日日天干夜夜狠狠爱 | 久久无码专区国产精品s | 我要看www免费看插插视频 | 最近中文2019字幕第二页 | 亚洲综合色区中文字幕 | 国产成人久久精品流白浆 | 亚洲va中文字幕无码久久不卡 | 久久久久久a亚洲欧洲av冫 | 熟女少妇人妻中文字幕 | 蜜桃视频韩日免费播放 | 丰满诱人的人妻3 | 国产精品99久久精品爆乳 | 一本久道久久综合狠狠爱 | 97se亚洲精品一区 | 久久精品中文字幕大胸 | 午夜无码人妻av大片色欲 | 久久久久亚洲精品男人的天堂 | 久9re热视频这里只有精品 | 波多野结衣一区二区三区av免费 | 特大黑人娇小亚洲女 | 精品偷拍一区二区三区在线看 | 中文字幕人妻无码一区二区三区 | 成人精品天堂一区二区三区 | 永久免费精品精品永久-夜色 | 国产精品无码一区二区桃花视频 | 欧美性黑人极品hd | 55夜色66夜色国产精品视频 | 色诱久久久久综合网ywww | 国内精品一区二区三区不卡 | 亚洲精品一区二区三区在线观看 | 精品欧美一区二区三区久久久 | 亚洲国产av精品一区二区蜜芽 | 少妇无码一区二区二三区 | 国产艳妇av在线观看果冻传媒 | 中文字幕日产无线码一区 | 国产在线一区二区三区四区五区 | 久久天天躁夜夜躁狠狠 | 欧美精品一区二区精品久久 | 国产精品美女久久久网av | 无码精品人妻一区二区三区av | 中文字幕日产无线码一区 | 欧美日韩一区二区综合 | 免费无码一区二区三区蜜桃大 | 九月婷婷人人澡人人添人人爽 | 男人的天堂av网站 | 啦啦啦www在线观看免费视频 | 欧美日韩视频无码一区二区三 | 久久综合香蕉国产蜜臀av | 国产美女极度色诱视频www | 国产午夜无码精品免费看 | 亚洲人成网站色7799 | 久久精品无码一区二区三区 | 国产精品久免费的黄网站 | 欧美老人巨大xxxx做受 | 99久久无码一区人妻 | 日日噜噜噜噜夜夜爽亚洲精品 | 少妇高潮喷潮久久久影院 | 夜精品a片一区二区三区无码白浆 | 国产极品视觉盛宴 | 天干天干啦夜天干天2017 | 蜜桃视频插满18在线观看 | 一本久久a久久精品亚洲 | 日日橹狠狠爱欧美视频 | 噜噜噜亚洲色成人网站 | 国产午夜福利亚洲第一 | 人人妻人人澡人人爽精品欧美 | 激情五月综合色婷婷一区二区 | 精品aⅴ一区二区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 日本一区二区三区免费高清 | 国产成人无码午夜视频在线观看 | 亚洲码国产精品高潮在线 | 国产超级va在线观看视频 | 暴力强奷在线播放无码 | 中文字幕 人妻熟女 | 欧美激情综合亚洲一二区 | 国产无套粉嫩白浆在线 | 国产在线aaa片一区二区99 | 亚洲色偷偷偷综合网 | 国产亚洲美女精品久久久2020 | 国产精品视频免费播放 | 在线观看免费人成视频 | 亚洲精品国偷拍自产在线麻豆 | 欧美三级不卡在线观看 | 国内精品人妻无码久久久影院蜜桃 | 亚洲春色在线视频 | 欧美精品在线观看 | 学生妹亚洲一区二区 | 欧美国产日产一区二区 | aⅴ亚洲 日韩 色 图网站 播放 | 高潮毛片无遮挡高清免费视频 | 亚洲va欧美va天堂v国产综合 | 国产精品福利视频导航 | av在线亚洲欧洲日产一区二区 | 亚洲爆乳精品无码一区二区三区 | 野狼第一精品社区 | 老司机亚洲精品影院无码 | 午夜性刺激在线视频免费 | 久久精品中文闷骚内射 | 中文字幕无码日韩欧毛 | 中文无码精品a∨在线观看不卡 | 国产无av码在线观看 | 性欧美牲交在线视频 | 久久无码中文字幕免费影院蜜桃 | 丰满少妇熟乱xxxxx视频 | 久久国产劲爆∧v内射 | 免费看男女做好爽好硬视频 | 亚洲无人区午夜福利码高清完整版 | 婷婷五月综合激情中文字幕 | 久久久久成人精品免费播放动漫 | 东京热一精品无码av | 成人女人看片免费视频放人 | 久久午夜夜伦鲁鲁片无码免费 | 日产精品99久久久久久 | 久久人妻内射无码一区三区 | 久久久久免费看成人影片 | 国产亚洲精品久久久久久久久动漫 | 免费中文字幕日韩欧美 | 欧美 日韩 人妻 高清 中文 | 久久 国产 尿 小便 嘘嘘 | 日韩精品成人一区二区三区 | 欧美亚洲国产一区二区三区 | 无码播放一区二区三区 | 国产成人无码a区在线观看视频app | 少妇久久久久久人妻无码 | 免费看少妇作爱视频 | 国产舌乚八伦偷品w中 | 免费观看激色视频网站 | 日韩人妻无码中文字幕视频 | 天堂а√在线中文在线 | 色综合久久久无码中文字幕 | 精品熟女少妇av免费观看 | 东北女人啪啪对白 | 狠狠亚洲超碰狼人久久 | 免费观看黄网站 | а√天堂www在线天堂小说 | 精品欧美一区二区三区久久久 | 亚洲国产欧美国产综合一区 | 国产精品久久久av久久久 | 无遮挡国产高潮视频免费观看 | 377p欧洲日本亚洲大胆 | 亚洲欧美国产精品专区久久 | 亚洲精品美女久久久久久久 | 人人妻人人藻人人爽欧美一区 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 秋霞特色aa大片 | 午夜嘿嘿嘿影院 | 国产午夜福利亚洲第一 | 成人精品天堂一区二区三区 |