Chuyển đến nội dung chính

Dynamic Pricing với Contextual Bandit và Reinforcement Learning

Trong Dynamic Pricing, bài toán khó không chỉ là dự đoán khách hàng có mua ở mức giá nào. Hệ thống còn phải quyết định nên tiếp tục sử dụng mức giá đang mang lại doanh thu tốt hay thử một mức giá khác để học thêm về phản ứng của thị trường.

Đây chính là bài toán ra quyết định tuần tự dưới bất định. Contextual Bandit cung cấp một mô hình tương đối gọn cho trường hợp reward chủ yếu đến ngay sau quyết định, trong khi học tăng cường (Reinforcement Learning, RL) mở rộng bài toán sang các tình huống mà hành động định giá hiện tại còn ảnh hưởng đến trạng thái và lợi ích trong tương lai [1], [2].

Nếu cần bức tranh tổng quan về kinh tế học và hệ thống phía sau bài toán này, có thể đọc trước bài Dynamic Pricing: Khi AI quyết định giá trên thị trường trên The CS Note. Bài hiện tại tập trung sâu hơn vào cơ chế học online của Contextual Bandit và RL.

Dynamic Pricing là một bài toán học từ phản hồi

Giả sử một hệ thống thương mại điện tử phải chọn giá cho một sản phẩm tại thời điểm t. Hệ thống quan sát bối cảnh hiện tại xt, ví dụ thời gian trong ngày, mùa vụ, tồn kho, kênh bán, đặc điểm sản phẩm và tín hiệu nhu cầu. Sau đó nó chọn mức giá pt và quan sát phản hồi như mua hoặc không mua.

Nếu khách hàng mua một đơn vị, reward doanh thu đơn giản có thể là:

rt = pt · yt

Trong đó yt có thể bằng 1 nếu có giao dịch và 0 nếu không. Nếu mục tiêu là lợi nhuận thay vì doanh thu, reward cần trừ giá vốn, phí giao hàng, chi phí khuyến mại hoặc các chi phí liên quan. Đây là chi tiết quan trọng: thuật toán chỉ tối ưu đại lượng được định nghĩa trong reward.

Nếu biết chính xác hàm cầu theo giá, bài toán có thể trở thành một bài toán tối ưu hóa thông thường. Nhưng trong thực tế, quan hệ giữa giá và xác suất mua thường chưa được biết đầy đủ, thay đổi theo thời gian và bị ảnh hưởng bởi nhiều covariate. Nghiên cứu về dynamic pricing với covariate mô hình hóa trực tiếp tình huống trong đó demand phụ thuộc đồng thời vào giá và vector bối cảnh quan sát được [3].

Do đó hệ thống phải vừa học phản ứng của thị trường vừa kiếm doanh thu. Chọn mãi mức giá đang có vẻ tốt nhất là exploitation. Thử các mức giá chưa chắc chắn để thu thập thông tin là exploration. Đây là đánh đổi trung tâm của bandit và reinforcement learning.

Contextual Bandit và Reinforcement Learning trong Dynamic Pricing Contextual Bandit Context xₜ nhu cầu, thời gian... Chọn giá pₜ explore / exploit Reward rₜ doanh thu / lợi nhuận cập nhật mô hình Reinforcement Learning State sₜ tồn kho, thời gian... Giá aₜ policy π(a|s) rₜ + state mới sₜ₊₁ Bandit: quyết định hiện tại chủ yếu được đánh giá bằng reward hiện tại. Không mô hình hóa đầy đủ tác động dài hạn của action. RL: action hiện tại thay đổi state tương lai và do đó thay đổi reward các bước sau. Mục tiêu là cumulative return.
Hình 1. Khác biệt cốt lõi giữa Contextual Bandit và Reinforcement Learning trong bài toán Dynamic Pricing.

Contextual Bandit: học giá tốt nhất cho từng bối cảnh

Trong multi-armed bandit cơ bản, mỗi action có thể được hình dung như một “cánh tay”. Với Dynamic Pricing rời rạc, mỗi cánh tay có thể là một mức giá, chẳng hạn 80, 100, 120 hoặc 140. Thuật toán chọn một giá, nhận reward và chỉ quan sát kết quả của mức giá đã chọn.

Contextual Bandit bổ sung vector bối cảnh xt. Thuật toán không còn hỏi “mức giá nào tốt nhất nói chung?” mà hỏi “mức giá nào có expected reward tốt nhất trong bối cảnh hiện tại?”. Li và cộng sự đã sử dụng mô hình contextual bandit cho recommendation với thông tin người dùng và nội dung; cấu trúc ra quyết định tương tự có thể áp dụng cho pricing khi action được thay bằng mức giá [2].

Một thuật toán kinh điển là LinUCB. Với mỗi action a, ta giả định expected reward có thể xấp xỉ tuyến tính theo context:

E[rt | xt, a] ≈ θaTxt

Từ dữ liệu đã quan sát, thuật toán ước lượng θa rồi cộng thêm một exploration bonus:

θ̂a = Aa−1ba
UCBa(x) = θ̂aTx + α√(xTAa−1x)

Thành phần đầu là reward dự đoán. Thành phần thứ hai tăng điểm cho những action mà mô hình còn chưa chắc chắn. Hệ số α càng lớn, thuật toán càng ưu tiên exploration.

Thay vì upper confidence bound, có thể sử dụng Thompson Sampling: lấy mẫu một mô hình từ posterior rồi chọn action tốt nhất theo mô hình vừa lấy mẫu. Ferreira, Simchi-Levi và Wang nghiên cứu Thompson Sampling trong revenue management khi demand parameters chưa biết và tồn kho có giới hạn, trực tiếp đặt bài toán dưới đánh đổi exploration–exploitation [4].

Regret đo chi phí của việc chưa biết thị trường

Bandit thường được đánh giá bằng regret: chênh lệch tích lũy giữa reward của policy học online và reward của một policy tham chiếu biết trước action tốt nhất trong mô hình đang xét.

RT = Σt=1T [ rt(pt*) − rt(pt) ]

Biểu thức trên là dạng trực giác. Trong phân tích lý thuyết, regret thường được định nghĩa theo expected reward và phụ thuộc giả định thống kê cụ thể. Wang, Talluri và Li nghiên cứu dynamic pricing với covariate và chỉ ra các thuật toán dựa trên UCB và Thompson Sampling có thể đạt regret thấp dưới mô hình demand được giả định trong công trình của họ [3]. Không nên chuyển các bảo đảm đó sang một hệ thống pricing bất kỳ nếu các giả định không còn đúng.

Khi nào Contextual Bandit chưa đủ?

Contextual Bandit phù hợp nhất khi hậu quả của action có thể xem như gần như kết thúc sau reward hiện tại. Nhưng nhiều bài toán pricing không có tính chất này.

Hãy xét một khách sạn có 20 phòng còn lại và ba ngày trước ngày nhận phòng. Bán một phòng hôm nay với giá thấp tạo doanh thu ngay nhưng đồng thời làm giảm inventory có thể bán vào ngày mai. Nếu nhu cầu ngày cuối tăng mạnh, quyết định hiện tại đã ảnh hưởng trực tiếp đến cơ hội doanh thu trong tương lai.

Tương tự, khách hàng có thể quan sát lịch sử giá và trì hoãn mua nếu họ kỳ vọng giá sẽ giảm. Trong thị trường cạnh tranh, đối thủ cũng có thể phản ứng với mức giá hiện tại. Những trường hợp này tạo ra state transition: action hôm nay thay đổi trạng thái mà agent sẽ gặp trong tương lai.

Quy tắc phân biệt hữu ích: nếu câu hỏi chủ yếu là “mức giá nào đem lại reward tốt nhất với context hiện tại?”, Contextual Bandit thường là điểm khởi đầu hợp lý. Nếu câu hỏi là “mức giá hôm nay ảnh hưởng thế nào đến chuỗi quyết định và lợi ích các ngày sau?”, bài toán đã gần với Reinforcement Learning.

Reinforcement Learning mô hình hóa tác động dài hạn của giá

RL thường mô hình hóa môi trường bằng một quá trình quyết định Markov (Markov Decision Process, MDP). Với Dynamic Pricing, một thiết kế state có thể bao gồm:

  • Inventory: số lượng hàng hoặc công suất còn lại.
  • Time: thời gian còn lại trong mùa bán hoặc trước deadline.
  • Demand signals: lưu lượng truy cập, booking pace, mùa vụ.
  • Price history: giá gần đây nếu hành vi khách phụ thuộc lịch sử giá.
  • Market state: một số tín hiệu cạnh tranh khi được phép sử dụng và thu thập hợp pháp.

Action là giá hoặc mức điều chỉnh giá. Reward có thể là lợi nhuận tại bước hiện tại. Môi trường sau đó chuyển từ state st sang st+1.

Mục tiêu RL không chỉ tối đa reward tại bước hiện tại mà tối đa expected cumulative return:

Gt = rt + γrt+1 + γ2rt+2 + …

Trong đó γ là discount factor. Khi γ gần 0, agent ưu tiên reward ngắn hạn. Khi γ lớn hơn, reward tương lai có ảnh hưởng mạnh hơn đến quyết định hiện tại [1].

Q-learning học giá trị của từng quyết định

Một thuật toán nền tảng là Q-learning. Nó học hàm Q(s, a): expected return khi chọn action a tại state s rồi tiếp tục theo policy học được.

Q(s,a) ← Q(s,a) + η[r + γ maxa′Q(s′,a′) − Q(s,a)]

Khác với bandit, update không chỉ sử dụng reward hiện tại. Thành phần γ max Q(s′,a′) truyền giá trị của trạng thái tương lai ngược về quyết định hiện tại.

Rana và Oliveira đã nghiên cứu Q-learning cho dynamic pricing với sản phẩm có inventory hữu hạn và deadline bán, trong môi trường demand chưa biết và có thể không dừng [5]. Đây là ví dụ rõ ràng về trường hợp pricing được xem như bài toán RL thay vì một lựa chọn action độc lập ở từng thời điểm.

Ví dụ Python: LinUCB tự học mức giá theo context

Ví dụ dưới đây mô phỏng một Contextual Bandit đơn giản. Có bốn mức giá ứng viên. Context gồm bias, mức nhu cầu và biến weekend. Xác suất mua thật được môi trường mô phỏng bằng một hàm logistic nhưng thuật toán không biết hàm này; LinUCB chỉ cập nhật mô hình từ reward quan sát được.

Đây là code minh họa, không phải mô hình production và không mang bảo đảm lý thuyết của LinUCB dưới môi trường logistic này vì mô hình expected reward tuyến tính chỉ là một xấp xỉ.

import numpy as np

rng = np.random.default_rng(7)
prices = np.array([80.0, 100.0, 120.0, 140.0])

d = 3
alpha = 1.5

A = [np.eye(d) for _ in prices]
b = [np.zeros(d) for _ in prices]

def sigmoid(z): return 1.0 / (1.0 + np.exp(-z))

def purchase_probability(price, demand, weekend): # Hàm demand thật chỉ tồn tại trong môi trường mô phỏng
z = (
-0.8
+ 2.0 * demand
+ 0.5 * weekend
- 0.025 * (price - 100.0)
) return sigmoid(z)

def select_price(x):
scores = []

```
for i in range(len(prices)):
    A_inv = np.linalg.inv(A[i])
    theta = A_inv @ b[i]

    mean = theta @ x
    bonus = alpha * np.sqrt(x @ A_inv @ x)
    scores.append(mean + bonus)

return int(np.argmax(scores))
```

total_revenue = 0.0
counts = np.zeros(len(prices), dtype=int)

for t in range(5000):
demand = rng.uniform(0.0, 1.0)
weekend = float(rng.random() < 2 / 7)

```
x = np.array([1.0, demand, weekend])

arm = select_price(x)
price = prices[arm]

prob = purchase_probability(price, demand, weekend)
purchase = float(rng.random() < prob)
reward = price * purchase

A[arm] += np.outer(x, x)
b[arm] += reward * x

counts[arm] += 1
total_revenue += reward
```

print("Price counts:") for price, count in zip(prices, counts): print(f"{price:.0f}: {count}")

print(f"Total revenue: {total_revenue:.2f}") 

Lúc đầu các ma trận A gần như chưa chứa thông tin nên exploration bonus tương đối lớn. Sau nhiều lượt, mỗi action tích lũy dữ liệu ở những context mà nó từng được thử; uncertainty giảm và quyết định ngày càng dựa nhiều hơn vào estimated reward.

