天天看點

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

在上一期雷鋒網ai掘金志硬創公開課《十大場景案例詳解:人工智能如何提升商業效益》中,我們通過案例詳細介紹了ai用于商業實戰中的場景和效益。而為了真正幫助推動ai落地,我們将帶來更多場景單點技術幹貨分享,以飨讀者。

是以,本期公開課,雷鋒網邀請到杉數科技cto王子卓博士來進行主題為“如何利用機器學習做運籌優化與智能決策”的分享。

以運籌優化與智能決策為例,王子卓表示,大資料要産生實質價值,必須真正提升決策品質。規律性分析能夠從海量資料中發掘出規律,但是找到規律并不自然而然帶來決策方案,是以運籌優化學和機器學習,就是将實際中決策問題轉化為數學模型,并用高效的優化算法求解。是以,本次公開課,王子卓博士将分享他在解決實際問題過程中的模組化、算法優化實踐經驗。

王子卓,杉數科技cto、明尼蘇達大學工業與系統工程系助理教授,曾就職于ibm

watson研究中心及janestreet

capital等機構,擔任分析/研究員;清華大學數學與應用數學系學士,斯坦福大學金融數學碩士,斯坦福大學管理科學與工程博士,主要研究方向為定價與收益管理,電子商務、網絡經濟學,随機優化與魯棒優化及其在管理科學與金融中的應用。

杉數科技是一家專注于打造人工智能決策的初創公司,杉數科技旨在通過人工智能算法建構企業在大資料時代下的決策閉環——從資料收集、規律分析、到最終的決策,主要服務客戶領域為電商零售、物流、金融。

以上是王子卓博士公開課視訊,強烈建議先看視訊!

以下是本次公開課實錄,雷鋒網(公衆号:雷鋒網)做了不改變原意的編輯:

我今晚分享的内容主要有運籌優化的背景;什麼是運籌優化;運籌優化能解決的問題;運籌優化和機器學習之間的關系;最後展示幾個運籌優化在實際中的應用以及和機器學習共同解決實際問題的場景。

如今是大資料的時代,公司都希望能利用資料做更好的決策。我認為從資料到決策主要有三個步驟:

第一是資料的采集與管理,這是大資料時代的根本,這部分更多是由計算機技術實作的,包括硬體技術和軟體技術,可以認為是資料驅動決策的原材料;

第二是對資料進行規律性分析,找到資料背後的規律,以預測未來,這一步是由統計技術或者機器學習技術完成的;

但在實際的場景中,并不是簡單地對資料規律性分析,想要創造實際價值,我們需要根據分析結果進行決策,即第三步,利用資料進行決策模組化與求解,這一步用到的技術是我們接下來讨論的運籌優化技術。

資料是資料時代的原材料,規律性分析或機器學習把原材料加工成一些更精細内容,之後經過決策引擎,将這些材料轉化成于公司有益的知識。具體到底什麼是運籌優化呢?簡單來說,我們可以将實際生活中的決策轉化成數學模型,并且用運籌優化方法進行求解。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

從廣義上講,優化運籌是非常古老的學科,可以追溯到人類有生産生活之後的非常久遠的曆史。著名的數學家歐拉有一句話:“nothing

at all takes place in the universe in which some rule of maximum or

minimum does not

appear。"意思是,世間萬物無非都是優化過程,企業生産、普通人的生活,甚至一些重要的自然規律,實際上都是某種優化的問題。給大家舉個簡單的例子,實體學中的光折射定律或者光反射定律,實際上都可以認為是光線在尋找一條路徑以最短的時間達到某一點的某種優化問題。

通常認為,現代的運籌優化起源于大約上世紀的四五十年代,大約在第二次世界大戰期間,那個時候很多應用都集中于軍事領域,盟軍發現他們在作戰時有很多數學問題需要解決,比如說雷達部署問題、運輸船的護航問題、炸彈的投擲問題等,這些問題都是某種非常複雜的具體場景中的優化問題或者說數學問題。當時盟軍雇傭了大量數學家及計算機學家,像馮諾依曼等。在這期間,人們系統地發展出一套解決這類問題的方法,這就是運籌學最初的背景。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

值得一提是,1947年,運籌學的泰鬥george

dantzig發明了一個數學裡最經典問題——線性優化問題的解法。如果大家對這種算法比較感興趣,可以在網上找一找,這個算法被評為20世紀的十大算法。戰争結束之後,運籌學更多的被用到民用場景中,包括企業、政府、經濟發展等,并且也産生了大量的新算法以及運籌學的各個分支。

在大約二三十年之前,由于計算機的發展,運籌學得到革命性突破,計算機的發展使得很多研究的算法得以真正實作,使得其能真正幫助企業進行優化和決策。過去十幾年裡,大資料的發展又給運籌學帶來了更大的舞台,剛才也說到,運籌學可以認為是把實際中的資料轉化成企業所需要的決策。大資料時代到來,我們有了大量的資料支撐,那我們就可以通過這一套方法幫助更多的企業進行更優決策。

運籌優化有兩大重要的工具,第一是所謂的優化工具,我們說運籌優化,自然的優化本身是最核心的内容。優化問題有三個組成部分。

首先是決策。在很多實際場景中,我們都是針對特定的某件事或特定的目的進行決策。比如公司會經常面臨着庫存方面問題,要決策每天訂多少貨物;電商可能面臨着價格的決策、定價問題,在這個場景下,決策就是每一件商品的價格;在其他場景中,我們可能需要設計最優路線,比如快遞公司以最快的速度投遞每天的信件,決策就是投遞的路線,路線的整體就是決策。

第二是目标或目标函數,即我們做決策時希望達到的目的。比如剛才提到的有關庫存的決策,目标通常是減少庫存堆積、降低庫存成本等;有關定價的決策目的是增加企業收入或者銷量;路徑優化的目的是使完成路線所需時間或者所需要的成本最小化。

第三是限制,實際場景中,決策往往受到客觀條件的限制,比如庫存可能受到滿足使用者需求的限制;路徑優化可能會有道路上的限制;或有時候我們希望盡量少左轉,左轉的次數就成為限制。

優化問題便是要尋找在滿足這些限制的條件下最好地達到目标的決策。

在解決實際問題時,有兩個關鍵的步驟:

第一是模組化,将實際問題通過最有效的數學形式來表達出來,建立數學模型。

第二是求解,有了數學模型型之後,通過算法找到最優的決策、能夠達到最優的目标的且滿足限制條件的決策。

這兩步是整個優化問題中核心的兩部分,缺一不可。

首先,我們需要好的模型簡潔有效地刻畫實際問題。有效很容易了解,我們希望模型能夠盡可能地和實際問題吻合,即考慮實際問題的各個因素;簡潔是為了更好求解,另外也可以讓人們更好地了解優化模型。算法或求解也是非常重要的。好的算法可以更有效地求解更大規模的問題,現在遇到的問題經常是非常大規模的,好的算法能保證在有效的時間内找到最優化目标的決策。

第二個工具是随機模組化。主要的目的是科學刻畫不确定性,并且基于不确定性環境分析,比如分析事物的發展規律及如何做出較優的決策。其中有很多具體的模型,比如随機優化模型、魯棒優化模型、随機模拟方法以及像馬爾可夫決策過程這樣更加複雜的優化和決策模型。在複雜場景中,通常通過優化加随機模組化的方法刻畫問題,再通過優化的算法進行求解,最終得到在複雜問題場景之下的決策建議。

以上就是運籌學兩大核心内容,即優化和随機模組化方法。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

這幾年,人工智能有非常大的發展,比如圖像識别、語言識别等技術,應用領域包括自動駕駛、智能診斷等。但機器學習或人工智能的本質到底是什麼呢?這個問題有很多角度,但在我看來,機器學習或人工智能應用到具體問題中的話,它的核心也是兩部分,一部分是模型,另一部分是算法。比如在自動駕駛中,我們需要通過模型判斷如何識别障礙物或路況,有模型之後,我們需要通過算法求解這個模型。

這裡的算法包括兩個部分,首先模型中存在大量參數,我們需要通過算法找到模型中的參數,使得模型能最好地刻畫想刻畫的場景。另外,通過算法求解最優決策。在自動駕駛中,我需要決定車往左走多少度或往右走多少度;在遊戲裡要決定我下一步做什麼。算法的第二部分就是在模型基礎上做出最優決策。

我認為,機器學習和人工智能在解決實際問題的任何場景中,核心部分仍然是模型和算法兩部分,雖然不同的場景有可能有不同模型和算法,這與上面介紹的運籌優化是一緻的。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

很多時候,機器學習本身的核心也是運籌優化的一部分。機器學習中一個非常經典的問題:支援向量機問題,簡稱svm問題。

這個問題的背景是這樣的:我有很多資料點,我知道一些資料屬于某種類别,另一些不屬于,我需要找到方法區分這兩類資料點,如果有新資料點進來,我就可以判斷其是否屬于某個類别,這可以用到智能診斷中。資料點對應病人的病曆,通過曆史資料,我們知道某些病人患有哪些疾病,通過這樣的分類,我們對未來病人自動診斷。

這類問題的應用場景非常廣泛,除去剛才提到的智能診斷之外,還比如垃圾郵件自動分類、模式識别等,甚至一些圖像識别都可以用類似方法處理。這是非常基本、也是非常核心的機器學習問題,從數學角度來看,這個問題無非就是優化問題。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

上面ppt的右上角坐标系中,我們希望找到一種分割方式,把紅點和藍點盡可能地區分開。假設先考慮簡單的劃分方法,比如找到一條直線盡可能将紅點和藍點區分,那麼,決策就是找到這條線,這條線對應運籌優化中的決策。有了決策,即我們找到了這條線之後,未來有一個新的點,隻需判斷其線上上還是線下,就能判斷它是紅色還是藍色。

我們的目标是盡可能使這條線把不同類别的資料點能夠分開。在實際情況,顯然不可能有一條線資料點徹底分開,必然存在誤差,這種情況下,我們就要盡量減小誤差。除此之外,實際中對于這些線也有限制,比如參數要滿足特定條件。
這樣,我們可以把這個問題寫成優化問題,通過求解找到最優參數。如今,通過一些先進的優化算法,可以非常有效地求解這類優化問題,把這類問題轉化線性規劃問題或凸優化問題,現在算法可以非常有效地求解。對于上述問題,哪怕存在幾百萬變量求解也可以很容易,在筆記本電腦上求解可能隻需要幾秒或者幾分鐘。其中的核心是優化算法。

剛才我們是用直線劃分,其實我們也可以用其他形狀劃分,比如橢圓、圓形等。不同情況對應不同的模型,不同的模型對應不同的優化問題,寫優化問題的時候需要修改,修改後又會面臨求解問題,其中會涉及到優化問題求解算法。其中,優化模型和算法是機器學習問題的關鍵。

實際上,基本所有機器學習問題都可以歸類成優化問題,我們需要選擇的是機器學習模型下的參數,用x表示;曆史的資料用d表示,我們要尋找最優參數使其可以最好描述曆史資料。f表示x和d的拟合程度,通常對于x,我們會加一些懲罰函數使得x滿足某種條件,甚至有時對x加一些限制條件。

從這個角度來講,所謂的機器學習問題,本質上都是優化問題,如果我們有優化算法方面的優勢,意味着我們也有機器學習算法的優勢。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

研究機器學習或讨論機器學習時,一方面模型的選取非常重要,另外一方面,背後的優化算法也很重要,這些才是使你在面對新模型或複雜場景時都找到好的解決方案的基礎。

一、線上比對問題

靜态比對的問題

我簡單介紹一下靜态比對問題,在很多場景中我們都會面臨這樣的問題,即将供給和需求進行比對,比如打車軟體需要将計程車司機和乘客進行比對;搜尋引擎需要把搜尋關鍵詞和廣告商進行比對;線上交友網站需要把男生和女生進行比對,其中每一個比對都有其分數,即兩端比對程度。

在靜态的比對問題中,我們的目标是供給與需求如何比對以最大化比對總分數,這樣的問題實際上就是典型的優化問題。我們按照剛才說的決策目标和限制,把它寫成優化問題。

在實際場景中會存在一些限制,比如一個供給隻能比對給一個需求,一個需求隻能配給一個供給,以及一些更複雜限制都有需要考慮,但是不管怎樣,我們把這個問題寫成優化問題,有好的算法之後就可以高效求解。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

線上比對問題

上面講的是靜态比對問題,即假設比對的兩端都是在确定的情況下進行比對的。但在實際場景中,我們通常面臨動态或線上的問題,比如在打車過程中,車和乘客都是動态出現的;在搜尋引擎場景下,比對一端比如廣告商是固定的,但關鍵詞是逐個出現的,每出現一個關鍵詞的時候都要決定把它比對給哪個廣告商。這些問題涉及不确定性,我們在比對這個需求的時候,并不知道未來可能還會産生哪些需求或者供給,但目标仍是使得最終比對分數最大,在某個時間段或長時間次元上獲得最大價值。這就是一個不确定性下的優化問題。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

這個問題就比靜态比對問題複雜不少,但我們仍然可以把它寫成優化問題形式,隻不過在這類優化問題中,系數不是事先給定而是動态生成的,我們可以用多種方式假設,比如這些系數可能是按某種機率分布生成的,甚至我們可能都不知道這些系數分布,隻知道出現的順序是随機的。我們可以有不同的假設,但在每一個點産生之後,我們要決定如何進行配置設定,是配置設定給某資源?或不比對這個點,這就是實際中做決策的問題。

實際上,對于做運籌優化的人來說,我們要對這個問題設計一系列算法,即如何決策才能達到最優目标。經過一系列研究之後,人們提出一些算法。其中一種算法是,觀察少量樣本,求得每個右端資源j的“合理”價格,在優化裡稱之為“對偶變量”。當新的需求或比對産生之後,将比對分數和所需消耗資源的價值進行比較,看這個比對是否帶來了應有的價值,如果比對的價值比計算出的合理價格高的化,我們就進行這個比對,而且選擇其中最有比對使得價值比價格高最多。否則,就拒絕這個比對請求,這就形成了可以實際運作的算法。

另外, 做運籌優化的人不僅是提出一個算法,還希望能證明一個算法确實能夠達到最優的決策,實際上,通過一些數學方法也可以證明。

從某方面看,這個問題也有一個機器學習的成分,比如通過不斷觀察樣本,機器可以學習每件商品的價值。本質上,這也是優化結合随機模組化的問題,我們剛才講到優化和随機模組化是運籌學的兩大核心内容,通過這樣的算法和模型,我們可以面對這種實際的場景,達到長期最優的政策。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

二、收益管理

第二個是關于收益管理的場景。簡單來說,收益管理就是定價和銷售問題,商家要決定其商品以什麼形式什麼價格賣給消費者,或者說希望以正确的時間将正确的商品以正确的價格賣給正确的人,通常在進行收益管理的決策的時候會有這樣的過程。

首先是資料采集;然後根據資料對消費者進行分析,比如客戶挖掘、對消費者進行标注、分析消費者對價格的敏感程度等;在此基礎上進一步決策,比如用什麼樣的價格買哪些商品、什麼時間賣等。實際上這部分與我們開始說的從資料到決策的鍊條是一緻的。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

組合定價

其中一個很重要的問題叫組合定價問題。商家要管理很多商品,商品之間可能會有需求的關聯性,比如同時銷售可樂和百事的話,一種商品的價格可能會影響另一種商品的銷量,在這種情況下,商家需要決定如何對多種商品進行組合定價。其中的決策就是每一種商品的具體價格,目标是未來最大化整體收益,這個過程也涉及模組化和求解兩個步驟。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

這裡也有很多模型,比如通過消費者選擇模型刻畫消費者對商品的選擇,其中用到優化和機器學習選擇最好的模型。有了模型之後,我們要決定如何定價以最大化利潤或銷量等,這就變成了非常經典的優化問題。除定價以外,商家還面臨着像選品、商品展示區等問題,仍然需要考慮到商品之間互相影響情況,這些問題均可以寫成優化問題,同樣需要優化算法對這類問題求解。

三、動态定價

上述組合定價問題可以看做靜态問題,在實際中我們經常遇到動态問題。一開始,我們對消費者的偏好不是非常了解,希望通過動态定價、資料收集來了解消費者對商品的偏好、或學習消費者的行為,這就涉及如何動态定價的問題。我們要确定到底要通過多少資料點、怎麼設計這些價格以學習消費者行為,同時不能由于定價波動太大造成收益損失、或對消費者産生負面影響,我們要确定什麼樣的方案是長期最優方案,既能學習到消費者對商品的偏好,又能夠獲得最大收益,這個可以認為是機器學習問題,也可以看做運籌優化和機器學習結合問題。

同樣,關于這類問題有大量算法,但重要的是,我們不僅要提出算法,還要證明這個算法是所有算法中最好的。

杉數科技CTO王子卓:4大案例告訴你,如何用機器學習玩轉企業大資料 | 硬創公開課

四、路徑優化

我們之前也提到過,像電商、物流公司等企業在經營過程中都會面臨這樣的問題:比如每天要把貨物送達幾個消費者,想要設計一條在最短的時間或路程内完成任務的路線,這就是路徑優化問題的基本形式。

有許多優化模型或算法可以求解這個模型,但實際生活中,基于這個基本的場景還有很多非常複雜的變化或需求,比如不僅要送貨,還要取貨;不僅是一個人送貨,可能有很多人或車要送貨或取貨,這就涉及到車輛和人員的配置設定問題;或有些需求不是事先确定的,還有一些實時需求,比如快遞員突然接到上門取件的訂單;另外,在送貨路途上花費的時間也有很大不确定性,這些情況下,就需要線上算法應對這樣的需求。現在比較火的自動化倉庫管理,機器人管理倉庫時會遇到貨物擺放問題、機器人如何取貨問題等,這裡要平衡不同機器人之間任務以及優化每一個機器人路徑,其中也會面臨複雜的模組化和求解問題。

實際場景中的問題是非常複雜的,而把這些場景的要求轉化為數學模型,之後進行求解,這是運籌優化最擅長的。

說了這麼多,我希望大家能了解這幾點:

對運籌優化有基本了解。什麼是運籌優化,對于實際問題能産生什麼價值,運籌優化和機器學習的關系。兩者之間更多是一種互相支援的關系,在很多場景下,優化運籌和機器學習結合才能提高好的解決方案。

運籌優化的一些基本方法。包括優化和随機模組化。

最後,我想談一下國内運籌優化的發展情況。

總的來說,國内運籌優化的發展比美國要落後一些,美國很多的大企業,像亞馬遜、谷歌或者一些物流企業,内部都有一大批運籌學背景的團隊來解決公司生産可能面臨的問題,比如亞馬遜中有50~200個的運籌學博士做定價、庫存、物流等方面的決策支援。這方面,國内要落後一些,但我認為,未來幾年,國内很多企業會在這方面轉型,過程中正需要運籌優化的技術,這些技術幫助企業将大資料轉換為真正的決策。

繼續閱讀