← 全部概念地圖
標準

概念地圖・UCB 信賴上界拉霸

分類:系統

這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →

UCB 信賴上界拉霸:先拉最不熟的那一根

一個代駕司機的手機裡開著三個接單平台。他幾乎每晚都掛在同一個上面——過去三個月,那個平台的每小時淨收入最高。另外那個他只跑過十二趟。十二趟能證明什麼?UCB 這條規則的回答很直接:把每個選項的平均算出來,再依「你試過幾次」加一段寬度上去,比的是加完之後的那個上緣,這個上緣就叫信賴上界。試得愈少,加得愈多。於是帳面最差的那一根,常常正是這一輪該拉的那一根。

三支臂的均值與信賴上界並排圖 三根垂直誤差條並排在同一條縱軸上,縱軸是每小時淨收入。每根中間的圓點是均值,上下兩端是信賴區間,上緣以金色橫線標出信賴上界並印出數值。臂 1 拉過八十次、區間最窄,均值最高而上界 470;臂 2 只拉過十二次、區間最寬,均值最低卻把上界撐到 490,被金色虛線橢圓圈住;臂 3 上界 467 最低。右下一格畫出再拉一次之後,臂 2 的寬度從 90 收到 87。 三支臂:均值、區間與上界 縱軸:每小時淨收入(元) 500 450 400 350 300 470 490 467 435 400 420 ±35 ±90 ±47 臂 1 臂 2 臂 3 n=80 n=12 n=45 這一輪拉它 看上界,不看均值 圓點:目前算出來的平均 金線:均值加上寬度 縱線:次數愈少愈長 拉了臂 2 一次之後 ±90 ±87 n=12 n=13 一次只收窄 3,看長度看不出來 上界=均值+c×√(ln t÷n);t=137 為三支臂已拉次數合計,c≈141 三個寬度共用同一個 c;數字為示意情境,非真實收入資料
均值墊底的那一根,因為只被拉過十二次,站上了最高的位置。

三個平台,均值與上界並排看

這套規則從吃角子老虎機來,所以每一個可選項在這裡被叫做一支臂。下面三支臂共用同一條公式:上界=均值+c×√(ln t÷n)。t 是三支臂已拉次數的合計 137,c 取 141。

臂已拉次數 n平均每小時淨收入寬度上界
臂 180435 元±35470
臂 212400 元±90490
臂 345420 元±47467

按均值排,臂 1 第一、臂 2 墊底。按上界排,臂 2 第一、臂 3 墊底。同一份資料換一把尺,第一名和最後一名都換了人。差別全在 n 那一欄:臂 2 只被拉過十二次,於是它拿到 ±90 的寬度——而那個 ±90 的意思很窄,它只說「以目前的資料,還沒有人能否認它做得到 490」。臂 1 和臂 3 的上界只差 3,肉眼幾乎並排;真正被推開的是臂 2,靠的全是無知。這幾個數字是為了說明結構而編的示意情境,與任何平台的真實收入無關。

這條上界要不要信,先問四個問題

一、均值那一欄。你手上的 435 是怎麼來的?把八十趟的每小時淨收入平均起來,看起來理所當然——前提是那八十趟量的是同一件事。跨季節、跨區域、跨你自己的熟練度,平均會把差異磨平,磨到你看不見。UCB 只吃這一個數字,它不會回頭問你那八十趟長什麼樣。自問:這個平均值裡,最舊的那一筆是多久以前的?

二、次數 n 那一欄。這是整條公式裡唯一你完全控制得了的東西,也是最容易被印象取代的一欄。「我跑過幾次 B?」——「沒幾次吧。」十二次和二十五次差在哪?同樣的 c,寬度從 90 掉到 63,翻盤的力道少掉三分之一。憑印象填這一格,等於憑印象決定要不要探索。自問:我記的是趟數,還是「感覺已經試過了」?

