成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CMU張坤:因果表征技術最新進展

人工智能 深度學習
當我們說變量/事件之間是有關系的,意思是說它們不是獨立的,這樣它們之間一定存在一些關系。然而 X 是 Y 的“因”的含義是,如果采用特定方法改變 X(天下雨),Y(地面變濕)則會隨之改變,即對 X 進行 “intervention” 人為干預時,Y 的分布是不一樣的。

一、為何在意因果關系

首先介紹一下何為因果關系:

圖片

當我們說變量/事件之間是有關系的,意思是說它們不是獨立的,這樣它們之間一定存在一些關系。然而 X 是 Y 的“因”的含義是,如果采用特定方法改變 X(天下雨),Y(地面變濕)則會隨之改變,即對 X 進行 “intervention” 人為干預時,Y 的分布是不一樣的。需要注意的是,這里的干預不是隨意的,而是非常精確的對目標變量(target variable)的直接控制(直接對“天下雨”進行改變),這個改變不會直接影響系統(tǒng)中的其他變量。同時通過這種方式,即直接人為干預,我們也能夠確定某一變量是否是另一變量的直接原因。

圖片

下面對分析因果關系的必要性進行了舉例:

① 一個經(jīng)典的案例是:肺病和指甲顏色通過抽煙存在著一些關系,即由于香煙沒有過濾嘴,經(jīng)常抽煙會使手指甲變黃,抽煙也可能導致肺部疾病。如果想改變某個地區(qū)肺部疾病的發(fā)病率,不能通過將指甲漂白來改善,需要找到導致肺部疾病的原因,而不是改變肺部疾病存在的依賴關系。要想達到改變肺部疾病發(fā)病率的目的,就需要進行因果分析。

② 第二個案例是:辛普森悖論。上圖右邊是一個真實的數(shù)據(jù)集,數(shù)據(jù)集展示了兩組腎結石數(shù)據(jù),一組結石比較小,另一組結石比較大;此外還有兩種治療方式 A 和 B。在表中可以發(fā)現(xiàn),不管是小結石組還是大結石組,A 治療方式獲得的結果會好一些,治愈率分別是 93% 和 73%,B 治療方式的治愈率分別是 87% 和 69%。但將同一治療方法的兩組結石病人混合在一起統(tǒng)計,整體來看 B 治療方案的效果(83%)反而比 A(78%)更好。假設你是只在意治愈率的醫(yī)生,對新病人該如何選擇治療方案。出現(xiàn)這種情況的原因在于,進行推薦時,我們只在意治療方式到治愈的因果聯(lián)系,而不在意其他依賴關系。然而石頭大小是治療方式和是否治愈的共同原因,它導致治療方式和治愈的依賴關系在數(shù)量上發(fā)生改變。故當研究治療方式和治愈的關系時,應該討論前者對后者的因果關系,而不是依賴關系。

③ 第三個案例:在 50 年以前,統(tǒng)計顯示高校中的女性平均會比男性更聰明,然而實際兩者不應該有明顯差異。這其中存在著選擇偏差(selection bias),因為女性比男性更難進入大學,即學校招收學生時,會受到性別、考試能力等因素影響。當“果”已經(jīng)發(fā)生時,性別和考試能力就會有某些關系了。當使用互聯(lián)網(wǎng)采集的數(shù)據(jù)時也會存在選擇偏差的問題。一個數(shù)據(jù)點是否被收集和某些屬性往往是有關系的,如果僅分析被放置在互聯(lián)網(wǎng)上的數(shù)據(jù),就需要注意考慮這些因素。當意識到這一點時,也能通過因果關系來對有選擇偏倚的數(shù)據(jù)進行分析,進而恢復或反推得到整個群體本身的性質。

圖片

上圖展示了幾個機器學習/深度學習的問題:

