Trong bài viết trước, tôi đã giới thiệu tổng quan về bài toán Tối ưu hóa quảng cáo và tiềm năng ứng dụng AI. Hôm nay, tôi sẽ đi sâu giải thích về một số phương pháp Tối ưu ngân sách cấp nhóm quảng cáo (Ad Set Budget Optimization – ABO).
Xin tóm tắt lại ngắn gọn, mục tiêu chính của tối ưu hóa ngân sách là tối đa hóa kết quả (tỷ lệ chuyển đổi/doanh thu) với chi phí thấp nhất có thể. Hiện nay, có hai phương thức tối ưu hóa ngân sách chính:
- Tối ưu ngân sách cấp chiến dịch (Campaign Budget Optimization – CBO):
- Được thiết lập ở cấp độ chiến dịch
- Facebook tự động theo dõi và phân bổ ngân sách giữa các bộ quảng cáo
- Chi tiêu vẫn diễn ra liên tục khi Facebook điều chỉnh phân bổ ngân sách
- Tối ưu ngân sách cấp nhóm quảng cáo (Ad Set Budget Optimization – ABO):
- Được thiết lập riêng cho từng nhóm quảng cáo
- Cho phép kiểm soát và theo dõi ngân sách thủ công
- Chi tiêu sẽ dừng khi tắt bộ quảng cáo
ABO mang lại quyền kiểm soát chi tiết hơn về cách chi tiêu ngân sách. Phương pháp này đặc biệt phù hợp với các chiến dịch cần sự linh hoạt và giám sát chặt chẽ từng nhóm quảng cáo riêng biệt.
Một số phương pháp Tối ưu ngân sách cấp nhóm quảng cáo
Trong bài viết này tôi giới thiệu hai hướng tiếp cận để giải quyết bài toán đặt ra. Hướng tiếp cận thứ nhất là hướng tiếp cận học sâu, và hướng tiếp cận thứ hai là hướng tiếp cận mô hình tối ưu Multi-Armed Bandit.
1. Cách tiếp cận học sâu
Trong cách tiếp cận này nhóm đề xuất mô hình học sâu có thể được sử dụng để phân tích các adset theo chuỗi thời gian từ đó đưa ra quyết định thay đổi trạng thái của adset (thông thường là quyết định tắt một adset nào đó). Mạng học sâu từ lâu đã đạt được nhiều thành công trong các lĩnh vực khác nhau như xử lý ảnh, xử lý ngôn ngữ tự nhiên. Bài toán dự đoán chuỗi thời gian cũng không nằm ngoài xu thế đó, với các mô hình phổ biến như RNN, LSTM, và GRU.
Xét bài toán đặt ra sẽ ứng với dạng bài toán many-to-one trong RNN, tức nhiều input và 1 output. Mỗi input là một vector xi đặc trưng của một adset (các chỉ số quan trọng ảnh hưởng tới lợi nhuận – các chỉ số này sẽ được làm rõ trong giai đoạn tiếp theo của báo cáo), với \(\mathrm{i}=\overline{1, m}\) (m là số lượng adset trong quá khứ được xem xét, đề xuất lựa chọn m=3 hoặc m=5).
Về phần dữ liệu, cần tổng hợp dữ liệu trong quá khứ của các adset. Trong giai đoạn đào tạo, ma trận W và hidden state h0 được khởi tạo ngẫu nhiên. Các hidden state tiếp theo được tính toán theo công thức sau:
Thông thường, hàm mất mát đối với mô hình này được xây dựng như sau. Từ đó, thuật toán lan truyền ngược có thể được áp dụng để cập nhật trọng số W.
Trên nền tảng mô hình RNN đã trình bày, các biến thể của nó hoàn toàn có thể được xem xét để tăng cường hiệu suất của mô hình bao gồm: Birectional RNN, LSTM, Birectional LSTM, GRU, và Birectional GRU. Mô hình LSTM và các công thức tính trong từng bước được minh họa trong hình dưới đây.
2. Cách tiếp cận mô hình tối ưu Multi-Armed Bandit
Bài toán tối ưu hóa ngân sách nhóm quảng cáo có thể được mô hình hóa như sau.
Cho một chiến dịch C = {C1, C2, …, CN}, với N , Ck là adset thứ k, và T khoảng thời gian các bản ghi được lưu trữ cho mỗi adset. Tại một khoảng thời gian \(t \in\{1,2, \ldots, \mathrm{~T}\}\), Seller phân bổ ngân sách \(w_{k, t} * B_k\) cho adset Ck, trong đó \(B_k\) là tổng ngân sách chi cho chiến dịch C tại khoảng thời gian t và \(w_{k, t}\) là tỷ trọng phân bổ tương ứng dành cho adset Ck tại khoảng thời gian t. Mỗi adset cung cấp một phần thưởng khác nhau từ 1 phân bổ xác suất cố định nhưng không xác định, và giá trị phần thưởng trung bình là \(\mu_{k}\) . Phần thưởng \(r_{k, t}\) nhận được từ cách phân bổ ngân sách \(w_{k, t} * B_k\) cho adset Ck. Tại mỗi khung thời gian mà các bản ghi được lưu trữ cho một adset, một phần thưởng ngẫu nhiên được quan sát dựa trên cơ sở phân bổ. Quá trình này được giả định là quá trình ngẫu nhiên trong đó phần thưởng trung bình là \(\mu_{k}\) không đổi theo thời gian. Mục tiêu đặt ra là phân bổ ngân sách cho các adset sao cho tổng phần thưởng được nhận là tối đa tùy thuộc vào giới hạn ngân sách. Vấn đề này có thể chính thức hóa như sau.
\( argmax\left(\sum_{t=1}^T \sum_{k=1}^N \frac{r_{k, t}}{w_{k, t} * B_k}\right) \) (5)
, thỏa mãn ràng buộc: \( \sum_{k=1}^N w_k=1 \)
Bài toán tối ưu hóa ngân sách adset đặt ra trong (5) có thể được mô hình hóa như một mô hình Multi-Armed Bandit (MAB) và có thể giải với một số cách tiếp cận là: Cách tiếp cận ngây thơ (Navie algorihm), Cách tiếp cận tham lam (ϵ-Greedy algorithm), Cách tiếp cận ước tính giới hạn tin cậy (UCB – Upper Confidence Bound Algorithm), và Cách tiếp cận đối sánh xác suất (Thompson Sampling).
2.1. Giải thích mô hình Multi-Armed Bandit
Trong bài toán Multi-armed bandit (MAB), một trong yếu tố quan trọng cần được nhắc tới chính là sự đánh đổi trong quá trình thăm dò và khai thác (exploration–exploitation trade-offs). Để minh họa hãy hình dung là bạn đang có 5 khu đất có dầu, nhưng bạn không biết được rằng khu đất nào có nhiều dầu nhất và đào ở vị trí nào thì sẽ lấy được dầu. Nếu mỗi mũi khoan thử bạn tốn $5000 và để cho đảm bảo thì bạn phải khoan 10 lần ở các vị trí khác nhau. Vậy có thể nói rằng bạn tốn $5000 * 10 * 5 = $250,000 cho mục đích thăm dò (exploration), trước khi có thể bắt đầu khai thác (exploitation).
Nếu bạn bỏ thời gian ra để nhìn vào bài toán trên bạn có thể sẽ nảy sinh rất nhiều câu hỏi, ví dụ như:
- Nếu tôi chỉ có $100,000 thì phải làm như thế nào?
- 10 mũi khoan mỗi khu đất liệu có đủ? Liệu 5 hay 20 mũi khoan sẽ phù hợp hơn?
- Khu đất mà tôi chọn liệu có thật sự tối ưu?
Là một nhà tư bản thông minh, có thể bạn sẽ chọn khoan thăm dò mỗi khu đất 4 lần, rồi cứ thế bơm dầu từ khu đất cho kết quả tốt nhất. Sau đó khi đã có một tiền thu lại từ bán dầu bạn sẽ dùng nó để khoan thêm để hòng tìm ra được khu đất tối ưu để bạn tập trung khai thác. Nói theo một cách khác, bạn đang cố gắng cân đối giữa 2 tiến trình thăm dò (exploration) và khai thác (exploitation). Mục tiêu của bạn sẽ là làm sao tối ưu giữa chi phí thăm dò và lợi nhuận có được từ khai thác.
Nếu đối chiếu mô hình trên với với bài toán (5), thì hệ thống cần phải nhanh chóng biết được đâu là adset có khả năng kiếm được lợi nhuận nhiều nhất với chi phí thăm dò thấp nhất có thể. Điều khác biệt với ví dụ nêu trên là lợi nhuận của 1 adset có thể bị thay đổi tuỳ ở mỗi khung thời gian khác nhau.
2.2. Cách tiếp cận ngây thơ
Vì biết được khả năng sinh lời của adset nên cách tiếp cận đơn giản nhất chính là cố gắng tìm ra nó trong những lần thử đầu tiên.
Bước 1: Phân chia ngân sách đều nhau cho 10 adset, theo dõi trong 1 tuần, sau đó lấy trung bình phần thưởng thu được, chúng ta sẽ biết được phần thưởng trung bình (mean reward) của từng adset.
Bước 2: Chọn adset có hiệu suất sinh lời cao nhất để tăng ngân sách.
Đây là một thuật toán đơn giản, dễ hiểu tuy nhiên nó có một số điểm yếu như sau:
- Bạn nên thử bao nhiêu adset, và bao nhiêu ngày là đủ? Tùy thuộc vào sản phẩm cụ thể mà số lần thử sẽ khác nhau. Không có một quy tắc nhất định để chọn số lần thử tối ưu.
- Giả sử như trong 7 ngày thử nghiệm đầu tiên bạn vẫn không tìm được kết quả tốt (tối ưu)? hay kết quả bạn thu được không chính xác do phần thưởng được phân phối không đều theo thời gian? Bạn có thể kết thúc bằng việc chọn sai adset.
- Trong bài toán Multi-armed bandit chúng ta không đề cập đến việc xác suất sinh ra giải thưởng có thể thay đổi theo thời gian. Tuy nhiên trong thực tế điều này hoàn toàn có thể thay đổi. Ví dụ sở thích của người tiêu dùng thay đổi dẫn tới họ thích một phong cách thiết kế này nhiều hơn phong cách thiết kế khác vốn trước đó thịnh hành hơn; Hay do nhu cầu thay đổi dẫn tới việc mức giá này được ưu thích hơn so với mức giá khác.
2.3. Cách tiếp cận tham lam
Naive Algorithm yêu cầu 1 khoảng thời gian thăm dò – exploration (thử nhiều adset, và theo dõi trong nhiều ngày) trước khi bắt đầu khai thác (exploitation). Vậy nếu bạn muốn tranh thủ khai thác càng sớm càng tốt nhưng vẫn thỉnh thoảng thăm dò thì sao? Thuật toán Greedy cho phép bạn làm được điều này theo cách xây dựng một hàm đánh giá thô (thử và sai) trong đó adset có hoạt động tốt nhất (theo lịch sử) sẽ được phân bổ nhiều ngân sách nhất. Chính sách ϵ-Greedy cam kết thăm dò với xác suất ϵ bằng cách chọn một nhánh ngẫu nhiên để kéo, và (1- ϵ) là tỷ lệ ngân sách được phân bổ cho adset có phần thưởng trung bình cao nhất – mean reward (Nếu không có máy nào thỏa điều này thì có thể chọn máy ngẫu nhiên)
Thuật toán này có 2 ưu điểm lớn:
- Nếu số lần thử của bạn đủ lớn, bạn sẽ chọn được máy cho ra phần thưởng tốt nhất.
- Trong hầu hết các lần khai thác của bạn, bạn sẽ khai thác trên máy sinh ra phần thưởng lớn nhất.
Nhưng khuyết điểm của thuật toán này là bạn không thể biết được ϵ tối ưu nhất cho bài toán của bạn. Nếu ϵ quá lớn, nghĩa là Seller chọn số lần thử dành cho mục đích khai thác quá nhiều, nhưng nếu số ϵ quá nhỏ, Seller sẽ có khả năng đang khai thác không hiệu quả.
2.4. Cách tiếp cận ước tính giới hạn tin cậy
Cách tiếp cận ước tính giới hạn tin cậy (UCB) tận dụng lý thuyết xác suất thống kê vào trong giải thuật. Để có thể giải thích cách tiếp cận này một cách tương đối đơn giản hãy lấy trường hơp tung xí ngầu làm ví dụ. Chúng ta đều biết giá trị trung bình (mean value) của việc tung xí ngầu là 3.5, tuy nhiên giả định là bạn không biết con số này. Vậy nếu bạn tung xí ngầu lần đầu tiên và bạn nhận được giá trị là 2, bạn không thể làm gì hơn là đoán đại giá trị trung bình của việc tung xí ngầu là 2, trong đó cận dưới 95% là 1.4 và cận trên 95% là 5.2. Bằng cách tung cục xí ngầu nhiều lần bạn sẽ dần dần tìm ra giá trị trung bình thực tế cũng như thu hẹp khoảng tự tin (Confidence Bound). Như vậy, bằng cách chọn adset có giá trị cận trên khoảng tự tin (Upper Confidence Bound) cao nhất, thuật toán UCB có thể dần dần đi gần hơn tới giá trị trung bình thực tế của từng adset, đồng thời thu hẹp khoảng tự tin lại.
Có thể nhận ra rằng đối với Greedy Algorithm, số ϵ là con số cố định, Seller gần như không thể chọn con số ϵ tối ưu ở thời điểm ban đầu, và số ϵ cũng không thể tự động thay đổi để tăng tỉ lệ khai thác (exploitation) so với thăm dò (exploration). Trái lại trong trường hợp của UCB, thuật toán này cho phép tăng tần suất khai thác sau một khoảng thời gian nhất định, nhưng đồng thời vẫn đảm bảo là không ngừng quá trình thăm dò.
UCB của adset Ck tại khoảng thời gian t có thể được tính như sau (Auer et al., 2002):
- \( \mathrm{UCB}_{k, t}=\hat{\mu}_{k, t}+\sqrt{\frac{2\left(\ln M_t\right)}{m_{k, t}}}\) (6)
, trong đó là phần thưởng trung bình của adset Ck, là tổng ngân sách chi cho chiến dịch C và là ngân sách phân bổ cho adset Ck tính đến thời điểm t (cộng dồn các thời điểm trước đó).
- hoặc,\( \mathrm{UCB}_{k, t}=\hat{\mu}_{k, t}+\sqrt{\frac{\ln t}{m_{k, t}}} * \min \left\{\frac{1}{4}, \sigma_{k, t}^2 \sqrt{\frac{2\left(\ln M_t\right)}{m_{k, t}}}\right\} \) (7)
, trong đó \( \sigma_{k, t}^2 \) là phương sai mẫu của phần thưởng của adset Ck.
Chính sách ràng buộc độ tin cậy trên có thể được áp dụng trực tiếp cho việc phân bổ ngân sách bằng cách phân bổ toàn bộ ngân sách cho chi nhánh tốt nhất tại mỗi vòng. Tuy nhiên, thuật toán MAB tiêu chuẩn này khó có thể được xem là tối ưu vì nó lãng phí thông tin từ tất cả các nhánh không được chọn ở mỗi vòng. Xem xét thuật toán UCB-Tích lũy (Niculescu-Mizil, 2009 & Suvi Mäkinen, 2017) được trình bày chi tiết trong thuật toán 1.
2.5. Cách tiếp cận đối sánh xác suất
Cách tiếp cận đối sánh xác suất (Thompson sampling) sử dụng phân bổ Beta/Gamma để sinh ra một xác suất ngẫu nhiên, nhưng vẫn nằm trong vùng cho phép, để dự đoán adset nào có thể sẽ trả về phần thưởng tốt trong khoảng thời gian tiếp theo. Xác suất này được dựa trên kết quả của khoảng thời gian trước đó.
Trong ứng dụng thực tế, một trong những vấn đề Seller gặp là gần như không có hệ thống nào có đủ khả năng tính toán (computing power) thể sinh ra kết quả trong real time (trừ khi có quá ít dữ liệu). Vì vậy cái Seller có thể đạt được chỉ là tiệm cận ở mức real time, và mức tiệm cận này trong hầu hết mọi trường hợp vẫn rất lớn. Cũng chính vì điều này mà Thompson có lợi hơn so với UCB. Giả định là t và t + 1 là thời điểm hệ thống tổng hợp dữ liệu và phân tích kết quả. Đồng nghĩa với việc là trong khoảng thời gian giữa 2 thời điểm này kết quả Seller có trong tay chỉ là kết quả tổng hợp được ở thời điểm t. Đối với UCB, điều này cũng có nghĩa rằng bạn sẽ chết cứng với 1 lựa chọn duy nhất. Trái lại, Thompson sinh ra 1 xác suất ngẫu nhiên trong khoảng cho phép, và vì vậy Seller có thể có nhiều hơn 1 lựa chọn.
Chi tiết về thuật toán đối sánh xác suất được trình bày trong thuật toán 2.
Thông qua bài viết, tôi đã trình bày một số phương pháp để giải quyết bài toán Tối ưu ngân sách cấp nhóm quảng cáo. Để áp dụng hiệu quả, các nhà quảng cáo nên phân tích dữ liệu thực tế của mình và điều chỉnh các thuật toán đã đề cập cho phù hợp với đặc thù dữ liệu và mục tiêu kinh doanh cụ thể. Việc thử nghiệm và tối ưu dựa trên dữ liệu thực tế sẽ giúp tìm ra phương pháp phù hợp nhất cho chiến dịch quảng cáo của bạn.
Pingback: [ƯD] Giới thiệu về bài toán Tối ưu hóa quảng cáo và tiềm năng sử dụng AI - Greenwich Vietnam