Dự đoán thị trường cổ phiếu bằng phương pháp học sâu không giám sát Generative adversarial network

6 49 1
Dự đoán thị trường cổ phiếu bằng phương pháp học sâu không giám sát Generative adversarial network

Đang tải... (xem toàn văn)

Thông tin tài liệu

Thị trường cổ phiếu có một vai trò quan trọng trong sự phát triển của xã hội hiện đại. Chúng cho phép triển khai các nguồn lực kinh tế. Sự thay đổi giá cổ phiếu phản ánh những thay đổi trên thị trường. Với khả năng xử lý dữ liệu mạnh mẽ trên nhiều lĩnh vực, học sâu cũng được sử dụng một cách rộng rãi trong lĩnh vực tài chính như: Dự đoán thị trường cổ phiếu, đầu tư tối ưu, xử lý thông tin tài chính và thực hiện các chiến lược giao dịch tài chính.

Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XIII Nghiên cứu ứng dụng Công nghệ thông tin (FAIR), Nha Trang, ngày 8-9/10/2020 DOI: 10.15625/vap.2020.00156 DỰ ĐOÁN THỊ TRƯỜNG CỔ PHIẾU BẰNG PHƯƠNG PHÁP HỌC SÂU KHÔNG GIÁM SÁT GENERATIVE ADVERSARIAL NETWORK Bùi Thanh Hùng, Nguyễn Minh Lợi Lab Phân tích liệu Trí tuệ nhân tạo Viện Kỹ thuật - Công nghệ Đại học Thủ Dầu Một Số Trần Văn Ơn, phƣờng Phú Hịa, thành phố Thủ Dầu Một, Bình Dƣơng, Việt Nam hungbt.cntt@tdmu.edu.vn, nmloi2010@gmail.com TĨM TẮT: Thị trường cổ phiếu có vai trò quan trọng phát triển xã hội đại Chúng cho phép triển khai nguồn lực kinh tế Sự thay đổi giá cổ phiếu phản ánh thay đổi thị trường Với khả xử lý liệu mạnh mẽ nhiều lĩnh vực, học sâu sử dụng cách rộng rãi lĩnh vực tài như: dự đốn thị trường cổ phiếu, đầu tư tối ưu, xử lý thông tin tài thực chiến lược giao dịch tài Do đó, dự đốn thị trường cổ phiếu xem lĩnh vực phổ biến quý giá lĩnh vực tài Trong nghiên cứu này, đề xuất phương pháp học không giám sát Generative Adversarial Network (GAN) dự đốn giá cổ phiếu Mơ hình GAN gồm lớp, lớp nhớ ngắn dài chiều Bidirectional Long Short-Term Memory (Bi-LSTM) dùng để phân biệt (Discriminator) lớp Long ShortTerm Memory (LSTM) sử dụng để dự đoán giá cổ phiếu (Generator) LSTM dựa liệu cổ phiếu giao dịch tạo liệu giả giống liệu phân phối, lớp phân biệt thiết kế giải thuật Bi-LSTM với mục đích phân biệt liệu cổ phiếu thật liệu cổ phiếu giả tạo Chúng thực nghiệm cổ phiếu AMZN (Amazon) cổ phiếu có chuỗi ngày giao dịch phạm vi rộng lớn dùng chúng để thử dự đoán giá đóng hàng ngày Kết thực nghiệm cho thấy phương pháp GAN đề xuất chúng tơi đạt kết tốt việc dự đoán giá cổ phiếu so với nhiều mơ hình dự đốn khác Từ khóa: Học sâu khơng giám sát; Dự đốn thị trường chứng khoán; GAN; LSTM; Bi-LSTM I GIỚI THIỆU Dự đoán thị trƣờng cổ phiếu vấn đề quan trọng nhiều thách thức Nhiều phân tích giả định lĩnh vực tài cho thấy thị trƣờng cổ phiếu hồn tồn dự đốn đƣợc Các kỹ thuật phân tích lý thuyết đầu tƣ phƣơng pháp để dự đốn trực tiếp giá cổ phiếu thông qua việc nghiên cứu liệu thị trƣờng cổ phiếu khứ Một giả định ý nghĩa có tên Mean Reversion mà giá trị cổ phiếu tạm thời chúng có xu hƣớng thay đổi giá trị trung bình theo thời gian Giả định có phát triển cao gọi Moving Average Reversion (MAR) [1], mà giá trị trung bình giá trị có ý nghĩa cửa sổ thời gian khứ, ví dụ nhƣ khoảng thời gian ngày tuần Trong nghiên cứu chúng tơi đề xuất mơ hình GAN để dự báo giá đóng hàng ngày cổ phiếu Mơ hình GAN lớp Bi-LSTM LSTM lớp Long Short Term Memory (LSTM) đƣợc xem nhƣ lớp tạo lớp Bidirectional Long Short-Term Memory (Bi-LSTM) đƣợc xem nhƣ lớp phân biệt Phần lại báo đƣợc tổ chức nhƣ sau Phần báo đề cập tới nghiên cứu liên quan Phần đề cập tới mơ hình đề xuất Phần đánh giá thực nghiệm Và cuối kết luận tổng kết lại kết đạt đƣợc II CÁC NGHIÊN CỨU LIÊN QUAN Dự đoán thị trƣờng cổ phiếu đƣợc xem nhƣ vấn đề dự báo chuỗi thời gian thuật toán giải toán thuật toán Autoregressive Integrated Moving Average (gọi tắt ARIMA) [2] Thuật toán ARIMA thực tốt chuỗi thời gian tuyến tính khơng thay đổi nhƣng không thực tốt liệu phi tuyến tính biến đổi nhƣ thị trƣờng cổ phiếu Cách tiếp cận khác để giải vấn đề kết hợp ARIMA SVM [3] Vì thực tiễn dự báo đƣợc cấu thành thành phần tuyến tính phi tuyến, dự đốn phần tuyến tính với ARIMA phần phi tuyến tính với SVM Một cách tiếp cận khác kết hợp Wavelet với SVM [4], Wavelet thực phân tích liệu cổ phiếu SVM dùng để dự báo Các nghiên cứu sau sử dụng mạng nơ ron nhân tạo Artificial Neural Network (ANN) kết hợp với thuật toán ARIMA để dự đoán phần liệu giá cổ phiếu phi tuyến tính [5] Hỗn hợp biến đổi Wavelet ANN đƣợc đề xuất giải pháp hiệu việc giải vấn đề [6] Thuật toán Convolutional Neural Network (CNN) đƣợc dùng việc dự đoán giá cổ phiếu [7] Một số nghiên cứu đề xuất mơ hình mạng nơ ron hồi quy - RNN, học tăng cƣờng Reinforcement learning [8-11] III MƠ HÌNH ĐỀ XUẤT GAN khung huấn luyện với mô hình lớp trị chơi có tổng [12] Trong trình truyền nghịch, Một lớp đƣợc dùng để tạo liệu giả giống hệt nhƣ liệu thật, lớp kiểm tra đóng vai trò thẩm phán để phân biệt liệu thật liệu giả đƣợc tạo Chúng đạt tới điểm lý tƣởng mà lớp phân biệt phân biệt hai loại liệu Tại điểm lớp tạo chụp lại liệu phân phối trò chơi Dựa nguyên tắc này, đề xuất cấu trúc GAN để dự đoán giá cổ phiếu 102 DỰ ĐOÁN THỊ TRƢỜNG CỔ PHIẾU BẰNG PHƢƠNG PHÁP HỌC SÂU KHÔNG GIÁM SÁT GENERATIVE … 3.1 Lớp tạo - The Generator Mơ hình lớp tạo chúng tơi đƣợc thiết kế Mạng nhớ dài-ngắn (Long Short Term Memory networks LSTM), LSTM có khả xử lý mạnh mẽ liệu chuỗi thời gian, dạng đặc biệt RNN, có khả học đƣợc phụ thuộc xa LSTM đƣợc giới thiệu Hochreiter & Schmidhuber (1997) [13], sau đƣợc cải tiến phổ biến nhiều ngƣời ngành Chúng hoạt động hiệu nhiều toán khác nên dần trở nên phổ biến nhƣ LSTM đƣợc thiết kế để tránh đƣợc vấn đề phụ thuộc xa (long-term dependency) Việc nhớ thông tin suốt thời gian dài đặc tính mặc định chúng, ta khơng cần phải huấn luyện để nhớ đƣợc Tức nội ghi nhớ đƣợc mà khơng cần can thiệp LSTM có kiến trúc dạng chuỗi nhƣ RNN, nhƣng mơđun có cấu trúc khác với mạng RNN chuẩn Thay có tầng mạng nơron, chúng có tầng tƣơng tác với cách đặc biệt Hình Mạng LSTM LSTM có thành phần là: Tế bào trạng thái (cell state), Cổng (gates), Sigmoid Tanh Cho chuỗi vectơ (x1, x2, …,xn), σ hàm sigmoid logistic, trạng thái ẩn ht, LSTM thời điểm t đƣợc tính nhƣ sau: ht = ot ∗ tanh(ct) ot = tanh(Wx0xt + Wh0ht-1 + Wc0ct + bo) ct = ft ∗ ct-1 + it ∗ tanh(Wxcxt + Whcht-1 + bc) ft = σ(Wxfxt + Whfht-1 + Wcfct-1 + bf) it = σ(Wxixt + Whiht-1 + Wcict-1 + bi) Trong nghiên cứu này, xây dựng mạng LSTM xử lý liệu đầu vào với yếu tố tài để dự đốn giá đóng tƣơng lai Năm yếu tố liệu cổ phiếu ngày High Price, Low Price, Open Price, Close Price, Volume yếu tố đặc trƣng quan trọng khơng có dự đốn giá phƣơng pháp phân tích Mean Reversion, MAR Vì yếu tố đƣợc dùng nhƣ đặc trƣng liệu cho dự +, bao gồm liệu cổ phiếu hàng ngày t ngày Mỗi đoán giá Giả sử nhập vào X = * X vector đƣợc tạo từ đặc trƣng nhƣ sau: [ ] =[ ] Cấu trúc lớp tạo đƣợc nhƣ Hình Để đơn giản bỏ qua chi tiết thuật tốn LSTM Với lớp tạo chúng tơi trích xuất thuật tốn LSTM đặt vào lớp kết nối đầy đủ với tế bào thần kinh để tạo ̂ để đạt đƣợc gần chúng tơi lấy ̂ để dự đốn giá đóng t+1 ngày Hình Lớp tạo đƣợc thiết kế với giải thuật LSTM Đầu lớp tạo G(X) đƣợc định nghĩa nhƣ sau: G(X) = ̂ = g(X), = δ( + ) Bùi Thanh Hùng, Nguyễn Minh Lợi 103 + đƣợc nhập vào δ nơi để hàm g(.) biểu thị đầu LSTM đầu LSTM với X = * Leaky Rectified Linear Unit (ReLU) kích hoạt biểu thị cho trọng số bias lớp kết nối đầy đủ Chúng dùng hàm Dropout nhƣ phƣơng pháp để tránh bị q tải Hơn chúng tơi tiếp tục dự đoán ̂ với ̂ X 3.2 Lớp phân biệt - The Discriminator Mục đích lớp phân biệt tạo hàm phân biệt D để phân loại liệu vào Lớp phân biệt mong đợi Output nhập vào liệu giả Output nhập vào liệu thật Ở đây, chọn lớp Bi-LSTM lớp phân biệt với lớp input, lớp output lớp ẩn Trong đó, lớp ẩn gồm lớp mạng LSTM đơn đƣợc sử dụng đồng thời độc lập để mơ hình hố chuỗi đầu vào theo hƣớng: từ trái sang phải (forward LSTM) từ phải sang trái (backward LSTM) Hàm Leaky ReLU đƣợc dùng nhƣ hàm kích hoạt lớp với lớp ẩn hàm sigmoid đƣợc dùng nhƣ lớp Trong đó, Entropy chéo đƣợc chọn nhƣ hàm loss để tối ƣu Bi-LSTM Mơ hình Bidirectional LSTM [14] đƣợc trình bày Hình Hình Mơ hình Bidirectional LSTM ̂ } nhƣ liệu giả Xfake so sánh + ̂ để lấy { + nhƣ liệu thật Xreal Out put lớp phân biệt đƣợc định nghĩa Cụ thể, so sánh tập X=* + X=* để lấy * nhƣ sau: D(Xfake) = σ(d(Xfake)), D(Xreal) = σ(d(Xreal)) d(.) biểu thị cho Output Bi-LSTM biểu thị cho hàm kích hoạt Sigmoid Cả hai Xfake Xreal có Output giá trị vơ hƣớng Hình cấu trúc lớp phân biệt Hình Cấu trúc Lớp phân biệt sử dụng Bi-LSTM 3.3 Cấu trúc GAN Với hai mơ hình đƣợc đề cập đề xuất cấu trúc GAN chúng tơi Theo ngƣời chơi trò chơi minimax, G D đề cố gắng tối ƣu giá trị hàm Tƣơng tự định nghĩa tối ƣu giá trị V(G, D) nhƣ sau: ( ) E, ( , )- ( ( )- Chúng định nghĩa hàm loss lớp tạo Gloss hàm loss lớp phân biệt Dloss để tối ƣu giá trị hàm Cụ thể, kết hợp hàm Mean Square Error (MSE) với hàm loss lớp tạo GAN để cấu thành Gloss cấu trúc Gloss Dloss đƣợc định nghĩa nhƣ sau: =- ∑ ( ) ∑ ( )/ DỰ ĐOÁN THỊ TRƢỜNG CỔ PHIẾU BẰNG PHƢƠNG PHÁP HỌC SÂU KHÔNG GIÁM SÁT GENERATIVE … 104 ∑(̂ ∑ ( ) ( )) Hàm mát đƣợc tạo với , tƣơng ứng tham số mà chúng tơi đặt tự nhiên Hình cấu trúc GAN Lý chọn Xfake Xreal ̂ Lớp phân biệt chúng tơi mong đợi Lớp phân biệt chụp đƣợc tƣơng quan thơng tin chuỗi thời gian X s Hình Cấu trúc GAN đề xuất IV THỰC NGHIỆM 4.1 Dữ liệu Chúng đánh giá mô hình chúng tơi liệu cổ phiếu AMZN from Amazon.com Inc Tất liệu cổ phiếu đƣợc lấy từ trang web https://www.alphavantage.co Cơng ty tài Alphavantage Chúng chọn thời gian giao dịch khoảng 10 năm (bao gồm 5000 mảnh liệu) Ví dụ, vài cổ phiếu đƣợc Bảng Ngày giao dịch khơng liên tục giới hạn giao dịch vào cuối tuần ngày nghỉ Bảng Dữ liệu cổ phiếu từ AMZN Tên AMZN Thời gian 10/30/2019 10/31/2019 11/1/2019 11/4/2019 11/5/2019 11/6/2019 11/7/2019 11/8/2019 11/11/2019 Open 143,52 144,9 144,26 144,83 144,97 144,37 143,84 143,98 145,34 High 145 144,93 144,92 145 145,02 144,52 144,88 145,99 146,42 Low 142,79 142,99 142,965 144,16 143,905 143,2 143,77 143,76 144,73 Close 144,61 143,37 143,72 144,55 144,46 144,06 144,26 145,96 146,11 Volumn 18496591 24605135 33128366 16911999 18250172 16575798 17786715 16752939 14370178 11/12/2019 146,28 147,57 146,06 147,07 18648712 Chúng tơi chuẩn hóa liệu với giả định MAR đƣợc đề cập nhƣ sau: =( − )/ để mô tả độ sai lệch chuẩn X Chúng chọn t=5 theo kinh nghiệm chúng tơi cố gắng dự đốn liệu ngày tới liệu tuần trƣớc (giao dịch đƣợc giới hạn cuối tuần) Ví dụ, chúng tơi tính tốn mơ tả độ sai lệch chuẩn liệu ngày để chuẩn hóa liệu Sau đó, liệu chuẩn hóa đƣợc dùng để dự đoán liệu cho ngày thứ Dữ liệu trình Training Testing đƣợc xử lý lúc nhƣ 4.2 Mơ hình huấn luyện Mục đích từ yếu tố để dự đốn giá đóng ngày tới từ liệu t ngày trƣớc Lý sử dụng yếu tố ngày tới lớp tạo hỗ trợ tìm phân phối liệu thật chúng tơi lấy giá đóng từ liệu đƣợc tạo Dữ liệu đƣợc chia làm hai phần cho Training Testing Chúng chọn 95 % liệu cổ phiếu cho Traing sử dụng % (250 mẫu liệu) cho Testing Bùi Thanh Hùng, Nguyễn Minh Lợi 105 Hàm loss trình Training khơng có tiến trình xử lý đối nghịch lớp phân biệt lớp tạo suốt trình huấn luyện Cả hai lớp phân biệt lớp tạo đƣợc tối ƣu hóa suốt tiến trình đối nghịch 4.3 Kết Chúng đánh giá đƣợc hiệu dự báo mơ hình chúng tơi tiêu chí thống kê nhƣ: Lỗi bình phƣơng gốc (RMSE), Lợi nhuận trung bình (AR), Phần trăm bình quân tuyệt đối (MAPE) Lỗi bình quân tuyệt đối (MAE) ̂ tiêu chí đƣợc tính theo cơng thức Giả sử giá đóng thật giá đóng dự đoán k ngày dƣới đây: RMSE=√ ∑ AR= ∑ (̂ ( MAE= ∑ MAPE= ∑ ) ), if ̂ |̂ ̂ | |̂ | Chúng so sánh mơ hình đề xuất chúng tơi với mơ hình: ANN, véctơ hỗ trợ hồi quy (SVR), Bayes, LSTM Kết dự đoán đƣợc Bảng với phần tô đậm kết tốt Các độ đo MAE, RMSE MAPE có giá trị thấp có nghĩa dự đốn giá đóng gần với liệu thật AR giá trị trung bình cổ phiếu dựa phƣơng pháp dự đốn Có thể thấy phƣơng pháp dự đốn chúng tơi đạt đƣợc kết tốt so với phƣơng pháp khác Bảng Kết đánh giá mơ hình Mơ hình ANN Bayes SVR RMSE 9,0264 7,4632 8,1623 AR 0,5068 0,6326 0,7134 MAE 7,2035 5,2134 4,7236 MAPE 0,0708 0,0571 0,0412 LSTM 5,3526 0,6725 4,0268 0,0168 Mơ hình đề xuất GAN 4,0346 0,7478 3,4201 0,0145 V KẾT LUẬN Trong nghiên cứu đề xuất phƣơng pháp học không giám sát GAN để dự đốn giá cổ phiếu Chúng tơi tiến hành thực nghiệm liệu thực đánh giá kết với phƣơng pháp khác Kết cho thấy phƣơng pháp GAN đề xuất đạt kết tốt Trong tƣơng lai, tiếp tục tìm hiểu cách trích xuất đặc trƣng quan trọng tối ƣu mơ hình chúng tơi để học liệu phân phối cách xác hơn, từ chúng tơi đạt kết dự đoán tốt phƣơng pháp đề xuất TÀI LIỆU THAM KHẢO [1] Li, B., Hoi, S C H., “On-line portfolio selection with moving average reversion”, in: Proceedings of the 29th International Conference on Machine Learning, ICML 2012, Edinburgh, Scotland, UK, June 26 - July 1, 2012 [2] Box, G E P., Jenkins, G M., “Time series analysis: Forecasting and control”, Journal of Time 31, pp 238-242, 1976 [3] Pai, P F., Lin, C S., “A hybrid arima and support vector machines model in stock price forecasting”, Omega 33, pp 497-505, 2005 [4] Huang, S., Wang, H., “Combining time-scale feature extractions with svms for stock index forecasting”, in: Neural Information Processing, 13th International Conference, ICONIP 2006, Hong Kong, China, October 3-6, 2006, Proceedings, Part III, pp 390-399, 2006 [5] Areekul, P., Senjyu, T., Toyama, H., Yona, A., “A hybrid arima and neural network model for short-term price forecasting in deregulated market”, IEEE Transactions on Power Systems Pwrs, 2010 [6] Chandar, S K., Sumathi, M., Sivanandam, S N., “Prediction of stock market price using hybrid of wavelet transform and artificial neural network”, Indian Journal of Science & Technology 9, 2016 106 DỰ ĐOÁN THỊ TRƢỜNG CỔ PHIẾU BẰNG PHƢƠNG PHÁP HỌC SÂU KHÔNG GIÁM SÁT GENERATIVE … [7] Tsantekidis, A., Passalis, N., Tefas, A., Kanniainen, J., Gabbouj, M., Iosifidis, A., “Forecasting stock prices from the limit order book using convolutional neural networks”, in: 19th IEEE Conference on Business Informatics, CBI 2017, Thessaloniki, Greece, July 24-27, 2017, Volume 1: Conference Papers, pp 7-12, 2017 [8] Rather, A M., Agarwal, A., Sastry, V N., “Recurrent neural network and a hybrid model for prediction of stock returns”, Expert Syst Appl 42, pp 3234-3241, 2015 [9] Saad, E.W., Prokhorov, D V., II, D C W., “Comparative study of stock trend prediction using time delay, recurrent and probabilistic neural networks”, IEEE Trans Neural Networks 9, pp 1456-1470, 1998 [10] Ding, X., Zhang, Y., Liu, T., Duan, J., 2015 “Deep learning for event-driven stock prediction”, in: Proceedings of the Twenty-Fourth International Joint Conference on Artificial Intelligence, IJCAI 2015, Buenos Aires, Argentina, July 25-31, pp 2327-2333, 2015 [11] Nevmyvaka, Y., Feng, Y., Kearns, M J., “Reinforcement learning for optimized trade execution”, in: Machine Learning, Proceedings of the Twenty-Third International Conference (ICML 2006), Pittsburgh, Pennsylvania, USA, June 25-29, pp 673-680, 2006 [12] Goodfellow, I J., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., Courville, A.C., Bengio, Y., “Generative adversarial nets”, in: Advances in Neural Information Processing Systems 27: Annual Conference on Neural Information Processing Systems 2014, Montreal, Quebec, Canada, pp 2672-2680, December 8-13 2014 [13] S Hochreiter and J Schmidhuber, “Long Short-Term Memory”, Neural Computation, Vol 9, pp 1735-1780, 1997 [14] Zhiheng Huang, Wei Xu, and Kai Yu “Bidirectional LSTM-CRF models for sequence tagging” arXiv preprint arXiv:1508.01991 2015 STOCK PREDICTION USING DEEP UNSUPERVISED METHOD GENERATIVE ADVERSARIAL NETWORK Bui Thanh Hung, Nguyen Minh Loi ABSTRACT: The stock market has played a significant role in the modern society They allow the deployment of the resources in a economy Stock prices move frequently as the result of the market forces With its advantages to process data efficiently in a wide range of areas, deep learning is also widely used in the financial areasuch as: stock market prediction, optimal investment, financial information processing and Implement financial transaction strategies Therefore, stock market prediction is considered one of the most popular and most valuable sectors in the financial sector In this study, we propose a Generative Adversarial Network (GAN) unsupervised learning methodology in stock price prediction The GAN model consists of layers, Bidirectional Long Short-Term Memory (Bi-LSTM) which is used to distinguish (Discriminator) and the Long Short-Term Memory (LSTM) which is used for prediction of stock prices (Generator) LSTM is based on traded stock data and produces fake data like distributed data, while the differentiation layer is designed by Bi-LSTM algorithm to differentiate real stock data and fake stock data We experiment on the AMZN (Amazon) Index that has a wide range of trading days and use it to try to predict daily closing prices Experimental results show that our proposed GAN method can achieve better results in predicting stock prices in comparison to many other predictive models ... transform and artificial neural network? ??, Indian Journal of Science & Technology 9, 2016 106 DỰ ĐOÁN THỊ TRƢỜNG CỔ PHIẾU BẰNG PHƢƠNG PHÁP HỌC SÂU KHÔNG GIÁM SÁT GENERATIVE … [7] Tsantekidis, A.,... cấu trúc Gloss Dloss đƣợc định nghĩa nhƣ sau: =- ∑ ( ) ∑ ( )/ DỰ ĐOÁN THỊ TRƢỜNG CỔ PHIẾU BẰNG PHƢƠNG PHÁP HỌC SÂU KHÔNG GIÁM SÁT GENERATIVE … 104 ∑(̂ ∑ ( ) ( )) Hàm mát đƣợc tạo với , tƣơng ứng...102 DỰ ĐOÁN THỊ TRƢỜNG CỔ PHIẾU BẰNG PHƢƠNG PHÁP HỌC SÂU KHÔNG GIÁM SÁT GENERATIVE … 3.1 Lớp tạo - The Generator Mơ hình lớp tạo chúng

Ngày đăng: 30/09/2021, 15:29

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan