在上一篇文章中,我們介紹了不確定性的種類,并且學(xué)習(xí)了幾種方法對(duì)其建模。現(xiàn)在我們要討論如何在應(yīng)用中使用它們。
在這篇文章中,我們會(huì)提出“探索-利用”問題,向大家展示不確定性能如何幫助解決這個(gè)問題。我們將重點(diǎn)關(guān)注對(duì)推薦系統(tǒng)的探索,但是同樣的想法可以在很多強(qiáng)化學(xué)習(xí)應(yīng)用中使用,例如自動(dòng)駕駛汽車、機(jī)器人等。
問題概述
推薦系統(tǒng)的目標(biāo)是推薦用戶可能感興趣的內(nèi)容。在我們的網(wǎng)站,會(huì)通過點(diǎn)擊量看用戶的喜好,我們會(huì)展示出一個(gè)小部件,其中包含內(nèi)容推薦,如果用戶想看其中的內(nèi)容,他們會(huì)點(diǎn)擊。
用戶點(diǎn)擊某一內(nèi)容的概率稱為點(diǎn)擊率(CTR)。如果我們知道所有內(nèi)容的點(diǎn)擊率,那么如何選擇內(nèi)容進(jìn)行推薦就很容易了:推薦CTR高的內(nèi)容。
但問題是我們不知道什么是CTR時(shí)怎么辦。我們有一個(gè)模型可以估計(jì)它,但很顯然結(jié)果并不完美,其中的愿意就是推薦系統(tǒng)中蘊(yùn)含的各種不確定性,我們?cè)谏弦黄恼轮幸呀?jīng)總結(jié)過了。
探索 vs 利用
假設(shè)你走進(jìn)了一家冰淇淋商店,要從30多種口味中選出一種喜歡的。你也許會(huì)選擇曾經(jīng)嘗過的最好吃的味道,或者探索一種從未嘗過的新口味,也許會(huì)發(fā)現(xiàn)驚喜。
這兩種策略就是“探索”(exploration)和“利用”(exploitation)。我們可以利用已知的有較高CTR值的項(xiàng)目,或者也可以探索其他新的項(xiàng)目。將探索加入到推薦策略中是非常重要的,不然的話,新內(nèi)容無法得到曝光。
探索方法
你能使用的最簡(jiǎn)單的“探索-利用”方法就是?-貪婪算法,其中將?作為隨機(jī)選擇某個(gè)新內(nèi)容的概率,剩下的概率用來對(duì)其進(jìn)行利用。
盡管并不是最優(yōu)法,這種方法非常易于理解。它可以作為其他復(fù)雜方法的基本標(biāo)準(zhǔn),那么如何用更好的方法尋找優(yōu)質(zhì)內(nèi)容呢?
另一種高級(jí)的方法稱為Upper Confidence Bound(UCB),它利用了不確定性。每條內(nèi)容都與它所期望的CTR以及CTR周圍的置信上限(confidence bound)。置信上限可以表示我們對(duì)該項(xiàng)目的CTR不確定的程度有多大。普通的UCB算法通過實(shí)證信息記錄CTR和置信上限:我們會(huì)跟蹤記錄每個(gè)項(xiàng)目的實(shí)證CTR,同時(shí)通過假設(shè)二項(xiàng)式分布計(jì)算置信上限。
仍然是上面的冰淇淋店的例子,假如你每次必點(diǎn)的是巧克力口味的冰淇淋,你給它打8分(滿分10分)。今天店里推出了新口味,你不知道它是什么味道(缺乏實(shí)證信息),這也就意味著它可能是1到10分之間。利用這一置信上限,如果你想嘗試探索,那么就可以嘗嘗,因?yàn)檫@種口味有可能是10分。
這就是UCB的原理——你先選擇有最高UCB值的項(xiàng)目,在我們的案例中就是CTR的置信上限較大的項(xiàng)目。隨著時(shí)間的發(fā)展,假設(shè)的CTR會(huì)逐漸變成真值CTR,置信上限會(huì)縮小到0。經(jīng)過足夠的時(shí)間,我們就能探尋所有項(xiàng)目了。
另一個(gè)流行的方法是湯普森采樣法(Thompson Sampling)。在這種方法下,我們用該項(xiàng)目的CTR完全的估計(jì)分布而不是置信上線。對(duì)每個(gè)項(xiàng)目,我們都會(huì)從他的分布中采樣一個(gè)CTR。
這種方法也許在數(shù)量固定的項(xiàng)目上表現(xiàn)得很好,但不幸的是,我們的Taboola網(wǎng)站每天都有上千個(gè)項(xiàng)目更新,當(dāng)我們得到了某一個(gè)可能的置信上限后,項(xiàng)目可能就離開系統(tǒng)了。
所以我們需要一種方法能計(jì)算從未見過的新項(xiàng)目的CTR估值。
假設(shè)現(xiàn)在來了一種新的巧克力味冰淇淋,因?yàn)槟阒胺浅O矚g冰淇淋,所以你覺得這個(gè)應(yīng)該也不錯(cuò)。在普通的UCB方法中,你僅僅用實(shí)驗(yàn)信息是無法推斷出這一結(jié)論的。
在接下來的文章中,我們會(huì)詳細(xì)解釋如何用神經(jīng)網(wǎng)絡(luò)估計(jì)某一新項(xiàng)目的CTR值,同時(shí)如何顧及不確定性的水平。利用不確定性,我們可以應(yīng)用UCB方法探索新項(xiàng)目。
在線尺度和結(jié)果
那么,我們?cè)鯓硬拍苤雷约禾剿鞯男马?xiàng)目如何呢?這時(shí)候就需要用測(cè)量方法對(duì)探索結(jié)果進(jìn)行評(píng)估了。在Taboola,我們用的是A/B測(cè)試。
回到冰淇淋的問題,我們假設(shè)你帶了一個(gè)朋友,他可以幫你探索新口味,很顯然如果你的一位朋友隨機(jī)挑選了一種口味,他可以確切地知道這種口味好不好,但這卻不是最聰明的方法。之后,另一位朋友也點(diǎn)了別人覺得好吃的口味,那么他的嘗試是沒有意義的。
在Taboola網(wǎng)站,我們用以下方法測(cè)量探索結(jié)果:對(duì)每個(gè)經(jīng)過多次展示的項(xiàng)目,以及出現(xiàn)在多個(gè)不同語境下的項(xiàng)目,我們認(rèn)為已經(jīng)經(jīng)過了探索階段。之后,我們會(huì)分析那種模型能夠生成成功的結(jié)果。為了計(jì)算,模型必須多次展示該項(xiàng)目。
利用這一方法,模型的輸出就是該項(xiàng)目被判斷的次數(shù)。
利用這一方法,我們可以認(rèn)為,隨機(jī)展示項(xiàng)目可以生成最佳結(jié)果,沒有用UCB方法的模型卻也展示出良好的項(xiàng)目,但不會(huì)生成好的結(jié)果。于是,我們認(rèn)為我們的UCB模型在探索新項(xiàng)目和選擇好項(xiàng)目之間做了平衡,從長(zhǎng)遠(yuǎn)來看這種取舍是值得的。
結(jié)語
“探索-利用”問題對(duì)很多公司的推薦系統(tǒng)來說都是重要的挑戰(zhàn),我們希望這篇文章能為從業(yè)者提供幫助。在接下來的文章中,我們將具體詳解估計(jì)CTR和不確定性的模型,敬請(qǐng)關(guān)注!
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4762瀏覽量
100541 -
CTR
+關(guān)注
關(guān)注
0文章
36瀏覽量
14079
原文標(biāo)題:建立推薦系統(tǒng)的新思路:用不確定性探索未知
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論