1 定向廣告:Web廣告按照某個使用者的興趣來選擇,使得Web服務通過廣告收益來支援運行。
2 線上及離線演算法:得到所有資料才產生答案的傳統演算法稱之為離線演算法。線上演算法必須對流中的每一個元素都立即作答,此時僅對過去的資訊有所瞭解,對未來的資料一無所知。
3 貪心演算法:線上演算法採用貪心策略,演算法每一步的選擇基於某個目標函數的最小化來進行。
4 競爭率:在所有可能的輸入情況下,通過最小化線上演算法與最優離線演算法的收益比來度量線上演算法的品質。
5 二部圖匹配:兩個節點集合,尋找兩個集合節點相連構成邊的集合,最大化邊數,每個節點的出現都不會超過一次。
6 匹配問題的線上解決方案:在二部圖中尋找匹配的一個貪心演算法對邊按照某種方式排序,依次對每條邊處理。可以證明該演算法的競爭率是1/2。
7 搜尋廣告管理:搜尋引擎收到廣告商對某些查詢搜尋的投標。對某個搜尋查詢,某個廣告會被顯示,一旦有人點擊廣告,廣告商要向搜尋引擎付費。
8 Adwords問題:Adwords問題的資料包含廣告商對某些搜尋查詢的一系列投標集合,每個廣告商的總預算,及每個查詢提交後每條廣告的曆史點擊率。還有搜尋引擎收到的搜尋查詢流。目標是對每條查詢選擇線上的固定大小的廣告集予以顯示,最大化搜尋引擎利益。
9 簡化adwords問題:每個投標非0即1,每條查詢僅對應一條廣告,所有廣告商預算相等。貪心演算法促使搜尋引擎將廣告分配給對查詢投標並有剩餘預算的廣告商。競爭率1為1/2.
10 Balance演算法:相較貪心演算法,Balance演算法會將查詢對應的廣告分配給那個對該查詢投標並且剩餘預算最多的廣告商,一旦多個廣告商的剩餘預算相等,可從中隨機播放。兩個廣告商時競爭率達3/4,過個廣告商時可達1-1/e 約為63%。
11 一般性adwords問題的balance演算法:廣告商出價不同,預算不同,不同查詢點擊率不同,balance演算法將廣告分配給最高函數x*(1-power(-f))值的廣告商。x:投標價格和點擊率乘積,f是廣告商未使用的預算比列。
12 adwords實現:投標關鍵字與查詢一致,將查詢表示為詞的排序表,投標儲存在雜湊表或類似結構中,雜湊鍵就是排序表。
13 詞集和文檔匹配:若投標集合的所有詞都出現在文檔中,不管詞語是否與投標中同序,也不管是否相鄰,都認為投標和文檔匹配。
14 詞集合的雜湊儲存:將投標集合中的詞按照低頻優先儲存,將第一個詞作為雜湊鍵。
15 投標匹配中的文檔處理:文檔中詞按照低頻優先處理。