① 我們知道最有預測和數(shù)據(jù)的分布是有關系的。在遷移學習中,例如如果想要將一個模型從非洲遷移到美洲,還能進行最優(yōu)預測,這顯然就需要根據(jù)數(shù)據(jù)分布的不同對模型進行適應性調整。這時,分析數(shù)據(jù)的分布發(fā)生了什么變化,怎樣發(fā)生變化就顯得尤為重要。知道數(shù)據(jù)發(fā)生了什么變化,就能對模型進行相應的調整。另一個例子,當構建 AI 模型進行疾病診斷時,不會滿足于機器提出的診斷結果,會進一步的想要知道機器為什么會得出這個結論,例如是哪一個 mutation(變異)導致了該疾病。此外,如何治療疾病也會提出很多“為什么”的問題。同樣,當推薦系統(tǒng)進行推薦時,會想知道為什么它會推薦該物品/策略,比如該公司僅僅想提高收益,或者該物品/策略很適合用戶,又或者該物品/策略有益于未來。這些“為什么”的問題都是因果問題。

② 在深度學習領域中,存在著對抗攻擊(adversarial attacks)的概念。如圖,對左邊的大熊貓圖片加入一些特定噪聲,或改變特定像素等,機器就將圖片判定為其他類型動物,而不是大熊貓,并且其置信度還很高。然而對于人類來說,這兩張圖片明顯都是大熊貓。這是因為目前機器從圖片中學習到的高層特征和人類學習到的高層特征不吻合。如果機器使用的高層特征與人類不吻合,就有可能發(fā)生對抗攻擊。在改變輸入時,人類或機器的判斷會發(fā)生改變,最終判定結果就會存在問題。只有讓機器學習到與人類吻合的高層特征,即機器能按照人類的方式學習和使用特征,才能避免對抗攻擊的情形。

圖片

為什么要進行因果表征?

① 使下游任務受益:如可以幫助下游的分類等任務做得更好。

② 能解釋“為什么”這類問題。

③ 將數(shù)據(jù)背后真正的因果特征恢復出來:哲學中康德的形而上學認為,人類所感受到的世界是經(jīng)驗世界。它雖然基于背后的世界本體(world-in-itself), 但我們不能直接感知世界本體,經(jīng)驗世界中已經(jīng)被感官系統(tǒng)自動添加了一些性質,如時間、空間、因果順序等。由此,如果希望機器學習到與人類吻合的特征,就需要機器具有學習因果順序/關系、時間、空間等特征的能力。

二、因果表征學習:獨立同分布情形

1、因果表征學習基本概念

如何在獨立同分布的情形下學習因果關系?首先需要回答兩個問題:一是數(shù)據(jù)中有哪些性質是與因果關系有關的,在數(shù)據(jù)中有什么線索(“footprint”)。二是在獲得數(shù)據(jù)的條件下,是否能恢復出其中的因果關系,即因果系統(tǒng)的可識別性問題。

圖片

因果系統(tǒng)最本質的性質是 “modularity”(模塊性):雖然系統(tǒng)中的變量都存在一定的關系,但是可以從因果關系將系統(tǒng)劃分成多個子系統(tǒng)(一個原因產(chǎn)生一個因變量)。例如,“天下雨”、“地面濕”、“地面滑”是相互依賴的,通過因果關系可以將其分別劃分為三個子系統(tǒng):“某些原因導致天下雨”,“天下雨導致地面濕”,“地面濕導致地上滑”。雖然變量間是有依賴關系的,但這三個 process(過程,即子系統(tǒng))是沒有聯(lián)系的,不存在參數(shù)共享,改變一個系統(tǒng)不會導致另一系統(tǒng)的改變。如通過噴灑某些物質使“地面濕導致地上滑”的影響得到改變,這不會影響天是否下雨,也不會改變天下雨對地面濕的影響。這種性質就稱為 “modularity”,即從因果的角度將系統(tǒng)劃分為不同的子模塊,且各個子模塊間沒有聯(lián)系。

從模塊性出發(fā),可以得到因果系統(tǒng)的三個性質:

① 變量之間的條件獨立性。

② 獨立噪聲條件。

③ 最小(和獨立)變化。

關于因果系統(tǒng)的可識別性,一般來說機器學習本身不是非常關注可識別性問題的,例如預測模型需要判斷預測結果是否準確或最優(yōu),但并沒有一個“真相”進行判斷。但因果分析/因果表征學習是為了恢復數(shù)據(jù)“真相”,即更關注是否能將數(shù)據(jù)背后的因果性質辨識出來。

下面介紹兩個基本概念:

① 因果發(fā)現(xiàn)(causal discovery):通過數(shù)據(jù)探索背后的因果結構/模型。

② 因果表征學習(causal representation learning):從直接觀察的數(shù)據(jù)中尋找背后高層的隱變量及變量間關系。

2、因果表征學習劃分

因果表征學習方法一般從以下三個角度進行劃分:

① 數(shù)據(jù)性質:是否獨立同分布(“i.i.d. data”)。其中不獨立同分布數(shù)據(jù)包括不獨立但同分布數(shù)據(jù),如存在時間依賴關系的同分布數(shù)據(jù)(如時間序列數(shù)據(jù)),也可以是獨立但不同分布的數(shù)據(jù),如數(shù)據(jù)分布發(fā)生了變化(或者這兩者的結合)。

② 參數(shù)約束(“parameter constraints”):因果關系的影響上是否有其他額外性質,如參數(shù)模型。

③ 潛在混雜因素(“l(fā)atent confounders”):是否允許系統(tǒng)中存在沒有觀察到的共同因子或者混淆因子。

下圖詳細展示了不同情形(setting)下能得到的具體結果:

圖片

如在獨立同分布情形下,如果沒有參數(shù)模型約束,不管是否有潛在混在因素,一般都能得到等價類(“equivalence class”),如果有參數(shù)模型約束,一般則能直接恢復背后的真相。

3、獨立同分布因果表征學習

圖片

上圖展示了在獨立同分布情形下,沒有參數(shù)模型約束的例子。數(shù)據(jù)一共展示了 250 個頭骨的 8 個測量變量,包括性別、地點、天氣,及頭骨的大小、形狀等。考古學家想知道造成不同地區(qū)的人外貌不同的原因是什么,如果知道這一因果關系,或許可以通過環(huán)境和其他因素的改變對人的外貌進行預測。顯然在這種條件無法進行人為干預,即使加入了干預,也需要相當長的時間才能觀測到結果,故只能從現(xiàn)有觀測數(shù)據(jù)中尋找因果關系。

圖片

如上圖所示,變量間關系是非常復雜的,可能是線性也可能是非線性,且變量維度也可能不一致。如性別是 1 維,頭骨性狀可能是 255 維。此時可以使用條件獨立的性質來構建因果關系。

方法包括以下兩種:

① PC(Peter-Clark)算法:算法假設系統(tǒng)中沒有觀察到共同因子。

② FCI 算法:用于有隱變量的情況。

下面將使用 PC 算法來分析考古學數(shù)據(jù):從數(shù)據(jù)中可以得出一系列條件獨立的性質,如變量 X1 和 X5 在給出 X3 時是條件獨立等。同時我們可以證明,如果兩變量是條件獨立的,那它們之間是沒有邊的。然后,我們可以從完整的圖出發(fā),如果變量間是條件獨立的,則去掉相連的邊,即可得到無向圖,然后對圖中邊的方向進行判斷,就可以找出有向無環(huán)圖(DAG,Directed Acyclic Graph)或者一些有向無環(huán)圖的集合來滿足數(shù)據(jù)中變量間的條件獨立約束。

圖片

上圖展示了使用 PC 算法和核條件獨立檢驗方法對考古學數(shù)據(jù)進行分析的結果:地理位置影響天氣,天氣影響頭骨大小,此外性別也會影響頭骨大小等。通過數(shù)據(jù)分析得到了其背后的因果關系。

在剛才提到兩個問題中,一個是需要找到變量 DAG 的每一條邊的方向,這需要做額外的假設。如果將因對果如何發(fā)生影響做一些假設,會發(fā)現(xiàn)因和果是不對稱的,這樣就能找出因果方向。下圖中的數(shù)據(jù)背景還是獨立同分布數(shù)據(jù),并添加了額外的參數(shù)限制,且依然不允許系統(tǒng)中存在混淆因子。這時可以使用以下三種類型模型來研究因果方向:

① 線性非高斯模型(Linear non-Gaussian model);

② 后-非線性因果模型(PNL,Post-nonlinear causal model);

③ 加性噪聲模型(ANM,Additive noise model)。

圖片

在線性非高斯模型中,假設從 X 導致 Y,即 X 為因變量,Y 為果變量。從圖中可以看出,用 X 解釋 Y 進行線性回歸時,殘差和 X 是獨立的;但是反過來,使用 Y 來解釋 X 進行線性回歸時,殘差和 Y 之間是不相關的,但很明顯不是獨立的(線性高斯情況下,變量間不相關表示獨立。但此刻模型是線性非高斯,即不相關并不代表它們獨立)。可以發(fā)現(xiàn)因變量和果變量之間是不對稱的。這種情況同樣適用于后-非線性因果模型和加性噪聲模型。

圖片

上圖展示了后-非線性因果模型:外面的第 2 個非線性函數(shù)(f2)一般用于描述系統(tǒng)中的測量過程中引入到非線性變化,在觀察/測量數(shù)據(jù)時經(jīng)常會存在非線性變化。如生物領域中,用儀器測量基因表達數(shù)據(jù)時會有額外的非線性變化。線性模型(Linear models)、非線性加性噪聲模型(Nonlinear additive noise models)以及乘性噪聲模型(Multiplicative noise models)等都是 PNL 模型的特例。

圖片

最上方的散點圖展示了變量 x1(海拔高度)和 x2(年降雨量)的關系。首先假設 x1 導致了 x2,然后構建模型來擬合數(shù)據(jù),如左下角圖所示,殘差和 x1 是獨立的;然后假設 x2 導致了 x1,再次擬合模型,我們發(fā)現(xiàn)發(fā)現(xiàn)殘差和 x2 不獨立(見中間圖片)。由此,得出因果方向是由 x1 導致 x2 的。

圖片

從上一個例子中確實可以找到因果變量的不對稱性,但從理論上這個結果是否能被保證?且是唯一的正確結果,反方向(果到因)是無法解釋數(shù)據(jù)的呢?證明如上表所示,五種情形下兩個方向(因到果,果到因)都可以對數(shù)據(jù)進行解釋,這五個都是非常特殊的情形。第一個是線性高斯模型,關系是線性的,分布是高斯的,這時因果的不對稱性消失了。其他四個都是特殊模型。

圖片

即使數(shù)據(jù)是用后非線性模型進行分析的,因果都是能夠被區(qū)分的,正確的方向能夠找到獨立的殘差,反方向是找不到的。由于線性模型和非線性加性噪聲模型都是后非線性模型的特例,所以這種情況下這兩種模型也都是適用的,能夠找出因果方向。

給出兩個變量,能通過上述方法找到它們的因果方向。但更多情況下需要解決下面的問題:例如在心理學領域,通過問卷的形式收集到了一些問題的答案(xi),這些答案之間是有依賴關系的,也不會認為這些答案之間有直接的因果關系。

圖片

但如上圖所示,這些 xi 是由背后的隱變量 Li 一起產(chǎn)生的。如何通過觀察到的 xi 將其背后的隱變量 Li 及隱變量間關系揭示出來,就顯得尤為重要。

