本文出自

人工智慧,萬能或不能?

人工智慧,萬能或不能?

2017年10月號

深入臉書人工智慧工作坊

Inside Facebook's AI Workshop
史考特.貝里納托 Scott Berinato
瀏覽人數:8591
  • "深入臉書人工智慧工作坊"

  • 字放大
  • 多人授課購買
    購買〈深入臉書人工智慧工作坊〉文章
  • 個人收藏購買
    購買〈深入臉書人工智慧工作坊〉PDF檔
    下載點數 10
臉書,已經變成一家社群媒體企業巨獸。而機器學習,也已經變成這個社群平台發展人工智慧的平台了。負責臉書應用機器學習團隊的坎德拉,非常務實,他不求演算法必須是最新、最佳的,而是要求能協助解決問題和創造價值。

在臉書洞穴式的總部「建築20」(Building 20)內,介於可飽覽Ravenswood Slough濕地全景的大廳,和塞滿熱騰騰早餐、冰沙、美味咖啡的廚房中間,一間名為魯拉帕露夏(Lollapalooza)的小型會議室裡,華金.坎德拉(Joaquin Candela)正試圖向一名外行人士解釋人工智慧。

禿頭、結實、心思細密的坎德拉,負責臉書的應用機器學習(Applied Machine Learning,AML)團隊,也就是臉書的人工智慧機房,而這個單位,變得愈來愈像是臉書整體組織的機房。在斟酌用詞好一會兒之後,他終於開口說道:

「你看,機器學習演算法其實就是查找表(lookup table),對吧?當中的關鍵就是輸入訊息,例如一張圖片,數值就是輸入訊息的標籤,例如『馬』。我手上有某種東西的一堆例子。都是馬的照片。我把能提供的例子全都給演算法。『這是馬。這是馬。這不是馬。這是馬。』演算法會把這些記在一個表中。然後,如果有新的例子進來,或者我若是告訴它注意新的例子,演算法會把所有我們輸入的例子全都檢查一遍。表格中的哪幾行看起來類似?有多麼類似?它試圖決定:『這個新東西是否是馬?我想是的。』如果正確,這個圖片就會被放入『這是馬』的那一群,如果不是,就會被放入『這不是馬』的那一群。下一次,它就有更多資料要檢查。

其中一個挑戰,是我們怎麼決定新照片和存在表格中照片的相似程度。機器學習的一個面向,就是學習相似函數。另一個挑戰,是你的表格擴增到非常大時,會發生什麼事?每個圖片,都必須進行極多次比對……所以,機器學習的另一個面向,是用函數逼近大型儲存表,而不是檢查所有的圖片。這個函數知道怎麼粗略估計對應值應是多少。這是機器學習的本質,用函數逼近巨大的表格。所謂的學習,就是這樣。」

關於機器學習的內容,顯然不止這些,但這是談論人工智慧很好的開始,因為它讓人工智慧聽起來很真實,甚至幾乎顯得很無聊。機械性。有關人工智慧的討論中,充斥著太多對它力量的神祕描述,並尊崇它近乎魔法的能力。坎德拉不樂見這個現象,嘗試使用更平淡的詞彙來說明。它很強大,沒錯,但不是神奇魔法。它有局限。他在簡報時,很喜歡展示一張有巫師和工廠的投影片,並告訴聽眾,臉書認為人工智慧像是工廠,因為「巫師無法擴大規模。」

而這正是臉書對人工智慧和機器學習做的事:以驚人的速度擴大規模。幾年前,該公司的機器學習團隊,只需要進行很少的實驗,而且每次實驗都要花很多天進行。坎德拉說,現在每天有數百位員工進行數千個實驗。人工智慧已經如此複雜地交織納入這個平台,以致根本不可能把產品(也就是你的即時訊息、你的談話、孩子的假IG帳號),從演算法中分離出來。使用者看見和執行的一切,幾乎都是根據人工智慧和機器學習提供的資訊。

了解臉書如何與為何徹底擁抱人工智慧,對任何準備投資推動未來要以演算法為重心的組織來說,都是有幫助的。我們很容易就假定,臉書坐擁這麼多資源,因此能輕易獲得最優秀的人才,並寫出最好的演算法,一切就此大勢底定。但坎德拉採取不同的方法。當然,人才實力堅強,演算法也很好。部分演算法的目的,是「查看」圖片或自動過濾圖片。有些演算法則是要了解對話,然後回應。有些則是翻譯不同語言。還有一些演算法試圖預測你可能會喜歡和購買什麼。

但在某種程度上,演算法不是他關注的焦點,而是一直忙著設立人工智慧工作坊,以便讓公司裡所有人都可以運用人工智慧,來達成目標。基本上,坎德拉為臉書這個平台打造一個人工智慧平台。無論你是知識淵博的工程師,或完全是新手,都可以使用他的工具。

以下是他的做法,以及你可以從中學到的東西。

臉書的聯盟號太空船

坎德拉原本任職於微軟研究院(Microsoft Research),2012年進入臉書,加入臉書的廣告業務。他和許多員工接手的排名演算法,用途是以更精準的方式把適合的廣告顯示給使用者。

坎德拉把自己接手的機器學習編碼,描述為「扎實,但不是最新的」。他不只一次把它比喻為1960年代的蘇聯太空船聯盟號(Soyuz)。基本但可靠。即使不是最新、最好的,也能完成工作。「它能把你送上太空,再接你回來,但不是當月最新的人工神經網路演變模型covnet。」

於是你可能會假設,坎德拉首先要做的,就是讓那個演算法升級,擺脫聯盟號,改用新的太空船。但他沒有這麼做。他說:「為了獲得更多價值,我可以做三件事。我可以改進現有演算法,讓它變得更複雜。我可以投入更多、更好的資料給演算法,讓現有編碼產生更好的結果。我也可以改變實驗速度,以便更快取得更多結果。」

「我們之前專注在資料和速度,而不是更好的演算法。」

坎德拉描述這個決定是「戲劇性的」,而且「很困難」。電腦科學家,特別是抱持學術心態的電腦科學家,會因為發明新的演算法,或是改善既有的演算法,而獲得獎勵。他們的目標,是打造更好的統計模型。獲得期刊引用,就是一種認證。讓同事驚嘆,可為自己建立信譽。

唯有轉變思維,才能讓這些工程師把重點放在商業影響力,而不是優化統計模型。他認為,很多公司都犯了同樣的錯,把精力擺在建構最佳演算法,或是聘雇宣稱擁有最佳演算法的開發人員,因為這正是很多人工智慧開發人員的想法。

但對公司來說,一個改善業務的良好演算法,遠比先進的統計模型更有價值。坎德拉說,其實演算法上的真正突破不是很常見,每年頂多二或三次。如果他的團隊把精力集中在這上面,將會事倍功半。

他不斷強調這些:必須先釐清對商業的影響。必須知道自己為何要解決問題,知道必須解決的商業挑戰是什麼。「你可能在尋求最亮眼的演算法,或是尋求宣稱他手中握有最先進演算法的人。但其實你真正該尋找的人才,是非常想要取得演算法來完成工作的人。我認為,很多談話都沒有提到這個深刻的重點。有一次,我和我們辦公室的駐地機器學習專家聊天,談到一些同樣在做人工智慧的人。他說:『沒有人真的覺得自己的演算法非常好,或是如何厲害。』這讓我覺得,也許這樣沒什麼不好。」

「我不是說,完全不要處理演算法。我的意思是,應該專注在提供它更多、更好的資料,然後快速進行實驗,這種做法更合理。」

所以,他並沒有把成功定義為「打造最好的自然語言處理演算法」,而是把成功定義為:若是有人詢問朋友「附近哪裡有好吃的」,自己建置的演算法能幫助那個人找到餐廳。如果看到一些電腦視覺演算法,能進行近乎完美像素的物體辨識,他並不會感到非常興奮,真的會讓他感到振奮的是,那個人工智慧的效能夠好,能夠注意到你張貼很多海灘照片,然後協助你購買泳裝。

他在臉書開始工作之後,這個策略成效很好。廣告營收攀升。坎德拉受到注目。有人建議讓應用機器學習團隊成為集中式的職能,服務整個臉書。坎德拉拒絕。兩次說不。「我擔心『一旦設置好,生意就會上門』的現象。」只是創造一些人工智慧,就希望人們能看見它的價值並採用它,這樣的做法行不通。

但他確實選擇了自己的策略。他和動態消息團隊合作,拒絕了其他許多團體。然後,他和即時通(Messenger)團隊合作。他的團隊日益成長,和其他團隊合作的專案也愈來愈多。

到了2015年,坎德拉看出自己的團隊需要採取集中式做法,所以把注意力轉向該如何打造這樣的營運單位。他依舊擔憂「一旦打造好,生意就會上門」的現象,所以他的重心較少擺在團隊架構上,而是著重在團隊如何和臉書其他部門連結。他笑說:「你建立一個工廠來生產讓人驚豔的小工具,卻忘了設計工廠裡裝載小工具的區域?那我只能說好好自行享用你的小工具吧。」

直到那個時候,也就是他加入臉書大約三年的時候,坎德拉才開始思考升級部分演算法。(巧合的是,時至今日,國際太空站的緊急逃生太空船仍是聯盟號。)

科學和產品之間的H2

坎德拉走到白板前,說明自己如何在臉書內部打造人工智慧工廠。他說,關鍵是釐清,人工智慧適合從哪裡加入產品開發過程。他畫出類似「人工智慧適合在哪裡加入臉書運作」這張圖表的東西。

H3是研發和科學的領域。H3代表「地平線3」(Horizon 3),或是距離產品交件三年。從事人工智慧的資料科學家,往往認為自己屬於這裡,要改善演算法,以及尋找新方法讓機器學習。基於前述的理由,坎德拉沒有把自己的團隊擺在這裡。這個位置太遙遠,實在無法對企業帶來影響。H1接近產品交件,是產品團隊所在之處;產品團隊包括動態消息團隊、Instagram團隊、廣告團隊所屬的國度。人工智慧團隊也不在這裡,因為在這個階段的產品已經開發到很深的程度,很難再調整。這就像是製造了一輛汽車,已經開始組裝了,才決定應該是輛自動駕駛車。

剩下的選項只有H2,介於科學與產品之間,這就是應用機器學習團隊在臉書裡所待的地方。應用機器學習是把科學轉換為產品的通道。它不是為了研究而研究,也不生產或運送產品。如同圖中「產品完備程度」的上升曲線所顯示,這是個動態領域。坎德拉指著H2說:「在這裡必須一直感到不自在。你雇用的人必須能接受這種情況,他們還必須非常無私。因為一旦手上的工作成功,就必須把它分出去。同時,經常得面臨失敗。我很能接受50%的失敗率。」

如果團隊的失敗率低於50%,坎德拉會懷疑自己的成員是否過度規避風險,或是他們選擇面對的挑戰,會讓他們更趨近以產品為重心的H1。「也許我們做了類似的事情並成功,但這仍是失敗,因為這應該由產品團隊來做,而不是我們。如果你有一個技術,而這個技術該由廣告團隊親自操作來創造價值,你就該把那個技術交給他們,然後在某樣東西成為產品之前,提升你在機器學習領域裡的企圖心水準。」

所以,坎德拉的團隊既沒有贏得發明新統計模型的榮耀,也沒有推出產品到世界上。這是座工廠,裡面的專家負責轉化其他人的科學,用於另外一些人的產品,而且有一半的時間會失敗。

推與拉

即使如此,H3、H2、H1這三個領域的疆界仍然不是很明確。在有些情況下,坎德拉的團隊確實會研究機器學習科學,以解決具體的問題;有些時候,它也幫忙打造產品。

在應用機器學習團隊剛開始運作時,尤其是如此,因為公司裡有很多人沒有接觸過人工智慧,也不曉得它能為自己做些什麼。其中一個例子是,應用機器學習團隊打造了一個翻譯演算法。該團隊稍微涉足研究領域,檢視既有的翻譯演算法如何運作、可以如何改進,因為不合理或造成誤解的差勁翻譯,在某方面比不翻譯還要糟糕。

坎德拉說:「早期,我們做得更多的,是推動和堅持。不過是溫和的堅持。我們不會直接把東西移交給產品團隊,然後告訴他們:『這個東西很棒,用它。』」這表示他的團隊會幫忙撰寫一些產品編碼。應用機器學習團隊在本身的核心功能之外,進行一些科學工作,也做一些產品工作,目的是啟發產品團隊成員,讓他們了解,應用機器學習可以為他們做些什麼。

這兩個團隊打造出有用的產品,可讓社群網頁立刻翻譯成數種語言。另外有些專案也用類似方式,由應用機器學習團隊把編碼向外「推」出去,而現在,臉書的國際團隊和其他產品團隊,則是從應用機器學習團隊那裡把編碼「拉」過來,要求使用在自己產品裡的編碼。

坎德拉說:「這和我想達成的目標還差得很遠。我想要讓公司內所有的產品領導人,每季聚在一起檢討人工智慧。這一定辦得到。但這兩年的討論情況已經截然不同。現在,如果我從這棟建築物的一邊走到另一邊,常會有不認識的團隊攔住我,也許是影音團隊或即時通團隊的人攔住我,說:『嘿,我等不及要嘗試這個了。我們覺得可以用這個為基礎,來打造產品。』這樣的情況,之前沒有發生過。」

不過,應用機器學習的成功,也為坎德拉帶來新的挑戰。既然人人都想要用一點應用機器學習,這家工廠就得擴大規模。

千層蛋糕

坎德拉想擴大規模,不能只是接受所有專案,然後增加人手來完成那些工作。所以他採用其他架構方式。第一,他依據成員各自專注的人工智慧類別,把團隊再分為不同的小團隊:

這創造出公分母,讓某個小團隊,如電腦視覺,可執行任何涉及分析影像的機器學習應用,並盡可能重複使用工作成果。

接下來,是進行大規模的工程任務,以打造臉書自己的人工智慧骨幹,名為FBLearner Flow。這個平台上的演算法建置一次之後,所有其他需要這些演算法的人,都可以重複使用它們。設置和進行實驗很耗時,因此用自動化方式進行,過去的實驗結果都被儲存下來供人使用,也相當容易搜尋。而且,這套系統透過龐大的硬體陣列運作,因此可以同時進行許多實驗。(這套系統可以每秒進行超過六百萬次預測。)這一切,都是為了提高針對資料和規模來進行實驗的速度。

這套系統的設計,也可以容納多種類別的可能使用者。坎德拉認為,若要讓人工智慧有效運作,並進一步擴大規模,他必須協助非應用機器學習領域的人,也能自己做這件事。於是,他創造出所謂的人工智慧千層蛋糕。

底部的幾層專注在應用機器學習的工作:重新定義核心引擎(強烈專注在優化效能,特別是行動裝置),以及處理機器學習演算法。較上面的幾層鎖定的工具,是讓應用機器學習團隊之外的人士,能在應用機器學習團隊參與較少的情況下,使用演算法。坎德拉說:「重要的是你要讓使用者接觸使用什麼。」在有些情況下,他建立了一些系統,要讓應用機器學習團隊之外的開發人員,可使用這些系統來建立和運作自己的模型。

社群推薦

有關坎德拉團隊架構和「推/拉動態」的一個絕佳例子,就是依據輸入內容來建構頁面內容的某種人工智慧。自然語言機器學習團隊創造了一個引擎,來了解文字的談話內容。

這類人工智慧首先出現在即時通的聊天客戶軟體。應用機器學習團隊開發模型,而產品團隊開發使用案例和「意圖」;「意圖」是專門術語,意指你希望引擎學習的工作類型。例如,訓練自然語言人工智慧去辨別了解短語,例如「我正在尋找最好的……」,並確實回應,訓練做這種任務,就是意圖。

最初一些這類意圖,是經由名為即時通建議(M Suggestions)的產品,建置到即時通裡面。

如果你發訊給朋友說:「三十分鐘後,我會在那裡和你碰面。」即時通建議可能會提醒你可以租輛車。

隨著團隊開發出建立意圖模型的工具,而且產品團隊也變得更加熟悉這些工具,機器應用學習團隊的角色就漸漸變得不那麼重要。現在,即時通團隊透過自己打造的大量意圖模型,來改善即時通建議。

當然,這類自然語言人工智慧不只用來聊天。它可重複使用。它被編碼成「對話學習了解引擎」(conversational learning understanding engine,CLUE)。它已經被納入更多的臉書應用程式。它被調整用在狀態更新和即時訊息。社群推薦愈來愈仰賴人工智慧。如果你輸入「我正在前往奧瑪哈(Omaha)的途中,真想在市區找一家好吃的牛排館」,人工智慧可能會像是你的某位朋友般回覆,在你的貼文底下留言,推薦一份牛排館清單,並在地圖上標示它們在市中心的位置。如果你的朋友回覆你說:「那裡也有一些很棒的素食餐廳。」演算法可能會再次回覆提供相關資料。

社群推薦意圖的開發,目前仍有應用機器學習團隊參與,但目標是讓它能脫離坎德拉的團隊,就像即時通建議一樣。

整體想法就是,讓產品團隊自己有能力做人工智慧。坎德拉說:「我們會教你釣魚,然後你自己去釣魚,而我們再拿出另一樣東西。我們要建一艘漁船,一旦你開始使用這艘漁船,我就開始建立罐頭工廠,對吧?」

此刻,在骨幹平台上的人工智慧工作,約有七成是由坎德拉團隊之外的人完成。能做到這個程度,部分是因為有了人工智慧介面。在部分情況中,有了Lumos這個工具,非開發者也可使用機器學習。

騎馬和早餐穀片盒

Lumos是電腦視覺人工智慧,這個工具可以徹底檢視臉書或Instagram或其他平台的相片,然後了解裡面有哪些內容。你可以訓練它看任何東西。它已經協助用自動化方式,去發現和禁止色情或暴力內容、智慧財產侵權(不當使用品牌或商標),以及其他不受歡迎的內容。它也能以你提供的照片為基礎,看出你喜歡的東西、喜歡做的事情(以便驅動個人化廣告和推薦)。

我觀看的一個示範影片中,工程師選擇「騎馬」作為我們的意圖,也就是要尋找的東西。介面很簡單:幾次點選、幾個要填寫的表格,像是「你在找什麼?你想要檢查多少資料?」然後演算法就會開始去尋找騎馬的照片。縮圖開始填滿頁面。

那個演算法之前就搜尋過騎馬,所以現在已經很擅長做這件事。我的猜測是,跳出的縮圖中,超過80%確實是騎馬的圖像,而且展現驚人的多樣性。其中一張是有人騎在馬上的靜止姿勢;一張是馬後蹄站立;一張是騎馬跳躍。演算法找出一些形狀,以及各個形狀之間的邊界,並根據先前的知識基礎,來了解這些互動代表什麼意思。例如,它知道什麼樣的像素組合最可能是人,而什麼樣的組合是馬。當它「看見」人和馬在一起,而且人的位置靠近馬的上方,它就能認得出來,並判定這看起來像在騎馬。

我們也發現一些不是騎馬的照片,有一張是有人站在馬旁邊,另一張是一個人在騎騾,於是排除這些照片,列為不符合。把它們加上紅色框,以防有任何疑義。演算法會內化這些資訊,加到自己的查找表中,供下次使用。頁面上方的簡單圖表,顯示演算法長期的正確度和信心水準。它的正確程度一直都是S曲線,剛開始學習速度緩慢,然後快速改善,之後改進正確度的幅度緩和下來。它非常擅長看出騎馬。

其他可能有價值的照片,人工智慧就較難以解析。要找出「收據」相當棘手,因為對電腦來說,它看起來就像是頁面上的輸入文字;但將來可能會有一些有趣的應用程式,可讓人工智慧辨識和「讀取」收據。工程師還展示演算法常把保齡球道和電扶梯混淆在一起,因為它們有相似的外型和視覺特性。

我問:「像『食物』這樣的東西呢?」這為我們點出機器學習的一個重點:什麼樣的訓練,得到什麼樣的結果。

我們以食物作為訓練主題。的確看到很多水果和蔬菜的照片,一些餐廳裡的盤子。全都是食物。我們也看到早餐穀片盒。那是食物嗎?

嗯,是,或者也不算是。它是盒子。但有食物在裡面。我們購買它,是要買食物,而不是買盒子。如果我的問題是,櫃子裡是否有任何食物,你不會說:「沒有,只有穀片盒。」或者,和臉書更有直接關聯的是,如果我張貼一張穀片盒的照片,它該認為我張貼的是食物或盒子?作為一張照片,作為一份資料,它是盒子。

我們該把這標記為符合或失誤?這是機器學習藝術的一部分。在訓練演算法時,必須使用明確定義的類別。食物在某些方面或許太過籠統,演算法可能會不恰當地選對或選錯影像,因為很難知道我們說「給我看食物的照片」時,是什麼意思。「蔬菜」是更適合訓練的概念。在訓練時,人人都必須用相同的方式定義詞彙。假設有兩個人在訓練演算法,其中一個人總是把穀片盒標示為食物,另一個人則把它標示為非食物。設想一下若是這情況大規模發生,發生在數兆視覺資料位元組的話,情況會如何。

同樣情況適用於自然語言處理。人類非常善於解讀情境脈絡下的文(context),找出複雜的意義。例如,我可能輸入:「哇,我好喜歡那部有關超級英雄的電影,它實在太有創意了!我希望他們再多拍一百部這樣的影片。」了解我,同時也知道一些諷刺語調的朋友,可能立刻知道,我其實是在說反話。人工智慧還在學習如何判斷類似這樣語句的意義。若要弄清楚我是不是在嘲諷,它要做的不只是學習如何分析文法和詞彙,還得了解我曾說過的其他話和貼文,並試圖找出其他線索,以判斷我是否真的喜歡這部電腦,而且希望再有一百部這樣的電影,或者,我其實是討厭這部電影,因為若是弄錯了我的意思,對希望和我建立密切關係的平台來說,不是一件好事。如果我在嘲諷,但即時訊息卻開始充斥超級英雄電影的廣告,我恐怕不會喜歡這樣的體驗。

不是魔法

坎德拉一整天談論人工智慧獲得的神奇虛幻地位之後,他最後在思考的就是前述的那類細節,例如:呈現人工智慧在何處仍然能力有限、人類在訓練它當中扮演了核心角色,以及解決問題和創造價值的重要性,勝過找到更好的模型。有些人很喜歡把人工智慧看成是神奇的解決之道,並沒有深思明辨人工智慧,他嚴厲抨擊這類人,認為他們這是一種懶惰的表現。

他說:「讓我感到挫折的是,大家都知道統計學家是做什麼的,也知道資料分析師可以做什麼。如果我想知道:『嘿,某個年齡層的行為模式是什麼?』我會去找資料分析師。」

「所以,當人們略過這一段,然後跑來跟我們說:『嘿,給我一個能做我們工作的機器學習演算法。』我的感覺就像:『我看起來像什麼?你想要解決的問題是什麼?你的目標是什麼?要做出什麼取捨?』」有時候,他們為必須做出取捨感到吃驚。「如果這個人沒有這些問題的答案,我會想:『你到底把人工智慧想成什麼?』」

他們認為它是神奇魔法。

「但它不是。我告訴人們:『你不需要機器學習。你需要打造資料科學團隊,幫助你徹底思考問題,由人來測試那些想法。和他們坐在一起查看你的資料。如果看不出有哪些情況,如果沒有任何直覺想法,如果無法建立一個非常簡單、以規則為基礎的系統(例如,若是有一個不到二十歲的人,住在這個地區,你就做這件事),如果你不能做到前述那些事,那麼就連和你談論用人工智慧解決問題,都會讓我感到極度緊張。』」

「當其他高階主管來找我,不是想要了解這項技術,而是提出一個他們自己非常、非常深入思考過的問題,我就會覺得很高興。有時候,其實是經常,一個以良好舊有規則為基礎的簡單系統,只要有正確的資料,就足以解決八成的問題。

「而且你知道嗎?好處是人人都了解它。大家都應該先好好動動腦。」

(劉純佑譯自2017年7月19日HBR.org數位版文章)



史考特.貝里納托 Scott Berinato

《哈佛商業評論》英文版資深編輯,著有《好圖:製作更聰明、更具說服力的資料視覺化指南》(Good Chart: The HBR Guide to Making Smarter, More Persuasive Data Visualizations, 2016)。


本篇文章主題技術