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

Luận văn thạc sĩ Khoa học máy tính: Xây dựng hệ thống gợi ý giáo viên cho học viên tại trung tâm anh ngữ

97 1 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

Cấu trúc

  • 1. Tổng quan (0)
    • 1.1 Giới thiệu và đặt vấn đề (14)
    • 1.2 Ý nghĩa thực tiễn (16)
    • 1.3 Ý nghĩa khoa học (16)
    • 1.4 Phạm vi đề tài (17)
  • 2. Các kỹ thuật sử dụng trong hệ thống gợi ý (0)
    • 2.1 Tổng quan về các phương pháp xử lí dữ liệu (18)
      • 2.1.1 Các kiểu dữ liệu trong phân tích dữ liệu (18)
      • 2.1.2 Một số phương pháp tiền xử lí dữ liệu (21)
    • 2.2 Tổng quan về hệ thống gợi ý (23)
      • 2.2.1 Khoảng cách và độ tương đồng (23)
      • 2.2.2 K Neareast Neighbor (27)
      • 2.2.3 Phương pháp gợi ý dựa trên nội dung (0)
      • 2.2.4 Phương pháp gợi ý cộng tác (0)
    • 2.3 Các công trình nghiên cứu liên quan (33)
  • 3. Xây dựng hệ thống gợi ý (0)
    • 3.1 Tổng quan về hệ thống (37)
    • 3.2 Chi tiết các bước xây dựng hệ thống (38)
      • 3.2.1 Chuẩn bị dữ liệu (38)
      • 3.2.2 Lọc dữ liệu (38)
      • 3.2.3 Tiền xử lí dữ liệu (47)
      • 3.2.4 Thiết kế mô hình (56)
      • 3.2.5 Đánh giá kết quả (61)
  • 4. Thực nghiệm và đánh giá kết quả (0)
    • 4.1 Xây dựng kịch bản thực nghiệm (62)
      • 4.1.1 Tập dữ liệu teacher (62)
      • 4.1.2 Tập dữ liệu class (63)
      • 4.1.3 Hệ số k trong KNN (63)
    • 4.2 Thực nghiệm và đánh giá kết quả (64)
      • 4.2.1 Tập dữ liệu toàn bộ giáo viên (0)
      • 4.2.2 Tập dữ liệu giáo viên có số lượng lớp lớn hơn 10 (0)
      • 4.2.3 Tập dữ liệu giáo viên có số lượng lớp lớn hơn 20 (0)
      • 4.2.4 Tập dữ liệu giáo viên có số lượng lớp lớn hơn 30 (0)
      • 4.2.5 Thử nghiệm với phương pháp MCA (85)
      • 4.2.6 Nhận xét chung về toàn bộ kết quả thực nghiệm (0)
  • 5. Kết luận và hướng phát triên trong tương lai (0)
  • Hinh 3.6 Mẫu dữ liệu về bình luận của người dùng cho giáo viên (0)
  • Bàng 4.10 Thông số thể hiện xu hướng gợi ý ở các tập dữ liệu (0)

Nội dung

Để không phụ thuộc vào câu hỏi á Trong quá trình vận hành, trung tâm anh ngữ cũng đã có thu thập những dự liệu học tập của học viên và giáo viên như thông tin cá nhân, tính cách, phản hồ

Tổng quan

Giới thiệu và đặt vấn đề

Hiện nay tiếng Anh đã đóng vai trò lớn trong mọi lĩnh vực của cuộc sống hiện đại Kèm với đó, nhu cầu học tiếng Anh của mọi người tại Việt Nam cũng tăng nhanh với tốc độ lớn, trải dài theo mọi lứa tuổi, từ trẻ em chưa đi học cho tới những người lớn tuổi, bất kể tuổi tác và giới tính Thông thường đối với người dùng học tiếng Anh thì điều họ quan tâm nhất là trải nghiệm và độ hiệu quả, sự cải thiện khi học tiếng Anh, và điều này bị ảnh hưởng rất nhiều bởi số lượng và chất lượng giáo viên hiện có tại trung tâm

Trong quá trình khảo sát tại một trung tâm Anh Ngữ với mô hình 1 kèm 1, tức việc học sẽ diễn ra online thông qua các ứng dụng học trực tuyến, mỗi lớp sẽ chỉ có 1 giáo viên và 1 học viên học trực tiếp với nhau trong 1 khoảng thời gian nhất định, có những lúc học viên, việc tìm kiếm giáo viên phù hợp cho học viên là một thách thức lớn

Hình 1.1 Quy trình tìm kiếm giáo viên cho học viên hiện tại Khi học viên có nhu cầu học tiếng anh, các giao dịch viên tại trung tâm tiếng anh sẽ nhận yêu cầu của học viên, và tìm kiếm giáo viên cho phù hợp với nhu cầu của học viên Tuy nhiên, để nâng cao cảm nhận cũng như hiệu quả ban đầu cho học viên, trung tâm sẽ cho học viên học thử với giáo viên đó Nếu học đồng ý, thì trung tâm sẽ mở khóa học chính thức Nếu học viên không đồng ý, trung tâm sẽ tìm kiếm giáo viên cho học viên cho tới khi nào có thể tìm được giáo viên Quá trình này sẽ bị lặp đi lặp lại rất nhiều lần nếu học viên và giáo viên không đồng ý học chung, dẫn tới gấy tốn kém rất nhiều chi phí và thời gian cho trung tâm

Ngoài ra, việc chọn giáo viên không tốt sẽ ảnh hưởng tới kết quả học tập của học viên, và sẽ nhận được những lời phàn nàn từ học viên Bảng 1.1-1 cho thấy 1 vài ví dụ về việc phàn nàn của học viên cho giáo viên Qua một số phân tích nghiệp vụ, đa số những vấn đề xảy ra xuất phát từ việc giáo viên không phù hợp để dạy học viên

Bảng 1.1 Một số vấn đề xảy ra khi dạy học chính thức

Mã lớp học Vấn đề xảy ra

21772 bé k chịu học, uể oải , vì con mới 5t , không khí lớp học hơi chán

22141 Gv bận nên tự báo Hv nghỉ dẫn đến nghỉ nhiều

27656 Đổi Gv lần 3 vì cô giáo thứ 2 có em bé và không dạy quá khuya được

33920 HV hư, không chịu học, k chịu làm btvn, cần thay đổi cách dạy

33328 NỘI DUNG TRAO ĐỔI VỚI GV VÀ CLARIFY VỚI PH

=> Mẹ k cần con phải học được 1 số lượng từ nhất định trong 1 buổi học là bao nhiêu, tương tự như cấu trúc câu Cái mẹ cần là sự thích thú của con với Tiếng Anh

=> GV chỉ cần cho bé nghe audio, bài hát, video truyện, sau hát cùng con, cho con hát lại từng câu, rồi hát lại cả bài, để con nhẩm theo các từ và câu trong bài hát Không cần ghi nhớ ngay, mà là nhẩm đi nhẩm lại nhiều lần

