1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn tốt nghiệp Khoa học máy tính: Xây dựng hệ thống gợi ý nội dung học phần thực hành theo hướng cá nhân hóa

100 0 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

XÂY DỰNG HỆ THỐNG GỢI ÝNỘI DUNG HỌC PHẦN THỰC HÀNH

THEO HƯỚNG CÁ NHÂN HÓA

NGÀNH: KHOA HỌC MÁY TÍNH

GVPB: TS NGUYỄN LÊ DUY LAI

SVTH: KHỔNG THỊ BÍCH NGỌC - 1727029

TP HỒ CHÍ MINH, 09/2022

Trang 2

KHOA: KH & KT Máy tính NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP

5 Họ tên giảng viên hướng dẫn: Phần hướng dẫn:

Nội dung và yêu cầu LVTN đã được thông qua Bộ môn

Ngày tháng năm

CHỦ NHIỆM BỘ MÔN GIẢNG VIÊN HƯỚNG DẪN CHÍNH

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

Lê Thanh Vân

PHẦN DÀNH CHO KHOA, BỘ MÔN:

Người duyệt (chấm sơ bộ): Đơn vị: _ Ngày bảo vệ: Điểm tổng kết: _ Nơi lưu trữ luận án: _

Trang 5

Em xin cam đoan tất cả nội dung được trình bày trong Luận văn Tốt nghiệp này,ngoại trừ những phần đã được chú thích, trích nguồn rõ ràng trong phần tài liệu thamkhảo, đều là do chính bản thân thực hiện.

Em xin chịu trách nhiệm hoàn toàn nếu có bất kì sự gian lận nào về nội dung Luậnvăn Tốt nghiệp của mình.

Trang 6

Trước hết em xin chân thành cảm ơn TS Lê Thanh Vân, giáo viên hướng dẫn củaem Cô đã hướng dẫn và hỗ trợ em rất tận tình trong quá trình làm Luận văn tốt nghiệp.Cô đã đưa ra những nhận xét, góp ý thẳng thắn, những lời khuyên giá trị trong mỗi lầnbáo cáo định kỳ, và cũng đưa ra những gợi ý mở về hướng đi, giúp em có thể chỉnh sửavà đặt lại bài toán một cách đúng đắn, và hoàn thiện phương pháp để giải quyết bài toánđó Không chỉ vậy, cô còn nhắc nhở và động viên khích lệ em vượt qua những khó khăncá nhân để đi đến bước cuối cùng của chặng đường làm Luận văn tốt nghiệp.

Bên cạnh đó, em cũng xin chân thành cảm ơn ThS Vương Bá Thịnh, người thầy đãgiới thiệu cho em cũng như đưa ra những gợi ý giá trị trong quá trình em lựa chọn đề tàiluận văn tốt nghiệp.

Đặc biệt, em cũng xin chân thành cảm ơn TS Nguyễn An Khương, người thầy đã hỗtrợ tạo điều kiện cho em sử dụng cơ sở vật chất phòng lab để em có thể tập trung hoànthành luận văn một cách tốt nhất.

Em cũng xin phép được cảm ơn các thầy cô giáo thuộc chuyên ngành Khoa học Máytính nói riêng cũng như Khoa Khoa học và Kỹ thuật Máy tính nói chung, đã truyền đạtnhững tri thức quý báu để làm nền tảng vững chắc cho em hoàn thành luận văn lần này.Ngoài ra, em xin cảm ơn trường Đại học Bách Khoa - Đại học Quốc gia Thành phốHồ Chí Minh đã tạo ra một môi trường giáo dục chất lượng, giúp em có cơ hội được họctập với những người thầy giáo cô giáo tâm huyết, được gặp những người bạn tốt hỗ trợlẫn nhau trong thời gian vừa qua.

Cuối cùng, em xin cảm ơn gia đình, bạn bè, cũng như Ban Giám đốc và các đồngnghiệp tại Công ty Bodynits International đã ủng hộ em theo đuổi và hoàn thành việchọc tập.

Trang 7

Tại Việt Nam hiện nay, lĩnh vực công nghệ thông tin (CNTT) đang thiếu hụt lao độngđáng kể Theo các báo cáo nghiên cứu thị trường lao động gần đây, dự báo nhu cầu nhânlực lĩnh vực này vẫn sẽ tăng cao trong những năm tới do yêu cầu chuyển đổi số Tronglĩnh vực này, kỹ năng lập trình là một kỹ năng then chốt.

Để đảm bảo hiệu quả giáo dục trong lĩnh vực nói chung và kỹ năng lập trình nói riêngnhằm đáp ứng nhu cầu nhân lực trên, đối với giáo dục ngành CNTT, cần phải đẩy mạnhhơn nữa việc học tập đi đôi với thực hành, và lấy sinh viên làm trung tâm Điều nàytuân theo phương pháp luận CDIO (Conceive – hình thành ý tưởng; Design – thiết kế ýtưởng; Implement – thực hiện; Operate – vận hành), là phương pháp luận giáo dục đượcđề xuất bởi một nhóm gồm 4 trường đại học, dẫn đầu là trường Massachusetts Instituteof Technology (MIT) tại Mỹ, nhằm nâng cao chất lượng dạy và học cho các ngành kỹthuật Mô hình này cũng đã được trường ĐH Bách khoa TP Hồ Chí Minh triển khai đạitrà cho toàn bộ chương trình đào tạo từ năm 2014.

Triết lý học đi đôi với hành, lấy sinh viên làm trung tâm đã được thực hiện tương đốitại các cơ sở giáo dục đại học và cao học, tại đây giảng viên là người xây dựng và triểnkhai nội dung thực hành cho học viên, dựa trên chương trình học, mục tiêu sư phạm vàtheo năng lực của học viên Các hệ thống hỗ trợ học tập như e-learning cũng đã được xâydựng để học viên có thể học tập và thực hành trực tiếp thông qua xem bài giảng, làm bàitrắc nghiệm, chấm bài trực tuyến, vv Tuy nhiên, các hệ thống này mới chỉ dừng ở mứclà một công cụ nền tảng để trên đó giảng viên đưa bài giảng lên, tạo ngân hàng bài tập,giao bài tập và chấm điểm cho học viên Việc có thể đưa ra nội dung thực hành phù hợpcho học viên, đánh giá được năng lực học viên và đảm bảo hướng dẫn các học viên đạtmục tiêu đào tạo vẫn phải phụ thuộc phần lớn vào việc giảng viên phải tương tác với sinhviên trực tiếp và gián tiếp Trong khi đó, trên thực tế, ngoài việc hướng dẫn học phầnthực hành cho học viên, giảng viên phải dành thời gian cho nhiều hoạt động quan trọngkhác như: thiết kế đề cương, giảng dạy lý thuyết, nghiên cứu khoa học, học tập nâng caotrình độ vv vốn cũng đã chiếm phần lớn quỹ thời gian của các thầy cô Đặc biệt ở bậcđại học và sau đại học, khi số lượng sinh viên của một lớp rất đông và các thầy cô phảidạy nhiều lớp thì các hệ thống hỗ trợ học tập hiện tại hoàn toàn bộc lộ thiếu sót trong

Trang 8

việc hỗ trợ các thầy cô hướng dẫn thực hành theo sát với sinh viên Do vậy, em thực hiệnđề tài Luận văn Tốt nghiệp này với mong muốn hướng đến việc xây dựng một hệ thốngcó thể đáp ứng thiếu sót trên.

Qua các phần của Luận văn Tốt nghiệp này, nhóm sẽ trình bày những kiến thức nghiêncứu, những phân tích về chủ đề hệ thống gợi ý và hệ thống hội thoại dựa trên trí tuệ nhântạo (AI) Từ đó hiện thực được một hệ thống hội thoại chatbot dựa trên trí tuệ nhân tạomà có thể gợi ý nội dung các bài tập thực hành theo hướng cá nhân hóa cho sinh viên.Cuối cùng là đánh giá hệ thống đã hiện thực để xem xét tính khả thi khi ứng dụng vàothực tế.

Trang 9

2.2 Kiến thức về xử lý ngôn ngữ tự nhiên 8

2.3 Hệ thống gợi ý 16

2.4 Hệ thống chatbot 36

2.5 Công nghệ 42

3 Đề xuất mô hình 473.1 Tổng quan kiến trúc hệ thống 47

3.2 Mô hình gợi ý bài tập thực hành cho sinh viên 48

3.3 Mô hình hệ thống hội thoại chatbot gợi ý bài tập thực hành 51

3.4 Ứng dụng web 57

4 Thực nghiệm và đánh giá 604.1 Hiện thực mô hình gợi ý bài tập thực hành cho sinh viên 60

4.2 Hiện thực mô hình hệ thống hội thoại chatbot 65

4.3 Kiểm thử hệ thống 81

4.4 Đánh giá hiệu năng hệ thống 81

5 Tổng kết 835.1 Kết quả đạt được 83

5.2 Đóng góp 83

5.3 Hạn chế 84

5.4 Hướng phát triển 84

Trang 10

2.1 Cơ sở dữ liệu về đánh giá của người dùng trong ví dụ thuật toán gợi ý bằng

4.1 Kết quả thực nghiệm mô hình ALS qua các tổ hợp thông số 64

4.2 Cơ sở dữ liệu các ý định của sinh viên khi tương tác với chatbot 67

4.3 Kết quả đánh giá phân loại intent 72

4.4 Kết quả phương pháp Approximate Nearest Neighbors tóm lược 74

4.5 Kết quả kiểm thử giao diện ứng dụng web 82

4.6 Kết quả kiểm thử chức năng ứng dụng web 82

4.7 Bảng đánh giá hiệu năng ứng dụng web 82

Trang 11

2.1 Mô hình Encoder 12

2.2 Next Sentence Prediction 14

2.3 Mô hình SBERT theo kiến trúc bi-encoder 15

2.4 So sánh kiến trúc Bi-encoder và Cross Encoder 15

2.5 Ví dụ ma trận đánh giá thang điểm 1-5 19

2.6 Phân rã ma trận 27

2.7 Chiếu kết quả SVD lên không gian hai chiều 33

2.8 Kiến trúc chatbot nói chung 39

3.1 Tổng quan kiến trúc hệ thống gợi ý học phần thực hành theo hướng cánhân hóa cho sinh viên 47

3.2 Kiến trúc mô hình gợi ý bài tập thực hành 49

3.3 Phân rã ma trận điểm số thành hai ma trận U và V 50

3.4 Kiến trúc chatbot theo pipeline 52

3.5 Mô hình học phân loại intent và slot filling đồng thời bằng BERT (6) 54

3.6 Chi tiết kiến trúc bên trong module Sinh phản hồi gợi ý bài tập 55

4.1 Phân bố điểm số bài nộp của sinh viên 62

4.2 Điểm số tối đa từng bài tập 63

4.3 Điểm số tối đa từng bài tập sau khi chuẩn hóa 63

4.4 Số lượng dữ liệu câu nói đầu vào của sinh viên ứng với từng intent 66

4.5 Epoch loss của mô hình Joint Intent-Slot Filling bằng BERT 70

4.6 Độ chính xác của kết quả huấn luyện phân loại intent của mô hình JointIntent-Slot Filling bằng BERT 71

4.7 Độ chính xác của kết quả huấn luyện gán nhãn slot của mô hình JointIntent-Slot Filling bằng BERT 73

4.8 Chatbot trả lời tán gẫu, nhận diện được ý định 76

4.9 Chatbot trả lời tán gẫu, không nhận diện được ý định 76

4.10 Chatbot trả lời gợi ý bài tập về con trỏ 77

4.11 Chatbot trả lời gợi ý bài tập về số nhị phân 77

Trang 12

4.15 Chatbot trả lời gợi ý bài tập về truyền tham số cho hàm - không chứa từ

khóa 79

4.16 Chatbot trả lời tán gẫu chào tạm biệt 80

4.17 Chatbot yêu cầu sinh viên gợi ý bài tập 80

4.18 Chatbot trả lời gợi ý bài tập sau khi tán gẫu 81

4.19 Chatbot cho phép tán gẫu sau khi gợi ý bài tập 81

Trang 13

AGS Auto Grading System 2, 48, 60

AI Trí tuệ nhân tạo (Artificial Intelligence) 4, 36, 37, 42, 47ALS Alternating Least Squares 29, 30, 49–51, 56, 61, 63, 64ANN Artificial Neural Network 37, 38

BERT Bidirectional Encoder Representations from Transformers 3, 11–14, 16, 54, 57,68, 83

CBOW Continuous Bag of Words 10, 11

CDIO Conceive - Design - Implement - Operate 7CNTT Công nghệ thông tin 3

FAISS Facebook AI Similarity Search 56LVTN Luận văn Tốt nghiệp 83

ML Machine Learning 37, 42MLM Masked Language Model 13

NLP Xử lý ngôn ngữ tự nhiên (Natural Language Processing) 10, 36, 37, 42NSP Next Sentence Prediction 13

RMSE Root Mean Squared Error 50, 64SBERT Sentence-BERT 14–16, 55, 56, 74SGD Stochastic Gradient Descent 29, 30, 51

SVD Phân tích giá trị đơn (Singular Value Decomposition) 28, 30, 31ĐCLV Đề cương Luận văn 83

Trang 14

Chương 1Tổng quan

Trong chương này, em sẽ trình bày tổng quan về đề tài, gồm có vì sao em chọn làmđề tài này, mục tiêu của đề tài và phạm vi ứng dụng trong thực tế.

Tại Việt Nam hiện nay, lĩnh vực công nghệ thông tin (CNTT) đang thiếu hụt lao độngđáng kể Theo các báo cáo nghiên cứu thị trường lao động gần đây, dự báo nhu cầu nhânlực lĩnh vực này vẫn sẽ tăng cao trong những năm tới do yêu cầu chuyển đổi số Tronglĩnh vực này, kỹ năng lập trình là một kỹ năng then chốt.

Có vô số lý do được trích dẫn trong các nghiên cứu khoa học để giải thích những khókhăn trong việc học lập trình Các lý do bao gồm từ sự phức tạp của môn học, phươngpháp giảng dạy và học tập không hiệu quả, cho đến các khía cạnh tâm lý như tinh thầnhọc tập Tuy nhiên, việc học lập trình thường tập trung vào việc thực hành giải bài tập.Do đó, điều cần thiết là phải hiểu rằng bản chất của một bài tập lập trình là một yếu tốquan trọng để học tập thành công và ổn định (Simões & Queir’os, 2020) (18).

Triết lý học đi đôi với hành, lấy sinh viên làm trung tâm đã được thực hiện tương đốitại các cơ sở giáo dục đại học và cao học, tại đây giảng viên là người xây dựng và triểnkhai nội dung thực hành cho học viên, dựa trên chương trình học, mục tiêu sư phạm vàtheo năng lực của học viên Các hệ thống hỗ trợ học tập như e-learning cũng đã được xâydựng để học viên có thể học tập và thực hành trực tiếp thông qua xem bài giảng, làm bàitrắc nghiệm, chấm bài trực tuyến, vv Tuy nhiên, các hệ thống này mới chỉ dừng ở mứclà một công cụ nền tảng để trên đó giảng viên đưa bài giảng lên, tạo ngân hàng bài tập,giao bài tập và chấm điểm cho học viên Việc có thể đưa ra nội dung thực hành phù hợpcho học viên, đánh giá được năng lực học viên và đảm bảo hướng dẫn các học viên đạtmục tiêu đào tạo vẫn phải phụ thuộc phần lớn vào việc giảng viên phải tương tác với sinhviên trực tiếp và gián tiếp Trong khi đó, trên thực tế, ngoài việc hướng dẫn học phần

Trang 15

thực hành cho học viên, giảng viên phải dành thời gian cho nhiều hoạt động quan trọngkhác như: thiết kế đề cương, giảng dạy lý thuyết, nghiên cứu khoa học, học tập nâng caotrình độ vv vốn cũng đã chiếm phần lớn quỹ thời gian của các thầy cô Đặc biệt ở bậcđại học và sau đại học, khi số lượng sinh viên của một lớp rất đông và các thầy cô phảidạy nhiều lớp thì các hệ thống hỗ trợ học tập hiện tại hoàn toàn bộc lộ thiếu sót trongviệc hỗ trợ các thầy cô hướng dẫn thực hành theo sát với từng sinh viên.

Hơn nữa, năng lực học tập cùng tri thức tích luỹ của mỗi người là khác nhau Sự khácnhau này dẫn đến phương thức rèn luyện và cách tiếp cận vấn đề của mỗi người là riêngbiệt Một hệ thống tương tác với người học, hỗ trợ nhu cầu học tập một cách linh hoạtmang tính cá nhân hoá sẽ trở thành người bạn đồng hành không thể thiếu trong suốt quátrình học và hành của mỗi người.

Từ những vấn đề nêu trên, em nhận thấy nhiều công việc cần làm trong việc nghiêncứu, đề xuất giải pháp cho một hệ thống hỗ trợ thực hành có thể giải quyết các vấn đềtrên Đó là lý do em lựa chọn Hệ thống gợi ý nội dung học phần thực hành theo hướng cánhân hóa làm đề tài cho Luận văn tốt nghiệp.

Mục tiêu của đề tài là xây dựng một hệ thống gợi ý có khả năng gợi ý được bài tậpthực hành cho sinh viên, dựa trên lịch sử làm bài tập thực hành trước đó của các sinhviên, phù hợp với năng lực trình độ của sinh viên tại thời điểm gợi ý Ngoài ra, nhằmtăng tính tương tác, tạo môi trường khuyến khích học tập, hệ thống gợi ý được kết hợpthêm với một hệ thống hội thoại chatbot dựa trên trí tuệ nhân tạo hỗ trợ nhu cầu họctập thực hành phù hợp với từng người học Hệ thống chatbot tương tác với sinh viên tạocảm giác thân thiện gần gũi thoải mái cho sinh viên Tổng hợp lại trong hệ thống này,sinh viên hoàn toàn có thể chủ động tương tác và đặt câu hỏi về những vấn đề hay nộidung thực hành mà sinh viên quan tâm và cần rèn luyện Hệ thống khai thác các thôngtin khác liên quan đến sinh viên như năng lực học tập phản ánh thông qua điểm số đểđưa ra những gợi ý về bài tập phù hợp theo mức độ khó dễ cho người học.

Thứ nhất, về đối tượng nghiên cứu Hệ thống chatbot gợi ý bài tập thực hành chosinh viên sẽ tập trung vào việc tương tác với sinh viên trong khoa Khoa học và Kỹ thuậtMáy tính và gợi ý các bài tập thực hành liên quan đến lập trình Đối với nguồn dữ liệucủa hệ thống, loại dữ liệu mà hệ thống sử dụng sẽ kết hợp giữa dữ liệu thực tế từ lịchsử làm bài học phần thực hành trên hệ thống Auto Grading System(AGS) của sinh viên

Trang 16

Khoa Khoa học và Kỹ thuật Máy tính - ĐH Bách Khoa Tp Hồ Chí Minh và dữ liệu môphỏng hội thoại thực tế Để đảm bảo tính bảo mật, dữ liệu khai thác không chứa bất kỳthông tin nào khác về bản thân sinh viên ngoại trừ mã số sinh viên dùng để định danh.

Thứ hai, về phạm vi nghiên cứu Hệ thống sẽ hỗ trợ ngôn ngữ tiếng Anh: các tươngtác giữa chatbot và sinh viên sẽ được biểu đạt bằng tiếng Anh, bài tập thực hành cũngđược biểu đạt bằng tiếng Anh Có rất nhiều cách để phân tích ngữ nghĩa của bài tập thựchành và hội thoại với sinh viên Trong hệ thống này, em sẽ giảm phạm vi nghiên cứu chỉxoay quanh khai thác mô hình xử lý ngôn ngữ tự nhiên BERT Hệ thống sẽ không cóchức năng ghi nhớ và phân tích lịch sử các câu hỏi của người dùng để tìm được sở thíchhướng tiếp cận và đưa ra những gợi ý phù hợp lộ trình học của người dùng.

Chương này trình bày các đơn vị kiến thức có liên quan và các công trình nghiêncứu, giải pháp công nghệ thông tin hiện có sử dụng trong luận văn.

3 Chương 3: Đề xuất mô hình

Chương này trình bày cung cấp cho người đọc một cái nhìn bao quát về hệ thống,các bài toán con đặt ra cho đề tài hệ thống gợi ý nội dung học phần thực hành chosinh viên và đề xuất mô hình để giải quyết các bài toán.

4 Chương 4: Thực nghiệm và đánh giá

Chương này trình bày quá trình thực nghiệm và đánh giá các mô hình, kiểm thử hệthống và tiến hành đánh giá hiệu năng đối với toàn hệ thống.

5 Chương 5: Tổng kết

Chương cuối cùng sẽ đưa ra những kết quả mà hệ thống đã đạt được sau khi hiệnthực Đồng thời, những tồn đọng cũng được đưa ra để xem xét và định hướng cáccông việc trong tương lai.

Trang 17

2.1.2Phân loại bài tập thực hành trong lập trình máy tính

Simões Queir’os (2020) đã liệt kê các loại bài tập trong lập trình máy tính như sau(18):

• Viết code từ đầu: Đây là cách tiếp cận phổ biến Dễ dàng cho giảng viên chuẩn bị,vì chỉ cần phát biểu bài toán là xong Chỉ cần một bộ kiểm thử để đánh giá bài làmcủa sinh viên trong trường hợp sử dụng công cụ đánh giá tự động Sinh viên phảiviết mã từ đầu Theo quan điểm của sinh viên, đây là tình huống bài tập khó nhất.Cũng giống như một nhà văn hoặc một họa sĩ, họ có thể mắc hội chứng đầu trốngrỗng và không biết bắt đầu từ đâu Sinh viên có thể bắt đầu tập trung vào thuậttoán chính để giải quyết vấn đề, nhưng một số học sinh sẽ bắt đầu với các đoạn mãbổ trợ hoặc không liên quan đến bài toán và cố gắng quay lại về bài toán chính sauvà thường có thể là không kịp hoàn thành đúng thời hạn nộp bài.

• Code skeleton: Giảng viên sẽ cung cấp khung code mẫu và yêu cầu sinh viên hoànthành phần code còn lại Ví dụ, giảng viên có thể đưa ra lệnh gọi hàm và yêu cầu

Trang 18

sinh viên hoàn thành các thân hàm hoặc phương thức Tùy theo bài toán được đưara, khi được đưa trước khung code mẫu, trong một số trường hợp, mấu chốt vấnđề chính của bài toán có thể bị ẩn đi và sinh viên khó thấy được bức tranh tổngthể của vấn đề Tuy nhiên, dạng bài này thường mạng lại lợi ích, vì giúp sinh viênnhanh chóng bắt đầu vào code và nắm bắt được vấn đề.

• Điền vào chỗ trống: Tương tự như các dạng bài trên, nhưng sinh viên sẽ không cầnphải viết đầy đủ các dòng hoặc khối mã, mà chỉ phải điền vào một số phần bị bỏtrống Những khoảng trống này có thể mở, cho phép học sinh viết bất cứ thứ gì họmuốn hoặc một danh sách các lựa chọn để điền vào chỗ trống Dạng bài có thể thúvị nếu sinh viên không có khả năng chạy mã và được trình bày với các tùy chọn rấtgiống nhau, sẽ buộc phải thực sự hiểu những gì họ đang thực hiện, mà không thểkiểm tra mã Trên thực tế, việc yêu cầu sinh viên giải quyết các nhiệm vụ lập trìnhmà không có khả năng biên dịch hoặc chạy mã của họ là có liên quan, vì thời gianbiên dịch hiện tại quá nhanh, nên sinh viên có xu hướng thử tất cả các tùy chọn /kết hợp có thể cho một thuật toán cụ thể để tìm đúng câu trả lời (lập trình bruteforce).

• Code baseline: Đối với dạng bài này, sinh viên được cho trước một đoạn mã đã hiệnthực giải pháp cho bài toán với một số giá trị cụ thể, hoàn toàn chạy được Yêu cầuđối với sinh viên là phải hiện thực được một giải pháp tốt hơn Sinh viên có thểcảm thấy thoải mái vì không phải hiện thực từ đầu mà thay vào đó lại có một "bàigiải mẫu" để tham khảo Tuy nhiên, để có thể thay đổi đoạn mã để hiện thực đượcgiải pháp tốt hơn, sinh viên cần phải hiểu đoạn mã đã được đưa ra Nếu đoạn mãkhông được viết tốt hay có các ghi chú phù hợp, thì sinh viên sẽ khó có thể hiểuđược.

• Tìm lỗi/gỡ lỗi: Trong loại bài tập này, sinh viên được yêu cầu tìm ra lỗi cho mộtgiải pháp được trình bày và có thể phải sửa mã Những bài tập này được sử dụngđể giúp sinh viên hiểu được logic thuật toán Nếu trong điều kiện làm bài mà sinhviên không thể biên dịch và kiểm tra lời giải, đây là một cách tiếp cận rất thú vị.Các loại lỗi thường được đưa ra có thể là lỗi biên dịch như sai tên hàm, casting saibiến vv., hoặc lỗi logic trong chính thuật toán, hay lỗi về một số trường hợp màthuật toán giải quyết chưa triệt để.

2.1.3Dữ liệu về bài tập thực hành trong lập trình máy tính

Theo Simões & Queir’os (2020), các bài tập lập trình có thể được lưu dưới nhiều hìnhthức dữ liệu khác nhau nhưng về mặt ngữ nghĩa, cơ bản nội dung thường bao gồm cácdữ liệu dưới đây (18):

Trang 19

• metadata: dữ liệu cung cấp thông tin về bài tập Thường được sử dụng cho các hoạtđộng khám phá trong kho dữ liệu (repositories);

• chỉ dẫn: dữ liệu văn bản được trình bày cho sinh viên (ví dụ: các khẳng định, cácchỉ dẫn, skeleton code) Dữ liệu này thường được trình bày cho sinh viên trong môitrường lập trình training;

• tập kiểm thử: dữ liệu được sử dụng bởi các công cụ đánh giá để đánh giá đoạn mãlập trình của sinh viên Dữ liệu phổ biến nhất trong danh mục này là một tập hợpcác bài kiểm thử thường gồm có cặp dữ liệu đầu vào/đầu ra và đáp án;

• công cụ: các công cụ mà giảng viên có thể sử dụng để tạo dữ liệu (ví dụ: trình tạophản hồi và tập kiểm thử, công cụ kiểm tra đạo văn).

Thông thường, các dữ liệu mà sinh viên có thể nhìn thấy được là metadata và chỉ dẫn.Bên cạnh đó, tùy đề bài mà giảng viên có thể đưa hoặc không đưa ra dữ liệu kiểm thửđể sinh viên sử dụng Còn thông tin về công cụ thì hoàn toàn được ẩn đi khỏi sinh viên.Các dữ liệu được trình bày sẽ có tác động đến quá trình làm bài tập thực hành của sinhviên Do đó, khi gợi ý nội dung học phần thực hành cho sinh viên, một hệ thống gợi ý sẽcần cân nhắc xem xét đến dữ liệu về metadata và chỉ dẫn, và/hoặc dữ liệu kiểm thử nếucó.

Ngoài ra, còn có một loại dữ liệu nữa về bài tập thực hành, đó là các số liệu thốngkê về đánh giá kết quả bài làm của sinh viên cho các bài tập đó Simões Queir’os (2020)xác định có một vài chỉ số có thể dùng để đo lường kết quả bài làm của sinh viên từ đóđánh giá năng lực của sinh viên đó và mức độ hiệu quả của bài tập được cho đối với việcnâng cao học tập, bao gồm (18):

• Thời gian làm bài trung bình: từng sinh viên mất bao nhiêu thời gian để làm bài,bắt đầu từ thời điểm nhìn thấy mô tả bài toán cho đến khi gửi một lời giải tốt.Thông tin này cho phép giảng viên hiểu khả năng giải quyết vấn đề của sinh viênvà so sánh tương quan với tập thể.

• Số lần thử sai: số lần thử trung bình mà sinh viên thử nộp bài trước khi nộp đượclời giải đúng Nếu con số này cao, có nghĩa là sinh viên có thể đã không hiểu vấnđề một cách chính xác hoặc đang cố gắng tìm ra giải pháp, thay vì thực sự tư duytheo một cách tiếp cận tốt.

• Bộ nhớ được sử dụng ít nhất: sinh viên nào có giải pháp sử dụng ít bộ nhớ hơn chomỗi bài toán.

• Thời gian chạy chương trình nhanh nhất: sinh viên nào có lời giải chương trình chạynhanh nhất.

Trang 20

• Thời gian chạy chương trình trung bình: thời gian chạy trung bình của các lời giảichương trình của toàn bộ các sinh viên đối với một bài toán cụ thể là bao nhiêu Sosánh với thời gian của lời giải tiêu chuẩn, giảng viên biết được khả năng nói chungcủa tập thể sinh viên và đánh giá được mức độ khó dễ của bài toán đó.

2.1.4Quy trình cơ bản về bài tập thực hành trong lập trìnhmáy tính

Theo nghiên cứu về thực tiễn giảng dạy lập trình theo chuẩn CDIO, thông thường cácmôn học thuộc bộ môn khoa học máy tính được thiết kế nhằm xây dựng, duy trì và củngcố năng lực về tư duy và lập trình liên tục kéo dài trong suốt thời gian đào tạo được quyđịnh của chương trình học Trong một chương trình đào tạo sẽ có các môn học cơ sở, cácmôn học chuyên ngành và đồ án thực hành thiết kế - kỹ thuật tổng hợp được sắp xếpdần theo các năm theo cấp độ kiến thức/kỹ năng tăng dần (Wang Y (2019)) (20) Thậtvậy, đối với Khoa Khoa học và Kỹ thuật Máy tính của trường ĐH Bách Khoa Tp HồChí Minh, các môn học được sắp xếp qua các năm gồm có các môn học cơ sở như Kỹthuật lập trình, Cấu trúc dữ liệu giải thuật được sắp xếp ở năm thứ nhất, các môn nângcao chuyên ngành như Nguyên lý ngôn ngữ lập trình và Mạng máy tính, đồ án thực hànhtổng hợp như Đồ án tổng hợp hướng chuyên ngành Trí tuệ nhân tạo/Công nghệ phầnmềm/Hệ thống thông tin vv được sắp xếp lần lượt ở các năm tiếp theo (40).

Dựa theo tiến trình đào tạo như vậy, qua các năm, học phần thực hành về lập trình chocác bộ môn cũng sẽ có cấp độ tăng dần về yêu cầu kiến thức/kỹ năng tương ứng Điềutương tự cũng áp dụng trong từng môn học, bởi theo đề cương môn học, một môn họcgồm nhiều bài học; mỗi nội dung bài học ứng với một chủ đề và yêu cầu đầu ra về kiếnthức/kỹ năng cụ thể; bài học phía sau được thiết kế với giả định nền tảng sinh viên đãnắm được bài học phía trước đó Giảng viên khi thiết kế và xây dựng bài tập thực hànhsẽ gắn bài tập đó vào từng chủ đề bài học cụ thể Do vậy, các bài tập thực hành thườngđược giảng viên thiết kế và phân bổ theo cách mà nếu sinh viên không làm được các bàitập thực hành trước đó thì khó có thể làm được bài tập thực hành về sau.

Xét theo mục đích, bài tập thực hành cũng có thể được chia làm hai loại: bài tập đểgiảng viên đánh giá sinh viên và bài tập để sinh viên tự đánh giá năng lực học tập củamình và rèn luyện thêm (Brusilovsky 2005) (3) Sự hạn chế về số lượng các câu hỏi bàitập thực hành thường sẽ dẫn đến việc sinh viên trở nên gian lận do cùng một bộ câu hỏibài tập được sử dụng liên tục qua các học kỳ hoặc giữa các lớp trong cùng một học kỳ(3) Do đó, khi giảng viên chuẩn bị bài tập thực hành để chấm điểm và đánh giá sinhviên, trên thực tế giảng viên được đòi hỏi phải chuẩn bị các bộ câu hỏi bài tập khác nhau

Trang 21

sao cho sinh viên không được phép biết trước nội dung Còn đối với bài tập thực hành đểsinh viên tự đánh giá và rèn luyện thêm, gian lận không phải là vấn đề nên sinh viên cóthể được biết trước nội dung bài tập mà không bị hạn chế.

2.2.1Các nhóm nhiệm vụ xử lý ngôn ngữ tự nhiên

Cơ bản có thể chia công việc xử lý ngôn ngữ tự nhiên (NLP) thành 3 nhóm: tiền xửlý dữ liệu văn bản, xử lý ngôn ngữ tự nhiên nông và xử lý ngôn ngữ tự nhiên sâu, đượctrình bày như dưới đây.

2.2.1.1 Tiền xử lý dữ liệu văn bản

Vì văn bản vốn dĩ được liệt kê mà không có cấu trúc, để nguyên vậy để xử lý là rấtkhó khăn Do đó, trong quá trình xử lý ngôn ngữ văn bản, bước đầu tiên là phải tiền xửlý Trong bước này, thực hiện các thao tác trên văn bản như làm sạch văn bản: lược bỏcác ký hiệu, dấu câu không cần thiết trong văn bản; tách từ trong câu; chuẩn hóa từ; lượcbỏ các từ dừng; chuyển đổi ký tự, vv Một số tác vụ nhỏ trong các bước này bao gồm:

• Làm sạch văn bản (text cleaning): nhằm loại bỏ nhiễu trong dữ liệu, đa phần là xóabỏ các thẻ HTML, JavaScript, hoặc các từ không cần thiết, các ký tự thừa trongnhiều trường hợp như các ký tự cuối câu như dấu chấm (.), dấu chấm than (!), dấuchấm hỏi (?), các dấu nháy (‘’), dấu phẩy (,) Trong môi trường Python cộng đồngthường sử dụng nhiều nhất 2 thư viện là BeautifulSoup và lxml cho phần này.• Tách từ (tokenization): nhằm chia văn bản thành các từ hoặc các cụm từ được gọi

là token.

• Chuẩn hóa từ: nhằm đưa văn bản từ các dạng không đồng nhất về cùng một dạng,bởi dưới góc độ tối ưu bộ nhớ lưu trữ và tính chính xác cũng rất quan trọng Ví dụnhư từ U.K được đưa về dạng UK có trong từ điển huấn luyện Ngoài ra, có chuyểnđổi ký tự, ví dụ như lowercase để chuyển các từ viết hoa thành viết thường.

• Lược bỏ từ dừng (stopword): nhằm loại bỏ những từ xuất hiện nhiều trong ngônngữ tự nhiên, tuy nhiên lại không mang nhiều ý nghĩa Đây thường là các giới từ,mạo từ, liên từ, vv., và là các tập dữ liệu riêng biệt cho từng ngôn ngữ.

• Biểu diễn từ dưới dạng vector: Phương pháp biểu diễn từ cơ bản nhất là one-hotvector, biểu diễn mọi từ dưới dạng vector hàng hoặc vector cột với tất cả giá trịbằng 0 và chỉ một giá trị bằng 1 Giả sử chúng ta có một từ điển (tài liệu) V chứa

Trang 22

N từ - điều đó có nghĩa là, kích thước của từ điển này là |V | = N Đối với mỗi từtrong từ điển, vector one-hot của nó là R|V | times1 vector - nghĩa là vector hàng /cột có độ dài N - với một giá trị là 1 ở chỉ mục của từ đó trong từ điển và các phầntử còn lại đều là 0 (14; 21) Cách biểu diễn từ này không trực tiếp cung cấp chochúng ta bất kỳ khái niệm nào về sự giống nhau vì tất cả các vector này đều trựcgiao, do đó, rất khó để hiểu được ý nghĩa của từ.

2.2.1.2 Xử lý ngôn ngữ tự nhiên nông

Xử lý ngôn ngữ tự nhiên nông, tên tiếng Anh gọi là Shallow NLP, là nhóm công việcthực hiện việc phân tích các hình thái từ trong một câu hoặc trích xuất một phần thôngtin nhỏ trong câu (Zouaq 2011) (22) Shallow NLP tập trung vào các cấu trúc bề mặtcủa ngôn ngữ, chẳng hạn như Part-Of-Speech Tagging để phân tích ngữ pháp - xác địnhtừ loại trong cú pháp, hay Chunking - phân tích câu thành các cụm danh từ, cụm độngtừ, để phân tích cấu trúc trong câu, hoặc Name Entity Recognition - nhận dạng thựcthể được đặt tên (nhận dạng các đơn vị thông tin như tên, thời gian, ngày tháng và đơnvị tiền tệ) (39)

2.2.1.3 Xử lý ngôn ngữ tự nhiên sâu

Ngược lại với nhóm Shallow NLP, nhóm Xử lý ngôn ngữ tự nhiên sâu (Deep NLP) baogồm các nhiệm vụ cố gắng mô hình hóa các khái niệm cấp cao hơn ở cấp độ toàn bộ câu,nhằm nắm bắt được nội dung ý nghĩa của toàn bộ một câu (Zouaq 2011) (22) chẳng hạnnhư phân tích tình cảm (sentiment analysis) và mô hình hóa chủ đề (topic modeling)(39).Những nhiệm vụ này khó hơn nhiều, nhưng chúng cũng có giá trị hơn nhiều vì chúng cóthể cho chúng ta những hiểu biết sâu sắc về ý nghĩa cơ bản của ngôn ngữ.

Word Embedding (vector từ nhúng) là một không gian vector dùng để biểu diễn từ vềmặt ngữ nghĩa, có khả năng miêu tả được mối liên hệ, sự tương đồng về mặt ngữ nghĩa,ngữ cảnh của từ Đây là không gian đa chiều, các từ trong không gian có cùng văn cảnhhoặc ngữ nghĩa sẽ có vector biểu diễn nằm ở vị trí gần nhau.

Theo định nghĩa chặt chẽ, word embedding là vector để đại diện cho các từ và chỉ đượcáp dụng cho không gian vector dày đặc như trong mô hình word2vec, thay vì không gianvector thưa thớt như trong mô hình TF-IDF cite jurafsky Cụ thể, các mô hình thuộckhông gian vector ngữ nghĩa thưa thớt thường dựa trên ma trận đồng xuất hiện từ, biểuthị tần suất các từ xuất hiện cùng nhau (12) Hai ma trận phổ biến của loại này là ma

Trang 23

trận từ ngữ - từ ngữ (term-term) và ma trận từ ngữ - văn bản (term-document) Từ cácma trận này, chúng ta có các từ được biểu diễn dưới dạng vector, sau đó chúng ta đolường sự tương đồng về ngữ nghĩa giữa các từ (hoặc câu hoặc tài liệu) thường bằng phépđo tương đồng bằng cosine, và sau đó thêm trọng số cho các từ bằng cách áp dụng chẳnghạn như mô hình Tuy nhiên, các mô hình như vậy dẫn đến một không gian vectơ thưathớt có số chiều rất lớn, do lượng từ vựng và số nhãn từ trong tài liệu quá lớn (11) Trongkhi đó, mô hình word embedding là một cách tiếp cận NLP hiệu quả hơn để truy xuấtthông tin, bởi không gian vector dày đặc (dense) Word embedding sử dụng các từ xungquanh của từng từ riêng lẻ và chuyển thông tin đến mô hình Mô hình chiếu tọa độ củatừ ngữ đó, từ không gian vectơ dài, thưa thớt sang không gian vectơ ngắn, dày đặc Dođó, word embedding là một vector ngắn, dày đặc (11).

Có hai loại mô hình word embedding chính:

• Các mô hình dựa trên số học: dựa trên các phương pháp đại số tuyến tính như phântích nhân tử ma trận của ma trận đồng xuất hiện từ tổng thể (word co-occurrencematrix) để giảm số chiều của không gian vector Phương pháp phổ biến nhất làphương pháp dựa trên SVD.

• Các mô hình dựa trên ngữ cảnh: Đây là cách tiếp cận có giám sát Mô hình học wordembedding và dự đoán từ đích dựa trên ngữ cảnh, thường dựa vào một mạng neuralthay vì các mô hình xác suất và đại số thuần túy Năm 2003, Yoshua Bengio đã giớithiệu mô hình ngôn ngữ feedforward neural net (FNNLM) (2), đặt nền móng chocác kỹ thuật biểu diễn word embedding sau này Mô hình word2vec và GloVe đượcTomas Mikolov cùng các đồng tác giả, và J Pennington lần lượt giới thiệu trong2013 và trở nên phổ biến Đến 2018, Google giới thiệu mô hình BERT áp dụng họcsâu và đã thể hiện tính ưu việt so với các mô hình trước đây.

2.2.2.1 Mô hình Word2Vec

Mô hình Word2Vec được Google ra mắt lần đầu tiên vào năm 2013 Nó là mô hình dựatrên học sâu dự đoán để tính toán và tạo ra các biểu diễn vector chất lượng cao, phân tánvà dày đặc liên tục của các từ Sự trợ giúp này nắm bắt được độ tương tự về ngữ cảnhvà ngữ nghĩa.

Có hai mô hình kiến trúc trong mô hình Word2Vec để tạo ra những biểu diễn nhúngtừ: SkipGram & Continuous Bag of Words CBOW.

Trong khi CBOW nhằm mục đích dự đoán một từ trung tâm từ ngữ cảnh xung quanhtheo các vectơ từ và nó nhanh chóng, Skip-gram làm ngược lại và dự đoán phân phối (xác

Trang 24

suất) của các từ ngữ cảnh từ một từ trung tâm Skip-gram nói chung hoạt động chậmhơn, tốt hơn cho các từ không thường xuyên.

Đối với Mô hình học tập Skip-Gram, mọi từ trong một từ vựng cố định được biểu diễnbằng một vector Ta đi qua từng vị trí t trong văn bản, có một từ ở giữa là c và các từngữ cảnh (“bên ngoài”) o Sử dụng độ tương tự của các vectơ từ cho c và o để tính xácsuất của o cho trước c (hoặc ngược lại) Tiếp tục điều chỉnh các vector từ để tối đa hóaxác suất này.

Đối với CBOW, đầu vào và các lớp chiếu chia sẻ ma trận trọng số cho tất cả các vị trítừ Mô hình CBOW sử dụng biểu diễn phân phối liên tục của ngữ cảnh, do đó, một túitừ liên tục.

Có những điểm mạnh đối với mô hình này Đầu tiên, đó là việc học tập không giámsát do đó có thể hoạt động trên bất kỳ văn bản thô nào được đưa ra Bên cạnh đó, nóyêu cầu ít bộ nhớ hơn khi so sánh với các từ khác để biểu diễn vector.

Tuy nhiên, nó có một số điểm yếu Đầu tiên, hàm softmax rất tốn kém về mặt tínhtoán: đối với mọi mẫu huấn luyện, việc tính toán xác suất cuối cùng bằng cách sử dụnghàm softmax là một hoạt động khá tốn kém vì nó liên quan đến việc tính tổng điểm củatất cả các từ trong kho từ vựng để chuẩn hóa Thứ hai, nó cần có thời gian huấn luyệndài Bởi vì đối với mỗi mẫu huấn luyện, chỉ các trọng số tương ứng với từ đích mới cóthể nhận được cập nhật đáng kể Thứ ba, Word2Vec học cách nhúng ở cấp độ từ, nó chỉcó thể tạo nhúng cho các từ tồn tại trong tập dữ liệu huấn luyện của nó (hay còn gọi là“không gian từ vựng”) Đây là một nhược điểm lớn của Word2Vec - đó là nó không hỗ trợcác từ không nằm ngoài kho từ vựng.

2.2.2.2 Mô hình BERT2.2.2.2.1 Giới thiệu

BERT (Bidirectional Encoder Representations from Transformers) là một mô hình ngônngữ (Language Model) được tạo ra bởi Google AI, phát minh năm 2018 BERT tạm dịchlà mô hình mã hóa biểu diễn hai chiều ứng dụng Transformers Đây là mô hình ngôn ngữđược thiết kế để tiền huấn luyện biểu diễn hai chiều của từ bằng cách điều chỉnh kết hợpcả ngữ cảnh bên trái và bên phải trong tất cả các tầng.

BERT sử dụng kỹ thuật Transformer là một mô hình sử dụng cơ chế tập trung tention mechanism) học mối tương quan giữa các từ (hoặc 1 phần của từ) trong một văn

Trang 25

(at-bản Nếu như Transformer gồm có 2 phần chính: Encoder và Decoder, encoder thực hiệnđọc dữ liệu đầu vào và decoder đưa ra dự đoán, thì ở đây, BERT chỉ sử dụng Encoder.

Hình 2.1: Mô hình Encoder

Hình trên mô tả nguyên lý hoạt động của Encoder Theo đó, input đầu vào là mộtchuỗi các token w1, w2, được biểu diễn thành chuỗi các vector trước khi đưa vào trongmạng neural Output của mô hình là chuỗi các vector có kích thước đúng bằng kích thướcinput.

BERT sử dụng bộ tách từ (tokenizer) được tạo ra từ mô hình WordPiece, một mô hìnhnhằm phân chia văn bản thành các từ vựng có trong dữ liệu của BERT Từ vựng ở đâycó thể là các ký tự (character), các từ (word) hoặc là các phụ tố trong từ (subword) Khotừ vựng của BERT bao gồm tất cả ký tự tiếng Anh và hơn 30000 từ và phụ tố của từ phổbiến trong tiếng Anh Do đó mô hình BERT sẽ có không gian từ vựng nhỏ hơn so với sốlượng từ ngữ thông thường duy nhất trong kho ngữ liệu đào tạo của nó Từ đó, BERT cóthể tạo ra các word embedding cho các từ không thuộc kho ngữ liệu đào tạo của nó Nhưvậy, với khả năng biểu diễn ở cấp độ các phụ tố (subword) bên trong một từ, BERT thểhiện tính ưu việt so với Word2Vec vốn học biểu diễn từ ngữ chỉ ở cấp độ từ và không hỗtrợ các từ nằm ngoài kho từ vựng.

Ngoài ra, khác với các mô hình biểu diễn ngôn ngữ trước đó chỉ đọc dữ liệu tuần tựtheo 1 chiều duy nhất - trái→phải hoặc phải→ trái, trong mô hình BERT, Encoder đọctoàn bộ dữ liệu trong 1 lần, việc này làm cho BERT có khả năng huấn luyện dữ liệu theocả hai chiều, qua đó mô hình có thể học được ngữ cảnh (context) của từ tốt hơn bằng

Trang 26

cách sử dụng những từ xung quanh nó (phải&trái) Nhờ đó, BERT cũng đạt được kếtquả vượt trội hơn so với mô hình Generative Pretrained Transformer () chỉ sử dụng ngữcảnh một chiều hay ELMo sử dụng liên kết nông giữa hai ngữ cảnh một chiều.

Với những lợi thế nói trên, BERT trở thành ngôi sao sáng trong lĩnh vực xử lý ngônngữ tự nhiên trong những năm gần đây.

2.2.2.2.2 Cơ chế xây dựng mô hình BERT

Để xây dựng mô hình khắc phục được nhược điểm của các mô hình cũ bị giới hạn khihọc ngữ cảnh của từ, BERT sử dụng 2 chiến lược tiền huấn luyện như sau:

• Masked Language Model (MLM) Trước khi đưa vào BERT, thì 15% số từ trongchuỗi được thay thế bởi token [MASK], khi đó mô hình sẽ dự đoán từ được thaythế bởi [MASK] với context là các từ không bị thay thế bởi [MASK] MLM gồm cácbước xử lý sau :

– Thêm một classification layer với input là output của Encoder.

– Tính toán xác suất của mỗi từ trong tập từ vựng sử dụng hàm softmax Nhâncác vector đầu ra với ma trận embedding để đưa chúng về không gian từ vựng(vocabulary dimensional).

Hàm mất mát của BERT chỉ tập trung vào đánh giá các từ được đánh dấu[MASKED] mà bỏ qua những từ còn lại, do đó mô hình hội tụ chậm hơn so với cácmô hình một chiều truyền thống, nhưng chính điều này giúp cho mô hình hiểu ngữcảnh tốt hơn.

Trên thực tế, con số 15% không phải là cố định mà có thể thay đổi theo mục đíchcủa bài toán.

• Next Sentence Prediction (NSP)

Trong chiến lược NSP này, thì mô hình sử dụng một cặp câu là dữ liệu đầu vào vàdự đoán câu thứ 2 là câu tiếp theo của câu thứ 1 hay không Trong quá trình huấnluyện, 50% lượng dữ liệu đầu vào là cặp câu trong đó câu thứ 2 thực sự là câu tiếptheo của câu thứ 1, 50% còn lại thì câu thứ 2 được chọn ngẫu nhiên từ tập dữ liệu.Một số nguyên tắc được đưa ra khi xử lý dữ liệu như sau:

Trang 27

Hình 2.2: Next Sentence Prediction

– Chèn token [CLS] vào trước câu đầu tiên và [SEP] vào cuối mỗi câu.– Các token trong từng câu được đánh dấu là A hoặc B.

– Chèn thêm vector embedding biểu diễn vị trí của token trong câu.

2.2.2.2.3 Áp dụng kết quả huấn luyện mô hình BERT cho bài toán cụ thểThông thường, có hai chiến thuật để áp dụng kết quả tiền huấn luyện biểu diễn ngônngữ lên các bài toán xử lý ngôn ngữ tự nhiên là feature-based (sử dụng các biểu diễn cóđược như các đặc trưng để huấn luyện trên một mô hình khác) và fine-tuning based (huấnluyện cho bài toán bằng việc tinh chỉnh các tham số từ tiền huấn luyện) Đây chính làhai kỹ thuật transfer learning trong học sâu.

Điểm đặc biệt của BERT so với các mô hình word embedding trước đây chưa từng cóđó là có thể áp dụng kỹ thuật thứ hai ở trên: kết quả huấn luyện của BERT có thể tinhchỉnh được Tùy vào bài toán mà ta có các phương pháp fine-tune BERT khác nhau:

1 Đối với bài toán Phân loại (Classification), ta thêm vào một Lớp phân loại fication Layer) với đầu vào là đầu ra của Transformer cho token [CLS].

(Classi-2 Đối với bài toán Hệ hỏi đáp (Question Answering System), mô hình nhận dữ liệuđầu vào là đoạn văn bản cùng câu hỏi và được huấn luyện để đánh nhãn cho câutrả lời trong đoạn văn bản đó.

3 Đối với bài toán Named Entity Recognition (NER), model được huấn luyện để dựđoán nhãn cho mỗi token (tên người, tổ chức, địa danh, ).

2.2.3Mô hình tìm kiếm tương đồng theo ngữ nghĩa BERT

Sentence-Có nhiều mô hình tìm kiếm văn bản tương đồng theo ngữ nghĩa, trong đó mô hìnhSentence-BERT (SBERT) (23) được giới thiệu năm 2019 bởi Reimers và Gurevych đã tận

Trang 28

dụng khả năng của mô hình BERT Cụ thể, mô hình sử dụng kiến trúc Bi-Encoder, trongđó kết hợp kiến trúc Siamese Neural Network và Mạng bộ ba (Triplet Network) để tạo racác vector nhúng câu (sentence embedding), sau đó sử dụng phép đo tương đồng cosineđể tính độ tương đồng giữa 2 câu, được minh họa như hình 2.3.

Hình 2.3: Mô hình SBERT theo kiến trúc bi-encoder

Để đánh giá độ tương đồng giữa hai văn bản trong không gian vector ngữ nghĩa, bêncạnh mô hình Sentence BERT theo kiến trúc Bi-encoder còn có mô hình SBERT theokiến trúc Cross-encoder, sự khác biệt giữa hai mô hình được thể hiện như Hình 2.4 (23)(24).

Hình 2.4: So sánh kiến trúc Bi-encoder và Cross Encoder

Cụ thể:

• Mô hình SBERT theo kiến trúc Bi-encoder: Mô hình thực hiện bằng cách biểu diễnriêng rẽ hai văn bản dưới dạng các vector embedding, và tính toán độ tương đồngbằng các phép đo độ tương đồng vector đã biết như cosine.

Trang 29

• Mô hình SBERT theo kiến trúc Cross Encoder: Thay vì tính toán các vector bedding cho dữ liệu, mô hình sử dụng cơ chế phân loại cho một cặp dữ liệu, bằngcách đồng thời đưa cả câu hỏi của người dùng và bài tập thực hành qua lớp BERTvà tiến hành phân loại xem chúng có tương quan với nhau không Sự tương quancó thể biểu diễn dưới dạng con số ở khoảng [0,1] giống như phép đo độ tương đồngvector cosine, hoặc biểu diễn dưới dạng các nhãn: Tích cực (Có liên quan), Tiêu cực(Không liên quan), và Trung lập (Không có nhận định phù hợp).

Nguyên tắc cơ bản để xây dựng hệ thống gợi ý là tồn tại mối quan hệ phụ thuộc đángkể giữa người dùng và các hành vi xoay quanh sản phẩm (5) Ví dụ, một người dùng quantâm tới các tài liệu lịch sử có thể cũng sẽ có xu hướng ưa thích một tài liệu lịch sử kháchoặc một khóa học bổ túc kiến thức nào đó Trong nhiều trường hợp, các sản phẩm thuộcnhiều hạng mục khác nhau có thể có tương quan đáng kể, điều này có thể được sử dụngđể đưa ra gợi ý chính xác hơn.

Ngoài ra, sự phụ thuộc này có thể hiện hữu từ phân tích sâu hơn thuộc tính nội tại củacác sản phẩm, thay vì được thể hiện ở hạng mục của chúng Những sự phụ thuộc này cóthể thu được từ ma trận đánh giá (ratings matrix), mô hình thu được sẽ được dùng để dựđoán sản phẩm cho người dùng Số lượng sản phẩm đã được người dùng đánh giá cànglớn thì sẽ càng làm tăng độ tin cậy khi đưa ra dự đoán về hành xử của người dùng trongtương lai Nhiều mô hình học máy đã được xây dựng nhằm xử lý nhiệm vụ này Chẳng

Trang 30

hạn, hành xử mua và đánh giá sản phẩm của một nhóm người dùng có thể được sử dụngđể tạo gợi ý cho những người dùng khác có quan tâm tới những sản phẩm tương tự.

Bài toán gợi ý có thể được chia thành hai dạng chính (5):

• Bài toán dự đoán: còn gọi là bài toán hoàn thiện ma trận, dự đoán rating của mộttổ hợp người dùng - sản phẩm (user-item) - dựa trên dữ liệu huấn luyện (có sẵn) vềsự yêu thích của người dùng đối với các sản phẩm khác Điều này được thể hiện bởimột ma trận đánh giá R (không đầy đủ) m× n với m người dùng và n sản phẩm.Ở dạng này, mô hình học máy cần dự đoán những giá trị còn thiếu của ma trận R.• Bài toán xếp hạng: còn gọi là bài toán dự đoán top-k Mục tiêu là gợi ý k sản phẩmxếp hạng cao nhất cho một người dùng riêng biệt, hoặc dự đoán k người dùng xếphạng đầu tiên đối với một sản phẩm cụ thể.

2.3.1.2 Hệ thống gợi ý trong giáo dục

Tương tự, trong môi trường giáo dục, các hệ thống gợi ý cũng hoạt động dựa theonguyên tắc trên.

Theo Manouselis et al (2013) (7), mặc dù các hệ thống gợi ý trong môi trường giáodục và trong môi trường thương mại có nhiều điểm chung, chúng vẫn có nhiều điểm khácbiệt và tồn tại nhiều thách thức khi xây dựng hệ thống gợi ý cho môi trường giáo dục.Chẳng hạn, một hệ thống gợi ý có thể được xây dựng nhằm giúp sinh viên đạt được mộtmục đích học tập nào đó - bằng cách gợi ý một chuỗi tài liệu học tập Điều này giốngnhư gợi ý sản phẩm cho người dùng của một trang web thương mại điện tử Tuy nhiênvẫn còn nhiều vấn đề tồn tại Đầu tiên là xác định mục tiêu của việc học: học một bàihọc mới hay ôn lại kiến thức cũ - điểm này đòi hỏi những loại tài liệu học tập khác nhau.Hệ thống gợi ý trong môi trường giáo dục còn cần dựa vào mô hình và phương pháp sưphạm cụ thể đang được sử dụng, chẳng hạn mô hình Vygotsky - đề xuất rằng đối tượngcần học nên vượt quá khả năng của người học một chút - có thể được áp dụng ở một sốlĩnh vực nhất định với học viên chưa có hiểu biết trước về lĩnh vực đó (Vygotsky 1978(19)).

Ngoài ra, quá trình học đòi hỏi nhiều thời gian và tương tác hơn so với một giao dịch"mua-bán" thông thường Mục đích của người học không phải là "mua" và "sở hữu" một"sản phẩm", mà nhằm đạt được một mức độ thành thạo nhất định ở một kỹ năng nàođó Do đó, cần xác định rõ mục tiêu của người học và phát triển hệ thống gợi ý hỗ trợngười học đạt được những mục tiêu này Mặt khác, để có thể đưa ra gợi ý theo hướng cá

Trang 31

nhân hóa, cần xem xét tới một số những vấn đề khác như đặc trưng của người học, lĩnhvực học, phương pháp học vv.

2.3.1.3 Các mô hình thuật toán cho hệ thống gợi ýDưới đây là một số mô hình hệ thống gợi ý cơ bản (5):

• Mô hình cộng tác (collaborative filtering): ý tưởng chính đó là đưa ra gợi ý dựatrên hành xử và đánh giá của những người dùng tương tự hoặc của chính ngườidùng đó.

Mô hình này chỉ dựa vào tương tác giữa các người dùng và các sản phẩm, màkhông xét tới đặc trưng của những người dùng hay sản phẩm này Tương tác giữacác người dùng và các sản phẩm này được giả định là đủ để đánh giá sự tương tựgiữa các người dùng và/hoặc các sản phẩm Sự giống nhau này được thể hiện bởimột hàm của các đánh giá trong quá khứ.

Hệ thống gợi ý lọc cộng tác có thể dựa trên quá khứ (memory-based) hoặc dựa trênmô hình (model-based) Lọc cộng tác dựa trên mô hình, không mô hình tiềm ẩn(latent model) nào được giả định; thay vào đó sự tương tự giữa người dùng-ngườidùng và/hoặc sản phẩm-sản phẩm được sử dụng, còn gọi là lọc cộng tác dựa trênláng giềng (neighborhood-based) Đối với lọc cộng tác dựa trên mô hình, nhữnghành xử của các người dùng đối với các sản phẩm được giả định rằng có thể đượcgiải thích bởi một mô hình tóm tắt Các tham số của mô hình này sẽ được học dựatrên một framework tối ưu Có thể sử dụng những phương pháp học máy và khaiphá dữ liệu khác nhau: cây quyết định, mô hình dựa trên nguyên tắc, phương phápBayesian và các mô hình nhân tố ẩn.

• Mô hình dựa trên nội dung (content-based): ở những mô hình loại này, ý tưởngchính là đưa ra gợi ý dựa trên nội dung (thuộc tính) người dùng quan tâm ở nhữngđánh giá và hành động trong quá khứ.

Nói cách khác, mô hình lọc dựa trên nội dung đưa ra gợi ý dựa trên thông tin cótrước về người dùng và sản phẩm - ở đây một mô hình cũng được giả định giốngnhư lọc cộng tác nhưng mô hình này đã có chứa những đặc trưng (features) củangười dùng và sản phẩm.

• Mô hình dựa trên hiểu biết (knowledge-based): quá trình gợi ý được thực hiện dựatrên sự giống nhau giữa yêu cầu của người dùng và mô tả của sản phẩm hoặcdựa trên những hạn chế tìm kiếm đưa ra bởi yêu cầu của người dùng Nhữngmô hình loại này cho phép người dùng chỉ rõ điều mình muốn, thường có ích

Trang 32

đối với những sản phẩm không được mua thường xuyên Chúng thường có dạngmột hệ thống tìm kiếm, luận văn này sẽ không đề cập sâu hon về những mô hình trên.

• Mô hình lai (hybrid): ở những mô hình này, hai hoặc nhiều hơn hai phương pháp sẽđược sử dụng kết hợp Sự kết hợp giữa phương pháp memory-based và model-basedđã được chỉ ra rằng cho kết quả khá chính xác.

Cách thiết kế các thuật toán gợi ý có sự phụ thuộc lớn vào các phương pháp thiết kếtheo dõi đánh giá (5) Các đánh giá thường được đặc tả theo một thang đo, trong đó mứcđộ thích/không thích của người dùng đối với mỗi sản phẩm được đánh giá theo các mứcđộ của thang đo này Chúng có thể là các giá trị liên tục, hoặc rời rạc (trong 1 khoảngnhất định), chẳng hạn thang đo đánh giá 5 điểm: {1, 2, 3, 4, 5}), hoặc thang đo thứ bậc:{Rất không đồng ý, Không đồng ý, Trung lập, Đồng ý, Rất đồng ý} Hình dưới là mộtví dụ về đánh giá (5) 6 người dùng, ký hiệu U1 U6, đánh giá 6 bộ phim, trong đó đánhgiá cao hơn đồng nghĩa với phản hồi tích cực hơn, và đánh giá không có giá trị cụ thể xácđịnh tức là người dùng không chỉ rõ mức độ yêu thích.

Hình 2.5: Ví dụ ma trận đánh giá thang điểm 1-5

Trang 33

2.3.2Gợi ý dựa trên nội dung

Trong hệ thống gợi ý dựa trên nội dung, các thuộc tính miêu tả của các sản phẩm, còngọi là "nội dung" của sản phẩm, được dùng để tạo gợi ý Dữ liệu training gồm các đánhgiá của người dùng được kết hợp với thông tin về nội dung của các sản phẩm để tạo nênmột phân loại riêng biệt hoặc một mô hình hồi quy đối với mỗi người dùng.

Các hệ thống gợi ý dựa trên nội dung sử dụng hai nguồn dữ liệu chính (5): (1) mô tảsản phẩm - mô tả về nội dung thuộc tính của các sản phẩm, và (2) hồ sơ người dùng: dựatrên phản hồi (ẩn hoặc tường minh) của người dùng về các sản phẩm khác nhau, trongđó phản hồi tường minh là đánh giá và phản hồi ẩn là hành động của người dùng.

Theo Jannach et al 2010, các hệ thống gợi ý dựa trên nội dung cần trả lời các câu hỏisau (8):

• Hệ thống sẽ tự động thu thập và (liên tục) cải thiện hồ sơ về người dùng như thếnào?

• Chúng ta sẽ dùng cách nào để xác định sản phẩm đúng (hoặc ít nhất cũng tươngthích hoặc tương tự) với sự quan tâm của người dùng?

• Các kỹ thuật nào có thể sử dụng để thu thập mô tả của các sản phẩm nhằm giảmthiểu việc tạo dữ liệu bằng tay?

Các hệ thống gợi ý dựa trên nội dung bao gồm những thành phần chính sau (5): phầnoffline preprocessing and learning, và phần online prediction Phần offline preprocessingand learning được dùng để tạo một mô hình tóm tắt, thường là một mô hình phân loại hoặchồi quy Mô hình này sẽ được dùng để tạo gợi ý (online generation of recommendations)cho người dùng Dưới đây sẽ là chi tiết về mỗi phần:

• Tiền xử lý và trích xuất đặc trưng (preprocessing and feature extraction): các đặctrưng được trích xuất từ nhiều nguồn, sau đó được chuyển sang dạng biểu diễnkeyword-based vector-space Đây là bước quan trọng đối với một hệ thống gợi ý dựatrên nội dung.

• Học về hồ sơ người dùng dựa trên nội dung (content-based learning of user profiles):một mô hình riêng biệt đối với mỗi người dùng được xây dựng để dự đoán sự quantâm của người dùng đó đối với các sản phẩm, dựa vào lịch sử mua hoặc đánh giásản phẩm Bước này sử dụng đánh giá tường minh (phản hồi tường minh) hoặc/vàhành xử của người dùng (phản hồi ẩn) kết hợp với thuộc tính của sản phẩm để xây

Trang 34

dựng dữ liệu huấn luyện, sau đó một mô hình học máy được xây dựng trên dữ liệuhuấn luyện này Mô hình này được gọi là user profile - user representation.

• Lọc và gợi ý (filtering and recommendation): mô hình thu được ở bước trước đượcsử dụng để tạo gợi ý sản phẩm cho người dùng cụ thể ở trên Gợi ý cần đang đưara theo thời gian thực nên bước này cần được tối ưu hiệu năng.

2.3.2.1 Tiền xử lý và trích xuất đặc trưng

Theo Aggarwal 2016 (5), bước đầu tiên của bất kỳ một hệ thống gợi ý dựa trên nộidung nào đó là trích xuất đặc trưng riêng biệt để biểu diễn các sản phẩm Các đặc trưngnày cũng cần có tính dự đoán tốt về sự quan tâm của người dùng.

Có nhiều loại dữ liệu: dạng số, dạng chữ, dạng phân loại, nên cũng có những kỹ thuậttrích xuất khác nhau Tuy nhiên, phương pháp thông dụng nhất đó là trích xuất từ khóatừ dữ liệu cho sẵn, dữ liệu này thường không theo một cấu trúc nhất định nào(5) Sau đócác đặc trưng này được đưa về định dạng thích hợp cho các xử lý tiếp theo.

2.3.2.2 Học về hồ sơ người dùng dựa trên nội dung

Quá trình học hồ sơ người dùng có liên quan chặt chẽ tới vấn đề về mô hình phân loạivà hồi quy Một trong những mô hình phân loại thông dụng và đơn giản nhất là nearestneighbor classifier, mô hình này sẽ được thảo luận dưới đây:

Ở bước này, một hàm tương tự được định nghĩa Một hàm thường dùng là hàm cosine.Với ¯X = (x1 xd) và ¯Y = (y1 yd) là một cặp tài liệu, trong đó tần suất chuẩn hóa củatừ thứ i được ký hiệu bởi xi và yi, tương ứng cho hai tài liệu (dùng mô hình hoặc một sốkỹ thuật khác) Hàm cosine trên có dạng:

Cosine( ¯X, ¯Y ) =

Pdi=1y2

Trang 35

• Có thể dùng với các phân loại văn bản có sẵn, được xây dựng từ trước.Tuy nhiên chúng có một số nhược điểm sau (5):

• Thường có xu hướng tìm các sản phẩm tương tự với các sản phẩm người dùng đãxem Vấn đề này được gọi là quá tập trung (overspecialization).

• Không giải quyết được vấn đề cold-start đối với những người dùng mới (giới thiệusản phẩm khi không có lịch sử gì về người dùng).

2.3.3Lọc cộng tác dựa trên láng giềng

Các thuật toán lọc memory-based, còn gọi là lọc cộng tác dựa trên láng giềng(Neighborhood-Based Collaborative Filtering), trong các hệ thống gợi ý dựa trên nộidung, đều dựa trên một điểm đó là những người dùng tương tự nhau sẽ có những hànhxử đánh giá tương tự nhau và những sản phẩm tương tự nhau sẽ nhận được những đánhgiá tương tự nhau.

Có hai loại hệ thống gợi ý chính:

• Lọc cộng tác dựa trên người dùng (User-based collaborative filtering): Ở hệ thốngnày, những người dùng tương tự nhau có những đánh giá tương tự nhau về cùngmột sản phẩm Một nhóm người dùng được xác định giống với người dùng mục tiêuA Những người dùng này sẽ đưa ra những đánh giá; những đánh giá này sẽ đượcsử dụng để gợi ý sản phẩm cho A Với mỗi sản phẩm cụ thể, giá trị bình quân giaquyền của những nhóm đánh giá "đồng hạng" sẽ được sử dụng để dự đoán đánhgiá của người dùng A đối với sản phẩm đó.

• Lọc cộng tác dựa trên sản phẩm (Item-based collaborative filtering): Trong hệ thốngnày, những sản phẩm tương tự được đánh giá tương tự nhau bởi cùng một ngườidùng Một tập hợp các sản phẩm S được xác định giống với sản phẩm mục tiêu B.Một người dùng A cụ thể bất kỳ sẽ đánh giá những sản phẩm của tập hợp này; sốbình quân gia quyền của những đánh giá này sẽ được sử dụng để dự đoán đánh giácủa người dùng A đối với sản phẩm B.

Ma trận đánh giá được ký hiệu là R, là một ma trận m× n bao gồm m người dùng vàn sản phẩm Đánh giá u của người dùng đối với sản phẩm j được ký hiệu là ruj Nhữnggiá trị quan sát của ma trận được gọi là dữ liệu huấn luyện, trong khi những giá trị bịkhuyết gọi là dữ liệu kiểm thử.

Trang 36

2.3.3.1 Lọc cộng tác dựa trên người dùng

Trong hướng tiếp cận này, mục tiêu là xác định những người dùng tương tự với ngườidùng mục tiêu có những đánh giá cần dự đoán Việc này được thực hiện bằng cách tínhtoán mức độ tương tự giữa đánh giá cho bởi người dùng i và những đánh giá của nhữngngười dùng khác Hàm tương tự thường được sử dụng trong hướng tiếp cận này là hệ sốtương quan Pearson.(5).

Hệ số tương quan Pearson

Cho hai người dùng u và v, ta cần xác định mức độ tương tự Sim(u, v) giữa nhữngvector đánh giá của hai người dùng.

Giả sử Iu biểu thị tập hợp các chỉ số sản phẩm mà người dùng u đánh giá (theo hàng).Tập hợp Iu∩ Iv xác định tập hợp các chỉ số sản phẩm được đánh giá bởi cả người dùngu và v.

Đầu tiên, ta tính mức đánh giá trung bình µu cho mỗi người dùng u bằng cách tínhtrung bình các đánh giá quan sát đối với những sản phẩm như bên dưới.

µu =P

Xác định những người dùng tương tự và tính toán mức độ đánh giá dựđoán cho người dùng mục tiêu

Ta tính hệ số Pearson giữa người dùng mục tiêu và tất cả các người dùng khác Từđó, ta xác định nhóm k người dùng có chỉ số Pearson cao nhất với người dùng u Ta phảithực hiện việc này riêng cho từng sản phẩm dự đoán Điều đó có nghĩa là, với mỗi sảnphẩm dự đoán, ta tìm những người dùng k gần u nhất sau đó tính số bình quân gia quyềncủa những đánh giá quan sát đưa ra bởi những người dùng này; kết quả được tính sẽ làmức độ đánh giá dự đoán của người dùng mục tiêu u đối với sản phẩm cụ thể.

Trang 37

Tuy nhiên, những người dùng khác có thể đưa ra những đánh giá trên những thangđiểm khác nhau Một người dùng có thể đánh giá cao mọi sản phẩm, trong khi ngườidùng khác có thể cho mọi sản phẩm đánh giá thấp Vì vậy, để giảm thiểu sự thiên vị này, ta cần tính giá trị chuẩn hóa của những đánh giá thô theo hàng (tức là những đánh giáthô của tất cả những sản phẩm quan sát với mỗi người dùng), trước khi tính đánh giábình quân gia quyền của nhóm đồng hạng (5).

Mức độ đánh giá chuẩn hóa suj của người dùng u với sản phẩm j (theo hàng) đượctính bằng cách lấy mức độ đánh giá thô ruj trừ đi mức độ đánh giá trung bình của ngườidùng (5).

Bởi vì ta sử dụng những đánh giá chuẩn hóa làm đầu vào để tính mức độ đánh giábình quân gia quyền của nhóm đồng hạng nên kết quả mức độ đánh giá dự đoán củangười dùng mục tiêu u cũng được chuẩn hóa Vì vậy, để lấy được đánh giá thô ˆruj củangười dùng mục tiêu u với sản phẩm j, ta cộng mức độ đánh giá của người dùng mục tiêuu với kết quả dự đoán này Ký hiệu mũ trên đầu ˆruj cho biết kết quả này chỉ là dự đoán,không phải đánh giá thực tế.

Hàm dự đoán dựa trên láng giềng trong lọc cộng tác dựa trên người dùng như sau (5):

ruj = µu+P

v∈Pu(j)Sim(u, v)· svjP

v∈Pu(j)|Sim(u, v)| = µu +P

v∈Pu(j)Sim(u, v)· (ruj − µu)P

• Độ tương tự Cosine (Raw Cosine Function):

Độ tương tự Cosine với các hệ số được chuẩn hóa ở mẫu số chỉ dựa trên những đánhgiá lẫn nhau giữa người dùng u và v (5):

RawCosine(u, v) =

k∈Iu∩Ivruk· rvkq

Trang 38

phẩm quan sát (5):

RawCosine(u, v) =

k∈Iu∩Ivruk· rvkq

• Độ tương tự được giảm trừ (Discounted Similarity):

Khi hai người dùng chỉ có một số nhỏ đánh giá chung, hàm tương tự sẽ bị giảm bớtvới hệ số chiết khấu để giảm tầm quan trọng của cặp người dùng đó (5) Hệ số nàysẽ được áp dụng khi số lượng đánh giá quan sát lẫn nhau giữa hai người dùng nhỏhơn một ngưỡng cụ thể β, như bên dưới (5).

DiscountedSim(u, v) = Sim(u, v)· min{|Iuβ∩ Iv|, β} (2.8)

Trong đó hệ số chiết khấu là min{|Iu∩Iv|,β}

Để tìm sản phẩm tương tự với sản phẩm mục tiêu t, ta tính độ tương tự giữa nhữngđánh giá về sản phẩm mục tiêu t và những đánh giá về tất cả các sản phẩm khác Cónhiều hàm tương tự có thể được ứng dụng Trong bài viết này, ta sẽ thảo luận về độ tươngtự cosine điều chỉnh (adjusted cosine similarity).

Độ tương tự cosine điều chỉnh

Trước khi ta sử dụng độ tương tự cosine điều chỉnh, trước tiên ta căn giữa mỗi dòng(người dùng) của ma trận đánh giá về giá trị trung bình bằng 0 để giảm thiểu sự thiên vịcủa người dùng với các đánh giá Giống với quy trình chuẩn hóa được nhắc đến ở hướngdựa trên người dùng bên trên, bằng cách lấy mức độ đánh giá thô ruj trừ đi mức độ đánhgiá trung bình của mỗi sản phẩm ta được mức độ đánh giá chuẩn hóa suj của người dùngu với sản phẩm j (Phương trình 2.2)

Tiếp theo, ta tính độ tương tự cosine điều chỉnh giữa các sản phẩn (cột) i và j Vìta thực hiện tính mức độ đánh giá chuẩn hóa trước khi tính giá trị mức độ tương tự nên

Trang 39

đây được gọi là độ tương tự cosine điều chỉnh (5).

AdjustedCosine(i, j) =

u∈Ui∩Ujsui· sujq

Trong đó Ui là tập hợp các chỉ số của người dùng đã đánh giá sản phẩn i.

Xác định những sản phẩm tương tự và tính toán mức độ đánh giá dự đoáncho sản phẩm mục tiêu

Đầu tiên, ta xác định k sản phẩm hàng đầu giống nhất với sản phẩm t mà người dùngu đã đánh giá, dựa trên độ tương tự cosine điều chỉnh phía trên Ký hiệu tập hợp k sảnphẩm hàng đầu này là Qt(u) Thứ hai, tính số bình quân gia quyền của độ tương tự cosineđiều chỉnh thô quan sát giữa sản phẩm j và sản phẩm mục tiêu t Kết quả bình quân giaquyền là mức độ đánh giá dự đoán của sản phẩm mục tiêu t của người dùng u như bêndưới (5).

ˆrut =

j∈Qt(u)AdjustedCosine(j, t)· rujP

j∈Qt(u)|AdjustedCosine(j, t)| (2.10)

2.3.3.3 Ưu điểm và nhược điểm của Lọc cộng tác dựa trên láng giềng

Với lọc cộng tác dựa trên láng giềng, ta có thể giải thích một cách dễ dàng và trựcquan tại sao một sản phẩm cụ thể được đề xuất Hơn nữa, nó ổn định với việc thêm sảnphẩm và người dùng mới Bên cạnh đó, giai đoạn trực tuyến của các phương pháp lánggiềng luôn luôn hiệu quả.

Tuy nhiên, giai đoạn ngoại tuyến đòi hỏi độ phức tạp lớn: ví dụ, phương pháp dựa trênngười dùng yêu cầu tối thiểu O(m2) vùng giới hạn thời gian và không gian bởi vì tínhthưa thớt.

2.3.4Mô hình nhân tố ẩn

Các mô hình nhân tố ẩn được coi là hiện đại nhất trong hệ thống gợi ý (5) Khônggiống như lọc cộng tác dựa trên láng giềng cố gắng tận dụng sự tương quan hướng ngườidùng (đối với các phương pháp láng giềng dựa trên người dùng) hay sự tương quan hướngsản phẩm (đối với các phương pháp làng giềng dựa trên sản phẩm), các mô hình nhântố ẩn cố gắng tận dụng tất cả sự tương quan cột và hàng trong một lần để dự đoán (5).Ý tưởng chính của các mô hình này là để lấy ra một tập hợp các yếu tố ẩn từ các mẫuđánh giá và mô tả đặc điểm của cả người dùng và sản phẩm bằng những vector này Sảnphẩm i được đề xuất cho một người dùng khi người dùng và sản phẩm i tương tự nhaunếu xét trên các yếu tố này.(13).

Trang 40

Phương pháp phân rã ma trận được cho là một trong những phương pháp thực hiệnthành công nhất của các mô hình nhân tố ẩn (13) Chúng được cho là thuật toán phổ biếnnhất cho Giải thưởng Netflix, một cuộc thi mở do Netflix tổ chức dành cho thuật toán lọccộng tác tốt nhất để dự đoán đánh giá của người dùng với các bộ phim Ý tưởng chínhlà sử dụng kỹ thuật phân rã ma trận, chẳng hạn như phương pháp phân tích suy biến(singular value decomposition (SVD)) hay phép phân tích thành phần chính (principalcomponent analysis (PCA)), để khám phá ra các mối quan hệ ẩn trong dữ liệu (8).2.3.4.1 Mô hình phân rã ma trận cơ bản

Đầu tiên, tác giả giới thiệu về mô hình phân rã ma trận cơ bản Trong mô hình này,ma trận đánh giá R m× n được phân tích thành một ma trận U m × k và một ma trậnV n× k như sau (5) và được minh họa bởi Hình 3.3:

Đối với mô hình này, đánh giá dự đoán rij của người dùng i đối với sản phẩm j sẽbằng tích vô hướng của các nhân tố sản phẩm và con người tương ứng:

Bởi vì có k khái niệm biểu diễn các nhân tố ẩn, nhân tố người dùng thứ i ui = (ui1 uik)

Ngày đăng: 30/07/2024, 23:45

w