2 ỨNG DỤNG MÔ HÌNH HỌC SÂU VÀO
3.3 Khung bình luận của một bài viết trên trang báo điện tử VnExpress
nội dung của bài viết. Vì vậy, trong thử nghiệm của bài luận văn này tác giả sẽ hướng đến khuyến nghị tin tức cho người dùng dựa trên nội dung của tin tức mà người dùng đã bình luận trước đây. Để thu thập dữ liệu bình luận của người dùng, tác giả đã truy vấn đến API của vnexpress.net để thu được bình luận của người dùng trong bài viết dựa vào ID của bài viết đó.
Số tin tức từ năm 2020 đến nay thu thập được là 34.646 tin tức trong đó chứa 876.861 bình luận của 158.542 người dùng. Tuy nhiên tỷ lệ người dùng thường xuyên bình luận trên các bài viết khá là thấp, vì vậy tác giả đã thực hiện lọc bỏ những người dùng có số lượng bình luận nhỏ để mô hình có khả năng khuyến nghị tốt hơn. Sau khi lọc bỏ những người dùng có dưới 5 bình luận thu được tập dữ liệu của 28.605 người dùng.
Dữ liệu tin tức thu thập được sẽ được lưu trữ theo định dạng như sau: [N ewsID, Category, T itle, Abstract, U RL]. Trong đó các thông tin của tin tức bao gồm:
• N ewsID: ID của tin tức
• Category: Thể loại của tin tức
• T itle: Tiêu đề của tin tức
• Abstract: Tóm tắt nội dung của tin tức
Thông tin Nội dung
N ewsID 4296375
Category Sức khỏe
T itle Số ca Covid
Abstract TP HCM hôm nay ghi nhận tổng cộng 149 ca Covid-19, là số ca nhiễm theo ngày cao nhất tính từ khi dịch xuất hiện đầu năm 2020 đến nay
U RL https://vnexpress.net/so-ca-covid-19-trong-ngay-o-tp-hcm-lap-ky-luc-moi-4296375.html Bảng 3.1: Ví dụ dữ liệu tin tức được lưu trữ
Để xây dựng được bộ dữ liệu, đối với mỗi người dùng, tác giả đã tổng hợp lại tất cả những tin tức mà người dùng đó đã bình luận, sau đó chia tập tin tức đó ra thành 2 phần theo thời gian, 1 phần để làm dữ liệu lịch sử là các tin tức đã được người dùng bình luận trong quá khứ, phần còn lại sẽ là dữ liệu trong tương lai, với mỗi một tin tức trong tập dữ liệu tương lai này sẽ được chọn ra làm 1 mẫu. Tiếp theo cần lấy thêm thông tin các tin tức cùng xuất hiện với tin tức được chọn mà người dùng không quan tâm. Khi đó tác giả sẽ chọn ngẫu nhiên một số tin tức trong tập những tin tức cùng ngày với tin tức được chọn và gán nhãn cho các tin tức này là người dùng không quan tâm. Khi đó 1 mẫu sẽ chứa những thông tin các tin tức mà người dùng đã bình luận trong quá khứ, 1 tin tức người dùng quan tâm và một danh sách các tin tức cùng xuất hiện mà người dùng không quan tâm.
Dữ liệu người dùng thu thập được sẽ được lưu trữ theo định dạng như sau: [U serID, T ime, History, N ewsLog]. Trong đó:
• U serID: ID của người dùng
• T ime: Thời điểm người dùng bình luận tin tức
• History: Danh sáchN ewsID của những tin tức người dùng đã đọc trong lịch sử
• N ewsLog: Danh sách N ewsID của những tin tức được hiển thị cho người dùng kèm theo Label thể hiện người dùng có quan tâm tới tin tức đó hay không. Định dạng (N ewsID−Label)trong đó Label= 1 nếu người quan tâm đến tin tức, ngược lại Label= 0.
Thông tin Nội dung U serID 1048561507 T ime 2021/07/21 02:47:00 PM History 4254624 4259844 4266672 4269823 4273929 4278708 4285841 N ewsLog 4328343-0 4328163-0 4328493-0 4328330-0 4327766-0 4328436-0 4327248-0 4327036-0 4328165-0 4327908-0 4327994-0 4328047-0 4328528-0 4328229-0 4325870-0 4328481-1
Bảng 3.2: Ví dụ một mẫu dùng để huấn luyện mô hình
Dựa vào phương pháp lấy mẫu như trên tác giả đã thu được 154.520 mẫu để đưa vào huấn luyện và đánh giá mô hình. Dữ liệu được chia làm 3 tập: tập train, tập validation và tập test. Trong đó dữ liệu tin tức trong tập test không trùng với dữ liệu trong tập train và tập validation.
Tập Số lượng mẫu
Train 75.675 mẫu Validation 32.433 mẫu
Test 46.412 mẫu
Bảng 3.3: Số lượng mẫu của các tập dữ liệu đưa vào huấn luyện và đánh giá mô hình
3.2 Phương pháp đánh giá
Để đánh giá kết quả của mô hình ta sử dụng chỉ số AUC, MRR, NDCG@5 và NDCG@10
AUC (Area Under The Curve)
Giả sử mô hình đưa ra khuyến nghị một tin tức cho một người dùng nếu người quan tâm tới tin tức đó thì khuyến nghị đó được coi là đúng, ngược lại là sai. Khi đó ta sẽ có các chỉ số T P (True Positive), F P (False Positive), T N (True Negative) và F N (False Negative) được mô tả như trong bảng sau:
Khuyến nghị Không khuyến nghị
Quan tâm T P F N
Không quan tâm F P T N
• T P (True Positive) là số lượng tin tức được khuyến nghị đúng.
• F P (False Positive) là số lượng tin tức được khuyến nghị sai.
• F N (False Negative) là số lượng tin tức được quan tâm nhưng không được khuyến nghị.
Hình 3.4: Ví dụ về đường cong ROC và chỉ sổ AUC
• T N (True Negative) là số lượng tin tức không quan tâm và không được khuyến nghị.
• T P R (True Positive Rate) là tỷ lệ khuyến nghị đúng trong các khuyến nghị được đề xuất.
T P R= T P
T P +F N
• F P R (False Negative Rate) là tỷ lệ khuyến nghị sai trên tổng số các tin tức không quan tâm
F P R= F P
F P +T N
• Đường ROC (Receiver Operating Characteristics): là đường biểu diễn các cặp giá trị (T P R, F P R) cho các ngưỡng phân loại khác nhau.
• AU C (Area Under the Curve): là diện tích phần phía dưới đường cong ROC được minh họa như hình 3.4.
MRR (Mean Reciprocal Rank)
Reciprocal Rank (RR) là một độ đo xem xét vị trí xếp hạng của tin tức đầu tiên mà người dùng quan tâm được trả về. MRR là trung bình của RR thông qua nhiều truy vấn khác nhau. Hay trong bài toán của chúng ta MRR là trung bình kết quả khuyến nghị xét qua nhiều người dùng.
M RR= 1 |Q| Q X i=1 1 Ranki trong đó,
• |Q|: Tổng số người dùng được khuyến nghị
• Ranki: ví trí đầu tiên của tin tức mà người dùng quan tâm trong danh sách trả về.
NDCG (Normalized Discounted Cumulative Gain)
DCG là một độ đo liên quan đến chất lượng xếp hạng. DCG đo lường tính hữu ích của tin tức dựa trên vị trí của nó trong danh sách xếp hạng trả về. Tính hữu ích sẽ được tích lũy từ đầu cho đến cuối danh sách xếp hạng trả về. Và giá trị trung bình của DCG (tức NDCG) qua tất cả các người dùng sẽ được dùng để thể hiện độ chính xác khuyến nghị.
Ở đây chúng ta quan tâm Top-N những kết quả trả về là người dùng có quan tâm hay không. Vì vậy, NDCG@N được dùng để đánh giá khả năng khuyến nghị của mô hình. Với N là số lượng tin tức trong danh sách xếp hạng được khuyến nghị cho người dùng. DCG(i) = G(1), nếu i= 1 DCG(i−1) + logG((ii)), với i6= 1
Trong đó, i là vị trí xếp hạng thứ i. Ở đây G(i) = 1, nếu kết quả khuyến nghị là đúng, ngược lại G(i) = 0.
3.3 Kết quả thực nghiệm
Sau quá trình thu thập dữ liệu từ trang báo điện tử VnExpress và tiền xử lý dữ liệu thu được tập dữ liệu mẫu để đưa vào huấn luyện mô hình. Tác giả sử dụng dịch vụ Google Colab để thực hiện quá trình huấn luyện mô hình cho bài toán khuyến nghị tin tức (News Recommendation) với bộ dữ liệu trên. Mô hình được đánh giá qua một số độ đo đã được nêu ở trên bao gồm: AUC, MRR, NDGC@5 và NDGC@10.
Đánh giá mô hình
Sau đây là kết quả đánh giá mô hình NRMS sau 5 lần huấn luyện với các tham số như sau: Cơ chế multi-head self-attention với 20 đầu, mỗi đầu cho ra vecto
20 chiều, số chiều của vecto truy vấn trong additive attention là 200 và lấy mẫu âm tính với hệ số K = 4. STT AUC MRR NDCG@5 NDCG@10 1 0.7483 0.2677 0.2737 0.3261 2 0.7507 0.2699 0.2770 0.3292 3 0.7521 0.2712 0.2783 0.3304 4 0.7501 0.2671 0.2735 0.3258 5 0.7508 0.2678 0.2724 0.3271 Trung bình 0.7504 0.2687 0.2749 0.3277 Bảng 3.4: Kết quả đánh giá mô hình NRMS
Ưu điểm
• Chất lượng khuyến nghị tương đối tốt do tính toán trên cả tập dữ liệu khi thực hiện khuyến nghị.
• Mô hình khuyến nghị đơn giản, tốc độ khuyến nghị nhanh, phù hợp với các hệ thống lớn yêu cầu cao về tốc độ nhằm đáp ứng lượng lớn người dùng trong thời gian thực.
Nhược điểm
Mô hình NRMS được xây dựng theo phương pháp tiếp cận dựa trên nội dung nên bên cạnh những ưu điểm đã nêu trên thì mô hình vẫn còn tồn tại những nhược điểm mà phương pháp tiếp cận dựa trên nội dung đã tồn tại như sau:
• Mô hình chưa phù hợp với nhiều loại tin tức có kiểu dữ liệu khác văn bản như hình ảnh, video, âm thanh,...
• Mô hình không thể khuyến nghị được cho người dùng mới khi chưa có thông tin của các tin tức lịch sử mà người dùng quan tâm, cần kết hợp thêm với các thông tin xã hội khác của người dùng như sở thích, thói quen để có thể phát triển thêm mô hình khuyến nghị cho những người dùng mới này.
• Mô hình khuyến nghị được các tin tức có độ tương tự cao với những tin tức mà người dùng đã quan tâm, ngoài ra với những bài viết có chủ đề mới hoặc nội dung mới hoàn toàn mà người dùng cũng có thể quan tâm thì mô hình chưa có khả năng khuyến nghị tốt với những nội dung mới này.
Trong phạm vi nội dung của luận văn, tác giả đã đạt được những kết quả chính như sau:
• Thực hiện thu thập dữ liệu từ một trang tin tức điện tử để làm dữ liệu thực nghiệm cho mô hình.
• Tìm hiểu, nghiên cứu các vấn đề liên quan tới điện toán xã hội (Social Computing) và bài toán khuyến nghị (Recommendation)
• Phân tích và áp dụng thử nghiệm mô hình khuyến nghị tin tức NRMS vào dữ liệu thực tế.
Từ những kết quả này ta có thể triển khai tích hợp hệ thống khuyến nghị tin tức cho các trang tin tức trực tuyến hiện nay của Việt Nam như vnexpress.net, dantri.com.vn, tuoitre.vn, vietnamnet.vn,... Từ đó có thể giúp cho các trang tin tức này có thể nâng cao trải nghiệm của người dùng khi đọc và thu hút được nhiều lượt truy cập hơn trong tương lai. Tuy nhiên trong phạm vi thực hiện luận văn và hạn chế về mặt tiếp cận dữ liệu cho nên tác giả hi vọng có thể phát triển thêm đề tài của luận văn theo một số hướng như sau:
• Tiếp cận và thu thập dữ liệu truy cập của người dùng. Từ đó có thể đưa ra các mô hình khuyến nghị tin tức tổng quát và có tính chính xác hơn.
• Thử nghiệm một số phương pháp, kỹ thuật mã hóa dữ liệu khác giúp cải thiện tính chính xác của mô hình.
• Phát triển một hệ thống khuyến nghị hoàn chỉnh có khả năng tích hợp với các hệ thống dữ liệu của các trang tin tức trực tuyến.
[1] A. L. Samuel, “Some studies in machine learning using the game of checkers,” IBM Journal of Research and Development, vol. 3, no. 3, pp. 210–229, 1959. [2] E. Wilson and D. W. Tufts, “Multilayer perceptron design algorithm,” in Proceedings of IEEE Workshop on Neural Networks for Signal Processing, pp. 61–68, 1994.
[3] C. Lemaréchal, “Cauchy and the gradient method,” in Documenta Mathe- matica, pp. 251–254, 2012.
[4] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, and I. Polosukhin, “Attention is all you need,” CoRR, vol. abs/1706.03762, 2017.
[5] Y. Zhang, R. Jin, and Z.-H. Zhou, “Understanding bag-of-words model: A statistical framework,” International Journal of Machine Learning and Cy- bernetics, vol. 1, pp. 43–52, 12 2010.
[6] T. Mikolov, I. Sutskever, K. Chen, G. Corrado, and J. Dean, “Distributed representations of words and phrases and their compositionality,” CoRR, vol. abs/1310.4546, 2013.
[7] R. Lebret and R. Collobert, “Word embeddings through hellinger PCA,” in Proceedings of the 14th Conference of the European Chapter of the Asso- ciation for Computational Linguistics, (Gothenburg, Sweden), pp. 482–490, Association for Computational Linguistics, Apr. 2014.
[8] W. M. Kouw, “An introduction to domain adaptation and transfer learning,” CoRR, vol. abs/1812.11806, 2018.
[9] T. Mikolov, K. Chen, G. Corrado, and J. Dean, “Efficient estimation of word representations in vector space,” 2013.
[10] J. Pennington, R. Socher, and C. Manning, “GloVe: Global vectors for word representation,” inProceedings of the 2014 Conference on Empirical Methods
in Natural Language Processing (EMNLP), (Doha, Qatar), pp. 1532–1543, Association for Computational Linguistics, Oct. 2014.
[11] P. Bojanowski, E. Grave, A. Joulin, and T. Mikolov, “Enriching word vectors with subword information,” Transactions of the Association for Computa- tional Linguistics, vol. 5, pp. 135–146, 2017.
[12] D. Schuler, “Social computing,” Commun. ACM, vol. 37, p. 28–29, jan 1994. [13] L. Deng and Y. Liu,Deep Learning in Natural Language Processing. Springer
Publishing Company, Incorporated, 1st ed., 2018.
[14] H.-T. Cheng, L. Koc, J. Harmsen, T. Shaked, T. Chandra, H. Aradhye, G. Anderson, G. Corrado, W. Chai, M. Ispir, R. Anil, Z. Haque, L. Hong, V. Jain, X. Liu, and H. Shah, “Wide deep learning for recommender sys- tems,” pp. 7–10, 09 2016.
[15] C. Wu, F. Wu, S. Ge, T. Qi, Y. Huang, and X. Xie, “Neural news recom- mendation with multi-head self-attention,” in Proceedings of the 2019 Con- ference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP- IJCNLP), (Hong Kong, China), pp. 6389–6394, Association for Computa- tional Linguistics, Nov. 2019.