Một chi tiết dễ bỏ qua là thuật toán chỉ quan sát reward của mức giá đã hiển thị. Nếu giá 120 được chọn, ta không biết cùng khách hàng đó sẽ phản ứng thế nào với giá 100 hay 140. Đây là bandit feedback, khác với supervised learning nơi label của mọi action thường được giả định là có sẵn.

Ví dụ Q-learning: giá ảnh hưởng đến tồn kho tương lai

Ví dụ tiếp theo thêm hai biến state: số sản phẩm còn lại và số bước bán còn lại. Khi một sản phẩm được bán, inventory giảm. Vì vậy action hiện tại làm thay đổi state tương lai và Q-learning có lý do để cân nhắc cả reward ngay lập tức lẫn giá trị của inventory còn lại.

import numpy as np

rng = np.random.default_rng(1)
prices = np.array([80.0, 110.0, 140.0])

max_inventory = 5
horizon = 8

Q = np.zeros((max_inventory + 1, horizon + 1, len(prices)))

lr = 0.08
gamma = 0.95
epsilon = 0.15

def buy_probability(price): return { 80.0: 0.75, 110.0: 0.48, 140.0: 0.25,
}[float(price)]

for episode in range(30000):
inventory = max_inventory

```
for time_left in range(horizon, 0, -1):
    if inventory == 0:
        break

    if rng.random() < epsilon:
        action = rng.integers(len(prices))
    else:
        action = int(np.argmax(Q[inventory, time_left]))

    price = prices[action]
    sold = rng.random() < buy_probability(price)
    reward = price if sold else 0.0

    next_inventory = inventory - int(sold)
    next_time = time_left - 1

    future = (
        np.max(Q[next_inventory, next_time])
        if next_inventory > 0 and next_time > 0
        else 0.0
    )

    td_target = reward + gamma * future
    td_error = td_target - Q[inventory, time_left, action]
    Q[inventory, time_left, action] += lr * td_error

    inventory = next_inventory
```

for inventory in [1, 3, 5]:
action = int(np.argmax(Q[inventory, horizon])) print( f"Inventory={inventory}: price={prices[action]:.0f}"
) 

Ví dụ này cố tình giữ môi trường rất nhỏ để bảng Q có thể học trực tiếp. Trong bài toán thực với state liên tục và nhiều biến, bảng Q trở nên quá lớn; khi đó có thể cần function approximation hoặc các thuật toán Deep RL. Tuy nhiên, việc chuyển sang DQN, actor–critic hoặc các phương pháp sâu hơn không sửa được một state/reward được thiết kế sai.

Contextual Bandit hay Reinforcement Learning?

Tiêu chí Contextual Bandit Reinforcement Learning
Mục tiêu Tối ưu reward theo context tại mỗi round. Tối ưu cumulative return qua nhiều bước.
Tác động của action Không mô hình hóa đầy đủ việc action thay đổi state tương lai. Action ảnh hưởng state transition và reward tương lai.
Ví dụ phù hợp Chọn mức giá theo traffic, thời điểm và tín hiệu nhu cầu khi inventory không phải yếu tố chiến lược chính. Airline, hotel, inventory hữu hạn, deadline, khách hàng có hành vi liên thời gian.
Độ phức tạp Thường thấp hơn và dễ đánh giá hơn. Cao hơn do state, transition và delayed reward.
Thuật toán điển hình LinUCB, Thompson Sampling, contextual ε-greedy. Q-learning, DQN, PPO, SAC và các biến thể actor–critic.

Không nên mặc định Deep RL là lựa chọn “cao cấp hơn”. Nếu action hiện tại hầu như không tạo ra hiệu ứng dài hạn đáng kể, Contextual Bandit có mô hình đơn giản hơn, ít biến số hơn và thường dễ triển khai online an toàn hơn.

Ngược lại, ép bài toán inventory hữu hạn vào contextual bandit thuần túy có thể bỏ qua opportunity cost của việc bán sớm. Cũng tồn tại các phương pháp bandit có resource constraints và revenue management chuyên biệt [4], vì vậy ranh giới giữa các nhóm phương pháp không hoàn toàn tuyệt đối.

Từ thuật toán đến hệ thống Dynamic Pricing thực tế

Một pricing agent tốt không thể chỉ gồm một model nhận feature rồi xuất giá. Hệ thống production phải kiểm soát dữ liệu, exploration, ràng buộc kinh doanh và đánh giá policy.

1. Xác định đúng reward

Tối đa doanh thu có thể dẫn đến policy khác hoàn toàn tối đa gross margin. Nếu reward chỉ là conversion rate, agent thậm chí có động cơ chọn giá rất thấp. Reward phải phản ánh đúng KPI kinh doanh và các chi phí quan trọng.

2. Exploration phải có guardrail

Bandit và RL cần exploration để học, nhưng production không nên cho phép agent thử mọi mức giá có thể. Action space nên bị giới hạn bởi price floor, price ceiling, quy tắc margin, inventory policy và các giới hạn pháp lý hoặc thương mại tương ứng.

3. Log propensity và context

Để đánh giá policy mới từ logged bandit data, cần biết không chỉ action và reward mà cả context và xác suất policy cũ chọn action đó. Nếu hệ thống chỉ lưu “giá đã hiển thị → có mua hay không” nhưng không lưu logic exploration, việc đánh giá off-policy sau này trở nên khó khăn hơn đáng kể.

4. Theo dõi non-stationarity

Demand tháng trước có thể không đại diện tháng này. Mùa vụ, chiến dịch quảng cáo, đối thủ, kinh tế vĩ mô hoặc thay đổi sản phẩm đều có thể làm distribution dịch chuyển. Một policy online cần cơ chế giảm trọng số dữ liệu quá cũ, retrain hoặc phát hiện drift thay vì giả định môi trường cố định.

5. Phân biệt correlation với tác động của giá

Dữ liệu lịch sử pricing thường có selection bias. Ví dụ doanh nghiệp có thể đã tăng giá vào những ngày nhu cầu cao; nhìn đơn giản vào dữ liệu có thể tạo ảo giác rằng giá cao làm demand tăng. Exploration có kiểm soát hoặc thiết kế thử nghiệm phù hợp giúp tách ảnh hưởng của giá khỏi các biến gây nhiễu tốt hơn.

6. Theo dõi tương tác cạnh tranh

Khi nhiều pricing agent cùng phản ứng với nhau, môi trường trở nên non-stationary và có thể xuất hiện hành vi thị trường không mong muốn. Nghiên cứu về RL trong pricing cạnh tranh cho thấy tương tác giữa các agent cần được đánh giá riêng thay vì giả định mỗi policy hoạt động trong môi trường cố định [6]. Trong ứng dụng thực tế, pricing tự động nên có giám sát và review pháp lý phù hợp với thị trường triển khai.

Một pipeline thực dụng: Context/State → Policy → Guardrails → Giá được phép → Phản hồi thị trường → Reward → Logging → Cập nhật policy → Monitoring. Guardrail nên nằm ngoài model để một policy lỗi không thể tự ý vượt qua các giới hạn kinh doanh đã quy định.

Kết luận

Contextual Bandit và Reinforcement Learning đều biến Dynamic Pricing thành một quá trình học liên tục từ phản hồi thị trường, nhưng chúng giải quyết hai cấu trúc quyết định khác nhau. Contextual Bandit tập trung vào action tốt trong context hiện tại, còn RL cần thiết khi giá hiện tại thay đổi trạng thái và cơ hội doanh thu trong tương lai.

Điểm quan trọng nhất không phải chọn thuật toán phức tạp nhất mà xác định đúng cấu trúc của bài toán: reward là gì, action có ảnh hưởng tương lai hay không, dữ liệu phản hồi được thu thập thế nào và exploration được giới hạn ra sao. Khi những yếu tố đó được mô hình hóa đúng, pricing agent mới có cơ hội học một policy tốt hơn theo thời gian thay vì đơn thuần thay đổi giá thường xuyên.

Đọc thêm trên The CS Note: Dynamic Pricing: Khi AI quyết định giá trên thị trường để xem bức tranh rộng hơn về dữ liệu, tối ưu hóa, cạnh tranh và các vấn đề khi AI tham gia quyết định giá.

