
作者| 鮑軍(推開)
出品|阿裡巴巴新零售淘系技術部
本文内容提煉:
1、如何建立圖檔資料與使用者注意力之間的連接配接?
2、如何進行結構化規模化的圖檔生産?
2019 年雙十一期間,鹿班面向集團電商場景輸送了 10億 規模的圖檔。從提升公域流量效率,到商家私域的表達賦能,随着場景的細分,分人群精細化營運的需求提出,對圖檔結構化生産,規模化生産在量和質上的要求不斷提高。圖像生成技術也在不斷的演進,本篇将圍繞鹿班最近一年的在生成能力上演進以及實踐做展開,歡迎探讨交流。
上圖是我們有過采訪的在平台上賣姜茶的店鋪的圖檔營運經驗,可以看到不同場景下的商品圖文,在内容和形式是極具多樣性,這種多樣性不同于海量商品的個性化多樣性,這種多樣性是對 C 端使用者注意力更加精細的吸引,這種多樣性是對 B 端商家營運能力的一個新命題。
那麼如何滿足這種多樣性生産?如何建立圖檔資料與使用者注意力之間的連接配接?如何對商家賦能?下面我會從圖檔生産的視角切入,嘗試回答以上問題。
生産标準-圖檔結構化
在 C 端的商品分發鍊路上,得益于結構化的标準定義,使得商品的資料和特征可以被高效的傳遞收集處理,進而給予模型和算法充分的施展空間。
當嘗試将商品圖檔的資料作為一個整體進特征提取計算時,無論是低層次的顯示特征還是高維的語義隐式特征在基于深度神經網絡處理後都變成了一個機率問題,但實際我們更希望把機率轉換為确定性輸入進而更準确的挖掘圖檔特征與使用者行為之間的關聯關系。
電商的圖檔生産除了最開始的拍攝外,更多的會依賴後期的圖像處理軟體,比如PS(photoshop)進行圖文的創作編輯,根據圖像處理軟體的圖層劃分标準,我們對圖檔進行結構化的分層定義。給圖檔引入圖層(layer)屬性,從結構、色彩、文字(内容)三個次元對一張圖檔進行結構化的描述。通過結構化使得圖檔自身的屬性特征可以被高效準确的傳遞收集處理,進而使得後續的生成加工成為可能。
為了标準的執行,我們面向商家設計師開發了配套的生産工具,在保持設計師工作流程不變化的前提下,将原來非結構化的單張圖檔轉換為自描述的 DSL 結構化資料,進而在生産的源頭保證了圖檔資料結構化的執行實施。
生産工序-流程編排
當圖檔有了結構化的定義後,我們将圖檔的生成轉換為成基于人機協作的資料比對排序問題。為什麼是比對排序?
我們積累了大量的設計資料,相比之前非結構化的設計創意,通過圖檔結構化我們可以将設計精确解構到每一個圖層,每一個元素,每一個文字。進而沉澱了可複用的資料資産。根據使用者喜好,商品屬性進行圖檔表達的好中選優,這就轉化為一個資料比對問題。
資料比對包含兩個部分:一是由設計師創作的面向特定場景或商品表達的設計資料,我們稱之為模闆;二是由使用者屬性資料以及在浏覽商品圖檔過程中産生的的收藏、點選、購買等使用者行為資料。
對于的比對排序有兩層,首先是商品圖檔和模闆的比對,這層通過定義設計限制進行參數化的求解實作比對。
比如基于模闆的背景色限制商品圖檔主色區間,根據模闆結構布局限制商品圖檔主體形狀等。通過圖像檢測/識别算法線上提取商品主體的圖檔特征,結合離線計算的模闆特征進行比對計算。
然後是使用者特征與圖檔特征的比對計算,在模組化時我們把資料劃分成三個特征組,分别是使用者特征組,商品特征組合和圖檔特征組,通過 embedding 變換對得到特征向量進行兩兩交叉預測模組化,之是以采用兩兩分别組合而不采用三組向量聯合模組化的原因是考慮到對于電商場景,商品特征與使用者特征之間的信号更強,如果聯合模組化訓練會導緻圖檔的行為的關系不能有效的被學習到,而通過兩兩交叉模組化,可以針對性的做預測結果的權重。
問題定義清楚後我們依然要面對來自業務的複雜性和快速響應問題,為此我們定義了生産 pipline,将生産流程與生産能力分而治之。面對複雜業務需求提供生産流程編排能力,為提高響應速度提供可插拔的生産算子模型。
► 生産流程-節點編排
将圖檔設計生産的理念流程化,流程系統化。通過工作流引擎實作生産節點的編排管理,進而讓業務方可以靈活的按需求進行生産線的定義組裝,滿足多場景的生産需求。
► 生産能力-可插拔算子
算子定義了統一的輸入輸出以及必要的context,通過對約定輸入的計算處理完成效果實作。
圖像類算子:圖像分割,主體識别,OCR,顯著性檢測等。
文本類算子:短标題生成,文字效果增強等。
規則類算子:人工幹預,流程控制等。
► 通過這套生成引擎,白盒化的對生成能力進行分制管理,面向二方能力的開放友好,同時滿足業務內建的靈活性。目前線上共管理了10個核心場景,33個生産節點,47種算子能力,通過編排組合實作了10億規模圖檔的分場景矩陣式生成。
生産工藝-圖文渲染
如果說生産架構解決了宏觀的生産工序問題,那麼渲染就是面向微觀的工藝問題。
渲染首先要解決的是效果統一,除了直接通過服務端渲染圖檔以外,在商家側需要所見即所得的二次編輯能力,也就是對于同一套 DSL 資料協定,在前後端需保證渲染效果統一,為此我們建構了前後端同構的渲染方案,開發了基于 canvas 的畫布引擎,在前端通過 UI 的包裝提供圖檔可視化編輯能力;在雲端通過 puppeteer 無頭浏覽器加載 canvas 畫布引擎實作圖檔生産。
其次渲染需要保證對視覺設計的還原能力,尤其是文字渲染效果。前端渲染對豐富文字效果的支援由于字型庫安裝問題很難完成,同時後端也缺乏對文字效果的标準協定定義。而有了同構的渲染能力後,我們可以将前端協定的優勢與後端字型庫的優勢結合,靈活的完成視覺還原。
淘寶首焦 banner 場景下,單字單樣式的模闆較普通模闆在 AB 分桶試驗下點選率平均提升約 13% 。
生産保障-性能優化
在 10億 量級的規模下,如果沒有高性能的工程保障,一切效果的提升都是零,雙十一期間鹿班的平均合圖 RT<5ms ,從 DSL 解析到 OSS 上行鍊路完成平均 RT<200ms ,在沒有增加機器資源的情況下,實作了相較于去年的整體系統吞吐性能提升 50% 。整個後端引擎分為兩部分:
渲染:将結構化的 layer 資料轉換為獨立的圖檔資料流。不同類型圖層轉換交由對應的 handler 處理。執行并行化渲染。
合圖:将渲染得到的多個圖層資料進行圖像合并計算,經過編碼壓縮,圖檔上傳,得到成圖。
性能優化主要分以下幾點:
- 圖層拉取并行化,本地采用 LRU-K 主動緩存,減少 tfs 拉圖消耗。
- GPU 顯存主動排程管理,對顯存預先分段分片,減少頻繁顯存的申請配置設定與釋放消耗。
- jpg 編碼優化,通過 SIMD 進行加速,軟編碼的平均耗時由 70ms 下降至 20ms 。
未來展望
圖檔作為商品資訊展示的重要載體,無論是在公域的搜尋推薦還是私域的店鋪詳情都承擔着傳遞商家意圖與幫助消費者決策的雙重作用。
對于商家:通過技術與資料賦能商家在圖檔生産上的持續優化,讓結構化的圖檔能夠更好的被機器了解,更高效的分發。同時增加商家的營運抓手。
對于消費者:利用更多元的圖檔特征獲得對閱聽人更泛化更精細的刻畫能力,更好的滿足甚至激發使用者興趣。
We are hiring
淘系技術部依托淘系豐富的業務形态和海量的使用者,我們持續以技術驅動産品和商業創新,不斷探索和衍生颠覆型網際網路新技術,以更加智能、友好、普惠的科技深度重塑産業和使用者體驗,打造新商業。我們不斷吸引使用者增長、機器學習、視覺算法、音視訊通信、數字媒體、移動技術、端側智能等領域全球頂尖專業人才加入,讓科技引領面向未來的商業創新和進步。
請投遞履歷至郵箱:[email protected]
了解更多職位詳情:2684億成交!每秒訂單峰值54.4W!這樣的團隊你想加入嗎?
更多技術幹貨,關注「淘系技術」微信公衆号。