在這篇客座文章中,可口可樂公司的 patrick brandt 將向我們介紹他們如何使用 ai 和 tensorflow 實現無縫式購買憑證。
可口可樂的核心忠誠度計畫於 2006 年以 mycokerewards.com 形式啟動。「mcr.com」平台包含為每一瓶以 20 盎司規格銷售的可口可樂、雪碧、芬達和動樂產品,以及可以在雜貨店和其他零售商店購買的紙箱包裝產品建立唯一的產品編碼。使用者可以在 mycokerewards.com 上輸入這些產品編碼來參加推廣活動。
幾年後的 2016 年:可口可樂的忠誠度計畫仍然大受歡迎,使用者已經輸入了數以百萬計的產品編碼來參加**和**。不過,移動瀏覽在 2006 年還不存在,而到了 2016 年底已佔據超過 50% 的份額。為了響應這些瀏覽行為變化,coke.com 作為一項移動優先網路體驗啟動,替代了原來的 mcr.com。將 14 字元編碼手動輸入到移動裝置中著實是一種非常糟糕的使用者體驗,會影響我們的計畫取得成功。我們希望為移動受眾提供盡可能最好的體驗,人工智慧的最新進展帶來了全新的機遇。
多年來,可口可樂一直嘗試使用現成的光學字元識別 (ocr) 庫和服務讀取產品編碼,但收效甚微。我們的印刷工藝一般使用低解析度點陣字型,瓶蓋或紙箱媒介在列印頭下面以非常快的速度運轉。這就產生了低保真字串,讓現成的 ocr 軟體無法讀取這些字元(有時人眼也很難閱讀)。ocr 對簡化移動使用者的編碼輸入過程至關重要:使用者應當能夠為編碼拍照,然後自動進行購買註冊來參加**。我們需要乙個用途特定的 ocr 系統來識別我們的產品編碼。
瓶蓋和紙箱示例
我們的研究將我們引向了一種前景無限的解決方案:卷積神經網路。卷積神經網路是一系列「深度學習」神經網路中的一種,這些神經網路是現代人工智慧產品的核心。google 已使用卷積神經網路從街景影象中提取出街道位址門牌號。卷積神經網路在識別手寫數字方面的表現也相當不錯。這些數字識別用例完美代表了我們一直嘗試解決的問題型別:從包含小字符集並且小字符集中所含字元的外觀千差萬別的影象中提取字串。
過去,由於可用的訓練和推理庫極其複雜,開發像卷積神經網路一樣的深度神經網路一直都是一項巨大的挑戰。tensorflow(google 於 2015 年開放源**的一種機器學習框架)旨在簡化深度神經網路的開發。
tensorflow 為不同種類的神經元層和熱門損失函式提供了高階介面,簡化了實現不同卷積神經網路模型架構的工作。快速迭代不同模型架構的能力大大縮短了我們公司構建自定義 ocr 解決方案所需的時間,因為我們可以在短短幾天的時間內開發、訓練和測試不同的模型。tensorflow 模型也非常便攜:框架以原生方式支援在移動裝置上(「邊緣上的 ai」)或在遠端託管於雲端的伺服器中執行模型。這就為許多不同平台(包括網路和移動裝置)之間的模型執行帶來了一種「一勞永逸」的方式。
任何神經網路的智慧型都不會超過用於訓練它的資料。我們知道自己需要大量帶標籤的產品編碼影象來訓練乙個卷積神經網路,從而幫助我們實現效能目標。我們的訓練集分三個階段構建:
啟動前模擬影象
啟動前真實影象
我們的使用者在生產中標記的影象
啟動前訓練階段的第一項工作是以程式設計方式生成數以百萬計的模擬產品編碼影象。這些模擬影象包括傾斜、光照、陰影和模糊強度變化。在模型僅使用模擬影象進行訓練時,它對真實影象的**準確率(即,可信度最高的 10 個**中準確**全部 14 個字元的頻率)為 50%。這為遷移學習提供了乙個基線:最初使用模擬影象訓練的模型是將要使用真實影象訓練的更準確模型的基礎。
挑戰現在就成了使用充足的真實影象豐富模擬影象以實現我們的效能目標。我們為 ios 和 android 裝置構建了一款用途特定的訓練應用,「訓練人員」可以使用這款應用為編碼拍照並新增標籤;這些帶標籤的影象隨後遷移到雲儲存中進行訓練。我們對瓶蓋和紙箱上的數千個產品編碼進行了生產測試,並將**分配給多個**商,他們使用這款應用建立初始的真實訓練集。
即使是乙個經過增強和豐富的訓練集,也無法替代終端使用者在各種環境條件下建立的影象。我們知道掃瞄可能導致編碼**不準確,因此我們需要提供一種能讓使用者迅速糾正這些**的使用者體驗。兩個元件對提供這種體驗至關重要:產品編碼驗證服務,它從我們最初的忠誠度平台於 2006 年啟動以來就一直在使用(用於驗證**的編碼是否是真實編碼);**演算法,用於執行回歸來確定 14 個字元位置上每個字元的可信度。如果**的編碼無效,置信度最高的**和每個字元的可信度水平將返回到介面。低置信度字元將突出顯示,指導使用者更新需要注意的字元。
錯誤糾正介面讓使用者可以糾正無效**並生成有用的訓練資料
這個介面創新實現了乙個主動學習過程:反饋迴圈讓模型可以將糾正的**返回訓練管道,逐步改進。我們的使用者可以通過這種方式隨著時間有組織地提高字元識別模型的準確率。
產品編碼識別管道
為了滿足使用者對效能的期望,我們為產品編碼 ocr 管道建立了一些嚴格的要求:
最初,我們探索了一種為所有產品編碼介質使用乙個卷積神經網路的架構。這種方式建立的模型過大,無法分發至移動應用,並且執行時間也比所需的時間長。我們在 quantiphi, inc. 的應用 ai 合作夥伴開始迭代不同的模型架構,並最終確定了一種使用多個卷積神經網路的架構。
這種新架構在不犧牲準確率的前提下顯著減小了模型大小,不過仍然無法滿足我們為移動應用提供無線更新支援的需要。我們隨後使用了 tensorflow 的預構建量化模組,它可以通過減小相連神經元之間的權重保真度來減小模型大小。量化模組將模型大小減小了 4 係數,但是當 quantiphi 使用一種名稱為 squeezenet 的新方式取得突破後,模型大小顯著減小。
squeezenet 模型由加州大學伯克利分校和史丹福大學的一組研究人員於 2016 年 11 月發布。它採用小型但高度複雜的設計,根據 imagenet 等熱門基準的資料,它可以實現與大得多的模型相當的準確率水平。在重新設計我們的字元識別模型架構以使用 squeezenet 卷積神經網路後,quantiphi 將特定介質型別的模型大小減小了 100 係數。由於 squeezenet 模型本質上就比較小,可以構建更豐富的功能檢測架構,憑藉比我們第一批並非使用 squeezenet 訓練的模型顯著減小的大小實現明顯提高的準確率。我們現在擁有乙個可以在遠端裝置上輕鬆更新的高度準確模型;我們在主動學習之前的最終模型的識別成功率接近 96%,可以帶來 99.7% 的字元識別準確率(每 1000 個字元**中僅有 3 個出錯)。
具有不同型別遮擋、平移和照相機焦點問題的有效產品編碼識別示例
遷移到由 ai 提供支撐的產品編碼識別平台對我們非常有價值,兩個主要原因包括:
我們的產品編碼識別平台是以 ai 為支撐的新能力在可口可樂公司內的首次大規模執行。我們目前正在多個業務領域探索 ai 應用,從產品開發到電子商務零售優化,不一而足。
可口可樂為何頻出奇葩口味?
近幾年,消費群體 消費觀念的轉變,都在加速碳酸飲料的收縮。而作為碳酸飲老 大亨 的可口可樂卻並沒有放棄,而是通過不斷的創新試水,希望能夠轉型公升級。除卻包裝設計不說,光是產品口味就是風格獨特,例如櫻桃為可樂 大蒜味可樂 生薑味可樂 減脂可樂等等,甚至近日還在日本推出了咖啡味的可樂。奇葩口味創新想法從...
可口可樂中國回應漲價傳聞 目前沒有相關資訊
程式設計客棧 www.cppcns.com 4月23日 訊息 近日可口可樂ceo在接受外媒的採訪時透露,可口可樂將可能會提高部分產品售價。對於該漲價傳聞,可口可樂中國公司相關負責人向中新經緯客戶端表www.cppcns.com示,關於外媒的報道,我們目前也沒有相關資訊。據美媒cnwww.cppcns...
木糖醇 可口可樂零度 可怕的傳聞
一直聽說木糖醇等糖代品不利於健康,可能會致癌。但是從來沒進行深入研究此類問題的原由,只是自己避免去吃該類食品。但是前幾天收到乙個朋友的郵件,才更深入意識到該物質的危害性,故此,寫一篇部落格來讓更多的人意識到該問題的嚴重性。下面是朋友郵件的整理 今天在學校附近的超市買水,排在我前面的是乙個 老外,他見...