三、係數 c 那一格。c 決定你有多想探索。上面那組用的是 141,所以只拉過十二次的臂能拿到 ±90 的加分,足以翻盤。把 c 砍成一半,三個寬度變成 ±18、±45、±23,臂 1 的上界 453 就直接壓過臂 2 的 445——同一份資料,換一個係數,答案整個反過來。這一格通常是全篇最少被討論、卻最能決定結局的一格。自問:這個 c 是有人算過的,還是從別人的範例抄來的?

四、總次數 t 那一段。ln t 是時間。t 從 137 走到 167,ln 從 4.92 走到 5.12,所有臂的寬度都跟著長了一點——臂 1 的 35 變成 36,臂 3 的 47 變成 48,即使它們一次都沒被拉。這一格在提醒你:世界在動,你對每一支臂的舊認識都在慢慢過期。自問:我這場賽局還會跑幾輪?夠不夠付探索的錢?

一個代駕司機的三個平台,一晚選一次

實例演練
  • 第一晚,三個上界並排:平台 A 的上界 470、平台 B 490、平台 C 467。規則指向 B——那個他只跑過十二趟、均值 400 的平台。帳面上,他今晚打算少賺
  • 接下來三十趟都在 B:B 的 n 從 12 走到 42,三個平台的總趟數從 137 走到 167。問題問到一半了
  • B 的寬度從 90 收到 49:三十趟只換到這麼多。剩下的 49 還要再跑上百趟才收得掉。學費比想像中貴
  • 另外兩個平台也動了:A 一趟都沒跑,寬度卻從 35 長成 36;C 從 47 長成 48。時間會替沒被碰過的選項慢慢加分。
  • 分岔一,B 撐住了:三十趟的均值 425,上界 425+49=474,壓過 A 的 435+36=471。下一趟還是 B。那三十趟的價差開始有回報
  • 分岔二,B 撐不住:均值掉到 395,上界 395+49=444,低於 A 的 471。下一趟換回 A。三十趟的價差,就這樣付掉了

這個場景真正值得記住的接縫在第三點。「多試幾次」這句話所有人都同意,很少人算過「多幾次」到底是幾次。跑滿三十趟,B 的寬度只從 90 收到 49——一半都還沒收掉。而這三十趟裡,他每一趟都在承擔「這個平台可能真的比較差」的風險。那三十趟的價差,就是問這個問題的學費。學費先付,答案後到,而且答案有一半的機率只會告訴你「你原本的直覺對」——付了錢,買到一個確認。願意付這筆的人,買的是接下來三千趟裡不必再猜。以上為說明結構用的示意情境,僅供理解框架之用。

這個上界什麼時候會騙你

  1. 平台改了規則,那八十次的平均就過期了。UCB 假設每支臂背後的分佈是穩定的——同一支臂,今天拉和三個月前拉,期望值一樣。真實世界不給你這個。抽成從兩成調到兩成五、派單演算法改成偏向新加入的司機、隔壁新蓋的商辦開始進駐,任何一件發生,過去八十趟的平均都在描述一個已經不存在的平台,而 ±35 那個窄窄的寬度還在旁邊告訴你「這個數字很可信」。愈可信,錯得愈久。碰到規則變動,務實的做法是把那支臂的 n 砍掉大半,讓寬度重新張開。
  2. 寬度會一直把你推回去拉那支已經確定很爛的臂。ln t 隨總次數變大,所以每支臂的寬度都會緩慢回長——只要你一直不拉它,它遲早又會爬到第一。在無限長的賽局裡這是優點,它保證你不會永遠錯過好東西。在只跑三個月、下個月要繳房租的賽局裡,這是成本。上面那三十趟就是實例:寬度從 90 收到 49,中間每一趟他都在替一個可能沒有答案的問題付錢。公式不會問你付不付得起。
  3. 三個平台的「每小時淨收入」,可能各自漏算了不同的東西。一個平台把等單時間算進去、另一個不算;一個有里程補貼、另一個把補貼發成月結獎金;一個的取消率高,空跑的油錢誰吸收沒人講清楚。均值那一欄長得一模一樣,底下量的東西卻各有各的縫。UCB 對輸入完全信任——你餵進去的三個數字只要有一個是用不同尺量出來的,它會非常有效率地把你導向那個最會美化自己的平台。動手算之前,先把三支臂的「一小時」定義成同一件事。

用痛點的眼光,看那根還沒被拉夠的柱子

痛點視角

UCB 把「沒試過」明碼標了價。

《痛點》那把尺的第一格是 P——誰在痛。你在三個平台之間換來換去,量的是自己的每小時淨收入;而每一筆淨收入的另一端,站著一個當下正在等車的人。這張圖畫得出每支臂被拉過幾次,畫不出那十二趟裡有幾個客人是因為久等而取消的。次數少,可能是你沒給它機會;也可能是那個平台的客人根本不在你跑的區域裡——前者靠多拉幾次會收斂,後者拉一百次也不會。所以在照著上界動手之前,先分清楚寬度大的原因是哪一種:資料不夠,還是需求不在。這一步公式幫不上忙,它只看得到 n,看不到 n 背後的人。今晚不必改任何規則。收工前,在那個只跑過十二趟的平台上,把下一趟接了。

關於信賴上界,常被問到的幾件事

UCB 跟 A/B 測試差在哪?

A/B 測試先算好要跑多久、跑滿才收割——中途看到 B 版領先也得忍住,提早收手會讓統計失效。UCB 從第一趟就開始把流量往贏面高的那邊挪,代價是你拿不到一個乾淨的結論,只拿到一串愈來愈偏心的選擇紀錄。要一個能寫進報告、能拿去說服別人的判定,走 A/B;要在學習的同時盡量少虧,走 UCB。兩者可以接力:先用 A/B 把明顯的爛選項淘汰掉,再用 UCB 在剩下的幾個之間持續分配。

c 要設多少才對?

沒有一個放諸四海的數字。理論上的 UCB1 把 c 綁在報酬的尺度上——報酬換算成 0 到 1 之後,c 常取 √2 上下。實務上你的報酬單位是「元」,c 必須跟著單位放大,上面那組用 141,大致就是把報酬範圍當成一百元上下再乘回去。真正該做的是拿歷史資料回放:把 c 設成幾個不同的值各跑一次,看哪個值在你的趟數規模下總收入最高。設得太小,你會鎖死在第一個看起來不錯的選項;設得太大,你會一直在試新的,永遠收不了割。

只有兩個選項,還需要這一套嗎?

兩個選項時它退化成一句很簡單的話:哪一個試得少,就多給它一點分。真正的差別在你還有多少輪可以跑。如果只剩五趟就要定生死,探索的錢付不起,直接拉均值高的那個比較實際。選項愈多、輪數愈長,這套規則的價值愈明顯——因為人腦在三個以上的選項之間,幾乎一定會退回「上次哪個好」的直覺,而那個直覺永遠偏向被拉最多次的那一個。

上界最高的那支臂,就是最好的那支嗎?

不見得。上界是一個「還沒被否定的最好情況」,它同時吃兩種東西:真的很好,和資料太少。臂 2 的 490 裡,400 來自實績、90 來自無知。UCB 的設計正是要你去分辨這兩者——拉它,就是逼那 90 縮水。拉了三十趟之後 90 收到 49,如果均值撐住了,那個高位置才開始有實質意義;如果均值掉下來,上界跟著掉,它自己就退場了。這套規則不會替你判斷誰最好,它只負責安排你去問下一個問題。

三個來源各跑過幾次,寫下來排一排,看最少的那個少到什麼程度。要先想清楚該往哪一邊挪,探索與利用談的是方向,這條上界只回答這一次拉誰;想走「講好跑多久、跑完才收割」那條路,看檢定力與樣本數。

發現引用或事實有誤?請寫信回報,我會依更正政策修正。