舉例來說,以我多次Amazon Go採購的經驗,從走出店門到收到帳單為止,時間差從五分鐘到四十分鐘不等,這裡面其實凸顯了現有Amazon Go的自動結帳系統一個很大的挑戰:以雲端機器學習為根基的自動結帳系統遠遠還沒到理想中的效率。
為什麼這麼說呢?很簡單,如果亞馬遜的雲端機器學習系統已經到達最佳效率,那麼出帳時間的長短不會有這麼大的分佈區間,單純以店裡的人流和消費量高低峰來看,一個已經優化完成的、可信賴的自動結帳系統,似乎要能夠穩定地在一個很短的時間區間內出帳成功,例如十分鐘到十五分鐘之類的。
那麼為什麼Amazon Go現在還會有那麼大的出帳時間差異呢?
要分析箇中原因,我們首先要了解:一個類神經網路的複雜度,在第一階上(to the first order)取決於彼此間關聯性低的輸入變數的數量。以Amazon Go來說,一間店採用了數百台的攝影機,所以最少有數百個彼此大致獨立的影像串流輸入,但不只如此,一間店隨時可能有二十到五十個消費者不等,每個消費者會在不同時間點從不同貨架上取下不同數量的產品,並且在不同時間點改變心意將部分商品放回貨架上(而且還不一定是原本的貨架),中間夾雜著不同時間長度的無行為區間,並在不同時間點決定完成購物走出商店。
這些取樣點和時間點的不定性,代表的是Amazon Go的機器學習系統必須要處理相當高維度而且密度高低變化的輸入變數。亞馬遜自然是沒有公開其類神經網路的設計,但我們可以想像這個系統結合了大量的次網路以及多層的宏觀網路,最後才能順利完成出帳。
![「Amazon Go」的顧客不必再大排長龍等結帳,只要拿起商品走出店外,系統會記錄消費內容。(圖截自Amazon Go官網) 「Amazon Go」的顧客不必再大排長龍等結帳,只要拿起商品走出店外,系統會記錄消費內容。(圖截自Amazon Go官網)](https://image.cache.storm.mg/styles/smg-800x533-fp/s3/media/image/2018/01/22/20180122-062253_U10309_M372472_fe04.jpg?itok=z5gygeOk)
因此Amazon Go這個自動結帳系統出帳時間分佈之廣,其實並沒有什麼意外的地方,因為變數的數量不定而且各自夾帶一個時間軸的變異性。從另一個角度來說,Amazon Go也認定消費者並不在乎帳單何時抵達,只在乎自己有沒有被多收錢。儘管一開始遲遲收不到帳單時任何良善公民都會焦慮,但多幾次經驗後也就習慣了,所以等待不是問題。
但是這個優異的使用者經驗反映出來的卻是Amazon Go現行系統一個很大的問題——儘管是由過去三十年來最成功、成長速度最快的科技公司之一所開發,這個系統卻有根本的擴張可行性(scalability)問題。
我們可以用簡單的模型來解釋Amazon Go的擴張可行性挑戰。首先我們假設類神經網路各個輸入變數為互相完全獨立,如果一家店裡有五百種商品,並且隨時固定有二十個客人,單一客人結帳平均為三個商品,那麼這裡面可能的組合數量就是: