本文介紹了如何使用PolarDB for AI的特徵運算元打造ID-Mapping的解決方案。
背景資訊
ID-Mapping是將所有可以收集到的賬戶類ID、裝置標識ID等資訊進行關聯,並將關聯後的資訊匯聚到一個自然人身上,同時賦予這個自然人一個ID,作為這個自然人的唯一ID。
在遊戲領域,同一使用者可以在遊戲公司的自建平台上建立多個遊戲帳號,在其他平台也有遊戲公司的自研遊戲帳號,這些帳號分散在各個遊戲或平台中而沒有進行相互關聯 。基礎資料建設不完善會帶來各種問題,例如:在做精準營銷時不能精準刻畫同一個使用者,流量在跨渠道使用時效率很低,因此,需要藉助ID-Mapping技術助力基礎資料建設,以完善精準營銷或個人化推薦等。
打造ID-Mapping解決方案
以遊戲領域的ID類型為例,遊戲領域的ID類型分為兩大類:
賬戶類:遊戲平台的帳號、特定遊戲的帳號、電話號碼和郵箱地址等。
裝置類:裝置IMEI、裝置IMSI、裝置OAID和AndroidID等。
建立基礎資訊表。
ID-Mapping使用的資源是已有的兩類資訊表,即:
使用者屬性資訊,如userid、電話號碼、郵箱地址和社會安全號碼碼等。
使用者行為資訊,如使用者登入遊戲的資訊、使用者在遊戲中的交易資訊以及使用者在遊戲中的交流資訊等。
使用者屬性資訊表
user_info
如下:列名
說明
plat_user_id
使用者ID。樣本:0b887f9e1e915XXXX。
phone_number
電話號碼。
email
郵箱地址。樣本:xxx@alibaba-inc.com。
device_id
常用裝置號碼。樣本:0b887fXXXX915e355。
使用者行為資訊表1
game_platform_info
如下,記錄使用者登入遊戲平台的具體資訊。列名
說明
device_id
裝置ID。樣本:0b887f9e1e915XXXX。
android_id
AndroidID。樣本:02bd2a91190c1a6406866302942f4XXXX。
oaid
裝置唯一ID。樣本:106ed9425b12664364a06c51aXXXX。
ip
IP地址。樣本:182.XX.XX.146。
ts
時間戳記。樣本:1647137327。
user_id
平台使用者ID。樣本:447268XXXX。
使用者行為資訊表2
game_info
如下,記錄使用者登入遊戲帳號的具體資訊。列名
說明
device_id
裝置ID。樣本:0b887f9e1e915XXXX。
user_id
遊戲帳號ID。樣本:02bd2a91190c1a606866302942XXXX。
ipv4
IPV4地址。樣本:182.XX.XX.146。
ipv6
IPV6地址。樣本:240e:337:1026:XXXX:XXXX:a26d:4a34:920d。
imei
國際行動裝置識別碼。樣本:45ca53a497897c0b39f4373b0c14XXXX。
idfa
iOS平台內的廣告跟蹤ID。樣本:8301c9fcgg6a16fd3XXXX0e30e1854a78a。
googleid
Google廣告ID。樣本:f09adce39gr564c7f178bd9ebf64b9XXXX。
android_id
安卓系統ID。樣本:a9d26756755rtr7b8faf6b2e0b6d414XXXX。
說明刷機會改變該ID值。
oaid
裝置唯一ID。樣本:4aad25ea19rtr769fe84cc46244b2aeXXXX。
timestamp
時間戳記。樣本:1647137327。
構建ID關聯關係。
將步驟1中的三張表中的賬戶資訊(
user_info.plat_user_id
、game_platform_info.user_id
、game_info.user_id
)和裝置類資訊(device_id
、android_id
、ip
、imei
、idfa
、googleid
、oaid
)相互關聯,形成一個統一的ID。說明以下命令中,所在表名不同而含義相同的列需要保持列名一致,如
user_info
的plat_user_id
與game_platform_info
的user_id
列為相同含義列,可以在CREATE FEATURE語句中通過SELECT plat_user_id as user_id...
的方式使其保持一致。不同含義的列需要保持名字不一致,如game_platform_info
的user_id
列與game_info
的user_id
列雖然列名相同但含義不同,可以通過SELECT ... user_id as game_user_id...
的方式使其不一致。執行如下命令,建立特徵oneID。
/*polar4ai*/CREATE FEATURE oneID WITH ( feature_class = 'graph',parameters=()) AS (SELECT plat_user_id as user_id, device_id FROM user_info)
執行如下命令,查看特徵運算元狀態。
/*polar4ai*/SHOW FEATURE oneID;
說明當運算元狀態為
FINISHED
時,表示ID關聯關係構建完成。當運算元狀態為其他狀態時,
FeaturePath
的內容為Please wait for the feature calculation to finish
。
當特徵運算元的狀態為
FINISHED
時,執行如下命令,更新特徵。/*polar4ai*/UPDATE FEATURE oneID WITH (parameters=()) AS (SELECT device_id, android_id,oaid,ip,user_id FROM game_platform_info)
執行如下命令,查看特徵運算元狀態。
/*polar4ai*/SHOW FEATURE oneID;
當特徵運算元的狀態為
FINISHED
時,執行如下命令,更新特徵。/*polar4ai*/UPDATE FEATURE oneID WITH (parameters=()) AS (SELECT device_id,user_id as game_user_id,ipv4 as ip,ipv6,imei,idfa,googleid,android_id,oaid FROM game_info)
產生映射表。
執行以下命令,產生映射表。
/*polar4ai*/CREATE FEATURE csg_1 WITH ( feature_class = 'connected_subgraph',parameters=()) USING FEATURE oneID
你可以執行以下命令查看運算元構建狀態。
/*polar4ai*/SHOW FEATURE csg_1;
當運算元狀態為FINISHED時,FeaturePath內容為OSS的下載地址,將其複製在網頁中便可查看ID-Mapping的結果資訊。
查看最終結果。
如下表所示,
csg_id
表示column
所屬連通子圖的ID,column
表示使用者資訊表中的列名,value
表示column
的值。csg_id
column
value
0
user_id
user1
0
device_id
device1
0
oaid
oaid1
1
user_id
user2
1
device_id
device2
ID-Mapping的本質是將稀疏的資訊通過實體之間的關係彙集起來,是ID類資料加工的最重要的基礎工作之一,ID-Mapping在企業中通常是使用者畫像構建的最底層、也是最重要的環節。通常是在基礎資料入庫後再執行ID-Mapping構建操作,構建完成後形成新的基礎資料。
ID-Mapping其他應用情境
增強使用者行為
ID-Mapping技術可以對資料進行加工,加工後的資料為上層業務(個人化搜尋、精準推薦)提供更優質的資料支撐,提高上層業務的效果。例如:利用ID-Mapping技術可以將同屬於一個自然人的不同應用ID上的使用者行為合并,以此來增強資料。在電商業務中,可以將本地購物行為資料和電商網站上的行為資料合併,補全使用者購物鏈路來分析使用者喜好。
發現黑灰產團夥
在電商營銷領域,常常會遇到“刷單黨”等,他們擁有多個裝置和多個使用者ID,用於賺取電商傭金、搶優惠券、刷好評等電商活動,極大的破壞電商的健康生態,給商戶和平台帶來極大困擾。使用ID-Mapping技術,可以將不同ID關聯起來,通過一些營運經驗,可以發現帳號異常情況,例如:會擷取同一裝置下的超多活躍userid、或者同一userid在一段時間內擁有超多的裝置ID等。再通過已關聯的帳號之間一些互動行為來發現更大的團夥。
擴充使用者畫像
通過對使用者的基礎資料或者行為分析,可以得到一些使用者畫像,比如某人屬於男性、某人對某品牌或商品類目有偏好等等。由於使用者行為存在的馬太效應,某些使用者可能在某些領域行為缺失,加上使用者基礎資料本身的不完善,導致使用者畫像並不能完全覆蓋所有使用者。通過ID-Mapping技術來挖掘ID之間的關係,從另一個角度來補充使用者畫像資訊,以此來擴充使用者畫像。例如某ID對某商品類目有偏好,他可能屬於一個家庭中的一員,和他相關的ID可能是另一個家庭成員,他也會對該類目有偏好。
營銷圈人
廣告領域會根據使用者的興趣、裝置類型等定點投放廣告。例如:某遊戲平台上存在多款遊戲,同一個人會擁有不同遊戲的帳號,或使用多個裝置來登入遊戲等。通過ID-Mapping技術,可以將同一個人的不同遊戲帳號和不同裝置資訊進行相互關聯,並針對性地對一個人進行跨裝置和跨遊戲的投放廣告,讓使用者在玩不同遊戲,或者在不同裝置登入遊戲後都能看到該廣告,相比於僅利用使用者偏好在單一遊戲上投放廣告的效果更好。