4.2.2.1. Thiết lập các thuộc tính xác suất
Giữa Khoahoc và Bomon, chúng tôi thêm vào một thuộc tính quan hệ xác suất XSPT thể hiện xác suất một Khoahoc thuộc vào một bộ môn nào đó. Ví dụ, khóa học Nhập môn Công nghệ phần mềm có 80% kiến thức thuộc chuyên ngành CNPM và
20% kiến thức thuộc vào chuyên ngành Các hệ thống thông tin, xác suất thiết đặt cho môn học này tương ứng với các bộ môn CNPM và CHTTT là 0.8 và 0.2.
4.2.2.2. Xác định độ tƣơng tự giữa các khóa học
Độ tương tự giữa hai khóa học i và j được xác định bằng công thức sau: Si,j = 1 – (|P(i)-P(j)|)
4.2.2.3. Thuật toán tính toán dự đoán và lấy top – N tƣ vấn
Thuật toán sinh dự đoán và tư vấn cho sinh viên A
If (A là sinh viên mới) then Không thể sinh tư vấn Else
Lấy ra danh sách các khóa học A đã tham gia K(A)
Tính toán độ tương tự của các khóa học còn lại với từng khóa học kK(A)
Chọn N khóa học có độ tương tự cao nhất để tư vấn End if
4.3. Cài đặt thuâ ̣t toán
4.3.1. Thuật toán lọc cộng tác đơn giản CFAlgorithm
Mô ̣t trong nhữn bước đầu tiên để thực hiê ̣n mô ̣t thuâ ̣t toán trong E- Recommender là tạo ra một lớp mới để thực thi giao diện thuật toán CFAlgorithm . Giao diê ̣n này c ó 3 phương thức mà E-Recommender sử du ̣ng để đoán đánh giá hoă ̣c lấy các tư vấn. Những phương thức này là:
public interface CFAlgorithm {
public ItemPrediction predictRating(int SinhvienID, int MonhocID) throws CFNotImplementedException;
public ItemPrediction[] getRecommendations(int activeSinhvien, int n) throws SQLException, CFNotImplementedException;
public ItemPrediction[] getRecommendationsByType(int activeSinhvien,
int n,int Bomon) throws SQLException, CFNotImplementedException;
public void updateUser(int SinhvienID) throws CFNotImplementedException;
public long getAveragePredictionTime() throws CFNotImplementedException; public String toString();
}
Nếu thuâ ̣t toán không được thực hiê ̣n mô ̣t trong các phương thức trên trong giao diê ̣n , phương thức đó được trả về a CFNotImplementedException. Thuật đoán được thực hiê ̣n trong gói org.recommender.algorithms.
4.3.1.1. Dƣ̣ đoán mô ̣t Đánh giá
ItemPrediction predictRating(int SinhvienID, int MonhocID)
throws CFNotImplementedException;
Phương thức này trả về mô ̣t đối tượng chứa giá tri ̣ mà thuâ ̣t toán đoán trước mô ̣t sinh viên sẽ đánh giá mô ̣t khóa học. Sinh viên được xác đi ̣nh bằng SinhvienID , và khóa ho ̣c được xác đi ̣nh bằng MonhocID . Đó là những trường nhâ ̣n biết duy nhất cho sinh viên và khóa học trong hê ̣ tư vấn E-Recommender
Dữ liê ̣u đang thực hiê ̣n sẽ được giới ha ̣n bới giá tri ̣ đánh giá lớn nhất và nhỏ nhất (đươ ̣c xác đi ̣nh qua đối tượng RatingData ), và giá trị được đoán phải nằm trong khoảng này
Đánh giá được đoán trước được trả về theo SinhvienID và MonhocID trong mô ̣t đối tươ ̣ng ItemPrediction.
4.3.1.2. Lấy Top-N tƣ vấn
ItemPrediction[] getRecommendations(int activeSinhvien, int n)
Phương thức này trả về mô ̣t mảng các đối tượng ItemPrediction. Mảng sẽ đươ ̣c lưu trữ bằng cách xếp loa ̣i của khóa học. Nếu thuâ ̣t tón không đưa ra N tư vấn thì nó trả về một mạng có giá trị nhỏ hơn . Nếu thuâ ̣t toán có thể dự đoán đánh giá , mỗi đối tươ ̣ng ItemPrediction trong mảng sẽ có đáng giá đã được dự đoán cho viê ̣c tư vấn.
4.3.1.3. Lấy Top-N tƣ vấn theo Bộ môn
ItemPrediction[] getRecommendationsByType(int activeSinhvien, int n, int Bomon)
throws SQLException, CFNotImplementedException;
Phương thức này giống như phương thức getRecommendations(), Ngoại trừ nó sẽ có một b iến Integer go ̣i là BomonID. Trong Hệ tư vấn này , các khóa học được nhóm vào theo từng bộ môn . Giá trị trả về của phương thức này giống như của
getRecommendations()nhưng tất cả tư vấn phải là cùng Bô ̣ môn đã được đưa ra.
4.3.1.4. Cập nhâ ̣t sinh viên
void updateUser(int SinhvienID)
Hê ̣ tư vấn go ̣i phương thức này khi mô ̣t sinh viên được chỉnh sửa bằng cách thêm, xóa và chỉnh sửa một đánh giá.
4.3.1.5. Thờ i gian dƣ̣ đoán trung bình
long getAveragePredictionTime()
Phương thức này rất có ích để kiểm thử , nó trả về kết quả thời gian trung bình khi mô ̣t có mô ̣t dự đoán được ta ̣o ra . Điều này dễ dàng được thực hiê ̣n theo đoa ̣n code dưới đây:
public class YourAlgorithm implements CFAlgorithm {
private long NumPredictions = 0; private long Time = 0;
public ItemPrediction predictRating(int activeSinhvien, int Monhoc) throws CFNotImplementedException {
long startTime = System.currentTimeMillis(); ...
long stopTime = System.currentTimeMillis(); NumPredictions++;
Time += (stopTime - startTime); return predictedRating;
}
public long getAveragePredictionTime() throws CFNotImplementedException { return (Time / NumPredictions);
}
}
4.3.2. Thuật toán PopAlgorithm
# Comment
<name of option>=string
Cài đặt:
CFServer.alg.name=org.recommender.algorithms. PopAlgorithm
public class PopAlgorithm implements CFAlgorithm {
private RatingsData ratingsData; private long Time = 0;
private long NumPredictions = 0; public PopAlgorithm(RatingsData mgr)
public void updateUser(int SinhvienID) throws CFNotImplementedException public long getAveragePredictionTime() throws CFNotImplementedException public String toString()
public ItemPrediction[] getRecommendationsByType(int activeSinhvien,
int n,
int Bomon) throws CFNotImplementedException, SQLException
public ItemPrediction[] getRecommendations(int activeSinhvien, int n) throws SQLException, CFNotImplementedException
public ItemPrediction predictRating (int activeSinhvien, int Monhoc) throws CFNotImplementedException
}
4.4. Cấu trúc của hệ thống
Hê ̣ tư vấn được thực hiê ̣n trên hê ̣ điều hành Window XP, yêu cầu hê ̣ thống:
JDK 1.4.1 hoặc cao hơn
Cơ sở dữ liê ̣u MySQL Công cu ̣ phát triên là Ant
4.4.1. Mô hình thực thể liên kết trong E-Recommender
1 M M M Sinhvien SVID SVTen MucdoTM Khoahoc KHID KHTen Dokho Bomon BMID BMTen
Hình 4.1: Mô hình thực thể liên kết trong E-recommender
4.4.2. Cấu trúc cơ sở dữ liệu E-Recommender
Việc chuẩn hóa mô hình thực thể quan hệ cho các bảng sau: 1. Bảng khoahoc_table
Tên trƣờ ng Kiểu Ghi chú
KHID auto_increment Khóa chính
KHTen Varchar Tên khóa học
Dokho Varchar Cao, trung bình, thấp
2. Bảng sinhvien_table
Tên trƣờng Kiểu Ghi chú
SVID auto_increment Khóa chính
SVTen Varchar Tên của Sinh viên
MucdoTM Varchar Cao, trung bình, thấp
3. Bảng sinhvienInfo_table
Tên trƣờng Kiểu Ghi chú
SVID auto_increment Khóa chính
SoDanhGia Int Số lần đánh giá khóa học bởi sinh viên
4. Bảng Bomon_Table
Tên trƣờng Kiểu Ghi chú
BMID auto_increment Tên bộ môn, Khóa chính
BMTen Varchar Tên bô ̣ môn
5. Bảng Dangky_table
Tên trƣờng Kiểu Ghi chú
KHID Int Mã khóa học
Danhgia Double Giá trị trong khoảng 1-5
6. Bảng Monhoc_Bomon_Table
Tên trƣờng Kiểu Ghi chú
BMID Int Mã bô ̣ môn
KHID Int Mã khóa học
XSPT Boolean Xác suất môn học thuộc
vào bộ môn
4.5. Kết quả thực nghiệm
Trong phần này, chúng tôi sẽ trình bày nghiên cứu thực nghiệm đánh giá tính hiệu quả của khung tư vấn đã được đề xuất. Trong phần đầu của nghiên cứu, chúng tôi sẽ tìm hiểu khả năng khung dựa trên kỹ thuật lọc cộng tác có thể tự động phân tích các mẫu dữ liệu được sử dụng bởi nhiều phương pháp tư vấn khác nhau. Để minh họa sâu hơn những ưu điểm của khung tư vấn đã đề xuất, trong phần hai chúng tôi sẽ so sánh kết quả của khung mô hình quan hệ xác suất với các phương pháp lọc cộng tác hiện có bằng cách giới hạn đầu vào chỉ là bảng đăng ký mà thuật toán lọc cộng tác sử dụng.
4.5.1. Nguồn dữ liệu
Chúng tôi sử dụng dữ liệu để thử nghiệm từ [42]: Đó là một tập dữ liệu bao gồm 100.000 đánh giá cho 60 khóa học thuô ̣c vào 8 bô ̣ môn khác nhau và được thực hiê ̣n bởi gần 1000 sinh viên.
4.5.2. Thủ tục đánh giá và độ đo kết quả thực hiện
Việc đánh giá một tư vấn liên quan đến đánh giá của sinh viên, những người đã thực sự trải nghiệm các khóa học là việc làm khó và khá tốn kém. Trong nghiên cứu về các thuật toán tư vấn, một thủ tục kiểm tra được áp dụng chung để đánh giá kết quả thuật toán. Ý tưởng là lấy một phần của tập dữ liệu đăng ký làm tập dữ liệu kiểm tra và sử dụng các đăng ký còn lại (coi là tập huấn luyện) để sinh ra tư vấn. Các tư vấn sau
đó được đem so sánh với các đăng ký thực trong tập dữ liệu kiểm tra để rút ra độ đo kết quả thực hiện.
Trong nghiên cứu của mình, chúng tôi chọn 20% tương tác của mỗi sinh viên (đăng ký gần nhất) để tạo thành tập kiểm tra và chỉ định 80% còn lại (những đăng ký sớm hơn) làm tập huấn luyện. Chúng tôi tập trung vào nhiệm vụ tư vấn Top-N, trong đó một danh sách xếp hạng N khóa học được đưa ra làm tư vấn cho mỗi sinh viên. Với mỗi sinh viên, chất lượng tư vấn được đo dựa trên số lượng khóa học thực sự (tư vấn khớp với khóa học trong tập kiểm tra của sinh viên) và vị trí của đánh giá trong danh sách xếp hạng. Chúng tôi sử dụng đơn vị đo chất lượng tư vấn như sau:
Độ chính xác: Pc= N Somonhoc Điểm xếp hạng: RSc=j j h cj q ) 1 )( 1 (
2 trong đó j là chỉ mục trong danh sách xếp hạng, h là halflife
(thứ hạng của khóa học trong danh sách các khóa học mà người dùng có khả năng sẽ tham gia);
qcj = 1 nếu j nằm trong tập kiểm tra của c 0 nếu ngược lại
Đối với độ chính xác, mức độ gợi nhớ và độ đo F, giá trị trung bình trên toàn tập sinh viên được kiểm tra được sử dụng là độ đo tổng thể của thuật toán. Với điểm xếp hạng, điểm kết hợp RS cho toàn bộ sinh viên được kiểm tra sẽ được suy ra như sau:
RS = 100
c c
c c
RS RS
max trong đó max
c
RS là điểm xếp hạng cao nhất có được có sinh viên c nếu tất cả các đăng ký trong tương lại đều nằm trong top của danh sách xếp hạng.
4.5.3. Một số kết quả thử nghiệm:
Chúng tôi đã thử nghiê ̣m với mô ̣t số sinh viên khác nhau trên hệ tư vấn, và kết quả cũng đưa ra mức độ tư vấn của hệ thống khác nhau so với các sinh viên . Ở đây chúng tôi đã thực nghiệm đối với những sinh viên mới đăng ký và chưa có đánh giá nào và các sinh viên đã đánh giá:
Đối với sinh viên mới:
Hình 4.2: Tƣ vấn top-n cho sinh viên mới
Hình 4.3: Tƣ vấn top – n theo bộ môn cho sinh viên mới
Đối với sinh viên đã tham gia một số khóa học:
Hình 4.4: Tƣ vấn theo top – N
Hình 4.5: Tƣ vấn top – N theo Bộ môn
Đối với sinh viên đã tham gia khóa học thì kết quả tư vấn theo thuật toán dựa trên mô hình quan hệ xác suất tốt hơn.
Tên Sinh viên Bô ̣ môn Khóa học đƣơ ̣c tƣ vấn
Mƣ́c đô ̣ tƣ vấn Trạng thái
Le Chi Hieu Khoa hoc may tinh
- Phương pháp tính và tối ưu.
- Phan tich va thiet ke thuat toan
3.3194375
3.1593
Đã đánh giá trong hê ̣ thống
Le Hoan Khoa hoc may tinh
- Phương pháp tính và tối ưu.
- Phan tich va thiet ke thuat toan
Khong Mới đăng ký
Nguyen Thanh Huyen
Khoa hoc may tinh
- Phương pháp tính và tối ưu.
- Phan tich va thiet ke thuat toan
4.1469407
4.089522
Đã đ ánh giá trong hê ̣ thống
Cũng cùng một khóa học là Phương pháp tính và tối ưu nhưng mức độ tư vấn của các sinh viên sẽ khác nhau.
4.5.4. Một số giao diện của hệ thống
Sau khi cho ̣n 2 chúng ta có giao diện sau:
Hình 4.7. Giao diê ̣n bắt đầu vào tƣ vấn
Giao diên để sinh viên Le Chi Hieu có thể lựa cho ̣n tư vấn hay dự đoán các khóa học như sau:
Hình 4.8. Giao diện lựa chọn top – N tƣ vấn theo bộ môn
Sau khi cho ̣n 10, là lấy top-10 tư vấn của bô ̣ môn cho sinh viên Le Chi Hieu ta có giao diê ̣n sau:
Hình 4.9. Lựa chọn bộ môn cần sinh tƣ vấn môn học
Sau khi lựa cho ̣n theo bô ̣ môn , giả sử sinh viên Le Chi Hieu chọn bộ môn Khoa học Máy tính và lựa cho ̣n số tư vấn cho các khóa học trong bô ̣ môn đó. Hê ̣ tư vấn sẽ đưa ra khóa học mà được nhiều người đã đánh giá nhất. Là Phương pháp tính và tối ưu.
KẾT LUẬN
Luận văn đã tập trung vào nghiên cứu một số vấn đề sau đây:
Hệ tư vấn sử dụng kỹ thuật lọc công tác: Các hệ thống giáo dục điện tử và hệ tư vấn tích hợp với nó thường là các hệ thống phân tán, động và mở. Luận văn này tập trung vào việc sử dụng các kỹ thuật tư vấn và lọc cộng tác để xây dựng hê ̣ hệ tư vấn nhằm giúp cho người ho ̣c không mất thời gian lựa cho ̣n các khóa học.
Hệ tư vấn trong giáo dục điện tử: Hệ tư vấn giúp sinh viên định hướng được
việc học khi tham gia vào các hệ thống giáo dục điện tử. Các hệ thống giáo dục điê ̣n tử t hường là các hệ thống phức tạp với lượng thông tin khổng lồ, do vậy, việc đưa ra các gợi ý tỏ ra thực sự hữu ích đối với sinh viên.
Tư vấn dựa trên mô hình quan hệ xác suất: Vấn đề quan trọng nhất của các hệ tư vấn là mô hình hóa sinh viên và từ các mô hình đó suy ra được các thông tin hữu ích để tư vấn. Mô hình quan hệ xác suất là mô hình dựa trên các phụ thuộc (quan hệ) của các dữ liệu của hệ thống để từ đó xác định được mối liên hệ giữa các thực thể đồng thời trích rút được các thông tin hữu ích cho việc truy vấn.
Cuối cùng, chúng tôi đã cài đặt thử nghiệm một hệ tư vấn dựa trên lo ̣c công tác E-Recommender giúp tư vấn tác vụ trong các hệ giáo dục điện tử có sẵn. Luận văn trình bày một số kết quả đạt được bước đầu và đánh giá kết quả đó.
Những ha ̣n chế của đề tài:
Luâ ̣n văn chưa đưa ra được sự tư vấn cho người ho ̣c trong suốt quá trình tham gia vào khóa học đó. Khi người ho ̣c nhâ ̣n kết quả không tốt về khóa học thì hệ tư vấn phải tư vấn cho ngườ i ho ̣c sẽ bắt đầu những môn như nào để có thể đa ̣t đươ ̣c kết quả tốt hơn.
Hiê ̣n ta ̣i chỉ áp du ̣ng tốt với dữ liê ̣u được đánh giá đa giá tri ̣. Chưa áp du ̣ng được với dữ liê ̣u đơn phân . Nghĩa là chưa xác định được khi một ngườ i ho ̣c không tham gia vào mô ̣t môn hoc nào đó, hê ̣ tư vấn sẽ không thể suy đoán được ta ̣i sao người ho ̣c không thích khóa học đó.
HƢỚNG PHÁT TRIỂN TRONG TƢƠNG LAI .
Trong tương lai chúng tôi sẽ mở rô ̣ng để tích hợp hệ tư vấn dựa t rên lo ̣c cô ̣ng tác E-Recommender này vào một hệ thống giáo dục trực tuyến . Hình sau sẽ mình họa mô ̣t ví du ̣ về kiến trúc của ứng du ̣ng quản lý hê ̣ thống ho ̣c trực tuyến kết hợp với hê ̣ tư vấn dựa trên Web.
Trong hình minh ho ̣a này mô ̣t sinh viên thông qua trình duyê ̣t web sẽ đăng nhâ ̣p vào hệ thống mà có tích hợp với hệ tư vấn E-Recommender. Trên hệ thống ho ̣c tâ ̣p trực tuyến sẽ xác đi ̣nh bản ghi của sinh viên trong cơ sở dữ liê ̣u sinh viên và từ đó xác đi ̣nh Id của sinh viên trong E-Recommender phù hợp với sinh viên đã đăng nhập . Mô ̣t yêu cầu sẽ được đưa ra bởi sinh viên sẽ gửi tới E-Recommender, từ đó sẽ phản hồi với sự tư vấn được thể hiê ̣n cho khóa học đó đúng như sinh viên đó mong muốn . Sau đó Hê ̣ thống ho ̣c trực tuyến truy câ ̣p vào cơ sở dữ liê ̣u khóa học để lấy lại nội dung phù hơ ̣p với sinh viên đó và hiê ̣n thi ̣ các khóa học đó cho sinh viên.
Các tư vấn Phản hồi
Yêu cầu Đánh giá
Cơ sở dữ liê ̣u sinh
viên
Cơ sở dữ liê ̣u khóa
học Cơ sở dữ
liê ̣u đánh giá E- Recommender
Hê ̣ thống học
TÀI LIỆU THAM KHẢO
[1] P. Dempster, N. M. Laird, and D. B. Rubin, Maximum likelihood from incomplete data via the EM algorithm, Journal of the Royal Statistical Society, B 39:1–39, 1977.
[2] Engelhart and D. Koller. Personal communication, 1999.
[3] Heckerman, D. Geiger, and D. M. Chickering. Learning Bayesian networks: The combination of knowledge and statistical data. Machine Learning,