1. 程式人生 > >大資料“殺熟”?你的演算法該管一管了

大資料“殺熟”?你的演算法該管一管了

為做好種種商業預測,越來越多企業現在求助於計算機演算法——這種技術能以驚人速度完成超大規模分析過程。

演算法能讓預測更準確,但也會帶來風險,尤其是在我們不理解這些演算法的情況下。一個例子是社交媒體。很多社交網站通過演算法決定推送哪些廣告和連結,如果設計演算法時過於側重點選量,“騙點選”的內容就會充斥網站。雖然點選量上升了,但整體使用者滿意度可能直線下降。

這類問題可以避免。問題根源通常並非演算法本身有漏洞,而是使用不當。為避免犯錯,管理者須首先了解演算法的功能和侷限:它能解決哪些問題,不能解決哪些問題。

 

 

為何“聰明”演算法反誤事?

越來越多證據顯示,將演算法“人格化”更易讓人們接受。例如在自動答覆系統中,真實人聲要比模擬人聲的傳達效果好。然而根本問題在於,人們通常像對待人類同事一樣對待演算法和計算機,可演算法和人類有兩大不同:

演算法極其“單純”。在最新的《復仇者聯盟》(Avengers)電影中,鋼鐵俠託尼·斯塔克(Tony Stark)設計了人工智慧防禦系統奧創(Ultron)。奧創的任務是保衛地球,但它完全按字面意思解讀任務要求,認為拯救地球的最佳方法就是毀滅人類。在很多方面,奧創就像典型的演算法,完全按命令列事,不顧及其他問題。如果使用演算法時不夠謹慎,我們就會遇上麻煩。

社交網站如果突然充斥騙點選內容,就可能是落入了類似陷阱。這些網站目標明確,即提供對使用者最有吸引力的內容。在設計演算法時,網站管理者將這個目標替換為:找到使用者最願意點選的內容。這個指令邏輯上並不算錯,因為人們顯然會點選感興趣的內容。但由於只根據潛在點選量篩選內容,網站迅速充滿無聊和帶攻擊性的內容,導致聲譽受損。人們會理解網站管理者希望“最大化優質內容點選量”,而非“即便損害質量也要最大化點選量”;相反,演算法則只按字面意思執行指令。

演算法是個黑箱。在莎士比亞作品《愷撒大帝》(Julius Caesar)中,一名預言者警告愷撒:“當心3月15日”。這句話意思明確:愷撒最好有所防範。但同時又讓人完全無法理解:當心什麼?為什麼?愷撒對這個資訊非常困惑,於是把預言者打發走,宣稱:“他是個夢囈者,我們走吧。”最終,3月15日確實是愷撒大帝倒黴的日子,他在這天被刺。問題是預言者提供的是不完整資訊,而且沒法猜到缺失的是什麼,也不知道這條資訊有多重要。

和莎翁筆下的預言者一樣,演算法有時能非常準確地預見未來,但不會告訴你事件背後的原因。演算法可以通讀《紐約時報》文章,告訴你哪篇在Twitter上會火,但解釋不了人們為什麼要轉發;演算法可以告訴你哪位員工最可能成功,但不能告訴你哪種特質對成功最重要。

為更好地管理演算法,認識到上述兩項侷限是第一步。現在我們再看看還需要做什麼。

明確所有目標

每個人都有自己的目標和計劃,但很少有人會不擇手段。為了某些未明言的軟性目標,我們會做出權衡取捨:例如為了明天的聲譽放棄一部分今天的利益,或為實現組織內部平等付出短期代價。但演算法只會一門心思追求給定目標。因此在設計演算法時,你必須明確想要達到的所有目標。

如果你在意某個軟性目標,就要明確指出、清晰定義,並設定其在總體目標中的權重。由於軟性目標較難衡量,實施演算法所得結論時要特別留意。

我們最近對軟性目標的重要性有了切身體會。本文作者之一與美國西海岸某市政府合作,幫助其提升餐飲業督查效率。幾十年來,該市的做法基本是隨機抽查,並重點關照有違規經營記錄的單位。不過,選擇督查哪些餐館,很適合交給演算法決定。除違規歷史外,我們的演算法發現了很多相關變數,幫助政府衛生部門更易發現違規餐館,提高督查效率。

政府對此非常感興趣,希望採用演算法。我們問對方有何問題或顧慮,一陣尷尬的沉默後,有人舉手。“我不知道該怎麼說,”她說,“但有個問題應該討論一下。”她告訴我們,在有些人口密集的社群,違規經營更常見。這些社群低收入少數族裔比例較高,她不希望演算法篩選出的餐館集中於這些社群。這涉及公平,即屬於軟性問題。我們的解決方法很簡單:設定各區域督查餐館數量上限。這樣做既能實現硬性目標,即找到最有可能違規的餐館,又照顧了軟性目標,即保證較落後區域得到公平對待。

