HackathonHCVT
Hackathon project
Mô tả phần core a. Phương pháp sử dụng Phương pháp chính là collaborative filtering b. Mô tả phương pháp
- Phân tích thị hiếu người dùng: cho người dùng lựa chọn khóa học nào ưa thích hơn. Chú thích: Theo phương pháp cũ thì các khóa học được đưa cho người dùng rating bằng thang điểm tuyệt đối (5 star base). Nhưng phương pháp này gặp vấn đề là điểm đánh giá không có mức độ phân biệt cao hơn nữa việc cho điểm phụ thuộc vào cảm xúc hiện thời của người dùng. Hôm nay vui người dùng có thể cho 5 sao nhưng khi tâm trạng không tốt thì có thể người dùng chỉ cho 3 sao. Ngược lại, đối với phương pháp đánh giá giữa các khóa học thì ít bị ảnh hưởng bởi tâm trạng hiện thời của người dùng.
- Tính điểm tương đồng trong thị hiếu của người dùng, với một người dùng thì độ tương đồng của những người dùng khác có thể được đánh giá thông qua thị hiếu.
- Gợi ý khóa học cho người dùng dựa vào thông tin của nhiều người dùng khác. Khả năng để một user sẽ thích một khóa học sẽ được đánh giá như sau: Tổng số của sự ưa thích một người dùng khác x độ tương đồng giữa hai user User A: 2 > 4 > 3 > 1 User B: 4 > 2> 3 > 1 User C: 2 > 4 > 3 > 1 User D: 2> 4 > 3 > 1 Nếu người dùng A, C đã học: 4 -> 3 -> 2 và người dùng D đã học 4 -> 3 thì gợi ý cho người dùng D học khóa học 2
- Gợi ý khóa học tự động dựa vào quy luật thống kê (x đánh dấu đã học):
Khóa học User 1 2 3 4 A x x
B x x C x x
D x x E x x
F x x x G x x x H x x x x
Ví dụ: Tính độ tương đồng giữa hai khóa học: Khóa học 1: US = [0, 1, 0, 1, 1, 0, 1, 1] Khóa học 2: US = [1, 0, 1, 0, 0, 1, 1, 1] Khóa học 3: US = [1, 0, 1, 0, 1, 1, 0, 1] Khóa học 4: US = [0, 1, 0, 1, 0, 1, 1, 1] Độ tương đồng giữa 2 và 1 là: US[course=2] . US[course=1] = 2 / 5 Độ tương đồng giữa 3 và 2 là: US[course=3] . US[course=2] = 4 / 5 Nếu ng dùng học khóa học 2 => gợi ý khóa học 3 b. Thuật toán collaborative filtering cơ bản
Memory based:
Model based k-mean clustering
where, ‘||xi - vj||’ is the Euclidean distance between xi and vj. ‘ci’ is the number of data points in ith cluster. ‘c’ is the number of cluster centers. c. Thuật toán tính độ phù hợp (dự đoán rate)
Distance base:
Recurrent neural network (deep learning)
- Phần UI a. Platform Android b. Mô tả chức năng chính
- Hiển thị những khóa học đang được ưa thích nhất (trình tự được phần đông người dùng đánh giá)
- Hiển thị phần survey để đánh giá thị hiếu người dùng. Option khóa học A, với khóa học B
Hiển thị các khóa học được recommend
Công nghệ sử dụng
a. Back-end technology
- Để tìm những người dùng tương đồng, ứng dụng có chúng tôi sử dụng thuật toán: pearsonr (thư viện numpy) và k-nearest neighbor (thư viện scikit-learn). Bên cạnh đó chúng tôi cũng sử dụng thuật toán k-mean clustering (thư viện scikit-learn) để tìm những cụm người dùng tương đồng. Thuật toán này có thể hạn chế được hiện tượng "profile injection attack".
- Để tính được mức độ phù hợp của môn học với người dùng chúng tôi có hai phương pháp. Phương pháp thứ nhất là tính điểm phù hợp bằng tổng của đánh giá của các người dùng tương đồng nhân với độ thương đồng. Phương pháp thứ hai chúng tôi sử dụng thuật toán deep learning (thư viện tensorflow) cụ thể là mô hình recurrent neural network. Phương pháp thứ hai có thể tránh được overfitting do hiện tượng "profile injection attack". b. Front-end technology
- Công cụ Android Studio c. DB technology
- MySQL d. Programming languages
- Python
- Java
- Android
- SQL
Link demo: https://youtu.be/ONwe7EIc-OQ

Log in or sign up for Devpost to join the conversation.