一文梳理深度學習算法演進

作者 | Peter 潘欣​

來源 | https://zhuanlan.zhihu.com/p/464515049

涉及語音、圖像、nlp、強化學習、隱私保護、藝術創作、目標檢測、醫療、壓縮序列、推薦排序等方向。文章較長,乾貨滿滿。

1. 前言

如果說高德納的著作奠定了第一代計算機算法,那麼傳統機器學習則擴展出第二代,而近十年崛起的深度學習則是傳統機器學習上進一步發展的第三代算法。深度學習算法的魅力在於它核心邏輯的簡單且通用。 在人類歷史上,可能沒有哪個方向的技術能在如此短的時間內吸引如此多的人投入其中,也沒有哪個技術在如此短的時間被應用在如此多的場景。深度學習算法這過去 6 年可能說不上產生了多麼重大的突破,但是產量絕對是驚人的,也給我們帶來了許多意想不到的驚喜。 回顧 2015 年到 2021 年,個人期間有幸參與了語音、視覺、NLP 和推薦排序等幾個領域。其中一部分是以直接算法應用研究角度,還有一部分是從框架系統支撐視角。部分工作是算法預研,還有部分成果應用在語音搜索,醫療影像,推薦系統等業務。 這篇文章更多是結合自己實踐經歷,通過一些業界經典成果回顧了過去 6 年在深度學習算法方向上的技術迭代。最後做了一些歸納總結和展望。

2. 語音識別

語音識別任務通常是將人的講話轉換成文字的能力。這個能力在 Google Voice Search, iPhone Siri 助手等多個領域都有重要的應用。 語音識別技術的研究從幾十年前就已經開始,然而深度學習技術普及之前,離普遍產品應用還有不少的距離,錯詞率(WER)一直都比較高。即使在低噪音的環境下,通常至少在 10% 以上。 傳統的語音識別通常是多階段的複雜工程:

大概 15 年底到 16 年初的時候,我做了一個項目是幫谷歌 voice search 在 tensorflow 上實現 Listen, Attend and Spell(LAS)這個論文的工作。LAS 的工作是 Google Brain 的實習生 William15 年在上一代框架 DistBelif 上完成的,在當時相比傳統方案是個不小的進步,它讓語音識別從一個多階段的算法和系統工程,變成了端到端幾百行 python 代碼的問題。 具體可以大致總結在幾個方面:

當時順便開發了個 debug 工具,能抽樣聽某個 voice search 的錄音,對比識別的文字結果。從實際情況抽樣,這個模型已經超過一般人的水平。模型能並識別大量地名,物品名,型號名,比如 galaxy s5。 模型訓練速度在當時還是比較慢的。爲了完成 voice search 數據的訓練收斂,動用了 128 個 GPU,訓練了將近 2 個月。爲了多組實驗並行,常常一口氣跑到 500~1000 個 GPU。那會還是以 GPU worker+PS 的異步訓練爲主。很多人覺得異步訓練會影響模型的收斂效果,也有人覺得異步訓練能跳出一些局部鞍點。

從當時實驗上看,精心調參的異步訓練最終的確會超過同步訓練實驗。其中一個原因可能是當時同步訓練在當時硬件設備和軟件框架上太慢了,很難完成有效的迭代。從 18 年以後的經驗看,同步訓練的效果和異步訓練的效果基本能不相上下,在某些場景同步訓練的效果甚至更好(可能大 batch size 對於稀疏特徵場景這種樣本分佈不穩定的問題有一定的緩解) 百度的 DeepSpeech 當時也非常優秀,影響更深遠的是當時百度主推了 HPC 的訓練模式,發揚了同步訓練的 Ring AllReduce。現在回過頭看,百度似乎是對的。TF 可能是受早年 MapReduce 基於 commodity machine 的分佈式思路影響比較深。當然後面的 TPU 也回到了 HPC 的軌道上。

3. 圖像識別

15~16 年的 ResNet 算得上是比較突破性的工作了,從它超過 10 萬的論文引用量就能看出來。ResNet 之前是 VGG,AlexNet 等統治世界,那時候模型還比較淺,和 ResNet 相比只算得上是 “淺度學習” :-)。16 年初的時候,谷歌內部還沒有 ResNet 的 TensorFlow 實現(當時內部用 Inception 比較多)。我於是基於 TensorFlow 寫個 ResNet 出來給大家用。

ResNet 的突破性在於基於相似結構(Residual Block)的重複堆疊,並通過 Residual Connection 將這些 Blocks 聯起來,實現非常深的模型訓練。Residual Connection 之前,很深的網絡訓練會有比較明顯梯度暴漲和衰減的問題。記得早年 Hinton 老爺子訓練多層模型是訓完一層再加一層,效率會比較低。基於 ResNet 的結構,模型可以輕易的加到 1001 層。個人覺得,深度學習在 ResNet 之後才成爲真正的”深度 “學習。BatchNorm 相信每個搞深度學習的都非常熟悉,這也是 ResNet 的核心模塊。時間回到 16 年初,我發現谷歌內部竟然沒能找到一個 TensorFlow 正確實現的 BatchNorm。有少量錯誤的實現版本的確在被使用,但是好像並沒有被察覺。有個笑話說的是你可能分不清一些深度學習模型結構到底是 bug 還是 feature,修復了“bug” 反而導致模型的效果下降。 當時 TensorFlow 寫個 BatchNorm 還需要通過加減乘除來拼接。我碰到一個神奇的問題就是 ResNet 加到 1001 層後會發生詭異的數值錯誤,通常是 NaN。記得仔細 Debug 後,好像是參數有個 moving average 的默認值 0.999... 後面的 9 的個數是有講究的。 後來我把早期完全沒有性能優化(那會還沒有 FuseBatchNorm)的 ResNet 放到 tensorflow model zoo github 上開源了。AWS 和一些機構沒有調優就拿過去做了一些 benchmark,得出 tensorflow 性能遠差於其他框架的結論。TensorFlow 的老闆們表示非常不滿,於是 tensorflow 1.0 版發佈專門搞了個官方優化的性能 benchmark。

4. 語言模型和文本歸納

語言模型可以說是 NLP 領域的核心基礎算法。16 年的語言模型還沒有現在的 BERT 如此強大。當時還有不少的流派,比較傳統的是 Ngram 模型,基於全網數據訓練一個數百 GB 的 Ngram 模型在公司有廣泛應用。 然而新的挑戰者已經在路上了。當時深度學習的當紅是 LSTM 和它的兄弟們,比如 Bi-LSTM。不過當時 LSTM 在 TensorFlow 上的速度真是一言難盡,實際生產都會退而求其次選擇 GRU。後來英偉達搞了個 cudnnLSTM,纔算有了比較顯著的進步。 我做語音模型時需要訓練一個 domain specific 的語言模型,和搜索部門轉崗過來的大哥在這塊有些合作。當時他結合搜索業務場景,搞了個 byte-level 語言模型,詞表只有 256 個,目標是預測下一 byte,這個模型厲害之處除了非常精小,而且語言無關,可以同時預測混合中英文和數字的文本。上線到搜索詞補全上,取得了不錯的業務收益。 文本歸納人機對比示例:

img

後來 16 年我參與了一個 Moonshot 項目是做自動文本歸納。模型結構基本是複用了前文說道的語音識別的模型 seq2seq+attention。數據是 dailynews 等,使用正文作爲輸入,標題作爲樣本,經過了加深和加寬的暴力訓練,很輕鬆的就超過了當時的 SOTA。細心的讀者會發現,其實各個不同領域,比如語音、文本,的模型結構的統一趨勢在這個時候已經比較明顯了。

實際 Debug 分析時,我們發現文本歸納模型對於股市類新聞的歸納非常的精準。但是在許多複雜場景還是有比較嚴重的缺陷的。比如某個警匪案件中,A 發現 B 的兄弟 C 謀害了 D,模型很容易就會錯誤歸納成 B 謀害了 D,或者 D 謀害了 C。 當時模型的優化目標是 F1 Score,簡單的說就是比較樣本和預測之間字詞是否一樣。這顯然是有缺陷的,每篇文章都有很多不同的歸納方法。 當時有個研究員建議我先基於海量數據預訓練語言模型,然後再用 dailynews fine tune 這個文本歸納模型。放到今天這是個不言而喻的常規操作,然而當時我卻因爲其他事務沒有嘗試。

5. 深度強化學習與 AlphaGo 和 AutoML

深度強化學習大概是 16~17 年迎來了一個小高潮,原因是 AlphaGo 戰勝了人類世界冠軍,緊接着又迭代了 AphaGo Zero 和 AphaZero 兩版,俗稱 AlphaGo 三部曲。當時 Brain 請 DeepMind 的同事過來做了些分享,對我的震撼還是挺大的,強化學習跟動物的自然學習方式太像了。

簡單回顧一下 AlphaGo 系列三部曲:

上面說的的是訓練過程。其中蒙特卡洛搜索樹 MCTS 是這個訓練過程中重要數據結構,這就不展開說了。在推理過程(線上比賽):

上面講的比較簡略了,感興趣的可以去閱讀原文。AlphaGo Zero 去掉了 “基於人類對戰數據監督” 的過程,完全是自己和自己玩來提高。AlphaZero 則將這個算法框架通用化到了多個棋類遊戲,比如 chess 等。 其實強化學習早就有了,其基礎理論可以追溯到動態規劃,馬爾科夫鏈和圖靈狀態機。當它和深度學習融合後效果就產生了巨大的進步(Oracle Turing Machine 中的“Oracle”)。21 年 AlphaGo 系列的作者寫了篇文章叫 Reward Is Enough,談到強化學習更大的可能性,感興趣讀者可以看看。這裏回顧下前幾年發生了那些事。大概 16~17 年的時候,Brain 有兩位實習生分別利用強化學習幹了兩件事:

6. 隱私保護 Differential Privacy

人臉識別技術是相對發展比較快和成熟比較早的。有論文發現可以從模型中逆向還原訓練數據中的人臉圖片。如何保護訓練數據的隱私成了一個比較重要的問題。 當時做的其實也比較簡單。在一個研究員指導下,我 Hack 了一些 TensorFlow Optimizer,在 gradient 中注入了一定比例的高斯噪聲。根據噪聲的設置,對與最終模型的效果有一定的影響。研究員基於一些複雜的公式能夠量化 privacy 泄露上界。

  1. 深度學習的藝術創作 ============

深度學習的模型訓練和預測往往不只有 predict target。靈活的控制 feature extractor 和 gradient propagation,可以玩出許多花樣來。比如在 Adversarial Training 中對抗惡意樣本攻擊,或者在 Neural Style Transfer 中修改原圖的樣式。16 年參與到了 Nerual Style Transfer 的一個模型的實現,它可以將一個藝術圖片的 “藝術”(可能叫紋理比較好)快速的加入到另一張普通圖片中,讓普通圖片獲得 “藝術”。總體原理如下:

這個能力看似只能娛樂,但是再 Adobe 看來卻是塊寶貝。高度可控的 Neural Style 修改技術可以極大的提高大家的 PS 效率。記得當年在舊金山還辦過幾個 AI 藝術展。 既然聊到這,不得不提一下 GAN,GAN 的作用現在看來是非常重要。當年也曾經一度衝到 CVPR 的最熱門 Topic。各種花式 GAN 變種如雨後春筍般出現,而 GAN 模型的效果卻不像圖片分類一下好 PK。後來好像有篇論文分析了 10 個不同的 GAN 算法,發現他們之間的效果沒有顯著差異。

8. 目標檢測和分割

8.1 Youtube BoundingBox

橫跨 16 到 17 年,很大一部分工作都在目標檢測(Object Detection)和分割(Segmentation)上。最開始是 Youtube 和 Brain 團隊一塊想搞個世界上最大的目標檢測數據集。 然而預料之外的是這個項目花了很多時間在數據標註上,先是開發了個簡單的數據標註網站,然後後期經費竟然不夠用了。。。爲什麼會不夠用?從下面這張圖示例就能看出來。如果標註按框框算錢,這一羣斑馬就像是燃燒的經費。

後來我們做了個艱難的決定,對於這種情況,一個圖片只標註其中一匹斑馬。我這邊負責實現一個目標檢測模型,評估一下 SOTA 模型在這個數據集上的效果。當時有兩個選擇,SSD 和 Faster-RCNN。SSD 的實現要簡單不少,但是當時效果比不過 FasterRCNN,於是決定實現 FasterRCNN。FasterRCNN 大致結構如下:

雖然說起來邏輯不復雜。實現過程還是差點翻車。當時我搞了挺久也沒能完全復現 CoCo 數據集的結果。這裏面的 loss 設計、hard negative mining 等都有不少的 trick。比較幸運的是 Research 部門有另一個團隊的幾個人也在復現 FasterRCNN,於是我借鑑了比較多他們的工作。 從實踐來看,即使數據集中僅標註了多個同類物體中的某一個,在預測集上,該模型依然能夠在某個圖片進行多個同類物體的圈選。