=> GV cho con học từ qua tranh ảnh, hỏi con, cho con hỏi lại Nói thành câu, cho bé nói theo, drill, chứ k dồn ép để nhớ

=> GV có thể giả vờ trả lời sai, xem bé có nhận ra từ sai không

190259 Bé lớp 6, tính cách bình thường hơi hiền, nhát, trước cũng đã học online 1 kèm 1 rồi

Mong muốn giáo viên tạo môi trường, động viên và khuyến khích bé nói nhiều, chứ không phải học nghĩa và phát âm từng từ

189691 Anh Thịnh đã học ở nhiều tt khác nhau nhưng vì tính chất công việc nên phải bỏ giữa chừng Anh muốn học để cải thiện giao tiếp nên chị test chú ý chỉnh sửa phát âm cho anh ấy và giúp anh ấy diễn đạt ý theo cách riêng nhé Để không phụ thuộc vào câu hỏi á

Trong quá trình vận hành, trung tâm anh ngữ cũng đã có thu thập những dự liệu học tập của học viên và giáo viên như thông tin cá nhân, tính cách, phản hồi sau các khóa học… Và cùng với khó khăn trên, đi kèm với những dữ liệu hiện có mà trung tâm thu thập được, đây là động lực lớn để tác giả có xây dựng nên một hệ thống gợi ý giáo viên cho học viên, nhằm rút ngắn thời gian lựa chọn tìm kiếm giáo viên phù hợp cho học viên.

Ý nghĩa thực tiễn

Cung cấp một giải pháp toàn diện nhằm có thể đưa ra những gợi ý giáo viên tốt nhất, phù hợp nhất cho học viên: Luận văn phát triển dựa trên những dữ liệu hiện có, nhằm xây dựng nên một hệ thống gợi ý giáo viên, giúp học viên và trung tâm không phải tốn quá nhiều thời gian trong việc tìm kiếm, thử sai giáo viên phù hợp

Tối ưu chi phí và thời gian cho trung tâm tiếng Anh là rất quan trọng Hiện nay, khi học viên không đồng ý với giáo viên được đề xuất, trung tâm vẫn phải trả phí cho giáo viên trong các buổi học thử Quá trình tìm kiếm và chờ đợi một giáo viên đồng ý dạy thử thường mất từ 1 đến 2 ngày Nếu việc này lặp đi lặp lại nhiều lần sẽ gây tốn kém chi phí và thời gian cho trung tâm Việc học viên không tìm được giáo viên phù hợp cũng khiến họ nản chí, ảnh hưởng đến tinh thần học tập Do đó, việc đầu tư xây dựng một hệ thống gợi ý giáo viên phù hợp có thể giảm thiểu sự sai lệch và lặp lại trong quá trình tìm kiếm giáo viên Từ đó, trung tâm có thể tiết kiệm đáng kể chi phí và thời gian.

Ý nghĩa khoa học

Xây dựng hệ thống gợi ý với tập dữ liệu thực tế: luận văn đã thực tế ứng dụng những cơ sở lí thuyết của các hệ thống gợi ý: content base, collaborative filtering, latern factor, áp dụng vào một trường hợp cụ thể tại trung tâm anh ngữ, từ đó đưa ra được những đánh giá chi tiết thực tế so với mô hình lý thuyết Đề xuất được những thuộc tính quan trọng trong lĩnh vực giáo dục: với tập dữ liệu thực tế tại một trung tâm anh ngữ, luận văn đã đưa ra được những dữ liệu quan trọng đối với ngành giáo dục, cụ thể là chất lượng học tiếng Anh Từ đó, có thể cải thiện được mô hình nhằm nâng cao độ chính xác.

Phạm vi đề tài

Phạm vi nghiên cứu của luận văn sẽ tập trung vào 2 việc chính:

Thu thập và phân tích, xử lí dữ liệu: Vì nghiên cứu dựa trên dữ liệu thực tiễn của một trung tâm anh ngữ nên dữ liệu là vô cùng lớn và đa dạng, trong đó bao gồm cả nhưng dữ liệu không có ý nghĩa đối với bài toán đang cần Do đó, việc thu thập xử lí dữ liệu là việc quan trọng, cần thiết để có thể xử lí bài toán một cách hiệu quả Mục tiêu chính của phần này sẽ từ những dữ liệu thô, thông qua các kỹ thuật xử lí dữ liệu, cần thu được dữ liệu tinh gọn nhất có thể

Xây dựng mô hình gợi ý: xây dựng hệ thống gợi ý giáo viên cho học viên Từ những cơ sở lý thuyết của hệ thống gợi ý, nghiên cứu sẽ đề xuất nên một hệ thống gợi ý hoàn chỉnh Từ những dữ liệu ban đầu, cho tới việc chọn mô hình phù hợp với dữ liệu đã xử lí nhằm có thể đạt được hiệu quả tốt nhất Cùng với đó, do hạn chế của dữ liệu, nghiên cứu cũng sẽ đề xuất những hướng phát triển có thể sử dụng trong tương lai, bao gồm việc cải tiến về mặt dữ liệu, nên thu thập thêm những dữ liệu gì có thể giúp tăng hiệu suất cho hệ thống Và cả cải tiến về mặt mô hình, có được những dữ liệu mới, sẽ có thể đề xuất được những mô hình mới phù hợp với dữ liệu nhằm nâng cao hiệu quả của mô hình.

Các kỹ thuật sử dụng trong hệ thống gợi ý

Tổng quan về các phương pháp xử lí dữ liệu

Xử lí dữ liệu (hay tiền xử lí dữ liệu) là tập hợp phương pháp chuyển đổi, chuẩn hóa dữ liệu, đóng vai trò quan trọng trong khai phá dữ liệu và phân tích dữ liệu, từ đó dữ liệu mới có thể dược xử dụng để phân tích và ứng dụng trong các bài toán học máy

Dữ liệu đóng vai trò tối quan trọng trong thành công của mô hình học máy Dữ liệu thô thường tồn tại ở nhiều dạng khác nhau, bao gồm cả dữ liệu hữu ích và không hữu ích Tiền xử lý dữ liệu giúp chuyển đổi dữ liệu thô thành dạng sử dụng được trong phân tích và học máy, đồng thời phát hiện và loại bỏ những dữ liệu bất thường Bước này nhằm nâng cao hiệu quả của mô hình học máy.

2.1.1 Các kiểu dữ liệu trong phân tích dữ liệu

Dữ liệu dạng phân loại (Categorical data): là dữ liệu mà chúng ta có thể chia chúng thành từng loại riêng biệt khác nhau, nhưng mà ở các dữ liệu này, ta không thể đo chúng, hay là chuyển đổi chúng về dạng số Kiểu dữ này rất phổ biến ở các dữ liệu dạng bảng Ví dụ: màu sắc: xanh, đỏ, tím… Với mỗi màu sắc là một dữ liệu riêng biệt, độc lập với nhau Trong dữ liệu dạng phân loại, ta chia làm 2 loại nhỏ hơn:

 Norminal data: là dữ liệu ở dạng phân loại mà ở đó dữ liệu không có bất kỳ một thứ tự, xếp hạng, hay ý nhĩa nào liên quan tới nhau Hoặc có thể hiểu, dữ liệu dạng này nằm riêng biệt và không liên hệ hay phụ thuộc với nhau, mục đích chính được sử dụng để phân nhóm đối tượng và không mang ý nghĩa định lượng toán học nào

Một số ví dụ norminal data:

 Giới tính: nam, nữ, khác…

 Phương pháp giảng dạy: lý thuyết, hình ảnh, thuyết trình, bài tập…

 Quốc gia: Việt Nam, Lào, Campuchia …

 Màu tóc: xanh, đỏ, trắng, đen… Ở các ví dụ trên ta có thể thấy dữ liệu độc lập hoàn toàn và không phụ thuộc lẫn nhau (Giới tính nam khác hoàn toàn so với nữ và giới tính khác, không có sự phụ thuộc lẫn nhau)

 Ordinal data (dữ liệu thứ tự): là dữ liệu phân loại giống như norminal data, tuy nhiên có sự phân loại giá trị theo thứ tự có ý nghĩa ở trong loại dữ liệu này, tuy nhiên thứ tự này có ý nghĩa nhất quán và có thể đo được Đối với kiểu dữ liệu này, chúng ta không thể tính toán cộng trừ các giá trị vì không có ý nghĩa, tuy nhiên, các phép toán như tính trung bình, lấy mod vẫn được sử dụng nhiều và rộng rãi Kiểu dữ liệu rất phổ biến trong dữ liệu hiện nay, đặc biệt là bài toán gợi ý

Một số ví dụ về ordinial data:

 Thứ tự xếp hạng học sinh: xuất sắc, giỏi, khá, trung bình, yếu Ở đây dữ liệu có

1 sự phụ thuộc nhất định với nhau Học sinh giỏi sẽ gần với học sinh xuất sắc hơn so với học sinh khá Nên ở đây có thứ tự ràng buộc với nhau về mặt dữ liệu

 Thứ tự rating sản phẩm: 1* 5* Ở ví dụ này, nếu 1 người đánh giá sản phẩm 1* chứng tỏ sản phẩm rất tệ, 5* sẽ là sản phẩm rất tuyệt Các mức 3* 4* sẽ ở trung bình Mức độ đánh giá sẽ có thứ tự nhất định

Dữ liệu dạng định lượng (Numerical data): Là dữ liệu dạng số và đo đạc được hay số hóa được Một số ví dụ kiểu dữ liệu ở dạng này như: chiều cao, cân nặng, mức lương…được chia làm 2 loại nhỏ hơn:

 Dữ liệu rời rạc (Discrete Data): là các dữ liệu có giá trị riêng biệt, có thể đếm được hoặc liệt kê được Những giá trị này trong thực tế thường là các số nguyên, và nằm trong 1 miền giá trị nhất định Đối với giá trị kiểu này, thường sẽ sử dụng các phép phép phân tích như: phân tích sự phân bố của dữ liệu (giúp hiểu được sự phân bố của dữ liệu), các phép toán cơ bản như tính trung bình, trung vị, mode, tính toán độ phân tán dữ liệu

Một số ví dụ kiểu dữ liệu rời rạc:

 Số lượng trẻ em trong 1 gia đình: thường giá trị chỉ nằm từ 0 tới 5

 Số lượng mặt khi gieo xúc sắc: giá trị sẽ nằm trong khoảng từ 1 tới 6

 Số lượng sách ở trên kệ: thường nằm ở giá trị xác định nào đó

Dữ liệu dạng liên tục (Continous data): là dữ mà giá trị của nó ở dạng liên tục, có thể nhận vô số giá trị, có thể trong một phạm vi nhất định Không như dữ liệu rời rạc, dữ liệu liên tục có giá trị tại bất kỳ điểm nào ở thang đo liên tục Giá trị của dữ liệu liên tục có thể là số, số thực với phần thập phân và không có giới hạn cụ thể Đối với dữ liệu kiểu này, ta cũng có thể áp dụng các phép phân tích giống như dữ liệu rời rạc như: phân bố dữ liệu, các phép tính cơ bản như trung bình (mean), trung vị (mid), mode Tuy nhiên thường khi tính toán các phép tính cơ bản, ta sẽ chia dữ liệu liên tục thành các khoảng và lấy trung bình trong từng khoảng để tiện tính toán

Một số ví dụ của dữ liệu liên tục:

 Nhiệt độ: 20oC, 40oC, 25.5oC…

 Lương của người lao động

Dữ liệu theo thời gian là dạng dữ liệu thu thập theo các khoảng thời gian cụ thể, có thể đều đặn hoặc ngẫu nhiên Mỗi điểm dữ liệu được gắn nhãn thời gian theo trình tự thời gian, và thời gian đóng vai trò chủ chốt trong quá trình phân tích Dữ liệu này thường được cắt thành các khoảng thời gian nhỏ hơn để phân tích, tùy thuộc vào bản chất của dữ liệu và mục đích phân tích Các biểu đồ đường thường được sử dụng để minh họa sự thay đổi của dữ liệu theo thời gian Ví dụ về dữ liệu theo thời gian bao gồm giá chứng khoán theo thời gian và dữ liệu thời tiết.

2.1.2 Một số phương pháp tiền xử lí dữ liệu

Trong thực tế, sau khi thu thập được dữ liệu thì đa phần dữ liệu sẽ không thể sử dụng được ngay, mà phải qua một số các phương pháp xử lí để có thể thu thập được dữ liệu tốt nhất, và áp dụng dữ liệu đó vào các bài toán phân tích, học máy Các phương pháp tiền xử lí dữ liệu bao gồm:

Làm sạch dữ liệu (data cleaning): bước này là bước khởi đầu trong việc tiền xử lí dữ liệu, liên quan tới việc xác định và sửa chữa những dữ liệu bị lỗi Ở bước này ta có thể áp dụng nhiều kỹ thuật các nhau như:

Loại bỏ dữ liệu trùng lặp đảm bảo tính chính xác và tránh đếm trùng dữ liệu Điều này có nghĩa là xóa các đối tượng có dữ liệu hoàn toàn giống nhau để đảm bảo rằng chỉ đếm mỗi đối tượng một lần và không làm sai lệch kết quả.

Tổng quan về hệ thống gợi ý

Hệ thống gợi ý (Recommender systems) là một dạng của hệ hỗ trợ ra quyết định, cung cấp giải pháp chủ động gợi ý, mang tính cá nhân hóa cho người sử dụng mà không cần phải trải qua quá trình tìm kiếm phức tạp nào đến từ người dùng Hệ thống gợi ý sử dụng những thói quen, đặc điểm thông thường của người dùng, hoặc những đặc điểm nổi bật của sản phẩm nhằm có thể gợi ý được các sản phẩm phù hợp nhất đối với người dùng Các hệ thống gợi ý có thể giúp tăng doanh thu cho các công ty lên hàng nhiều nhiều lần Hệ thống gợi ý ngày nay thì được áp dụng rộng rãi trong rất nhiều lĩnh vực cuộc sống, đặc biệt là các hệ thống thương mại điện tử

2.2.1 Khoảng cách và độ tương đồng

Trong học máy (Merchine Learning), khoảng cách đề cập đến thước đo khoảng cách giữa hai điểm dữ liệu trong một không gian đặc trưng nhất định, nhằm kiểm tra sự khác nhau, tương quan giữa 2 đối tượng đó Khoảng cách được sử dụng rất nhiều trong các bài toán học máy khác nhau, chẳng hạn như hệ thống phân cụm (clustering), phân loại (classification) và gợi ý (recommendation) Hiện nay có rất nhiều độ đo khoảng cách giữa hai đối tượng, tùy thuộc vào kiểu và đặc tính của dữ liệu mà ta sẽ có thể lựa chọn độ đo khoảng cách cho phù hợp

Một số độ đo khoảng cách phổ biến:

- Euclidean distance: Độ đo euclidean giữa hai điểm là độ đo khoảng cách của đường thẳng nối liền hai điểm đó Độ đo này thường được sử dụng trong các bài toán dữ liệu liên tục

Công thức tính độ đo Euclidean

 p1, p2…pn là giá trị của thuộc tính thuộc đối tượng p

 q1, q2…qn là giá trị của thuộc tính thuộc đối tượng q

- Cosine distance: Độ đo Cosine giữa hai đối tượng là độ đo sự tương tự giữa 2 vector (coi mỗi đối tượng là một vector) đó trong không gian, là góc giữa 2 vector đó trong không gian Độ đo cosine sẽ cho biết được sự tương đồng giữa hai vector hơn là khoảng cách giữa chúng, thường được sử dụng nhiều trong các bài toán dữ liệu dạng bảng với nhiều thuộc tính khác nhau

Công thức tính độ đo Cosine

 A.B là tích vô hướng của hai vector A và B

 ||A||.||B|| là tích độ dài của hai đối tượng A và B Độ tương đồng giữa hai đối tượng là giá trị biểu thị sự tương đồng giữa hai đối tượng khác nhau Mối quan hệ giữa độ tương đồng và độ đo giữa hai đối tượng là tỉ lệ nghịch Hay có thể nói rằng, nếu khoảng cách giữa hai đối tượng càng lớn, thì hai đối tượng đó càng ít tương đồng với nhau và ngược lại

Một số cách tính độ tương đồng phổ biến hiện nay:

Là thước đô độ giống nhau giữa hai đối tượng, dựa trên khoảng cách euclidean giữa chúng

Công thứ tính độ tương đồng Euclidean

1 + 𝑑(𝑝 1 , 𝑝 2 ) Trong đó d(p1,p2) là khoảng euclidean giữa hai đối tượng p1 và p2

Nếu giá trị euclidean similarity càng gần về 1, chứ tỏ 2 đối tượng p1 và p2 càng giống nhau

Nếu giá trị euclidean similarity càng gần về 0, chứ tỏ 2 đối tượng p1 và p2 càng khác nhau

Là thước đo độ giống nhau giữa 2 đối tượng với các thuộc tính khác nhau Độ tương đồng cosine dựa trên ý tưởng coi tập thuộc tính giữa 2 đối tượng là 2 vectors và tính góc giữa 2 vectors đó

Công thức độ tương đồng Cosine

Nếu Sc(A,B) = 1  Góc giữa 2 đối tượng A và B là 0 o  A và B hoàn toàn trùng khớp

Nếu Sc(A,B) = 0  Góc giữa 2 đối tượng A và B là 90 o  A và B hoàn toàn không trùng khớp, hay hai đối tượng A và B không có liên hệ gì với nhau

Nếu Sc(A,B) = -1  Góc giữa 2 đối tượng A và B là 180 o  A và B ngược nhau, hay tương quan nghịch

2.2.2 K Neareast Neighbor (k-NN) k-NN hay K-Nearest Neighbors là giải thuật phân loại, học có giám sát, không có nhiều tham số động, sử dụng độ đo để phân loại hoặc dự đoán về 1 nhóm dữ liệu riêng lẻ với nhau Đây là một trong những thuật toán đơn giản, nhưng được ứng dụng rất rộng rãi trong các bài toán học máy hiện nay

Chi tiết thuật toán k-NN

Input: dataset # tập dữ ban đầu sample # mẫu đối tượng muốn tìm ra các đối tượng gần nhất k # hệ số k, cho biết số lượng đối tượng gần nhất muốn tìm

Algorithm: distances = [] for data_point in dataset: distance = calculate_distance(sample, data_point) distances.add((data_point, distance)) end for distances.sort(distance) # sắp xếp tập khoảng cách theo đố lớn, từ bé tới lớn return distances[0:k].data_point # trả về tập k điểm gần nhất với sample

Trong thuật toán k-NN có 1 hàm calculate_distance(), hàm này mục đích để tính khoảng cách giữa 2 điểm dữ liệu Việc chọn lựa công thức tính khoảng cách sẽ ảnh hưởng rất lớn kết quả đầu ra của thuật toán Ứng dụng: k-NN được sử dụng nhiều trong các bài toán học máy, đặc biệt là các bài toán phân loại

Hình 2.1 Minh họa ứng dụng k-NN trong bài toán phân loại [11]

Ví dụ như trong bài toán trên, nếu muốn xác định “Target Point” thuộc về “class 1” hay “class 2”, ta có thể áp dụng giải thuật k-NN Trong trường hợp này, giả sử hệ số k

=3, tìm 3 điểm gần nhất với “Target point”, có thể dễ dàng thấy được là 3 điểm gần nhất với “Target point” có 2 điểm thuộc “class 2” và 1 điểm thuộc “class 1”  vậy điểm “Target Point” sẽ thuộc về “class 2”

2.2.3 Hệ thống gợi ý dựa vào nội dung (content-base)

Phương pháp gợi ý dựa trên ý cộng tác sử dụng sự giống sở thích của nhóm người dùng để gợi ý sản phẩm Khi một nhóm người dùng thích một sản phẩm và người dùng hiện tại có nhu cầu gợi ý tương tự thì có khả năng cao họ cũng thích sản phẩm đó Để thực hiện gợi ý này, hệ thống cần lịch sử mua hàng hoặc lịch sử sử dụng để xây dựng hồ sơ người dùng, cho phép hệ thống đề xuất các sản phẩm phù hợp.

Hình 2.2 Mô hình hệ thống gợi ý dựa trên nội dung [3] Ưu điểm:

 Giải quyết đc vấn đề “cold-start”, hệ thống vẫn sẽ có thể gợi ý được các sản phẩm mới trong hệ thống (sản phẩm chưa có ai sử dụng)

 Có khả năng gợi ý được những sản phảm đặc biệt theo nhu cầu khách hàng Tức gợi ý được những sản phẩm mà không ai sử dụng, tuy nhiên vẫn phù hợp với yêu cầu của người dùng

 Dễ dàng giải thích được lí do tại sao hệ thống lại gợi ý sản phẩm cho người dùng

 Khá khó để xây dựng những thuộc tính phù hợp của sản phẩm và người dùng, nếu xây dựng những thuộc tính này không tốt sẽ dẫn tới kết quả gợi ý khả năng chính xác rất thấp

Các công trình nghiên cứu liên quan

Các hệ thống gợi ý đã ra đời từ rất lâu đời, song cũng phải trải qua nhiều quá trình phát triển mới có thể đạt được tính khả dụng như ngày nay Được khởi đầu vào 1970, với hệ thống gợi ý bán sách đơn giản được gọi là Grundy 1990 là năm hệ thống gợi ý được nghiên cứu và phát triển mạnh mẽ với phương pháp gợi ý dựa trên đánh giá người dùng (collaborative filtering) do Amazon nghiên cứu đã giúp doanh số của họ tăng kỷ lục Tiếp với đó, vào năm 2006 Netflix đã ra giải thưởng 1 triệu USD dành cho nhóm nghiên cứu nào có thể làm tăng độ chính xác với hệ thống gợi ý phim, và nhóm thắng cuộc cùng với đó là sự ra đời của mô hình tiềm ẩn (latent factor model)

Ngoài ra, từ phương pháp latern factor model của nhóm đã thắng giải cải tiến hệ thống gợi ý phim do Netflix tổ chức, đã tạo ra thêm nhiều hướng đi và hướng tiếp cận mới cho các bài nghiên cứu sau này Điển hình như FM – Factorization Machine [7] đã đưa ra phương pháp tiếp cận mới dựa trên yếu điểm của latern factor model FM sử dụng cả dữ liệu cá nhân của sản phẩm thay vì chỉ sử dụng một mình dữ liệu đánh giá sản phẩm từ người dùng

Hình 2.5 Mô hình Factorization Machine [8]

Ngoài ra, trong bài báo khác [7,8] đã đưa ra mô hình mới DeepFM: A Factorization-

Machine based Neural Network for CTR Prediction, nhóm nghiên cứu đã đề xuất mô hình gợi ý kết hợp giữa deep neural network và Factorization Machine (FM) nhằm nâng cao hiệu quả gợi ý, và áp dụng trong bài toán tính xác suất việc người dùng liệu có bấm vào sản phẩm được đề xuất hay không

Hình 2.6 Mô hình DeepFM [8] Đối với hệ thống giáo dục nói riêng, các hệ thống gợi ý cũng được áp dụng nhiều

Trong bài nghiên cứu của nhóm nghiên cứu tác giả đến từ Ấn Độ[5], họ đã áp dụng hệ thống gợi ý trong môi trường dữ liệu lớn vào việc đưa ra các lớp học phù hợp đối với từng học viên dựa vào phương pháp collaborative filtering (CF), log-likelihood similarity, thư việc học máy Mahout, Hadoop system và chỉ số RMSE cho việc đánh giá Kết quả của hệ thống nhóm tác giả xây dựng đã được sử dụng ở nhiều nơi, giúp việc gợi ý được các khóa học phù hợp cho học viên của mình

Hình 2.7 Mô hình nhóm tác giả sử dụng cho hệ thống gợi ý khóa học [5]

Với hệ thống trên, nhóm tác giả đã sử dụng 4 phương pháp: content-based, collaborative filtering, knowledge base và hybrid method (kết hợp nhiều phương pháp với nhau)

Ngoài ra, còn có nhiều cải tiến khác hệ thống gợi ý trong ngành giáo dục Ví dụ như trong bài báo cáo tại Pháp[6], nhóm tác giả đã đề xuất phương pháp “ontology-based” và các phương pháp học máy nhằm nâng cao hiệu quả của hệ thống gợi ý Tuy nhiên, việc sử dụng và mô hình thực tế thì chưa được đề cập.

Xây dựng hệ thống gợi ý

Tổng quan về hệ thống

Hình 3.1 Sơ đồ các bước xây dựng hệ thống

 Bước 1: Chuẩn bị dữ liệu có sẵn từ cơ sở dữ liệu Ở bước này sẽ chọn lọc ra những dữ liệu có khả năng sẽ sử dụng trong hệ thống gợi ý sắp tới, tuy nhiên dữ liệu ở đây sẽ là những dữ liệu thô từ hệ thống, không qua chỉnh sửa

Sau khi thu thập được dữ liệu thô, dữ liệu sẽ được tiền xử lý bằng các bước đơn giản để trích xuất thông tin cần thiết Thông tin đã trích xuất này sẽ được xuất ngược vào tệp CSV, đóng vai trò là dữ liệu đầu vào cho hệ thống đề xuất tiếp theo.

 Bước 3: Load tập dữ liệu từ file csv đã xuất ra từ bước 2, từ đây sẽ thực hiện một số kỹ thuật tiền xử lí dữ liệu, nhằm phân tích, sinh ra thêm thuộc tính mới hoặc loại bỏ đi thuộc tính, đối tượng ngoại biên, không cần thiết nhằm để chuẩn bị xây dựng mô hình

 Bước 4: Sau khi đã qua các bước tiền xử lí dữ liệu, ta sẽ tiếp tục tách tập dữ liệu hiện có thành các phần nhỏ hơn để tiến hành huấn luyện mô hình dựa trên các tập dữ liệu đó

 Bước 5: Kiểm thử và đánh giá kết quả mô hình.

Chi tiết các bước xây dựng hệ thống

3.2.1 Chuẩn bị dữ liệu Ở bước này, ta cần phải chuẩn bị các dữ liệu mà ta cho là cần thiết để xây dựng nên hệ thống gợi ý giáo viên cho học viên Dữ liệu này sẽ được trích xuất ra từ hệ thống thật đang chạy, tạm gợi là dữ liệu thô Việc lấy dữ liệu sẽ dựa trên kiến thức thực tế về hệ thống đang hoạt động, cũng như nhu cầu dữ liệu dùng cho việc xây dựng hệ thống gợi ý

Hình 3.2 Sơ đồ cấu trúc cơ sở dữ liệu hệ thống hiện tại

Sau khi thực hiện bước 1, ta đã có được những dữ liệu ban đầu, cần cho việc xây dựng hệ thống sắp tới Tuy nhiên những dữ liệu này chưa thực sự xài được vì chứa nhiều dữ liệu mà ta không lường trước được giá trị của nó, cũng như dữ liệu cũng đang bị rải rác ở nhiều nơi, chưa có sự nhất quán

Tại bước này, ta sẽ tiến hành phân tích cơ sở dữ liệu thô và mục đích của bước này sẽ là các file csv chính là dữ liệu tinh gọn nhất mà ta sẽ tiến hành phân tích sâu hơn để xây dựng nên hệ thống gợi ý Một số kỹ thuật áp dụng ở bước này:

- Loại bỏ đi các thuộc tính dư thừa: các thuộc tính dư thừa được coi là các thuộc tính mà giá trị của nó bị thiếu quá nhiều, không thể tự điền được Hoặc là dữ liệu mà chỉ có 1 giá trị duy nhất ở đa phần các thuộc tính Việc này được hoàn thành bằng cách thống kê dữ liệu và xem giá trị của chúng

- Loại bỏ các đối tượng “không được sử dụng”: Việc này nhằm đảm bảo chính xác dữ liệu cho hệ thống gợi ý là những dữ liệu có ý nghĩa Ví dụ như: loại bỏ những giáo viên đã đăng ký với trung tâm, tuy nhiên lại không dạy bất kỳ một lớp nào cả Hoặc loại bỏ đi các học sinh đã đăng ký có nhu cầu học, nhưng lại không phù hợp và mở lớp học Hay loại bỏ đi nhưng người có học với các giáo viên, nhưng vì một lí do nào đó (thường là lỗi) không tìm thấy thông tin của giáo viên đó trong hệ thống

Sau khi áp dụng bước này, ta sẽ thu được dữ liệu cuối cùng sẽ là dự liệu chính (các file csv) cho hệ thống gợi ý sẽ xây dựng sắp tới

Hình 3.3 Sơ đồ dữ liệu sau khi đã tinh gọn Bảng 3.1 Thông tin dữ liệu tinh gọn

Teacher Thông tin cá nhân của giáo viên

Student Thông tin cá nhân của học viên

Class Lớp học của giáo viên đã diễn ra cùng với học viên Class_with_grade Lớp học của giáo viên đã diễn ra cùng với học viên và có kết quả thi cuối khóa Teacher_tag Các thông tin phụ trợ của giáo viên, như phương pháp dạy học của giáo viên, giáo viên chuyên môn cao về lĩnh vực gì

Teacher_tag_transformation* Các thông tin phụ trợ của giáo viên, tuy nhiên đã thông qua quá trình chuyển đổi nhằm phù hợp với bài toán Teacher_review Thông tin về các đánh giá của người dùng cho giáo viên, tuy nhiên các đánh giá này chỉ ở dạng chữ thuần túy

*Trong đó: bảng “Teacher_tag_transformation” là dữ liệu đã được chuyển dổi từ bảng

“Teacher_tag”, nhằm để có được cấu trúc phù hợp trong việc xây dựng hệ thống

Thông tin chi tiết dữ liệu

Teacher: dữ liệu thông tin chi tiết của giáo viên, bao gồm thông tin cá nhân và các thông tin liên quan tới năng suất của giáo viên

Bảng 3.2 Thông tin chi tiết dữ liệu giáo viên

Thuộc tính Kiểu dữ liệu Ý nghĩa Ghi chú user_id Số Số định danh người dùng trong hệ thống pass_profile Số Trạng thái xây dựng profile của giáo viên Các giá trị trong khoảng [0,1,2,3]

0: giá trị mặc định 1: đang xây dựng profile

2: hoàn tất xây dựng profile 3: gần như hoàn tất xây dựng profile pass_entrance_test Số Trạng thái giáo viên đã qua bài kiểm tra đầu vào

Các giá trị trong khoảng [0,1,2]

0: không cần phải tham gia

1: đang làm 2: đã qua is_excellented Số Giáo viên được đánh giá là tốt Giá trị trong khoảng [0,1]

0: bình thường 1: tốt is_top Số Giáo viên thuộc top tốt nhất Giá trị trong khoảng [0,1]

0: bình thường 1: thuộc nhóm có hiệu quả tốt nhất is_top_trial Số Giáo viên thuộc nhóm tốt nhất, nhưng chủ yếu để dạy thử Giá trị trong khoảng [0,1]

0: bình thường 1: thuộc nhóm top gender Số Giới tính Giá trị trong khoảng [1,2,3]

1: nam 2: nữ 3: khác vnd_salary Số Lương giáo viên tính theo giờ và VND teacher_age Số Tuổi của giáo viên nationality_id Số Quốc tịch giáo viên, mỗi quốc tịch sẽ được đánh dấu bằng một con số name Chữ Tên giáo viên birth_day Ngày Tháng Ngày tháng năm sinh của giáo viên email Chữ Email của giáo viên

 Thông tin giáo viên ngoài thông tin cá nhân, có các thông tin liên quan tới giảng dạy, cũng như năng suất của giáo viên, từ đây sẽ là tiền đề để xây dựng hệ thống

Student: dữ liệu thông tin cá nhân chi tiết của học viên Số lượng học viên khá lớn, tuy nhiên đã bao gồm cả những học viên đăng ký, nhưng không mở lớp Trong quá trình huấn luyện xây dựng hệ thống, ta sẽ chỉ sử dụng học viên nào đã từng đăng ký lớp học

Bảng 3.3 Thông tin chi tiết dữ liệu học viên

Thuộc tính Kiểu dữ liệu Ý nghĩa

Id Số Mã định danh người dùng trong hệ thống

Name Chữ Tên của học viên

Email Chữ Email của học viên

Gender Số Giới tính của học viên Về chi tiết thì tham chiếu với thuộc tính “gender” ở giáo viên Birth_day Ngày tháng Ngày tháng năm sinh của học viên

City_id Số Thành phố nơi học viên sống

Nationality_id Số Quốc tịch của học viên Đa phần đều là Việt Nam

Age Số Tuổi của học viên

 Thông tin của học viên khá đơn giản, hầu hết chỉ là dữ liệu cá nhân của học viên Các thông tin này thường sẽ không có nhiều giá trị sử dụng khi xây dựng hệ thống

Class: thông tin lớp học chính thức giữa giáo viên và học viên, thể hiện được mối liên hệ giữa giáo viên và học viên Khi có lớp học được mở giữa giáo viên và học viên, điều đó có nghĩa học viên đã đồng ý mở lớp với giáo viên này sau quá trình học thử, tức là đã có một sự đồng thuận nào đó giữa giáo viên và học viên trong quá trình dạy và học Đây sẽ là tập dữ liệu chính dùng để xây dựng hệ thống sắp tới

Bảng 3.4 Thông tin chi tiết dữ liệu lớp học

Thuộc tính Kiểu dữ liệu Ý nghĩa

Id Số Mã định danh người dùng trong hệ thống

Teacher Số Số định danh của giáo viên

Student Số Số định danh của học viên

Thực nghiệm và đánh giá kết quả

Xây dựng kịch bản thực nghiệm

Kịch bản thực nghiệm sẽ tiến hành huấn luyện và đánh giá trên nhiều tập dữ liệu: tập dữ liệu hiện tại và các tập con của nó

Tập dữ liệu giáo viên sẽ dược chia thành 4 tập nhỏ hơn, với nội dung như bảng sau:

Bảng 4.1 Chi tiết chia tập dữ liệu giáo viên thành tập con

Tập dữ liệu giáo viên Chi tiết

Tập dữ liệu giáo viên thứ nhất

- Áp dụng chuẩn hóa dữ liệu cho tất cả các thuộc tính

- Số thuộc tính cuối cùng thu được: 133 Tập dữ liệu giáo viên thứ hai - Gom nhóm các thuộc tính vnd_salary và teacher_age

- Áp dụng chuẩn hóa dữ liệu cho các thuộc tính cũ và các thuộc tính mới sau gom nhóm

- Số lượng thuộc tính cuối cùng thu được: 28 Tập dữ liệu giáo viên thứ ba - Thêm dữ liệu teacher_tag_transformation kèm với dữ liệu giáo viên

- Gom nhóm các thuộc tính vnd_salary và teacher_age

- Áp dụng chuẩn hóa dữ liệu cho các thuộc tính cũ và các thuộc tính mới sau gom nhóm

- Số lượng thuộc tính cuối cùng thu được: 217

Tập dữ liệu giáo viên thứ tư - Thêm dữ liệu teacher_tag_transformation kèm với dữ liệu giáo viên

- Áp dụng chuẩn hóa dữ liệu cho tất cả các thuộc tính

- Số lượng thuộc tính cuối cùng thu được: 322 Việc chia dữ liệu giáo viên như vậy nhằm có thể đưa ra được sự ảnh hưởng của các thuộc tính giáo viên lên mô hình, và sự quan trọng của các thuộc tính

Tập dữ liệu này thể hiện mối quan hệ giữa giáo viên và học viên cũng sẽ được thu gọn thành nhiều tập khác nhau Nhưng khác với tập dữ liệu giáo viên, tập dữ liệu class sẽ chia thành nhiều phần khác nhau dựa trên giáo viên và số lượng lớp mà giáo viên đó đã dạy

Bảng 4.2 Phân chia giáo viên theo số lượng

Tập giáo viên Chi tiết

Teacher_all Toàn bộ giáo viên có trong hệ thống

Tacher_10 Tập dữ liệu giáo viên đã dạy hơn 10 lớp tại trung tâm Teacher_20 Tập dữ liệu giáo viên đã dạy hơn 20 lớp tại trung tâm Teacher_30 Tập dữ liệu giáo viên đã dạy hơn 30 lớp tại trung tâm Cách chia này để có thể thấy được sự hiệu quả của mô hình gợi ý Với những giáo viên dạy rất ít lớp, xem hệ thống sẽ hoạt động như thế nào Từ đó tăng dần số lượng lớp của giáo viên lên và đánh giá mức độ hiệu quả của mô hình

Cuối cùng, việc chọn lựa hệ số k mô hình KNN sẽ ảnh hưởng tới kết quả cuối cùng Ở nghiên cứu này sẽ chọn các hệ số k như sau: 10, 20, 30, 40 và 50 Việc lựa chọn này nhằm dể đánh giá được hệ thống tốt nhất nên gợi ý bao nhiêu giáo viên cho học viên để có được kết quả tốt nhất Nếu k quá lớn mà độ chính xác không cải thiện nhiều thì hệ thống sẽ tốn nhiều tài nguyên mà mang lại hiệu quả không cao

Cuối cùng ta sẽ tóm gọn lại: 4 tập con về mối quan hệ giáo viên học viên (class), ứng với mỗi tập ta sẽ có 4 tập dữ liệu giáo viên khác nhau Tổng cộng sẽ là 16 trường hợp tất cả.

Thực nghiệm và đánh giá kết quả

Trước khi đánh giá, sẽ nhắc lại toàn bộ tập dữ liệu chúng ta có và đánh số thứ tự cho chúng

Bảng 4.3 Chi tiết bộ dữ liệu huấn luyện kèm tên

Tên phân biệt Tập dữ liệu giáo viên

Teacher_normalize Tập dữ liệu giáo viên thứ nhất

- Áp dụng chuẩn hóa dữ liệu cho tất cả các thuộc tính

- Số thuộc tính cuối cùng thu được:

133 Teacher_discret Tập dữ liệu giáo viên thứ hai

- Gom nhóm các thuộc tính vnd_salary và teacher_age

- Áp dụng chuẩn hóa dữ liệu cho các thuộc tính cũ và các thuộc tính mới sau gom nhóm

- Số lượng thuộc tính cuối cùng thu được: 28

Teacher_discret_tag Tập dữ liệu giáo viên thứ ba

- Thêm dữ liệu teacher_tag_transformation kèm với dữ liệu giáo viên

- Gom nhóm các thuộc tính vnd_salary và teacher_age

- Áp dụng chuẩn hóa dữ liệu cho các thuộc tính cũ và các thuộc tính mới sau gom nhóm

- Số lượng thuộc tính cuối cùng thu được: 217

Teacher_normalize_tag Tập dữ liệu giáo viên thứ tư

- Thêm dữ liệu teacher_tag_transformation kèm với dữ liệu giáo viên

- Áp dụng chuẩn hóa dữ liệu cho tất cả các thuộc tính

- Số lượng thuộc tính cuối cùng thu được: 322

4.2.1 Tập dữ liệu toán bộ giáo viên : tức tập giáo viên teacher_all bảng 4.2

- Số lượng học viên nhiều hơn 2 lớp: 10798

- Số lượng mẫu thực tế: 33644 Do đối với những học viên học 3 lớp trở lên, ta sẽ có sự hoán vị giáo viên nhằm tìm ra giáo viên mẫu đại diện cho tập giáo viên của học viên

- Số feature của tập teacher_normalization: 133

- Số feature của tập teacher_discret: 28

- Số feature của tập teacher_discret_tag: 217

- Số feature của tập teacher_normalize_tag: 322

Bảng 4.4 Kết quả thử nghiệm tập huấn luyện teacher_all

Tập dữ liệu Hệ số k

Số lượng dự đoán đúng

Phần trăm dự đoán đúng (%)

Thứ hạng trung bình (MRR)

Tỉ lệ bao phủ giáo viên (%)

Bảng 4.5 Thông số thể hiện xu hướng gợi ý ở các tập dữ liệu

Average similarity: trung bình độ tương đồng của toàn bộ giáo viên trên các tập dữ liệu dựa trên độ đo cosine

Intra_list similarity: sự trung bình của toàn bộ giáo viên được gợi ý cho học viên trên toàn bộ tập dữ liệu Nêu dữ liệu này càng gần tới 1, hệ thống thường có xu hướng đề xuất các item gần giống nhau Ở đây, ta sẽ lấy hệ số k = 10 để làm đại diện cho toàn bộ tập

Personalization: chỉ số thể hiện sự liên quan giữa các item được gợi ý cho người dùng Nếu chỉ số này cao (gần 1) có nghĩa hệ thống không thường gợi ý những thứ quen thuộc với toàn bộ người dùng mà gợi ý dựa trên sở thích cá nhân người dùng

Hình 4.1 Biểu đồ so sánh số lượng gợi ý đúng giữa các tập dữ liệu giáo viên trong tập dữ liệu teacher_all

Hình 4.2 Biểu đồ so sánh tỉ lệ (%) gợi ý đúng giữa các tập dữ liệu giáo viên trong tập dữ liệu teacher_all

