Khi xử lý văn bản, lựa chọn kiến trúc mô hình phụ thuộc vào cách vector hóa. Bài này so sánh mô hình Linear (trên binary vector) và Conv1D (trên int vector).
Mã so sánh
print("So sánh hai mô hình")
print("Linear model trên binary vectorized data:")
print(binary_model.summary())
print("ConvNet model trên int vectorized data:")
print(int_model.summary())
Kết quả cấu trúc mô hình
Linear model trên binary vectorized data: Model: "sequential" Layer (type) Output Shape Param # ================================================= dense (Dense) (None, 4) 40,004 Total params: 40,004 (Trainable: 40,004) ConvNet model trên int vectorized data: Model: "sequential_1" Layer (type) Output Shape Param # ================================================= embedding (Embedding) (None, None, 64) 640,064 conv1d (Conv1D) (None, None, 64) 20,544 global_max_pooling1d (None, 64) 0 dense_1 (Dense) (None, 4) 260 Total params: 660,868 (Trainable: 660,868)
Phân tích
- Linear Model: Chỉ 1 lớp Dense(4) trên input 10.000-d binary vector. Rất nhẹ (40k params), train nhanh.
- Conv1D Model: Embedding(10001, 64) → Conv1D(64, kernel=5) → GlobalMaxPool → Dense(4). Nặng hơn (660k params) do embedding layer.
- Embedding học được biểu diễn nghĩa (semantic) của từ, Conv1D bắt pattern n-gram cục bộ.
- Trade-off: Linear đơn giản, hiệu quả tốt trên bài toán đơn giản; Conv1D mạnh hơn cho ngữ cảnh phức tạp.