為找到軟性目標,我們特別注意給每個人機會說出任何顧慮。我們發現,人們經常通過表達擔憂來提出軟性目標,所以明確徵求意見能促進開放和高質量的討論。讓人們坦率表達觀點,把平時私下說的話擺在桌面上,這點很關鍵。這讓很多問題浮出水面,不過我們遇到最多的還是公平問題,以及敏感局面處理問題。

明確核心目標和其他考量後,設計者可以讓演算法做出權衡取捨。為此,設計者通常須列出多專案標,並按重要性排序。

 

儘量避免短視

一家受歡迎的快消品公司從中國低價採購,然而銷往美國。該公司運用演算法預測哪些產品最好賣,銷量迅速提升。但良好勢頭只維持了幾個月,消費者開始要求退貨。

儘管演算法未能成功預測消費者的反應,但驚人的高退貨率本可以預見到。公司當然關注質量,但在設計演算法時,沒有明確將質量設為影響消費者滿意度的重要因素,而過於關注銷量。調整後的新演算法既能準確預測產品銷售情況,同時也能預測產品的受歡迎程度和可持續度。公司現在推出的產品在亞馬遜等平臺上獲得極高評價,退貨率大幅下降。

這家公司最初設計演算法時落入了常見陷阱:演算法關注當下掌握的資料,而這些資料通常與短期結果相關,這造成演算法本身有短視傾向。在短期利益和長期成功及企業整體目標間可能存在張力,這對於人類不言自明,對演算法則不然,除非你明確告訴它。

解決這個問題的方法是,在設定目標時明確定義長期目標。而在按照演算法的預測採取行動時,管理者也要考慮演算法的建議是否符合長期目標。

過於關注點選量而導致內容質量低劣的網站,其採用的演算法也有短視問題。演算法根據當下目標(讓使用者點選連結)推薦內容,卻未能考慮更重要的長期目標,即使用者滿意度和黏性。

 

選用合適資料來源

要選擇合適的資料來源,應注意以下兩點:

資料應儘可能全面。企業常有的誤解,是把大資料看作“大量的資料”,例如從1萬名客戶擴充套件到100萬名。但這樣只理解對了一半。設想你把資料做成表格,每行對應一名客戶,那麼客戶人數即為圖表長度;而你掌握的每名客戶的情況,即每行中的資料,決定了圖表寬度。雖然資料總量能夠提升預測準確度,但資料寬度才能讓大資料發揮全部威力。做預測最關鍵的就是資訊的全面性。事件的每個新細節都是一條線索,能夠補充已掌握的情報。文字記錄就是典型的“寬”資料,每個字都可以成為線索。

 

資料多元性很重要。從上文可以推出,資料應儘可能多元,即各個資料來源相關度低。這能讓演算法的預測能力再上臺階。可以把每組資料看作一個朋友的推薦:如果朋友口味太相似,那麼多幾個朋友推薦也不太有價值;反之,如果每個朋友視角不同,帶來的價值就大得多。

瞭解演算法的侷限

演算法就是利用已有資料在稍有差異的情境中做預測,這些差異可能包括人員、時間等,物件事件也可能不同。本質上,你在尋求把某項結論移植到另一個情境中。因此聰明的做法是,列出演算法可能在新情境中失效的原因,並評估這些潛在原因。例如,某個演算法根據外部網站評論和違規歷史,預測波士頓哪些餐館可能違反衛生法規。而換到佛羅里達州的奧蘭多,該演算法效果可能就沒那麼好,因為那裡天氣更熱,食品安全問題與波士頓有差別。

同樣要記住,相關性不等於因果性。假設某個演算法預測,較短的Twitter發言比較長髮言轉發率高。這絕不是說你應該縮短Twitter發言:這只是一項預測,而非建議。這項預測成立,是因為較短的Twitter發言更可能具備很多其他特徵,使之更易被轉發,而僅僅縮短你的發言,並不必然滿足那些條件,所以不一定能得到更多轉發。

eBay曾多年通過谷歌打廣告,發現看到廣告的人比沒看到的人更可能消費。但eBay忽略的是,這些展示次數達數百萬的廣告,並不必然是人們訪問其網站的原因。畢竟,這些廣告針對的本來就是eBay使用者。為區分相關性和因果性,eBay進行大規模試驗,隨機選擇廣告展示物件,結果證明大多數情況下廣告不起作用,因為看到廣告的人已經知道eBay,無論如何都會在上面消費。

分享之前我還是要推薦下我自己建立的大資料學習資料分享q群 458345782,這是全國最大的大資料學習交流的地方,2000人聚集,不管你是小白還是大牛,小編我都挺歡迎,不定期分享乾貨,歡迎初學和進階中的小夥伴。

演算法有很強預測能力。但在做因果推論時,你必須多加留意,因為演算法不能取代對照試驗。不過在有些方面,演算法能取得驚人成功:發現人類觀察不到的細微規律,並利用這些規律形成準確洞察,助力決策。留給我們的課題是:瞭解演算法的風險和侷限,並通過高效管理,釋放它的巨大潛力。