<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
      此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
      人工智能學(xué)術(shù) 正文
      發(fā)私信給楊鯉萍
      發(fā)送

      0

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      本文作者: 楊鯉萍 2019-07-29 18:13
      導(dǎo)語:只依賴于注意力機(jī)制,不包含任何循環(huán)神經(jīng)網(wǎng)絡(luò)

      雷鋒網(wǎng) AI 科技評論按:在自然語言處理任務(wù)中,循環(huán)神經(jīng)網(wǎng)絡(luò)是一種常見的方法,但近來,一種只依賴于注意力機(jī)制的特定神經(jīng)網(wǎng)絡(luò)模型已被證明它對于常見的自然語言處理任務(wù)的效果甚至優(yōu)于循環(huán)神經(jīng)網(wǎng)絡(luò)模型,這個(gè)模型被稱為變換器(Transformer)。同時(shí),數(shù)據(jù)科學(xué)家 Maxime Allard 發(fā)表了相應(yīng)的文章對變換器的原理機(jī)制作了介紹與講解,并用相應(yīng)的實(shí)驗(yàn)幫助大家更好的理解這種神經(jīng)網(wǎng)絡(luò)模型,雷鋒網(wǎng) AI 科技評論將其編譯如下。

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      第 1 部分:序列到序列學(xué)習(xí)和注意力機(jī)制

      論文《Attention Is All You Need》(https://arxiv.org/abs/1706.03762  )描述了變換器以及序列到序列學(xué)習(xí)的架構(gòu)。序列到序列(Seq2Seq)是一種神經(jīng)網(wǎng)絡(luò),它將給定的元素序列(例如句子中的單詞序列)轉(zhuǎn)換為另一個(gè)序列。

      Seq2Seq 模型很適用于翻譯,它可以將一種語言的單詞序列轉(zhuǎn)換為另一種語言中的單詞序列。通常 Seq2Seq 模型是基于長短期記憶(LSTM)而建立,LSTM 模塊通過序列的相關(guān)數(shù)據(jù),可以賦予序列意義,同時(shí)記住(或忘記)它判定為重要(或不重要)的部分。正因?yàn)榫渥右蕾囉谛蛄校瑔卧~的順序?qū)τ诶斫饩渥又陵P(guān)重要,所以 LSTM 是處理此類數(shù)據(jù)的不二選擇。

      Seq2Seq 模型由編碼器和解碼器組成。編碼器獲取輸入序列并將其映射到更高維空間(n 維向量)。該抽象矢量被送入解碼器,再由解碼器將其轉(zhuǎn)換為輸出序列。輸出序列可以是另一種語言、符號、輸入的副本等。

      我們可以將編碼器和解碼器理解為只會(huì)兩種語言的人工翻譯者。他們的第一語言是母語,但兩者的母語是不同的,比如一個(gè)是德語,另一個(gè)是法語;而他們的第二語言則是他們共有的一種虛構(gòu)語言。為了將德語翻譯成法語,編碼器將德語句子轉(zhuǎn)換為它所掌握的另一種語言,我們在這里稱為「虛構(gòu)語言」。同時(shí),由于解碼器能夠讀取該虛構(gòu)語言,因此它現(xiàn)在可以把這個(gè)語言翻譯成法語。于是,這個(gè)模型(由編碼器和解碼器組成)就可以合力將德語翻譯成法語。

      假設(shè)一開始,編碼器或解碼器對于虛構(gòu)語言都不是非常流利,為了很好的掌握它,我們將使用很多例子對它們(模型)進(jìn)行訓(xùn)練。對于 Seq2Seq 模型的編碼器和解碼器,一般情況下,其基礎(chǔ)配置各帶一個(gè) LSTM 模塊。那么變換器在什么時(shí)候發(fā)揮作用呢?

      我們需要一個(gè)技術(shù)細(xì)節(jié)來讓變換器更容易理解,即注意力機(jī)制。注意力機(jī)制通過查看輸入序列,然后在每個(gè)步驟確定序列中某一部分是否重要。這看似抽象,但舉個(gè)例子就很好理解了:在閱讀本文時(shí),你會(huì)總是把注意力集中在你閱讀的單詞上,但同時(shí)你的腦海仍然保留了一些重要關(guān)鍵詞,以便聯(lián)系上下文。

      所以,注意機(jī)制對于給定序列的工作方式與我們的閱讀方式類似。對于上文提到的擬人編碼器和解碼器的,我們可以想象為,編碼器不僅用虛構(gòu)語言寫下句子的翻譯,而且還寫了對句子語義理解很重要的關(guān)鍵詞,并將這些關(guān)鍵詞以及常規(guī)翻譯都提供給解碼器。通過這些關(guān)鍵詞,以及一些關(guān)鍵術(shù)語所給到的句子上下文,解碼器就可以識別出句子的重要部分,因此這些新的關(guān)鍵字就能夠幫助解碼器更容易的進(jìn)行翻譯。

      換而言之,對于 LSTM(編碼器)讀取的每個(gè)輸入,注意力機(jī)制會(huì)同時(shí)考慮其他幾個(gè)輸入,并通過對這些輸入賦予不同的權(quán)重來決定哪些輸入是重要的。然后,解碼器將編碼的句子和注意力機(jī)制提供的權(quán)重作為輸入。

      要了解更多有關(guān)的注意力,可以參考這篇文章(https://skymind.ai/wiki/attention-mechanism-memory-network  )。如果想了解更科學(xué)的方法,并且閱讀關(guān)于基于不同注意力機(jī)制的序列到序列模型方法,可以參考這篇《基于注意力的神經(jīng)機(jī)器翻譯的有效方法》的論文(https://nlp.stanford.edu/pubs/emnlp15_attn.pdf  )。

      第 2 部分:變換器

      《Attention Is All You Need》一文中引入了一種名為變換器的新型架構(gòu),正如標(biāo)題所示,其中使用到了上文提到的注意力機(jī)制。

      與 LSTM 一樣,變換器是一種在兩個(gè)部分(編碼器和解碼器)的幫助下將一個(gè)序列轉(zhuǎn)換為另一個(gè)序列的架構(gòu),但它與先前描述的「現(xiàn)有序列到序列模型」不同,因?yàn)樗话魏窝h(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Networks),如 GRU,LSTM 等。

      到目前為止,循環(huán)神經(jīng)網(wǎng)絡(luò)是捕獲序列及時(shí)依賴性的最佳方法之一。然而,提交這篇論文的團(tuán)隊(duì)證明,一個(gè)只有注意力機(jī)制而沒有任何循環(huán)神經(jīng)網(wǎng)絡(luò)的架構(gòu)能夠?qū)Ψg任務(wù)和其他任務(wù)的結(jié)果進(jìn)行優(yōu)化。其中,在自然語言任務(wù)方面的一個(gè)改進(jìn)是由引入 Bert 的團(tuán)隊(duì)提出的:《BERT:用于語言理解的深度雙向變換器的預(yù)訓(xùn)練》(https://arxiv.org/abs/1810.04805  )。

      那么,變換器究竟是什么?我們將從下面這張圖片開始講解。

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      圖 1:變換器模型架構(gòu),來自 Vaswani 等人的《Attention Is All You Need》

      編碼器位于左側(cè),解碼器位于右側(cè),編碼器和解碼器都由可以多次堆疊在一起的模塊組成,這展示在圖中的 Nx 部分。

      我們看到模塊主要由多頭注意力機(jī)制(Multi-Head Attention)和前饋層組成。因?yàn)椴荒苤苯邮褂米址晕覀兪紫葘⑤斎牒洼敵觯繕?biāo)句子)嵌入到 n 維空間中。模型中有一個(gè)很小但非常重要的部分,即對不同單詞的位置編碼。這是由于我們沒有可以存儲(chǔ)序列如何被輸入模型的循環(huán)網(wǎng)絡(luò),而序列由其元素順序決定,所以我們需要以某種方式給出序列中每個(gè)單詞/部分的相對位置。這些位置被添加到每個(gè)單詞的嵌入表示(n 維向量)中。

      讓我們仔細(xì)看看模型中的這些多頭注意力機(jī)制模塊:

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      圖 2:左圖為點(diǎn)積注意力機(jī)制,右圖為包含多個(gè)注意力層的并行多頭注意力機(jī)制,來自 Vaswani 等人的《Attention Is All You Need》

      我們從注意力機(jī)制的左側(cè)描述開始,它不是很復(fù)雜,可以用下面的等式來描述:

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      其中,Q 是一個(gè)包含查詢(query,即序列中一個(gè)單詞的向量表示)的矩陣;K 是所有鍵(key,序列中所有單詞的向量表示);V 是值(value,包含所有序列中單詞的向量表示)。在編碼器和解碼器的多頭注意力機(jī)制模塊中,V 與 Q 具有相同的單詞序列。但對于反饋給編碼器和解碼器序列的注意力機(jī)制模塊,V 與 Q 具有不同的單詞序列。

      為了簡化這個(gè)公式,我們可以將其表述為 V 與注意力權(quán)重 a 的乘積,其中的權(quán)重 a 由下式定義:

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      這意味著權(quán)重 a 由序列中的每個(gè)單詞(由 Q 表示)如何受序列中所有其他單詞(由 K 表示)的影響來定義。另外,SoftMax 函數(shù)能使權(quán)重 a 分布在 0 和 1 之間;然后我們再將這些權(quán)重應(yīng)用于 V 中引入的所有單詞序列(在編碼器和解碼器中,V 與 Q 相同;但在編碼器和解碼器的輸入模塊之間,V 與 Q 則不同)。

      右圖描述了如何將這種注意力機(jī)制轉(zhuǎn)化為多個(gè)可以并行使用的機(jī)制。通過 Q、K 和 V 的線性投影多次重復(fù)注意力機(jī)制,這使得系統(tǒng)可以從 Q、K 和 V 的不同表示中學(xué)習(xí),這對模型是有益的。這些線性表示則通過將 Q、K 和 V 乘以在訓(xùn)練期間所學(xué)的加權(quán)矩陣 W 來實(shí)現(xiàn)。

      矩陣 Q、K 和 V 對于注意力機(jī)制模塊結(jié)構(gòu)中的每個(gè)位置是不同的,這取決于它們是在編碼器、解碼器中,還是在編碼器和解碼器之間。這是因?yàn)樽⒁饬C(jī)制要參與整個(gè)編碼器輸入序列或解碼器輸入序列的一部分,連接編碼器和解碼器的多頭注意力模塊將確保編碼器輸入序列與解碼器輸入序列的給定位置都被同時(shí)考慮在其中。

      在編碼器和解碼器中的多頭注意力機(jī)制后,我們連接了一個(gè)點(diǎn)態(tài)前饋層。這個(gè)小的前饋網(wǎng)絡(luò)對于序列的每個(gè)位置都具有相同的參數(shù),即對來自給定序列的每個(gè)元素進(jìn)行了單獨(dú)的、相同的線性變換。

      訓(xùn)練

      如何訓(xùn)練這樣的「野獸」模型呢?Seq2Seq 模型的訓(xùn)練和推斷與平時(shí)的分類問題略有不同,轉(zhuǎn)換器也是如此。

      我們知道,為了訓(xùn)練翻譯任務(wù)的模型,我們需要兩種不同語言的句子進(jìn)行雙向翻譯。一旦我們有大量的句子對,就可以對模型進(jìn)行訓(xùn)練。假設(shè)我們想將法語翻譯成德語,我們的編碼輸入是法語句子,而解碼器的輸入將是德語句子。但是,在這里解碼器輸入將向右移動(dòng)一個(gè)位置。

      其中一個(gè)原因是我們不希望這個(gè)模型在訓(xùn)練期間去單純的學(xué)習(xí)對解碼器輸入的復(fù)制,而是希望模型在給定編碼器序列和特定的解碼器序列的情況下,對下一個(gè)字或者字符進(jìn)行預(yù)測。

      如果我們不移位解碼器序列,則模型將會(huì)學(xué)習(xí)簡單地「復(fù)制」解碼器輸入,因?yàn)槲恢?i 的目標(biāo)字(字符)將是解碼器輸入中對應(yīng)位置 i 的字(字符)。因此,通過將解碼器輸入移位一個(gè)位置,我們的模型則需要通過解碼器序列中已知位置 1,...,i-1 的字(字符)來預(yù)測位置 i 的目標(biāo)字(字符)。這可以防止我們的模型學(xué)習(xí)復(fù)制、粘貼的任務(wù)。我們將句子開始的標(biāo)記填充進(jìn)解碼器輸入的第一個(gè)位置,否則由于右移該位置將是空的。類似地,我們將一個(gè)句子結(jié)尾標(biāo)記附加到解碼器輸入序列來標(biāo)記該序列的結(jié)束,并且這個(gè)標(biāo)記也將附加到目標(biāo)輸出句子中。在后文中,我們將看到這種方法對于推斷結(jié)果有何用處。

      對于 Seq2Seq 模型和變換器,我們都做相同的處理。除了右移之外,變換器還將在第一個(gè)多頭注意力模塊的輸入端加入一個(gè)掩碼,以避免泄露潛在的「未來」序列元素。這是變換器架構(gòu)中特有的,因?yàn)檫@里面沒有循環(huán)神經(jīng)網(wǎng)絡(luò)可以用來事模型按照順序輸入序列。如果沒有掩碼,當(dāng)我們將所有內(nèi)容一起輸入時(shí),多頭注意力機(jī)制需要檢測整個(gè)解碼器中每一個(gè)輸入序列的位置。

      將正確的移位輸入饋送到解碼器的過程也稱為教師強(qiáng)制(Teacher-Forcing),詳情可參考該博客內(nèi)容(https://machinelearningmastery.com/teacher-forcing-for-recurrent-neural-networks/  )。

      我們想要進(jìn)行損失計(jì)算的目標(biāo)序列是有一個(gè)帶有序列結(jié)束標(biāo)記的解碼器輸入(德語句子),而非移位后的句子。

      推理

      這些模型的推理和訓(xùn)練不同,并且非常具有意義,因?yàn)槲覀兿MP驮谧罱K實(shí)現(xiàn)沒有對應(yīng)德語句子的情況下翻譯法語句子。這里的訣竅是為輸出序列的每個(gè)位置重新輸入我們的模型,直到檢測到句末的標(biāo)記為止。

      具體步驟是:

      • 輸入完整的編碼器序列(法語句子),并作為解碼器輸入;然后我們在第一個(gè)位置上加入一個(gè)空序列,這個(gè)空序列只有一個(gè)句子開頭標(biāo)記。這將輸出一個(gè)序列,其中我們只需要第一個(gè)元素。

      • 該元素將被填充到我們的解碼器輸入序列的第二個(gè)位置,該序列現(xiàn)在具有句子的開頭標(biāo)記和其中的第一個(gè)字(字符)。

      • 將編碼器序列和新的解碼器序列輸入到模型中,取輸出的第二個(gè)元素并將其放入解碼器輸入序列。

      • 重復(fù)此操作,直到預(yù)測到句末的標(biāo)記,這標(biāo)志著翻譯結(jié)束。

      我們看到,這個(gè)方法需要通過多次運(yùn)行模型來翻譯該句子。

      第 3 部分:用于時(shí)間序列預(yù)測的變換器

      我們已經(jīng)看到了變換器的架構(gòu),并且從論文《Attention Is All You Need》

      及它的作者那里知道該模型在語言任務(wù)中表現(xiàn)非常出色,現(xiàn)在我們在一個(gè)實(shí)例中來測試變換器的效果。

      這里我們不用翻譯任務(wù),而是使用德克薩斯州電力可靠性委員會(huì)(ERCOT)提供的德克薩斯州每小時(shí)電力流量的時(shí)間序列預(yù)測。每小時(shí)的數(shù)據(jù)可以在此獲得(http://www.ercot.com/gridinfo/load/load_hist/  )。如果你想深入了解架構(gòu),harvardnlp(http://nlp.seas.harvard.edu/2018/04/03/attention.html  )提供了對變換器及其實(shí)現(xiàn)的詳細(xì)解釋。

      既然我們可以使用基于 LSTM 的序列到序列模型來進(jìn)行多步預(yù)測,那么讓我們來看看變換器做預(yù)測的能力。這里因?yàn)槲覀兪褂玫牟皇菃卧~序列而是數(shù)值,所以我們首先需要對架構(gòu)進(jìn)行一些更改;此外我們進(jìn)行的是自動(dòng)回歸實(shí)驗(yàn),而不是單詞/字符的分類。

      數(shù)據(jù)

      現(xiàn)有數(shù)據(jù)為我們提供了整個(gè) ERCOT 控制區(qū)域的每小時(shí)負(fù)載。我使用了 2003 年至 2015 年的數(shù)據(jù)作為訓(xùn)練集,2016 年作為測試集。因?yàn)橹挥胸?fù)載值和負(fù)載的時(shí)間戳,所以我將時(shí)間戳擴(kuò)展出了其它特性。從時(shí)間戳中,我提取了它對應(yīng)的工作日并對其進(jìn)行了一次熱編碼;另外,我使用年份(2003 年,2004 年,...,2015 年)和相應(yīng)的小時(shí)(1,2,3,...,24)作為值本身(value),這為每天的每小時(shí)提供了 11 項(xiàng)特性值。出于收斂目的,我還將 ERCOT 負(fù)載除以 1000 進(jìn)行了標(biāo)準(zhǔn)化操作。

      為了預(yù)測給定的序列,我們需要一個(gè)過去的序列。在我們的示例中,我使用了前 24 小時(shí)的每小時(shí)數(shù)據(jù)來預(yù)測接下來的 12 小時(shí)的數(shù)據(jù),其中我們可以根據(jù)需要調(diào)整數(shù)據(jù)屬性。例如,我們可以將其更改為每日數(shù)據(jù)而不是每小時(shí)數(shù)據(jù)。

      從論文中更改模型

      第一步,我們需要?jiǎng)h除嵌入。因?yàn)槲覀兊妮斎胫幸呀?jīng)有 11 個(gè)數(shù)值,而嵌入通常將給定的整數(shù)映射到 n 維空間;所以這里不使用嵌入,而是簡單地使用線性變換將 11 維數(shù)據(jù)轉(zhuǎn)換為 n 維空間,這類似于嵌入單詞。

      然后,我們需要從變換器輸出中刪除 SoftMax 層,因?yàn)槲覀兊妮敵龉?jié)點(diǎn)不是概率而是實(shí)際值;接著,就可以開始進(jìn)行訓(xùn)練了。

      我使用了教師強(qiáng)制來進(jìn)行訓(xùn)練,這意味著編碼器由 24 個(gè)數(shù)據(jù)點(diǎn)的集合組成作為輸入,解碼器輸入是 12 個(gè)數(shù)據(jù)點(diǎn)的集合。其中第一個(gè)是「序列開始」值,后面的數(shù)據(jù)點(diǎn)是目標(biāo)序列。在開始時(shí)引入「序列開始」值后,我將解碼器輸入相對于目標(biāo)序列移動(dòng)了一個(gè)位置。

      我使用了一個(gè)只有「-1」的 11 維向量作為「序列開始」值。當(dāng)然這可以改變,根據(jù)用例實(shí)際情況使用其它值是有益的;但是對于這個(gè)例子,這樣的設(shè)置非常有用,因?yàn)檫@可以使我們在輸入或輸出序列的任何一個(gè)維度中都沒有負(fù)值。

      此示例的損失函數(shù)是均方誤差(the mean squared error)。

      結(jié)果

      下面的兩個(gè)圖顯示了結(jié)果。我取每天每小時(shí)值的平均值并將其與正確值進(jìn)行比較。第一個(gè)圖顯示了前 24 小時(shí)的 12 小時(shí)預(yù)測;對于第二個(gè)圖,我們預(yù)測了一小時(shí)前的 24 小時(shí)數(shù)據(jù)。我們看到該模型能夠很好地捕捉到一些波動(dòng),訓(xùn)練集的根均方誤差(the root mean squared error)為 859;對于驗(yàn)證集,12 小時(shí)預(yù)測根均方誤差為 4,106,1 小時(shí)預(yù)測根均方誤差為 2,583。模型預(yù)測的平均絕對百分比誤差對應(yīng)于第一個(gè)圖表為 8.4%,第二個(gè)圖表為 5.1%。

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      圖 3:一年前 24 小時(shí)的 12 小時(shí)預(yù)測

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      圖 4:一年前 24 小時(shí)的 1 小時(shí)預(yù)測

      總結(jié)

      結(jié)果表明,我們可以使用變換器進(jìn)行時(shí)間序列預(yù)測。但在評估期間,結(jié)果顯示如果我們想要預(yù)測的步驟越多,錯(cuò)誤就越高。上面的第一張圖(圖 3)是通過使用 24 小時(shí)預(yù)測接下來的 12 小時(shí)來實(shí)現(xiàn)的。如果我們只預(yù)測一個(gè)小時(shí),結(jié)果會(huì)好得多,正如我們在第二個(gè)圖上看到的那樣(圖 4)。

      對于變換器的參數(shù),如解碼器和編碼器層的數(shù)量等,還有很大的優(yōu)化空間。上述實(shí)驗(yàn)不是一個(gè)完美的模型,它通過更好的調(diào)整和訓(xùn)練,可將結(jié)果起到一定的改善作用。

      使用 GPU 來加速訓(xùn)練可能也會(huì)有很大幫助,本次實(shí)驗(yàn)我并沒有在我的本地機(jī)器上運(yùn)行,而是在 Watson Studio Local Platform 上用 GPU 來訓(xùn)練了這個(gè)模型。你也可以使用 Watson 的機(jī)器學(xué)習(xí) GPU 來加速訓(xùn)練。

      原文鏈接:

      https://medium.com/inside-machine-learning/what-is-a-transformer-d07dd1fbec04 

      雷鋒網(wǎng) AI 科技評論

      雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

      Transformer:隱藏的機(jī)器翻譯高手,效果趕超經(jīng)典 LSTM!

      分享:
      當(dāng)月熱門文章
      最新文章
      請?zhí)顚懮暾埲速Y料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個(gè)人簡介
      為了您的賬戶安全,請驗(yàn)證郵箱
      您的郵箱還未驗(yàn)證,完成可獲20積分喲!
      請驗(yàn)證您的郵箱
      立即驗(yàn)證
      完善賬號信息
      您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
      立即設(shè)置 以后再說
      主站蜘蛛池模板: 人妻少妇精品无码专区二区 | 无码中文人妻视频2019| 中文字幕亚洲乱码熟女一区二区| 色三区| 99久久亚洲精品无码毛片| 91牛| 欧洲熟妇精品视频| 亚洲欧美日韩精品久久亚洲区色播| 高清欧美性猛交XXXX黑人猛交| 国产亚洲精品久久久久蜜臀| 9191久久| 中文人妻无码一区二区三区在线| 97香蕉久久国产超碰青草专区| 无码人妻丝袜| 国产精品午夜无码AV天美传媒| 亚洲人妻无缓冲av不卡| 无码国产成人午夜电影在线观看| 国产精品网址你懂的| 内谢少妇xxxxx8老少交| 梁山县| 男受被做哭激烈娇喘gv视频| 欧韩一区| 亚洲3p| 无码中文幕| 天天躁狠狠躁av| 亚洲欧美电影在线一区二区| 高清dvd碟片 生活片| 高清dvd碟片 生活片| 最新国产精品拍自在线播放| 久久性色欲av免费精品观看| 国产精品免费一级在线观看| 性猛交ⅹxxx富婆视频| 白玉县| 久久综合综合久久综合| 1024免费视频| 99久久国产露脸国语对白| 亚洲国产精品狼友在线观看| 日韩人妻精品无码制服| 国产亚洲av| 日韩欧美+自拍| 亚洲色最新高清AV网站|