<address id="7tthr"><ol id="7tthr"></ol></address>
        <output id="7tthr"><dl id="7tthr"><menuitem id="7tthr"></menuitem></dl></output>

              <font id="7tthr"></font>

                您所在的位置:首頁 > 新聞中心 > 技術資料 > 正文
                新聞中心
                聯系我們

                隨州市清華網絡科技有限公司
                電 話:177-8671-3510
                地 址:湖北省隨州市曾都區隨州市創新創業基地5樓(文峰佳苑C區)

                技術資料

                微信的機器學習與人工智能應用實踐

                作者: 來源: 日期:2019/9/28 14:47:18 人氣:178

                2018 年 1 月 13-14 日,AICon 全球人工智能與機器學習技術大會在北京召開,微信小程序商業技術負責人張重陽應邀擔任本次大會的聯席主席,發表演講介紹了人工智能應用落地過程中的 4 個"in",并結合在微信的實踐案例做了深入的講解。以下為演講全文。  

                微信的機器學習與人工智能應用實踐

                圖為張重陽AICon演講現場

                寫在前面

                大家好,我是來自微信的張重陽,很榮幸有這個機會和大家一起交流一下機器學習和人工智能技術在微信的應用實踐。談起人工智能,大家首先想到的是圖像識別、語音識別、機器翻譯、機器人這些技術,然而人工智能所涉及的應用場景和商業價值卻遠不止此。在日常的經營和管理中,任何一個企業都會維護客戶關系,都有銷售數據需要分析,都會在生產,銷售和運營的各個環節中面對不同的決策問題,新一代的商業智能技術就是利用現在飛速發展的機器學習和數據分析技術對企業商業化過程中面臨的各種問題給出自動化的智能解決方案,從而驅動業務快速增長。

                我們來看一下智能技術在商業過程中解決問題的 4 個重要環節,我這里總結了 4 個“in”,首先我們叫 integration,就是針對需要解決的問題收集和整合已有的數據。這里所面臨的挑戰主要有兩個,首先是如何在計算機中表示數據以便于存儲和計算,另一個是在我們實際應用中如何處理保密數據,比如財務數據,或是當我們處理用戶數據的時候如何保護用戶隱私,有沒有什么方法對數據進行處理后既起到保密的作用又不影響計算機使用?

                有數據后就是用統計和機器學習的方法去解決問題得出問題的最優解,這步我們叫 inference,不同于學術研究,在實際應用中我們會將多個模型進行組合使用取長補短從而得到更好的效果,稍后我會結合實例說明,

                在有了 inference 結果之后,實際應用中不能只給一個預測結果,而是要結合數據對模型的預測結果進行更深入的分析和解釋也就是 interpretation,這也是最近兩年在深度學習之后比較熱門的方向,因為深度學習雖然在整體的數據結果上取得了很不錯的效果,但偶爾會在個別樣本上給出令人難以理解的結果,有沒有什么方法對深度學習這樣的復雜模型進行解釋,我將在后面介紹一種對黑盒模型進行解釋的方法。

                解釋之后,該發現的問題找到原因,那么我們就要結合人工的知識和實際環境制定策略,并用自動化測試的方法去驗證效果,這步我們叫 investigation,這一步其實最復雜,因為要結合人工知識而且在各個業務場景中驗證方法都不一樣,由于時間關系我這里介紹一種通用的方法 ABtest,ABtest 無論是在傳統行業還是在互聯網公司都已經被使用了很多年了,是一個非常有效的產品測試方法,但是即便是這種被廣泛使用的方法,也需要根據實際應用場景進行設計,比如我們在微信上使用的很多產品是社交化的不能完全獨立的分成 AB 兩個集合,有時在小樣本測試下有效不能保障放量后繼續有效,后面我會給大家介紹一種我們改進的方法 Ntest。

                微信的機器學習與人工智能應用實踐

                好,說了這么多,我們先來宏觀的看一下,在微信平臺上我們正在做哪些嘗試,這個圖我 2015 年的時候就在 InfoQ 上分享過,當時我們的工作重點是在精準拉新這部分,因為當時在做朋友圈廣告,但是拉新只是商業化的第一步,有了用戶后,如何通過數據分析和自動化的方法做精細化運營降低用戶流失率并提供個性化的服務提高產品體驗才是企業成功的關鍵。

                大家都知道小程序是微信生態的重要一環,因為它的便攜性商家可以在微信小程序上以極低的成本獲取用戶,下一步我們還會依靠微信的大數據處理和機器學習的能力結合我們豐富的用戶畫像體系逐漸提供相關的分析工具和自動化測試工具幫助商家做好精細化運營提高用戶體驗。比如現在很多商家的促銷展示對每個用戶都是一樣的,如果平臺可以分析出當前用戶里面哪些是最有價值的用戶哪些是即將流失的用戶,并提供一些自動化的測試工具驗證運營效果,相信可以幫助商家大幅度的降低運營成本提高運營效果。今天我將結合其中的用戶畫像,流失預測,流失分析和 ABtest 相關技術和大家一起探討一下微信在商業智能技術 4 個“in”上的技術實踐。

                整合 Integration

                微信的機器學習與人工智能應用實踐

                先看數據整合 integration,這里我介紹一下實際應用中最常用到的用戶畫像技術,對一個企業來說最重要的資源無疑是它的用戶,提供個性化和自動化的服務和產品必然需要足夠的了解用戶,那么用戶畫像就是用戶在計算機中的表示形式。這里的挑戰首先就是表示的方法,將用戶表示成什么樣的結構才方便計算機使用,另一個挑戰是如何保護用戶隱私,雖然我們對用戶的敏感數據進行了脫敏,但用戶的特征越多越容易反推回單個用戶,有沒有什么方法既能保護用戶隱私又不影響計算機的使用?

                微信的機器學習與人工智能應用實踐

                先看用戶畫像的表示方法,用戶畫像的目的是為了在不同任務中度量用戶和用戶之間的相似度,那么通用的做法是將每個用戶在數據庫中表示成一個向量,向量和向量之間的距離有很多種數學方法計算比如常用的歐式距離和余弦,但實際使用中會根據不同應用場景定義相似度函數,或是在實際的數據上用機器學習的方法去擬合這個函數,有了這種對不同用戶相似度度量的方法我們就可以做用戶分類和聚類,或是提供對相似的用戶推薦相同的商品這樣的服務。

                微信的機器學習與人工智能應用實踐

                但是這個將用戶轉成向量的過程,在實際中卻是非常復雜的,如果都是簡單的標簽那么常用的 onehot 編碼就可以搞定,但很多數據是有結構的,例如微信中社交關系是一個網絡結構,用戶和公眾號的關注關系是一個二部圖的結構,用戶的興趣是一個隨時間變化的序列結構。

                微信的機器學習與人工智能應用實踐

                我們在實踐中社交關系這種網絡結構使用了 node2vec 的方法轉換成向量,使用的時候有些提高效果的小技巧比如好友關系其實是有權重的,好友和好友之間相互點贊和評論的越多權重就越大。 公眾號的關注關系其實是一個稀疏矩陣,我們把每個用戶關注的公眾號作為一個詞,把一個用戶作為一個文檔看待,這樣就可以使用通用的主題模型給每個用戶打上主題標簽,推薦大家使用袁老師的 lightlda,非常適合大規模數據的訓練,還有短期興趣這種序列結構,文本,圖像這些數據都可以用深度學習的方法 embedding 成向量,那么最終把這些向量拼接到一起就是計算機可以使用的用戶特征向量。

                微信的機器學習與人工智能應用實踐

                上面的方法編碼后,每個用戶特征的維度是很高的,這意味著實際使用中需要足夠多的訓練樣本否則就容易過擬合,但實際使用中用來訓練的用戶集大多數時候是非常有限的,要讓算法支持較低的樣本輸入,必須要對初步編碼后的用戶特征向量做降維,現在有基于深度學習的 auto-encoder 的方法,在實際使用中我們發現它的效果比傳統的 PCA 好很多,降維的另一個好處是對傳統的標簽進行了壓縮和隱藏,壓縮完成的向量不影響用戶相似度的計算,但維度上比原始的向量小了很多,每一維的數值并沒有實際的物理含義從而保護了用戶隱私,便于在公司內進行共享使用。

                微信的機器學習與人工智能應用實踐

                關于用戶隱私保護的問題這是公司內在處理用戶數據時遵守的原則,文字比較多我就不念了。

                推斷 Inference

                微信的機器學習與人工智能應用實踐

                對數據整合和編碼后,下一步我們要使用統計和機器學習的方法去求解問題也就是 inference,這里我們來說 lookalike 這個模型。

                微信的機器學習與人工智能應用實踐lookalike 在商業化方向上有很多的應用場景,lookalike 最早是用在社交廣告上的,通過商家上傳的種子用戶包擴展更多的相似用戶用于做廣告受眾,廣告投放中它的效果遠好于標簽篩選出來的用戶,但是 lookalike 的本質是通過已知的一堆樣本在另一個集合上去找相似的樣本,同樣的也可以用在流失預測上,我們知道上個月到現在已經流失的用戶,在現有的用戶群上做 lookalike 相似性擴展就可以找到正在流失或下一步可能流失的用戶,lookalike 對線下店鋪的智能運營也很有作用,我們通過已有用戶在大盤全量用戶上做 lookalike 就可以算出各個地方潛在的客戶群體有多大,lookalike 不光用來找人還可以用在商品上,我們可以通過熱門商品去商品庫里面擴展找類似的商品,這就是智能選品的問題。

                微信的機器學習與人工智能應用實踐

                這是 lookalike 人群定向系統的大致流程,我們從種子包里過濾出我們自己系統里面的重合用戶也就是這里的目標用戶,同時從全量用戶的其他用戶中采樣出一些用戶作為對比用戶,再從用戶畫像系統里提取出用戶特征,這樣我們有了一個 label 的正樣本數據和一個 unlabel 的數據,可以用 PU learning 或是二分類的機器學習方法訓練出模型,模型上線使用后,會有實時的反饋數據,我們會利用這部分實時數據再訓練一個綜合打分的算法,對線上的模型結果做出實時的調整。最終用這個最終打分對全量用戶排序選出最相似的用戶。

                微信的機器學習與人工智能應用實踐

                這里我們看一下 lookalike 打分算法的模型訓練部分,前面說了不同于學術研究實際應用中很少使用一個模型,我多年的體會訓模型和畫畫很像,你很難用一個筆刷完成整幅畫作,剛開始的時候需要用粗的筆刷完成大的布局最后再用細的筆刷去勾勒細節。

                在機器學習中常用的模型整合方法有 ensemble 和 jointtrain,lookalike 中比較通用的方法是左圖這種先用 gbdt 學習特征再傳給 LR,FM 或 DNN 的方法,之后 google 用了這種對 LR 和 DNN 進行聯合訓練的 wide&deep 模型。如果人工特征設計得好是可以結合兩者優點取得非常好的效果的。我們系統實際使用的是右圖這種 ensemble 的方法,因為 gbdt 是一種基于 boosting 的學習框架,那么理論上它可以 boost 任何模型,當然包括 dnn,這樣就可以將這兩種模型的優點結合起來了,他的訓練方法是先訓一個 dnn,這里不需要用太多的層數相當于用粗的筆刷去完成大致的輪廓,然后用 gbdt 進行 boosting,這相當于用更細的筆刷去刻畫細節。

                微信的機器學習與人工智能應用實踐

                我們看一下 lookalike 應用的一個具體實例,lookalike 被廣泛的應用于精準拉新,但我覺得相對于拉新降低用戶流失率更重要,因為新用戶可以通過廣告或地推等方式花錢買到,但已有用戶一旦流失就很難挽回,所以必須在流失之前采取措施。常用的激活策略有很多,比如促銷商品,發優惠券或發紅包等,假如有商家要拿出一筆錢給用戶發紅包,那么怎么花這筆錢呢?顯然不是等用戶已經流失了再發給他,因為這時用戶已經不再打開應用了,等同的給每個用戶發也不合理,因為預算有限。那么常用的方法是發給對平臺有最有價值的用戶和有可能要流失的用戶,所以要做用戶價值分析和流失預測。

                這張圖是流失預測和流失分析的流程圖,我們使用剛流失的用戶在當前的用戶上面做 lookalike 就可以得到正在流失或即將流失的用戶,在流失預測之后的流失分析是很必要的。因為流失有很多種情況,不同情況采取的策略是不同的。那么怎么做這個流失分析呢?這就是我們下面要討論的問題。

                解釋 Interpretation

                微信的機器學習與人工智能應用實踐

                我們繼續上一節的話題以流失分析為例看一下第三個“in” interpretation。

                微信的機器學習與人工智能應用實踐

                模型的可解釋性和精度同等重要,這是機器學習在實際使用和學術研究的一個重要區別,因為我們可以從解釋的結果中發現模型本身是不是靠譜,這樣的解釋結果更容易說服模型的反饋對象有助于模型的推廣。另外模型的使用者可以從這個結果中發現問題從而針對性的制定策略比如我們剛說的流失分析,其實在某些領域比如醫療和金融,不可解釋的模型是無法推廣的。

                那么有沒有一種方法可以同時得到比較高的精確度和可解釋性呢?這其實是個魚和熊掌的問題,因為模型的能力越強就越復雜越不容易解釋,右上這個圖說明了這種情況,橫軸是模型的精確度,縱軸是模型的可解釋性,可以看到可解釋性很好的線性模型和決策樹模型精度并不高,精確度很高的神經網絡和深度學習解釋性最差。

                微信的機器學習與人工智能應用實踐

                KDD2016 的一篇文章給出一個很新穎的方法,既然魚和熊掌不可兼得,能不能用高精度的模型去解決問題,再用一個可解釋的模型去解釋這個高精度的模型?那么問題來了,可解釋的模型一般非常簡單比如線性模型,它無法去擬合像 DNN 這樣一個非線性模型,例如右上圖的這個分類結果,這篇論文給出了一個很新穎的算法 lime,因為無論模型多么復雜,每次也只需解釋一個樣本的預測結果,而非線性模型在單個的樣本的局部是可以用線性模型近似的。

                但是這樣就有另外一個問題,要在這個樣本局部進行擬合必須在這個樣本周圍有足夠多的訓練樣本,lime 的做法是對樣本的某些特征進行一些擾動產生一些新的樣本,再用之前的高精度模型對這些樣本進行預測。這樣就產生了很多由高精度模型標注的樣本,而且我們可以計算出每個生成樣本和我們要解釋的樣本之間的距離,這時就可以用可解釋的線性模型比如 lasso 對這個樣本的局部進行擬合和解釋了。

                微信的機器學習與人工智能應用實踐

                這是用戶流失分析系統的框架,通過前面說的模型進行用戶流失預測后得到了正在流失的用戶和忠實用戶,這里需要注意的是我們對用戶特征做了 encoder,所以在解釋的時候需要映射回之前可解釋的特征表示并和編碼器一起傳給 lime,就可以對每個用戶的流失預測結果進行解釋了。我們會對全量用戶的解釋結果再用算法進行一次聚合,分析出正在流失用戶和忠實用戶整體的特征并將這個結果可視化的展示出來。

                微信的機器學習與人工智能應用實踐

                這是我們對一款游戲類小程序的用戶流失分析結果的可視化展示,可以看出主要是學生用戶正在流失可能是由于最近快期末考試了,我們還可以對這些用戶進行聚類,右上角是在二維平面上的可視化聚類結果,使用者還可以再次下鉆到各個子類中針對各個類的特點制定相應的運營策略。

                調查 Investigation

                微信的機器學習與人工智能應用實踐

                有了分析結果后就是要結合人工知識制定策略并用自動化的方法在實際環境中驗證結果我們叫 investigation,這里介紹一種 ABtest 的改進方法。

                微信的機器學習與人工智能應用實踐

                ABtest 源于醫學的雙盲實驗,在互聯網時代,它被廣泛的應用于網站改版和產品升級后的效果測試。相對于觀察上線前后的數據,abtest 可以有效的排除季節因素、市場環境因素的影響,現在 ABtest 也被用來分析不同廣告或運營策略的效果。比如剛說的流失問題,我們分析問題后設計了一個降低流失的策略,要看這個策略有沒有效果就要放到線上的真實環境中去測試,這是傳統的 ABtest 的流程。

                之所以叫 ABtest 是因為在實驗時會將實驗的用戶分流成不使用策略的 control 和使用策略的 treatment 兩組用戶進行對比觀察,這里有很多技術細節比如在多個實驗并行進行時的正交分層模型,對 control 和 treatment 的同質校驗,結果的顯著性分析等,有很多論文討論這些問題。我這里重點和大家一起交流一下在社交網絡中的一些問題和改進方法。

                微信的機器學習與人工智能應用實踐

                在社交網絡上要將用戶分成兩組完全獨立的 control 和 treatment 是很困難的,因為用戶和用戶之間相互影響,比如我們微信上可以分享給好友的立減金,微信電商類小程序采用的拼單和組團的這種促銷模式,這些紅包和促銷商品會在好友和好友之間傳播,最終可能導致 control 和 treatment 都變好了或是都變差了。另外一個問題就是灰度實驗的時候,在一個小的用戶量下實驗有效,在放量后會不會繼續有效,因為放量后投放的密度變大了用戶和用戶之間的影響更大。這種影響可能導致之前的策略不起作用也可能導致之前的策略的效果成指數的放大。那么這個問題就變成了如何測試投放密度和實驗效果的關系。

                微信的機器學習與人工智能應用實踐

                我們針對社交網絡的特點設計了一種改進的策略 Ntest,和傳統 ABtest 不同,Ntest 不是以單個用戶作為測試單位而是以幾十人到幾百人的子網絡作為測試單元,每次實驗選擇 N 個子網絡作為實驗組,并在各個實驗組上采用不同的密度投放實驗策略。最終對每個子網絡計算實驗指標,我們將這 N 個子網絡的指標和密度的關系繪制在坐標系上,就可以分析出指標隨密度變化的趨勢,右圖是常見的三種情況,橫軸是策略在子網絡上投放的密度,縱軸是當前指標的效果,上面這個圖隨著密度增大效果整體呈上升趨勢,說明策略和當前指標是正相關的。同理這下面是負相關和不相關的大致情況。

                寫在最后

                微信的機器學習與人工智能應用實踐最后我們總結一下機器學習方法落地實踐的心得。

                微信的機器學習與人工智能應用實踐

                首先是我們要針對問題對數據進行整合和編碼使其易于計算,數據整合后用多個模型組合使用可以取得更好的效果,對模型結果的分析和解釋在模型推廣時非常重要,最后任何結論都要回到實際業務場景中驗證效果。


                  標簽:

                  服務熱線:177-8671-3510 公司地址:湖北省隨州市隨州市創新創業基地5樓(文峰佳苑C區) 網站備案:鄂ICP備09003029號-2 公安備案:鄂公網安備 42130202000512號

                  台湾佬中文网

                        <address id="7tthr"><ol id="7tthr"></ol></address>
                        <output id="7tthr"><dl id="7tthr"><menuitem id="7tthr"></menuitem></dl></output>

                              <font id="7tthr"></font>