Tài liệu tham khảo

  1. [1] R. S. Sutton and A. G. Barto, Reinforcement Learning: An Introduction, 2nd ed. Cambridge, MA, USA: MIT Press, 2018.
  2. [2] L. Li, W. Chu, J. Langford, and R. E. Schapire, “A Contextual-Bandit Approach to Personalized News Article Recommendation,” in Proc. 19th International Conference on World Wide Web, 2010, pp. 661–670, doi: 10.1145/1772690.1772758. DOI.
  3. [3] H. Wang, K. Talluri, and X. Li, “Technical Note—On Dynamic Pricing with Covariates,” Operations Research, vol. 73, no. 4, pp. 1932–1943, 2025, doi: 10.1287/opre.2021.0802. DOI.
  4. [4] K. J. Ferreira, D. Simchi-Levi, and H. Wang, “Online Network Revenue Management Using Thompson Sampling,” Operations Research, vol. 66, no. 6, pp. 1586–1602, 2018, doi: 10.1287/opre.2018.1755. DOI.
  5. [5] R. Rana and F. S. Oliveira, “Real-Time Dynamic Pricing in a Non-Stationary Environment Using Model-Free Reinforcement Learning,” Omega, vol. 47, pp. 116–126, 2014, doi: 10.1016/j.omega.2013.10.004. DOI.
  6. [6] A. Kastius and R. Schlosser, “Dynamic Pricing under Competition Using Reinforcement Learning,” Journal of Revenue and Pricing Management, vol. 21, pp. 50–63, 2022, doi: 10.1057/s41272-021-00285-3. DOI.
© The CS Note · THE CS NOTE

Nội dung gốc thuộc tác giả. Vui lòng không đăng lại toàn văn khi chưa được phép, trừ trường hợp pháp luật hoặc giấy phép áp dụng cho phép. Nội dung của bên thứ ba tuân theo quyền và giấy phép tương ứng.

Nguồn gốc: Dynamic Pricing với Contextual Bandit và Reinforcement Learning

Về trang chủ Về đầu bài

Bài Đăng Phổ Biến

Bài toán tháp Hà nội

Trải nghiệm Tháp Hà Nội Kéo thả đĩa hoặc chạm vào các nút bên dưới để di chuyển. Bạn phải chuyển toàn bộ đĩa sang cột ngoài cùng bên phải (Cột 3) mà không đặt đĩa to lên đĩa nhỏ. Cột 1 Cột 2 Cột 3 Điều khiển & Chế độ Số lượng đĩa 4 Tốc độ máy giải ↪ Undo ↻ Chơi lại 🤖 Máy tự giải Thống kê ván chơi Nước đã đi 0 Thời gian 00:00 Tối thiểu cần 15 Kỷ lục của bạn - Lịch sử và Nguồn gốc Truyền thuyết Bài toán Tháp Hà Nội (hay Tháp Brahma) là một trò chơi xếp hình toán học kinh điển được giới thiệu lần đầu vào năm 1883 bởi nhà toán học người Pháp Édouard L...

Bài toán phân tích cảm xúc trong văn bản

Bài toán phân tích cảm xúc (sentiment analysis) là một bài toán NLP nhằm xác định thái độ hoặc cảm xúc được thể hiện trong văn bản. Ví dụ, từ một đánh giá như “Điện thoại đẹp, chạy nhanh nhưng pin hơi yếu”, hệ thống có thể nhận biết rằng người dùng có cả nhận xét tích cực và tiêu cực. Điểm thú vị của bài toán nằm ở khoảng cách giữa cách con người hiểu ngôn ngữ và cách máy tính xử lý dữ liệu. Một hệ thống phân tích cảm xúc cần biến văn bản tự nhiên thành dữ liệu có cấu trúc, học được các mẫu ngôn ngữ từ dữ liệu huấn luyện và đưa ra dự đoán hợp lý trên những câu chưa từng gặp. 1. Bài toán phân tích cảm xúc bắt đầu từ đâu? Hãy tưởng tượng một cửa hàng trực tuyến có hàng nghìn đánh giá mỗi ngày. Con người có thể đọc từng đánh giá để biết khách hàng hài lòng hay không, nhưng việc này nhanh chóng trở nên tốn thời gian khi dữ liệu tăng lên. NLP có thể biến bài toán đó thành một bài toán phân loại. Với mỗi văn bản, hệ thống nhận vào một chuỗi ký...

KAN cho phân đoạn khối u não với bộ BraTS 2020

Kolmogorov-Arnold Network (KAN) mở ra một hướng khác với MLP truyền thống: thay vì chỉ học các trọng số vô hướng trên mỗi kết nối, KAN có thể học những hàm phi tuyến một biến trên các cạnh . Khi đưa ý tưởng này vào kiến trúc encoder-decoder như U-Net, ta có thể sử dụng convolution để giữ cấu trúc không gian của ảnh MRI và dùng KAN để thực hiện các phép biến đổi phi tuyến mạnh hơn trên representation trung gian. Một bài toán phù hợp để nghiên cứu hướng này là phân đoạn u thần kinh đệm trên BraTS 2020 . Dataset cung cấp MRI đa mô thức và yêu cầu xác định các vùng Whole Tumor (WT), Tumor Core (TC) và Enhancing Tumor (ET). Đây là bài toán 3D có sự mất cân bằng voxel lớn, hình dạng khối u rất đa dạng và ranh giới giữa các mô bệnh lý không đơn giản. Lưu ý học thuật quan trọng: U-KAN gốc được công bố cho nhiều benchmark phân đoạn ảnh y tế nhưng không báo cáo kết quả BraTS 2020. Một công trình sau đó đã mở rộng U-KAN sang 3D MRI brain tumor segmentation , nhưng đánh giá trên BraTS 2...

Tách từ trong tiếng Việt Word Segmentation

Tách từ tiếng Việt là bài toán xác định ranh giới giữa các từ trong một chuỗi văn bản. Khó khăn nằm ở chỗ khoảng trắng trong tiếng Việt thường phân cách các âm tiết , nhưng một từ hoàn chỉnh có thể gồm nhiều âm tiết như “sinh viên” , “đại học” , “công nghệ” hay “tự nhiên” . Tách từ đúng giúp các hệ thống NLP dựa trên từ biểu diễn văn bản hợp lý hơn, đặc biệt trong tìm kiếm, TF-IDF, phân loại văn bản, gán nhãn từ loại và một số mô hình ngôn ngữ tiếng Việt. Tuy nhiên, với các Transformer sử dụng tokenizer dưới mức từ như subword hoặc SentencePiece, tách từ thủ công không phải lúc nào cũng là bước bắt buộc . Việc có cần tách từ trước hay không phụ thuộc vào mô hình và pipeline cụ thể. Tóm tắt nội dung Khoảng trắng trong tiếng Việt không phải lúc nào cũng là ranh giới từ ; nhiều từ gồm hai hoặc nhiều âm tiết. Word segmentation và tokenization có liên quan nhưng không hoàn toàn đồng nghĩa. Ba hướng chính gồm dựa trên từ điển, mô hình thống kê và mô hình học sâu . Tron...

KAN là gì? Mạng Kolmogorov-Arnold khác MLP thế nào?

Kolmogorov-Arnold Network (KAN) là một kiến trúc mạng nơ-ron trong đó mỗi cạnh không chỉ chứa một trọng số vô hướng mà mang một hàm một biến có thể học được . Đây là khác biệt cốt lõi so với Multi-Layer Perceptron (MLP), nơi các cạnh chủ yếu thực hiện phép nhân với trọng số còn hàm kích hoạt thường được áp dụng tại các node. KAN được lấy cảm hứng từ định lý biểu diễn Kolmogorov-Arnold và đặc biệt đáng chú ý trong các bài toán xấp xỉ hàm, mô hình hóa khoa học và symbolic regression. Tuy nhiên, KAN không nên được hiểu là kiến trúc đã thay thế MLP trong mọi bài toán Deep Learning; khả năng biểu diễn, chi phí tính toán và mức độ phù hợp của hai kiến trúc khác nhau theo từng nhiệm vụ. Tóm tắt nội dung MLP học chủ yếu trọng số trên các cạnh , còn KAN đặt hàm một biến học được trên từng cạnh . Một KAN layer cộng kết quả của nhiều hàm cạnh để tạo activation của node tiếp theo. KAN gốc sử dụng B-spline để tham số hóa các hàm phi tuyến trên cạnh. KAN có lợi thế đáng chú ý về trực...