tft每日頭條

 > 生活

 > 最實用的機器學習算法

最實用的機器學習算法

生活 更新时间:2024-08-12 10:05:50

每天在微信朋友圈,用戶都會或多或少地收到一些廣告推送。有的十分精準,有的卻未必。機器學習是人工智能的一個重要分支,也是未來技術趨勢裡的重要角色。那麼,微信是怎麼做的呢?

本文整理自騰訊機器學習高級研究員易玲玲在ArchSummit 北京 2016的演講。回複關鍵詞「機器」,下載完整版PPT。

Lookalike是做什麼的

基本上所有的互聯網公司都有其廣告投放平台,這是給廣告主投放廣告的一個頁面。廣告主可以通過廣告提交頁面提交自己的廣告需求,後台會給廣告主圈定一部分潛在用戶,這個就是我們稱為Lookalike的模塊。

一般的Lookalike會怎麼來做呢?它會有兩種做法:第一種就是顯性的定位,廣告主根據用戶的标簽直接定位,比如說通過年齡、性别、地域這樣的标簽來直接圈定一部分用戶進行投放。這個時候我們的技術支持就是後台的用戶畫像的挖掘。這其實是廣告主對自己産品的理解,圈出目标用戶。

這種人工定義的方法,可能不夠精準,或者可能通過年齡和地域指定的用戶量很大,需要做精準篩選,這個時候,需要lookalike的第二種做法,通過一個機器學習的模型,來定位廣告主的潛在用戶

這個問題怎麼轉化成一個機器學習的模型呢?學習樣本是什麼? 優化目标是什麼?此時,廣告主提交一批客戶名單,我們稱之為種子用戶,它作為機器學習的正樣本。負樣本我們會從非種子用戶,或者是說平台會積累曆史的一些相似的廣告作為負樣本,這個問題就轉化為一個二分類的模型,正負樣本組成學習的樣本,訓練模型之後,利用模型結構對活躍用戶進行打分,最後得到廣告主需要的目标人群。

最實用的機器學習算法(當機器學習遇上複雜網絡)1

回顧一下這個流程,廣告主會提供他已有的客戶名單作為種子用戶,這是機器學習的正樣本,然後會從活躍用戶裡面(非種子用戶)或者曆史我們已經積累了相似的廣告負反饋的用戶,作為負樣本,訓練一個二分類的模型,利用模型結果對這個用戶進行打分排序,取出廣告主需要的目标數據的用戶。

對于特征和模型算法,不同的公司各有差異:特征取決于公司有哪些數據;在模型算法上,Facebook 和Google對外公布的說法就是一個預測模型,Yahoo發表過幾篇論文,詳細介紹過它的算法,比如LR,Linear SVM,GBDT都有嘗試,論文裡面提到的是GBDT的效果比較好。下圖列出了不同公司的做法,供大家參考。

最實用的機器學習算法(當機器學習遇上複雜網絡)2

微信社交Lookalike是怎麼做的

微信朋友圈的廣告怎麼進行潛在用戶的定位呢?顯然,我們也可以把它轉化成二分類的預估模型來做。然而有沒有一個更好的思路呢?我們可以從微信朋友圈廣告這個問題本身先做一些探索分析。

微信朋友圈的廣告和其他的廣告平台差異點在哪裡?下圖是微信朋友圈的廣告形式,比如萬科投廣告,我們會以他的公衆号在用戶的朋友圈裡出現。

最實用的機器學習算法(當機器學習遇上複雜網絡)3

如果我和我的朋友同時收到這個廣告的時候,它會形成用戶之間的互動。大家也可以回想一下,大家有沒有因為某個好朋友對一個廣告進行了點贊或者評論,而引起你對這個廣告的關注呢?其實很多時候都會的。

我們再看看數據,大家可以看下面的數據圖表,這個橫軸是與廣告進行互動的好友個數,縱軸是用戶對廣告的關注率(包括查看,點贊或者評論),我們發現這個關注率會随着好友數的增加而上升。這個數據拐點差不多是3到5個好友。我們再深入思考一下這個數據背後的原因,為什麼會出現這種數據的相關性?因為我和好友有相同愛好?因為朋友評論了廣告我才關注?

最實用的機器學習算法(當機器學習遇上複雜網絡)4

實際上,這兩個方面就是社交關系數據的兩個核心價值,也就是社交同質性和社交影響力。這正是網絡科學研究界的學者給出來的比較嚴謹的定義。

同質性說得更容易理解一點,就是相似性,我們跟好友可能會有興趣的相似,或者我們同一個行業我們有行業背景的相似,我們才會形成好友。比如拿廣告投放來說,廣告主給了我客戶名單即種子用戶,是不是我種子用戶的好友也會喜歡這個廣告?

另一個維度就是影響力,影響力說的是我的行為會受到好友的影響。那這個點投放到朋友圈廣告上,我可以看到朋友對廣告的反饋,會受到他的影響。

所以說做朋友圈廣告,我們重點會挖掘這兩個價值,就是社交同質性和社交影響力

講到這裡,再回到我們的問題,怎麼給廣告主挖掘潛在用戶? 基于廣告主給出的客戶名單,是不是可以做一個這樣的嘗試:找這批廣告主的好友作為潛在用戶,一就是社交相似性,二在微信朋友圈這樣一個投放平台,同用戶之間的行為會因為社會影響而形成傳播,即微信社交Lookalike的基本思想。

那麼,另一個問題又來了。 社交同質性、影響力如何量化?當種子用戶的好友非常多的時候,如何對好友進行排序選擇?家人排前面?閨蜜排前面?還是同學、同事排在前面?人工規則強依賴于業務經驗,那我們能不能利用機器學習的方法對社交相似度進行量化呢?

我們通過曆史投放的廣告采集到學習樣本,比如說我的好友有400多個,對于有一部分好友我跟他曆史上有同時曝光到一些廣告,這些好友我可以計算出我跟他的廣告相似度,就等于共同點擊的廣告數除以共同曝光的廣告數。而剩餘的好友,曆史上沒有共同曝光過廣告。那我們有其他領域的數據,比如說我跟他的親密關系,浏覽或者閱讀文章等興趣相同點,能否通過這些社交的行為數據,預測到我跟他在廣告上的喜好度?

回看我們的網絡數據,比如我們的好友關系網絡,文章閱讀轉發網絡等等特征工程,我們怎麼從網絡數據做這個特征工程?

機器學習的輸入一般是向量或者說矩陣,圖結構特征表達,可不可以用一個降維的方法把圖裡面的節點表達成一個隐空間的向量,在NLP也會把詞表達成一個向量,這是14年谷歌發布的一個Wodrd2Vec的算法包, 将一個單詞embedding為一個項目,這個是結果。

如何把圖結構切入一個向量?從Wodrd2Vec到node2vec,詞裡面單詞的詞頻分布,它是幂律的,有些常用詞出現的頻率非常高,尾巴上的詞出現的頻率比較低。

實際上在一個社交網絡的節點也是這樣的,我們經常會存在一些大的節點,他會有非常多的好友,有的人好友就達不到那麼多。所以說其實在社交網絡裡面的一個節點的分布也是幂律分布。如何把Wodrd2Vec遷移到node2vec,這個時候就要産生一個節點的序列,它對應到了自然語言處理的一條句子,圖結構裡面的節點相當于NLP的一個單詞。

所以在圖網絡上按照一個搜索的方法生成節點序列,這個節點的序列可以對應到自然語言的一個句子,後面我們通過Wodrd2Vec的框架,将節點embedding為一個向量。所以對于做network embedding的時候,這個生成節點序列的搜索策略非常重要。最簡單的一個方法,就是随機遊走,随機遊走一方面生成節點序列,另一方面也是對圖的一種采樣,降低了計算量。

我們說社交數據最重要的特征就是社交的同質性。所以說我們在network embedding的時候,把社交同質性這個特征保留下來。我們結合網絡的社團性質對随機遊走的算法進行調整, 比如說A節點走到C,再走到E的時候,它再往下走,這邊就相當于它會走到另外一個社團。它設置了一個節點P和Q,P大的時候它是往回走,因為社交網絡的特征會形成這樣的社團性。

比如說我們的一個社交網絡,我的同學會形成一個社團,設計這個P往回走,就更容易走到我這個群體。當P越大,它會越能體現同質性。Q越大的時候,它其實能夠體現這種結構的相似性,不同的節點有不同的作用。比如說F節點和E節點它是連接這兩個社團的橋接點。當Q大的時候,它體現的是網絡結構的相似性。這時候我們怎麼選P和Q?這個可以根據實際任務進行半監督的學習。

最實用的機器學習算法(當機器學習遇上複雜網絡)5

再回顧一下剛才我們說的Node2vec的流程,首先通過有偏随機遊走,生成一個節點序列,後面是word2vec的算法框架得到這個節點的向量表達。其中的參數調優,根據我們保留的同質性,或者根據實際的任務進行調參。

給大家看一下node2vec的結果,先給大家看這個算法的輸出。這裡有一個簡單的圖,做embedding之後的結果,1和2的節點向量是一樣的,它會是重疊的一個向量,3、4、5、6也是一個重合的節點,它表達的是什麼呢?為什麼1和2完全重疊?其實1和2的網絡環境是一模一樣的,這個embedding的結果表達是是節點的社交網絡環境,也就是我們說的拓撲特征。

最實用的機器學習算法(當機器學習遇上複雜網絡)6

我們做node2vec還會有其他什麼好處呢?以好友溝通網絡為例,我有120個好友,實際上我溝通網絡并不會跟那麼多好友經常聊天,也就是說這個數據非常稀疏,在node2vec的輸出結果上再計算親密度,其實我跟所有好友的親密度都是可以計算出來的。第一個帶來的好處就是解決數據的稀疏性的問題。另外,這個結果具有穩定性。

對于溝通網絡,比如說,我跟一些好友溝通可能是事務性的,不能表達親密度的。比如一些客戶,或者服務中介等,因為我跟他沒有形成社交圈,在做embedding的時候, 産生序列的鄰居共現次數比小,embedding出來的結果就是這些人員在親密度排序上會排在後面,而相對來說,真實關系緊密的,比如親人,閨蜜,同學,同事會比較穩定的排在前面。

對社交相似性的學習框架,大家可以看下面的圖。 我們建立一個回歸的model。現在做的是SVR模型。輸入好友網絡,溝通網絡、文章的轉發閱讀網絡等等,進行embedding得到特征向量表達,通過SVR模型,學習到這些特征和廣告相似度的函數關系。這個函數關系計算出好友相似度,可以對好友進行排序。

最實用的機器學習算法(當機器學習遇上複雜網絡)7

我們看一下算法的效果。我們評估算法的效果,最直接的就是說我有多個算法,廣告主需要100萬的用戶,我這幾個算法都給出100萬用戶,然後看一下這100萬的用戶點擊量是怎麼樣的,我們叫Lift值。其他的算法跟它進行對比,看一下它的效果有沒有提升。那我們的算法相比直接的二分類模型有2倍-3倍的lift。

最實用的機器學習算法(當機器學習遇上複雜網絡)8

寫在最後

本次主要介紹了社交Lookalike的探索性的分析,社交的同質性和影響力,并重點分享了社交同質性量化問題。後面我們希望把Lookalike系統做成一個動态的,比如我為某個好友點贊,下面我需要推送的人是我的好友,我能影響到那些好友。把這個社交影響力進行量化,并且結合到廣告投放裡面去。假如說用戶能夠形成主動傳播廣告,這樣的話它是一個非常好的局面,相當于用戶自助的對廣告進行口碑的傳播。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved