一個(gè)產(chǎn)品小白如何理解布爾表達(dá)式檢索?

0 評論 11023 瀏覽 8 收藏 6 分鐘

布爾表達(dá)式檢索是廣告受眾定向的檢索問題,本文從基礎(chǔ)概念和方法出發(fā),結(jié)合實(shí)際案例,深入淺出地闡述了布爾表達(dá)式檢索的作用以及用法。

廣告主投放廣告的本質(zhì)是流量的采買,所以廣告主在投放時(shí)會選擇自身角度的潛在用戶群,也就是當(dāng)代廣告的受眾定向售賣方式?,F(xiàn)在的廣告系統(tǒng)對于大數(shù)據(jù)量處理及實(shí)時(shí)性都有著極高的要求,當(dāng)用戶發(fā)起廣告請求時(shí),廣告引擎如何快速篩選出符合定向條件的廣告,讓索引設(shè)計(jì)變得極為關(guān)鍵。

基礎(chǔ)概念

一般的廣告主定向條件都類似于:20歲+女性,25歲+北京

這里的定向條件用布爾表達(dá)式進(jìn)行表示:

a1={age∈(20)∩gender∈(female)}∪{age∈(25)∩geo∈(一線)}

這里的形式即為析取范式(Disjunctive Normal Form,DNF)

每個(gè)DNF都可以分解成一個(gè)或者多個(gè)交集(conjunction),即age∈(25)∩geo∈(一線)

每個(gè)交集進(jìn)一步分解成一個(gè)或者多個(gè)賦值集(assignment),即age∈(25),geo∈(一線)

雙層索引結(jié)構(gòu)設(shè)計(jì)

算法會維護(hù)一個(gè)兩層的倒排索引,即conjunction-ad,attribute-conjunction。

實(shí)際檢索過程中:

通過assignment篩選出滿足條件的 conjunction,再根據(jù)conjunction找出滿足條件的廣告集合。

下面就是一步一步的舉例過程!

假設(shè)線上有7個(gè)廣告,定向條件如下:

Ad1:age∈(20)

Ad2:age∈(20)∩ gender∈(female)

Ad3:age∈(20)∩ geo∈(一線)

Ad4:age∈(20)∩ gender∈(female)∩geo∈(一線)

Ad5:age∈(20)∩ gender∈(female)∩geo∈(一線)

Ad6:age∈(20)∩ geo∈(一線)∩ mobile?(apple)

Ad7:age∈(20)∩ gender∈(female)∩mobile∈(apple)

對應(yīng)有6種定向條件,將定向條件編輯如下(其中size表示其中含有幾個(gè)assignment):

Conjunction1:age∈(20),size1

Conjunction2:age∈(20)∩ gender∈(female),size2

Conjunction3:age∈(20)∩geo∈(一線),size2

Conjunction4:age∈(20)∩gender∈(female)∩ geo∈(一線),size3

Conjunction5:age∈(20)∩geo∈(一線)∩ mobile?(apple),size3

Conjunction6:age∈(20)∩gender∈(female)∩mobile∈(apple),size3

則可以建立從conjunction到ad的第一層倒排索引:

Conjunction1:Ad1

Conjunction2:Ad2

Conjunction3:Ad3

Conjunction4:Ad4,Ad5

Conjunction5:Ad6

Conjunction6:Ad7

根據(jù)conjunction 的size大小及包含情況建立從attribute到conjunction的第二層倒排索引(標(biāo)注conjunction是否含有/不含有該assignment):

Size1:age∈(20),(1,∈)

Size2:

age∈(20),(2,∈)(3,∈)

gender∈(female),(2,∈)

geo∈(一線),(3,∈)

Size3:

age∈(20),(4,∈)(5,∈)(6,∈)

gender∈(female),(4,∈)(6,∈)

geo∈(一線),(4,∈)(5,∈)

mobile∈(apple),(5,?)(6,∈)

線上請求檢索過程

當(dāng)某次廣告請求的定向條件滿足某個(gè)conjunction,一定滿足包含該conjunction的所有廣告。如果用size of(query)表示請求中的定向標(biāo)簽個(gè)數(shù),如果size of(query)<size of(conjunction),該conjunction一定不滿足要求。可以先利用這個(gè)判斷減少計(jì)算。

當(dāng)線上有一個(gè)用戶發(fā)起了廣告請求,該用戶的標(biāo)簽為:

age∈(20)∩geo∈(一線)

因?yàn)閟ize of(query)=2,則從size為1和2的conjunction中進(jìn)行查詢

Size=2的查詢

age∈(20)???(2,∈)(3,∈)

geo∈(一線) ?(3,∈)

只有Conjunction3滿足條件,對應(yīng)Ad3

Size=1的查詢

age∈(20)???(1,∈)

只有Conjunction1滿足條件,對應(yīng)Ad1

維度爆炸問題

這里的維度組合并不取決于標(biāo)簽的乘積,即2個(gè)性別,100個(gè)年齡,34個(gè)地理……(2*100*34……),而是取決于廣告的規(guī)模,假設(shè)有100w的廣告,每個(gè)廣告的定向標(biāo)簽都不一樣,也只是百萬級的檢索,并且大量的廣告受眾定向是重復(fù)的,遠(yuǎn)遠(yuǎn)小于廣告數(shù)量。

 

本文由 @崔巍Bella 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!