圖片

最近這些年有一些方法能幫助我們尋找這些因變量以及它們的關系。上圖則展示了泛化獨立噪聲(GIN,Generalized Independent Noise)方法的應用例子,該方法可以解決一系列的問題。數(shù)據(jù)內容是教師的職業(yè)倦怠情況,包含有 28 個變量。右圖則展示了專家提出的可能存在的導致這些職業(yè)倦怠情況(觀察到的變量)的隱變量,及隱變量間的關系。通過 GIN 方法分析觀察數(shù)據(jù)得到的結果與專家給出的結果吻合。專家是通過定性的背景知識進行分析的,數(shù)據(jù)分析的定量分析方式給專家結果提供了驗證和支撐。

圖片

進一步深入分析,可以假設隱變量是分層的,即隱變量層級結構(Latent Hierarchical Structure)。通過分析觀察變量 xi ,就能將背后的隱變量 Li 及其關系揭示出來。

三、從時間序列進行因果表征學習

了解了獨立同分布情形下的因果表征方法,接下來將介紹如何在非線性條件下,獨立同分布情形下,如何找到背后的隱變量及因果關系。總體來說,獨立同分布情形下,需要比較強的條件(包括參數(shù)模型假設、線性模型、稀疏圖等)才能找到其中的因果關系。而其他情況下可以更輕松的找到因果關系。 

圖片

下面將介紹如何從時間序列中找出因果表征,即在數(shù)據(jù)不獨立但是同分布的情形下,如何進行因果分析:

圖片

如果因果關系發(fā)生在觀察到的時間序列上,這是經(jīng)典的從時間序列數(shù)據(jù)找尋因果關系的問題,即格蘭杰因果關系(Granger causality)。格蘭杰因果關系與之前提到的基于條件獨立的因果關系是吻合的,只是加上了時間上的限制(如果不能比因發(fā)生得早),進一步還能引進瞬時因果連接(instantaneous causal relations)。

圖片

上圖展示了更加具有實用性的方法。在視頻數(shù)據(jù)中,數(shù)據(jù)背后真正有意義的隱藏過程(latent process),我們觀察的數(shù)據(jù),作為它們的反應(reflection),由他們的一個可逆光滑非線性函數(shù)變換產(chǎn)生。真正的隱因果過程一般是有時間上的因果聯(lián)系的,如“推一下,然后倒下”,這個因果影響一般是有時滯(time-delayed)的。這些條件下,即使是在非常弱的假設下(即使背后的隱過程是非參數(shù)的,且 g 函數(shù)(從隱過程到觀察到的時間序列)也是非參數(shù)的),也能完全將背后的隱過程全部揭示出來。

這是因為在恢復到真正的隱過程后,沒有瞬時因果關系和依賴,物體(objects)之間的關系會比較清晰。但如果使用錯誤的分析方式去看觀察數(shù)據(jù),如直接觀察視頻數(shù)據(jù)的像素(pixel),會發(fā)現(xiàn)它們之間是存在瞬時依賴關系的。

圖片

上圖展示了兩個簡單的案例:左邊展示了 KiTTiMask 視頻數(shù)據(jù),分析視頻數(shù)據(jù)得到了三個隱過程:在一個方向移動;在垂直方向移動;mask 大小改變。右邊展示了 5 個不同顏色的小球,某些球之間有彈簧連接(不可見),通過分析可以得到 10 個隱變量(5 個小球的 x,y 坐標),然后找到它們間的因果關系(某些小球之間有彈簧)。基于視頻數(shù)據(jù),直接只用完全非監(jiān)督的方式,引入因果原則,就能找到背后對象(objects)間的關系。

四、多分布下的因果表征學習

最后介紹一下當數(shù)據(jù)分布發(fā)生變化時的因果分析:

圖片

當隨時間記錄變量/過程時,經(jīng)常會發(fā)現(xiàn)數(shù)據(jù)分布會隨時間變化,這是由于背后沒有觀察/測量到的變量的值發(fā)生了變化,由此作為反應的觀察變量的數(shù)據(jù)分布就發(fā)生了變化。類似地,如果在不同條件下測量數(shù)據(jù),會發(fā)現(xiàn)不同條件/地點測量到的數(shù)據(jù)的分布也可能不一樣。

圖片

里要強調的一點是,因果建模和數(shù)據(jù)分布發(fā)生變化是存在非常緊密聯(lián)系的。當給出一個因果模型,基于模塊化的性質,這些子模塊可以獨立發(fā)生變化,如果能從數(shù)據(jù)中觀察到這個變化就能驗證因果模型的正確性。這里所說的因果模型的變化是指,因果影響可以變強/變弱甚至消失。

圖片

在非穩(wěn)態(tài)(nonstationary)數(shù)據(jù)/異質(heterogeneous)數(shù)據(jù)中能更直接的發(fā)掘因果關系,在給出觀察變量后:

① 首先可以觀察發(fā)現(xiàn)在哪些變量的因果產(chǎn)生過程會發(fā)生變化;

② 把因果影響的無向邊(skeleton)確定下來;

③ 找出因果方向:在數(shù)據(jù)分布發(fā)生變化時,可以使用額外的性質:因的變化與果根據(jù)因的變化間是相互獨立沒有聯(lián)系的。因為不同模塊間的變化是獨立的;

④ 使用低維可視化方法描述因果變化的過程。

下圖展示了對紐約證券交易所中股票 daily return 數(shù)據(jù)(瞬時數(shù)據(jù),沒有時滯性)進行分析的部分結果:

圖片

通過非穩(wěn)態(tài)性可以找出它們之間不對稱性的影響。不同的 sector 往往是一類(cluster),且緊密的聯(lián)系在一起。右下角圖片展示了股票隨時間變化的因果過程,其中兩條縱軸分別表示了 2007 年和 2008 年經(jīng)融危機。

圖片

通過多分布條件下的因果分析方法可以從不同的數(shù)據(jù)集中找到數(shù)據(jù)的變化規(guī)律,直接應用就可以進行遷移學習,進行領域適用(domain adaptation)。如上圖所示,可以從不同的數(shù)據(jù)集中找出數(shù)據(jù)的變化規(guī)律,并通過增廣圖(augmented graph)來表示數(shù)據(jù)的分布可以發(fā)生怎樣的變化,如圖中 theta_Y 是表示,Y 在給出它的父親節(jié)點下的分布可以根據(jù)其領域(domain)不同而發(fā)生變化。基于描述數(shù)據(jù)分布發(fā)生變化的圖,在一個新的領域或者目標領域預測 Y 就是一個非常標準的問題,即給出特征(feature)值如何找出Y的后驗概率,是一個推理(inference)問題。

圖片

上圖展示了因果表征方法在模擬(simulated)數(shù)據(jù)和真實(real)數(shù)據(jù)上的推理效果準確率是有明顯提升的。基于定性的變化規(guī)律和不同領域的變化性的大小,在新領域出現(xiàn)時再進行適應性調整,這樣的預測效果會比較好。

圖片

上圖展示了最近的部分解糾纏的領域適應(Partial Disentanglement for Domain Adaption)相關工作。已知特征(feature)和目標(target),假設一切都是非參數(shù)的,且有一些因子(factor)隨領域(domain)是不發(fā)生變化的即分布是穩(wěn)定的,但有個別因子可能發(fā)生變化,希望找到這些極少數(shù)的分布發(fā)生變化的因子。基于找到的因子,就可以將不同領域對齊(align)到一起,然后找到不同領域的對應關系,這樣在進行領域適應/遷移學習時就會水到渠成。可以證明導致分布發(fā)生變化的背后獨立的因子,是可以直接從觀察數(shù)據(jù)中恢復出來的,不變化的這部分因子可以恢復其 subspace。如表格所示,通過以上方法在領域適應中能取得很好的效果。同時,這個方法也符合最小變化(minimal change)的原則,即希望用最少變化的因子來解釋不同領域數(shù)據(jù)的因子到底發(fā)生了怎樣的變化,從而將它們對應起來。

圖片

總結一下,本次分享主要包含了以下內容:

① 一系列的機器學習問題需要一個合適的關于數(shù)據(jù)的背后表征。如決策時希望知道決策的影響,基于此才能做出最優(yōu)的決策;在領域適應/泛化中希望知道數(shù)據(jù)的分布發(fā)生了怎樣的變化,從而做出最優(yōu)預測;在強化學習中,agent 與環(huán)境的交互以及交互帶來的 reward 本身就是一個因果問題;推薦系統(tǒng)也是一個因果問題,因為 user 是被改變的;可信賴 AI、可解釋 AI 以及公平性都和因果表征有關。

② 因果性,包括隱變量,在一定條件下是可以從數(shù)據(jù)中完全恢復出來的。可以真正通過數(shù)據(jù)理解背后過程的性質,然后加以使用。

③ 因果關系不是神秘的。只要有數(shù)據(jù),只要假設是合適的,就能找出背后的因果性。這里所做出的假設最好是可以驗證的。

總體來說,因果表征學習有非常大的應用前景,同時有很多方法也亟待開發(fā),需要大家共同努力。

責任編輯:姜華 來源: DataFunTalk
相關推薦

2023-07-17 10:21:25

TC39JavaScript

2012-11-19 10:37:57

思杰OpenStack

2012-11-19 10:50:39

思杰CloudStack開源

2015-11-12 09:27:13

C++最新進展

2009-09-25 09:27:33

Ubuntu 2010最新進展Lucid Lynx

2021-09-14 10:03:35

RustLinux開發(fā)工作

2020-07-02 16:00:53

?Flutter桌面應用代碼

2021-09-16 10:15:56

Linux內核Rust

2023-04-17 19:12:19

2020-09-23 22:33:28

量子芯片網(wǎng)絡

2014-06-17 09:58:15

容器Google

2012-02-09 09:49:48

2023-04-19 20:30:49

Rust商標政策

2009-03-23 08:44:29

Windows Ser微軟操作系統(tǒng)

2013-04-09 17:27:19

GMIC球移動互聯(lián)網(wǎng)大會

2021-06-15 14:54:23

ReactReact 18SSR

2024-06-27 11:02:44

2023-04-26 16:38:08

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级黄色免费 | 欧美一区成人 | 一区二区三区中文字幕 | 亚洲精品1区 | 黄色在线免费观看 | 久久国产精品99久久久久久丝袜 | 亚洲一区二区三区在线免费 | 国产一区二区三区 | 日韩免费 | 少妇性l交大片免费一 | 91看片免费版 | 黄色成人在线网站 | 91久久精品 | 国内久久| 欧美综合一区二区 | 国产精品成人一区二区三区 | 国产精品一区二区三区四区五区 | 91精品国产乱码久久久久久久久 | 狠狠综合久久av一区二区老牛 | 精品国产一区三区 | 在线免费国产视频 | 最新中文字幕一区 | 中文字幕视频在线观看 | 视频一区二区在线观看 | www.色.com| 亚洲一区二区三区久久 | 久久久久久免费免费 | 日本一区二区三区免费观看 | 午夜影院 | 不卡的av电影 | 在线欧美一区 | 欧美精品在线观看 | 久久久国产亚洲精品 | 91操操操 | 国产成人在线视频 | 大象视频一区二区 | 成人不卡一区二区 | 欧美三级电影在线播放 | 99亚洲精品视频 | 精品欧美一区二区三区久久久 | 精品国产一级片 |