8.2 GoogleMap Segmentation

如果目標檢測只是大致框出圖片中的物體,分割(Segmentation)則是要清晰精確的切割出物體的輪廓(據說這個領域目前已經卷到去切割頭髮絲和牙齒的輪廓了)。17 年 GoogleMap 找我們預研切割衛星視圖下的房屋的輪廓,據說是要爲無人機投遞快遞做準備,防止投遞到馬路或者屋頂上。Segmentation 領域傳統的 Semantic Segmentation 結構相對比較簡單,比如 UNet 等,已經能取得不錯的效果。後來 Mask-RCNN 出來能夠在一個模型中同時學習分割和檢測,這樣能夠進一步提升分割的效果(IOU)。 當時我們做到的效果基本已經接近人的水平了。但是有很多難樣本還是不好解決。比如有些屋頂被大樹遮蓋後和草地顏色非常相近。或者是一些特殊廠房屋頂輪廓和顏色都比較特殊。模型還是偶爾會做出錯誤的分割。

8.3 醫療影像的應用

17 年 Brain 下成立一個放射科的醫療影像團隊:Radiology。由於我正好在這個領域開發模型,就幫助了這個團隊的創建。 最初我們先從簡單的 XRay 下手。我將 FasterRCNN 先經過 CoCo 的預訓練,然後再幾百張 XRay 樣本上做了一些 fine-tune,結果意外的好。 後來我們深入到更難的 CT 場景。CT 是對人進行 3 維立體的掃描,因此對應的框需要包含長寬高。由於當時是兼崗,我簡單將 CT 做了抽幀,轉換成多張二維圖片,然後通過 FasterRCNN,然後再三維化。這樣效果比較一般。後來一個韓國小哥實現了一個高性能的 3D 檢測,取得了更好的效果。 花絮 AI 醫療的上線是非常困難的,特別是在美國這種 FDA 管理比較嚴格的國家。當時我們找到一個場景,據說是不需要 FDA Apporve 的: 通常需要被診斷的 Radiology 數據是 FIFO 排隊被醫生診斷的。這就有個問題,有可能某個人的情況很緊急(比如車禍胸部骨折),但是他的 XRay 被排在了後面,耽誤了診斷。我們可以用 AI 模型對這些 XRAY 做一個嚴重程度的排序,給醫生提出建議。另外,我們還在印度搞了流動醫療車,免費提供相關的診斷。

9. 看見未來 Frame Prediction

Self-Driving Car 和 Brain 有個合作,要預測無人車在未來的一段時間能看到的場景。研究員建議我使用 Variational AutoEncoder,將一系列歷史 Frame 序列輸入到模型中,進過 Encoder,構造出未來一段時間將會出現的畫面。通過調整隨機輸入,可以讓模型預測多種不同的結果。 這個模型的訓練模式和語言模型比較類似。只要汽車一直採集視頻,模型就用最後一幀的圖片監督模型對這一幀的預測,無需人工標註就可以產生源源不斷的監督信號。

10. 序列的崛起 Transformer,BERT

個人認爲 17 年之前,卷積網絡和 CV 進展幾乎佔據了深度學習領域重要成果的大部分,模型效果顯著超過人的水平,大量被應用在生活中。而 NLP 的進展在 17 年之前,相比之下就顯得慢一些。雖然機器翻譯等有了不少進步,但是 LSTM 和 GRU 無法建模長序列,性能開銷大,難以並行計算的問題一直制約 NLP 和序列相關問題的進展。同時我們發現 LSTM 也不像 Conv 那樣容易進行多層堆疊。

Transformer 是深度學習興起以來 NLP 翻身仗的開端,甚至有 Transformer Everywhere 的大一統趨勢。爲之後的 BERT, 大規模預訓練模型打開了一個關鍵突破口。Transformer 開始流行的 18 年,我大部分時間都投入到 Paddle 框架的開發中,對於算法的關注相對比較少。不過 Transformer 從一開始就是我們重點優化性能的 benchmark 模型。先是優化 Transformer 單 GPU 的訓練性能,然後是多 GPU 的訓練性能。當時我們還分析了對於一個 O(n) 的序列,Transformer 和 LSTM 的時間複雜度。然而 Transformer 的關鍵優勢在於它可以並行的處理整個序列,而 LSTM 需要一個 Recurrent 的過程,從一頭往另一頭逐個處理。在 GPU 這種設備下,Transformer 的性能優勢會非常明顯。

10.1 Self-Supervise 和大模型

Transformer 方興未艾,18 年以後緊接着 BERT,GPT-3 也火了。數據集和模型變得一個比一個大,幾乎以每年一個數量級持續了幾年。回憶在 16 年的時候,我和幾個研究員討論是不是模型參數量達到人腦神經元的量級,自然就會產生更高級的智能。在那個時候,VGG、ResNet 等模型參數量和人腦還有幾個數量級的差距。通過人們習慣的線性思維,很難想象 5 年後模型的規模已經達到人腦神經元的量級了(100Billion ncbi.nlm.nih.gov/pmc/ar)。

數據規模和模型爆發增長背後的算法突破很大一部分歸功於 Self-supervise Learning。(訓練架構上也有不少突破:Peter 潘欣:巨型 AI 模型背後的分佈式訓練技術: https://zhuanlan.zhihu.com/p/430383324。說起來 BERT 採用的 Self-supervise 方法出奇的簡單,就是最簡單的填詞遊戲,相信大多數人小時候都玩過。這個遊戲給 BERT 模型玩卻顯著的提高了模型的泛化效果。 類似的思想也在最近兩年被應用在 CV 領域,比如扣掉圖片中一部分讓模型預測。或者語音領域,擋住一段音頻 feature,讓模型去預測。都取得了不錯的效果。 隨着模型規模的增長,我們似乎正在打開 AI 更高階段的另一扇門。和之前 “小” 模型相比,這些巨型模型有一些更接近人的特殊能力,比如:

業界大佬 Jeff Dean 和 FeiFei Li 等對未來的預測也都多少基於這些預訓練大模型的技術,做出延展。比如 Jeff 的 Pathway 以及 FeiFei 的 Foundation Model。

11. 壓縮

其實壓縮技術比深度學習技術的出現更加久遠。早期的很多深度學習模型的壓縮技術都是從其他領域的壓縮技術借鑑而來,比如 int8 量化。深度學習由於模型體積遠大於傳統模型,而且研究也發現深度學習模型其中存在大量冗餘參數。因此伴隨着深度學習技術的應用,相關模型壓縮技術也取得了非常顯著的進步。簡單回顧一些個人相關實踐。

12. 推薦排序

最近三年在推薦排序上的系統方向工作比較多,對於相關算法也有一些研究。

這個方向有時被稱作 “沉默的大多數”:

12.1 海量的 Embedding 和渺小的 DNN

據瞭解,當 16~17 年 CV,NLP 大模型還在幾百 MB 或者幾 GB 的階段徘徊時,廣告排序模型就已經逼近了 TB 量級。巨大模型的參數不來自 DNN 裏的 Conv, LSTM 或者是 Attention。它們來自於巨大的 Embedding Table。EmbeddingTable 中每一行(向量)表示一個稀疏特徵值(e.g. user_314151, Beijing, etc)的隱式表達。 這個 EmbeddingTable 可以達到數百億行。爲何會如此之大?除了互聯網公司海量的用戶規模,還來自於特徵工程裏面的笛卡爾交叉。

舉個例子,一共有 100 個值表示不同年齡,100 個值表示不同城市,100 個表示不同的收入。我們可以做個特徵交叉獲得一類新的交叉特徵 100_100_100=10^6,其中只要一個特徵值可以表示 “北京 60 歲高收入” 人羣。遇到這個特徵值,模型就可以給他們推薦個性化的商品了(人蔘?)。如果笛卡爾積出現了 user-id, item-id,模型體積可以輕易突破 TB。 和 EmbeddingTable 相比,早期排序模型的 DNN 就小的多了,很多時候就是幾層 FullyConntected Layers。然而隨着技術的發展,下文會看到 DNN 的模型結構也變得更加多樣化。

12.2 LR,FM,FFM,WDL,MMOE

從和算法人員的溝通發現,“好的特徵”比 “好的 DNN 模型” 更有收益。一些論文也描述過當前 DNN 難以有效的學習高度稀疏特徵之間的交叉泛化關係。 從直覺上,推薦排序模型的高維稀疏特徵和 CV、語音、NLP 的信號相比有着比較大的不同。視覺圖片和語音 wave 都是自然信號,有着非常強的規律性。NLP 雖然是人造的產物,但是也大體服從顯而易見的語法規律(否則就沒法溝通了)。 但是推薦模型的特徵輸入卻是高度自定義,且長尾信號非常稀疏的,就比如前面舉例的 “北京 60 歲高收入” 只是 10^6 可能性中的一個(e.g. 深圳 90 歲無收入就比較少)。每次輸入是從數億個特徵中挑選其中幾百個或者幾千個,來刻畫這個用戶的請求。 智能不夠人工來湊。勤勞的算法人員在早期 LR,FM,FFM 等階段,更多采用了人工實驗的方式挑選了特徵,但是我們也逐漸看到隱式、自動化交叉取得了更好的效果。16 年的 WDL 是一個轉折性的工作,推薦排序相對有機的融合了人工特徵和 DNN 學習兩個流派的優點。Wide 負責記憶,Deep 負責泛化。WDL 更像是一個框架,Wide 和 Deep 可以被替換成其他的結構,比如 Wide 使用 FM 就變成了 DeepFM。而 Deep 的花樣更多,可以引入 Attention, RNN 等等。18 年的 MMOE(Multi-gate Mixture-of-Experts)對推薦排序模型是一個新的較大的改進。和 CV 和 NLP 任務通常有明確的優化目標不太一樣,推薦場景通常需要優化用戶多個維度的體驗,比如時長,點擊,轉發,點贊,多樣性等等。傳統方法需要單獨訓練多個模型。而 MMOE 解決了單個模型多個任務的問題。後來的 PLE 進一步緩解了蹺蹺板效應,讓模型能夠同時改進多個目標的效果。 最近兩年模型 DNN 突破性的結構變化相對比較少,但是許多效果演進還是不少,累計也進一步提高了推薦排序的效果。比如更加複雜的 embedding 交叉結構,結合 transformer、序列建模,構建更多、更細粒度的訓練目標等等。 總體而言,推薦排序 DNN 複雜度相比 NLP 來說,要低很多。一個可能的原因是 CPU 訓練的算力限制。隨着新的架構解決了海量 embedding 的 GPU 訓練問題,可能 GPU 訓練能爲推薦排序模型 DNN 複雜度和效果提升帶來新的突破。

12.3 Tower, Tree, Graph

如果覺得推薦排序只有上一節提到的玩法,就有點太小看這個領域的算法人員了。市面上能找到的主流深度學習算法技術其實在推薦領域都被試了個遍,這裏簡單說幾個: 雙塔模型是推薦領域的經典了,常常被用在召回、粗排等需要極高性能的場景。由於 Item 特徵的變化相對緩慢,可以提前批量算出所有 Item Embedding。這樣在線上服務時,只需要基於實時的 User 特徵計算 User Embedding,然後再做一個 Cosine 距離就可以知道這個 User 和 Item 的匹配程度了。 雙塔模型爲了能夠分別計算 User 和 Item 向量,限制了特徵和模型的複雜度,不方便進行 user 和 item 交叉特徵的學習。Tree 模型的思路是通過樹的分治減少需要計算的 item 量,這樣可以使用複雜的召回模型。類似的還有 DeepRetrival 等。 說起 Graph 模型不得不提這幾年火起來的 GraphNeuralNetwork(GNN),比如 GraphSage 等。其實思想有點類似 word2vec 和一些自監督的算法,通過一些遊走策略改造子圖,並通過他們之間的鄰近關係,以及非子圖節點的非相似關係來來構造樣本進行學習,最終得到每個節點的隱式表達。而這些隱式表達則可以被用在推薦領域召回相似的物品。

12.4 多場景,端到端,預訓練

大的互聯網公司通常會有許多業務,比如字節的抖音、頭條,騰訊的瀏覽器、視頻、新聞、音樂等。每個業務內部又有細分爲許多子場景,比如主頁 Feed,以及點擊某個物品後進入到相似物品的推薦。而每個子場景又常常拆分爲召回、粗排、精排、混排等多個階段。通常人員組織架構也符合這樣的拆分。 從下圖可以看到,這種結構下產生了非常多的橫向 “豎井”,用戶和數據被切割在各個豎井中了。縱向漏斗也被切分成各個階段的獨立模型,產生了較多的 bias 和訓練目標一致性問題。

針對上面的問題,可以進行了橫向的和縱向的打通工作:

13. 總結與展望

回顧深度學習模型過去的發展歷史,我們看到過去一些明顯的規律和侷限:

從規律和問題出發,可以展望未來的一些發展趨勢:

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/cbx-Kj8n1jw1LK9OSXvUkQ