中云網(wǎng)消息 8月29日-30日,以“數(shù)據(jù)重構(gòu)未來”為主題的D-Future七牛數(shù)據(jù)時(shí)代峰會(huì)在上海舉行。七牛攜百名創(chuàng)業(yè)明星,技術(shù)大咖匯聚國際時(shí)尚中心,共話數(shù)據(jù)發(fā)展,探討行業(yè)未來!
一號店精準(zhǔn)化部門架構(gòu)負(fù)責(zé)人 陳敏敏以“電商場景下的千人千面和實(shí)時(shí)意圖實(shí)踐”為主題做了演講,以下是演講實(shí)錄:
陳敏敏:大家好,我是精準(zhǔn)化架構(gòu)部門負(fù)責(zé)人,我們部門負(fù)責(zé)人還有另外一個(gè)。我講千人千面與實(shí)時(shí)意圖實(shí)踐的相關(guān)東西。我們的基礎(chǔ)化用了一些實(shí)時(shí)相關(guān)的從目前來講,目的還是用得比較多的,我們看一下。在講之前我先自我介紹,我主要是做推薦、營銷架構(gòu)方面的東西,我們也出本一本書,叫做技術(shù)內(nèi)幕,也出口了臺(tái)灣,在京東上面評價(jià)也是可以的。
下面進(jìn)入我們的正題,我這邊主要講架構(gòu),架構(gòu)我主要是從業(yè)務(wù)架構(gòu),我們推薦平臺(tái)主要包含哪些東西場景方面,然后通過我們的實(shí)時(shí)意圖想講一下我們的基礎(chǔ)架構(gòu)和業(yè)務(wù)架構(gòu),但是可能講的不全面,稍微帶一點(diǎn)。
首先我講講數(shù)據(jù)怎么用,很多企業(yè)在數(shù)據(jù)采集方面可能還不是很重視,如果把數(shù)據(jù)采集做很方面,像我后面主要講的推薦相關(guān),它其實(shí)可以做很多東西,像廣告投放,讓外面更加精準(zhǔn)華,可以做一些個(gè)性化搜索,可以調(diào)整商品的貨架,更加高效,還可以做營銷方面,七十從數(shù)據(jù),挖掘出很多一些應(yīng)用場景。其實(shí)我們這邊主要還是從圈里,挖掘一些知識的數(shù)據(jù),再接受一些商品、用戶的一些數(shù)據(jù),綜合來做了一些應(yīng)用。下面我們來看一下,我們的推薦的產(chǎn)品架構(gòu),一個(gè)業(yè)務(wù)架構(gòu)。
我們推薦已經(jīng)做兩輪了,從開始的過濾,現(xiàn)在行業(yè)加了很多推薦方式。像我下面主要講的,用戶場景的一些信息推薦我在10月份講,那時(shí)候用了18個(gè)相關(guān)的技術(shù),我們也做了一些推薦。跟機(jī)構(gòu)相關(guān),因?yàn)楹芏嘤脩糍徺I這些是很明顯的,特別像一些我們也挖掘了一些用戶,能夠等到推薦給用戶。我們也挖掘出了一些TH的相關(guān),這個(gè)主要是來解決,還有一些主題推薦也是比較流行的一個(gè)。從題目里面,可以關(guān)聯(lián)到主題上面,可以跟世界相結(jié)合,一些熱點(diǎn)。至于推什么,我們其實(shí)前期也是做了一個(gè)畫像,后來我們做也是遇到了一些瓶頸,更新時(shí)間越來越短,后來也碰到一些瓶頸,當(dāng)時(shí)的話,主要是想把畫像更新,發(fā)現(xiàn)其實(shí)更新時(shí)間想要達(dá)到很好效果的話,還是很難的,一些實(shí)時(shí)相關(guān)的技術(shù)。后來架構(gòu)的話,從技術(shù)層面主要是技術(shù)和應(yīng)用架構(gòu)像基礎(chǔ)架構(gòu)主要是在做平衡。下午我這碰到一個(gè)問題,你的辦法和你的數(shù)據(jù)量,還有一個(gè)實(shí)時(shí)三者要平衡,就是說你沒有辦法保證這三種東西全部滿足,這架構(gòu)里面無論像CIP還是像別的,很多其實(shí)主要是在尋找一個(gè)平衡,它不像應(yīng)用架構(gòu),應(yīng)用架構(gòu)一個(gè)抽象的,你把一些模塊更加抽象。你很多架構(gòu)是你主要考慮是一個(gè)平衡問題,把那幾個(gè)點(diǎn)都平衡好。
我們也是在畫像,遇到一些瓶頸的時(shí)候,慢慢延伸出一個(gè)用戶議題。主要來捕捉用戶的一些行為,給用戶做一些更加精準(zhǔn)化的推薦,也算是實(shí)時(shí)推薦一種。整個(gè)推薦算法,它其實(shí)關(guān)注東西比較多,有的是關(guān)注轉(zhuǎn)換力,有些是交叉銷售。tradein主要是提升用戶的連續(xù)性,觀點(diǎn)不一樣像我們電商從首頁到搜索頁到詳情頁,每個(gè)頁面用戶行為是不一樣的,有些是你要通過搜索頁,根據(jù)不同的一些場景,我們可能會(huì)引用我們不同的算法,無論是主題推薦還是協(xié)同過濾,還是一些周期性能。我們這個(gè)東西到后面也會(huì)盡量調(diào)整,調(diào)整的話,代價(jià)也是比較大的,我們盡量讓這個(gè)代價(jià)更少。
我們開發(fā)了一些后臺(tái)系統(tǒng),我們還是一號店首頁,通過配置的方式,讓它接入,我們這邊有詳情頁,還有一號店的詳情,它PC可以通過配置把不同的算法通過中間畫像還是看的這種相似的配進(jìn)來,最終生成我們這樣一個(gè)欄位。
右上交通過我們后臺(tái)系統(tǒng)配置出來的,我們像下面也是我們后臺(tái)系統(tǒng),我們可以讓這個(gè)走畫像還是走意圖,過濾一些東西。可以從下面比較用戶配置出來,如果走詳情,有些數(shù)據(jù)比較稀缺沒有商品,需要補(bǔ)一些,目前像一些天氣也是瓦的比較齊,達(dá)到了商品身上,同時(shí)也在詳情頁標(biāo)題也挖了相關(guān)的詞,打到商品上。所以說本身商品數(shù)據(jù)也是比較全。
最后我們看一下我們的一個(gè)引擎,80頁比較多,我這邊先講一個(gè)場景,后面主要講意圖。我們這邊一個(gè)場景,主要是根據(jù)群體,我們會(huì)通過地址挖一些校園、小區(qū)、公司我們也做一些分析,一些學(xué)校購買的情況不一樣,我們也做了一些細(xì)分,如果你是一個(gè)學(xué)生用戶的話,可能你跑到一號店你可以你學(xué)校里面其他人買什么東西,把這部分群體好的東西也會(huì)推薦給你,看到你周圍學(xué)校一些學(xué)生買的什么。
右下角我不是學(xué)生,我是已經(jīng)工作的了,也可以看到小區(qū)旁邊人買什么東西,這樣的話,也達(dá)到這樣一個(gè)千人千面。
像一些細(xì)節(jié)的話,像校園、公司我們也是花了不少精力,公司、小區(qū)都花了精力在做這一塊。
我們再看一下后面主要的實(shí)時(shí)意圖。這個(gè)是我們實(shí)時(shí)意圖簡單的圖。我們數(shù)據(jù)兩個(gè)地方,一個(gè)是從基本用戶的一些瀏覽收藏,用戶在上面做了一些行為以后,開始跟產(chǎn)品相關(guān),把它轉(zhuǎn)成跟利潤相關(guān),通過一些后續(xù)的服務(wù)去處理一些。
當(dāng)然其實(shí)里面有個(gè)訂單數(shù)據(jù),我們也不是走的Kafka主要是推送,它的生產(chǎn)者是推的,它是一個(gè)推的模式。把訂單接過去,也會(huì)遇到一些問題,所以說你們也可以想像,為什么我這個(gè)訂單沒有走入Kafka,我們用了一個(gè)一號店自主研發(fā)的,可能也是碰到了一些問題。
比較重要的,在里面實(shí)現(xiàn)了一些意圖的計(jì)算,把那部分意圖會(huì)存在里面,我們最后一個(gè)做一個(gè)實(shí)時(shí)推薦,你完成或者未完成,做一個(gè)優(yōu)先排序,有會(huì)推到我們的自主研發(fā)的頁面,是我們一號店自主研發(fā)的。
可能剛剛也講到,訂單也放到Kafka,它推拉模式,你拉它Kafka主要是拉取,推和拉的話,可能就像一個(gè)我反正我就推,一個(gè)像我控制速率,如果推模式,可能是一個(gè)最快,比較快的方式,但是它吞吐量也比較大,所以說像我這個(gè)訂單如果沒有實(shí)時(shí)的意圖,可能我已經(jīng)買了然后你再推這個(gè)東西,也會(huì)影響用戶。像我從Kafka或者我這邊也是訂單高的時(shí)候,數(shù)據(jù)比較大的時(shí)候,那個(gè)時(shí)候訂單已經(jīng)完成了,但是你還在推訂單可能會(huì)帶來一些不好的商品列表。
其實(shí)像我們這邊,最后一個(gè)就是實(shí)時(shí)推薦,像我們必要的,我們是把原始存在于我們一個(gè)緩存里面,這樣可以更加自定義意圖或者是一些數(shù)據(jù)。
這個(gè)是我們意圖的計(jì)算過程,我們意圖,主要也是采集了用戶在網(wǎng)站上的使用,像他加車的時(shí)候是意圖完成了一半。所以說,我們這邊當(dāng)用戶在瀏覽、收藏、搜索時(shí),我們會(huì)更新整個(gè)未完成的意圖和完成一半的意圖,這個(gè)更新簡單的算法應(yīng)該是在下面這種,我們每次用戶有新的行為上來的時(shí)候,我們可能要把老的排除掉,這樣會(huì)引入一個(gè)遺忘因子,可能你幾天沒有操作的話,可能對這個(gè)商品興趣度慢慢變低,當(dāng)我們最后在瀏覽、收藏的時(shí)候,完成一半和沒有完成的時(shí)候,我們會(huì)更新整個(gè)商品。當(dāng)這個(gè)商品和我當(dāng)前模式相同的時(shí)候,跟前面的衰減,再加上我當(dāng)前的意圖。我當(dāng)前意圖瀏覽收藏全部不一樣,瀏覽、收藏是14根據(jù)不同的行為,如果我這個(gè)意圖,跟當(dāng)前意圖一樣,而且跟前面也是一樣的,那我可能就不用加上當(dāng)前的,我只是把當(dāng)前的衰竭一下,總共有三個(gè),一個(gè)是跟當(dāng)前一樣,一個(gè)是跟當(dāng)前行為不一樣,一個(gè)是跟行為屬于當(dāng)前行為。遺忘因子后面會(huì)慢慢加入其他的,讓它判斷更加準(zhǔn)確。
我通過意圖來稍微介紹一下,技術(shù)架構(gòu),這個(gè)東西很多人也知道,一個(gè)比較常見的,最少一次、最多一次、恰好一次。最少一次消息可能會(huì)再次發(fā)送,當(dāng)我最多一次的時(shí)候,我肯定要忍受系丟失的情況發(fā)生,在基礎(chǔ)架構(gòu)里面去尋找一個(gè)平衡,你怎么把這個(gè)東西平衡好,你可能要有一些業(yè)務(wù),還有恰好一次,恰好一次實(shí)現(xiàn)的代價(jià)也高,目前系統(tǒng)也實(shí)現(xiàn)了,它也是目前系統(tǒng)里面比較拿點(diǎn)的個(gè)東西,一個(gè)是恰好一次,還有一個(gè)要說保證校區(qū)的順序性,整個(gè)分布時(shí)期。
我們看一下實(shí)時(shí)框架,其實(shí)目前我們有些產(chǎn)品,也是隨著一些業(yè)務(wù)產(chǎn)品上來,我們自然而然引用了一些,我們可以看到Kafka消息傳遞形式。我們可以看到,只是一個(gè)至少一次,如果恰好一次,要用另外一塊。我們數(shù)據(jù)研發(fā),一號店自主研發(fā),同時(shí)實(shí)現(xiàn)了至少一次和最多一次。
我們來看一下一號店自主研發(fā)的列表,其實(shí)消息隊(duì)列的話,開始把訂單全部放在里面,是一個(gè)拉攏,我科一控制速錄,像我訂單我要最快時(shí)間知道,還是以推的方式比較好一點(diǎn)。像我們也引入了一些消息堆積,這樣可以方便一些查詢一些例子消息??赡芨鶮afka還是有一些差距,現(xiàn)在消息隊(duì)列也比較多,光推它就有組合,推中拉推、推中帶拉這種,可能還會(huì)引入一些自己的。是我們一號店這邊自主開發(fā)。
最后講一下應(yīng)用架構(gòu),前面主要是我們推薦意圖里面的基礎(chǔ)架構(gòu),最后是應(yīng)用架構(gòu),跟前面不一樣。還是一個(gè)抽象,怎么抽象?把一些模塊,像我們意圖里面把網(wǎng)頁上各種行為,加瀏覽的東西,就要突出出來,比較好的,就是迭代模式,我們讓它實(shí)現(xiàn)迭代,這樣我們就可以把一些基礎(chǔ)的瀏覽一些收藏的東西,可以屏蔽掉。當(dāng)我需要搜集哪些商品時(shí),我主要引入最后收藏的具體圈。我這個(gè)基礎(chǔ)的分析,可以去實(shí)現(xiàn)我們迭代技術(shù),我們具體的搜索,也會(huì)去實(shí)現(xiàn)相對介紹,具體的細(xì)節(jié)會(huì)在某一個(gè)收藏瀏覽里面實(shí)現(xiàn)。這樣的話,讓它更加抽象,我們后面也引入了不少一些應(yīng)用架構(gòu),設(shè)計(jì)方面的東西,可能今天我就是稍微拋磚引玉講一下,主要講架構(gòu)這個(gè)事情。架構(gòu)從業(yè)務(wù)到基礎(chǔ)到應(yīng)用,我們這邊可能都會(huì)涉及到一點(diǎn),通過這個(gè)數(shù)據(jù)來闡述一下。
我這邊差不多了。