Hình 4.3 Biểu đồ so sánh tỉ lệ (%) độ bao phủ giữa các tập dữ liệu giáo viên trong tập dữ liệu teacher_all Một số ý kiền về kết quả:

- Dựa vào bảng 4.4, đối với tập dữ liệu teacher_all này, kết quả cho thấy xác suất hệ thống gợi ý đúng giáo viên cho học viên là rất thấp, kết quả tốt nhất thu được với hệ số k = 50 là 4.79% nằm ở tập dữ liệu teacher_discret, và kết quả tệ nhất ở hệ số k là 0.69% nằm ở tập dữ liệu teacher_normalize_tag

- Hình 4.1, 4.2 cho thấy hệ số k tăng lên, tức số lượng giáo viên đề xuất tăng lên sẽ làm tăng xác suất gợi ý đúng của hệ thống, và tỉ lệ giáo viên được gợi ý đúng tăng lên khá nhiều giữa các lựa chọn k

- Bảng 4.4 cho thấy về thứ tự gợi ý, các tập dữ liệu teacher_discret_tag và teacher_normalize_tag cho kết quả tốt hơn một chút so với teacher_discret và teacher_normalize (thứ hạng trung bình 2.9 so với 3.38) Cho thấy dù tỉ lệ có thấp, nhưng nếu gợi ý đúng thì sẽ ở thứ hạng cao hơn Tuy nhiên nhìn chung, các kết quả luôn nằm trong top 10 gợi ý cao nhất ở tất cả các tập dữ liệu

- Ở hình 4.1, 4.2, hai tập dữ liệu teacher_discret và teacher_normalize cho ra kết quả cao hơn hẳn so với 2 tập dữ liệu còn lại Điều này chứng tỏ khi chúng ta thêm các kỹ năng chuyên môn (teacher_tag) của giáo viên vào mô hình này, sẽ làm giảm tỉ lệ hệ thống gợi ý đúng Như vậy, dữ liệu chuyên môn của giáo viên hiện đã chưa được trung tâm anh ngữ quan tâm, giáo viên điền không chính xác hoặc những dữ liệu này không ảnh hưởng tới việc lựa chọn giáo viên của học viên

- Ở hình 4.3, mặc dù hai tập dữ liệu teacher_discret và teacher_normalize cho ra kết quả cao hơn so với tập teacher_discret_tag và teacher_normalize_tag, nhưng về độ bao phủ thì thua thiệt hơn rất nhiều Đối với các tập dữ liệu chuyên môn của giáo viên có xu hướng đề xuất nhiều giáo viên “lạ” hơn

- Tỉ lệ gợi ý đúng của các tập giáo viên có sử dụng phương pháp discretlization cao hơn so với các tập dữ liệu chỉ sử dụng các phương pháp chuẩn thông thường Điều này cho thấy việc gom nhóm các thuộc tính vnd_salary và nationality mang lại hiệu quả cao hơn

- Bảng 4.5 cho thấy được xu hướng gợi ý của hệ thống Các chỉ số intra_list similarity gần tới 1, và lớn hơn rất nhiều so với average similarity của toàn bộ tập giáo viên Hệ thống có xu hướng thường đề xuất những giáo viên gần giống nhau, chưa có sự đa dạng ở các kết quả gợi ý

Việc độ chính xác ở tập dữ liệu này rất thấp có thể giải thích như sau:

- Tập số lượng giáo viên trong hệ thống quá nhiều (hơn 9000 giáo viên), bao gồm cả những giáo viên dạy quá ít lớp dẫn tới hệ thống khó có thể gợi ý đúng được

- Số lượng gợi ý nhiều nhất là 50 giáo viên, nếu so sánh với toàn hệ thống là 9622 giáo viên thì nếu lấy ngẫu nhiên tỉ lệ đúng sẽ là 50/9622 ~ 0.5% Còn đối với hệ thống thì dao động từ 2.6% tới 4%

- Trong quá trình xây dựng mô hình, đối với các học viên học nhiều hơn 2 lớp, hệ thống sẽ tiến hành tính toán ra giáo viên đại diện và từ đó tiến hành gợi ý dựa trên giáo viên đó Việc học viên học với nhiều giáo viên sẽ ảnh hưởng tới quá trình tính toán giá trị giáo viên đại diện Kèm thêm việc hoán vị trong quá trình kiểm thử sẽ dẫn tới độ chính xác ngày càng nhỏ

Ví dụ trong tập teacher_normalize_tag, hệ số tương đồng trung bình của giáo viên là 0.688 (bảng 4.5) Ta sẽ dùng số này làm ngưỡng để so sánh

Bảng 4.6 Số lượng học viên có giá trị trung bình giáo viên đã học nhỏ hơn ngưỡng trung bình trên toàn bộ tập giáo viên

Số lượng lớp học viên học

Số lượng học viên Số lượng học viên có giá trị trung bình giáo viên nhỏ hơn ngưỡng trung bình toàn bộ tập giáo viên

4.2.2 Tập dữ liệu teacher có số lượng lớp lớn hơn 10 : tức tập dữ liệu teacher_10 bảng 4.2

- Số lượng học viên nhiều hơn 2 lớp: 9226

- Số lượng mẫu thực tế: 25073 (đã giải thích ở mục 4.2.1)

- Số feature của tập teacher_normalization: 53

- Số feature của tập teacher_discret: 27

- Số feature của tập teacher_discret_tag: 216

- Số feature của tập teacher_normalize_tag: 242

Bảng 4.7 Kết quả thử nghiệm tập huấn luyện teacher_10

Tập dữ liệu Hệ số k

Số lượng dự đoán đúng

Phần trăm dự đoán đúng (%)

Thứ hạng trung bình (MRR)

Tỉ lệ bao phủ giáo viên (%)

Hình 4.4 Biểu đồ so sánh số lượng gợi ý đúng giữa các tập dữ liệu giáo viên trong tập dữ liệu teacher_10

Hình 4.5 Biểu đồ so sánh tỉ lệ (%) gợi ý đúng giữa các tập dữ liệu giáo viên trong tập dữ liệu teacher_10 Một số ý kiến về kết quả:

- Hình 4.4, 4.5 cho thấy đối với tập dữ liệu giáo viên có số lớp lớn hơn 10, tỉ lệ gợi ý đúng cho học viên đã tăng lên đáng kể, khoảng 13% với tập dữ liệu teacher_discret và hệ số kP Cùng với đó, tỉ lệ dự đoán đúng ở mọi tập dữ liệu khác đều tăng lên so với tập dữ liệu teacher_all Việc này đưa ra giả định rằng với các giáo viên dạy nhiều lớp hơn, tỉ lệ hệ thống gợi ý chính xác sẽ tốt hơn

- Đối với tập dữ liệu teacher_10, tỉ lệ bao phủ đề xuất toàn bộ giáo viên tăng lên đáng kể, hầu như là 100% ở tất cả các tập dữ liệu (bảng 4.7)

Ngày đăng: 25/09/2024, 14:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w