Đang tải... (xem toàn văn)
Màn hình Danh sách các tập phim tải xuống .... Giao diện hiện đại và thân thiện của các ứng dụng giúp tăng cường trải nghiệm người dùng, đi kèm với các chức năng tìm kiếm thông minh và k
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 22
LỜI CẢM ƠN
Lời đầu tiên, nhóm chúng em không biết nói gì hơn ngoài bày tỏ sự biết ơn sâu sắc đến các thầy cô và các bạn Người đã đồng hành và tận tình giúp đỡ chúng em trong suốt quá trình học tập để hoàn thành đồ án này Trong suốt quá trình đó, chúng em luôn nhận được sự hướng dẫn đầy tâm quyết, tận tình và tình yêu thương từ mọi người
Đặc biệt, chúng em xin bày tỏ sự kính trọng và lòng biết ơn sâu sắc nhất đến cô giáo đã hướng dẫn tụi em đó là ThS.Trần Thị Hồng Yến – Giảng Viên Khoa Công nghệ phần mềm, Trường ĐH Công nghệ thông tin - ĐHQGHCM, cô là người đã hướng
dẫn tụi em thực hiện Đồ án 1 và đã trực tiếp giúp đỡ cho chúng em để có thể hoàn
thành đồ án này một cách tốt nhất
Cuối cùng, chúng em xin chân thành cảm ơn gia đình và người thân, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên chúng em trong suốt quá trình học tập và hoàn thành đồ án này
Tuy nhiên, với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên, chúng em nhận thấy đồ án của mình vẫn còn chưa hoàn chỉnh, có nhiều thiếu xót, có nhiều điều cần chỉnh sửa, có nhiều điều cần học hỏi Vì thế, chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để chúng em có điều kiện bổ sung, nâng cao kiến thức của mình, phục vụ tốt hơn cho các đồ án kế tiếp cũng như công việc thực tế sau này
Chúng em xin chân thành cảm ơn ạ!
Trang 52.1.3.2 Xác suất hậu nghiệm 25
2.2 Nghiên cứu thực nghiệm 26
2.2.1 Bộ dữ liệu 26
2.2.2 Phương pháp huấn luyện 26
2.2.2.1 Hàm mất mát 26
2.2.2.2 Thuật toán 27
2.2.2.3 Dữ liệu đầu vào 27
Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28
3.1 Yêu cầu chức năng 28
3.2 Yêu cầu phi chức năng 29
3.3.2.1 Activity Diagram cho Đăng nhập 32
3.3.2.2 Activity Diagram cho Quên mật khẩu 33
3.3.2.3 Activity Diagram cho Đăng ký 34
3.3.2.4 Activity Diagram cho Tìm kiếm phim 35
3.3.2.5 Activity Diagram cho Xem phim 35
3.3.2.6 Activity Diagram cho Điều chỉnh phim xem 36
3.3.2.7 Activity Diagram cho Chọn tập phim 36
3.3.2.8 Activity Diagram cho Thêm phim vào danh sách của tôi 37
3.3.2.9 Activity Diagram cho Tải phim 38
Trang 66
3.3.2.10 Activity Diagram cho Chỉnh sửa thông tin hồ sơ 39
3.3.2.11 Activity Diagram cho Đánh giá phim 40
3.3.2.12 Activity Diagram cho Đổi mật khẩu 41
3.3.2.13 Activity Diagram cho Đăng xuất 42
3.3.2.14 Activity Diagram cho Xoá tài khoản 43
3.4.9 Chỉnh sửa thông tin hồ sơ 50
3.4.11.Thêm phim vào danh sách của tôi 51
3.4.13.Tải phim 52
3.4.14.Đánh giá phim 53
3.4.16.Đổi mật khẩu 54
3.4.18.Đăng xuất 55
3.4.19.Xoá tài khoản 55
3.5 Thiết kế mô hình dữ liệu quan hệ 56
Trang 74.1.8.1 Màn hình Danh sách các phim tải xuống 72
4.1.8.1 Màn hình Danh sách các tập phim tải xuống 73
4.1.9 Màn hình Hồ sơ 74
4.1.10.Màn hình Đổi mật khẩu 75
4.1.11.Màn hình Danh sách của tôi 76
4.1.12.Màn hình Chi tiết phim 77
4.1.12.3 Hộp thoại phim đã tải 83
4.1.12.4 Hộp thoại Đánh giá phim 84
4.1.13.Màn hình Tìm kiếm phim 85
4.1.13.1 Màn hình Tìm kiếm phim 85
Trang 88
4.1.13.1 Màn hình Kết quả tìm kiếm phim 86
4.1.14.Hộp thoại Đăng xuất 87
5.4 Bảng phân công công việc 95
TÀI LIỆU THAM KHẢO 96
Trang 99
MỤC LỤC BẢNG
Bảng 1.1 Bảng khảo sát các phần mềm hiện nay 17
Bảng 1.2 Bảng phân tích các khía cạnh Netflix 18
Bảng 3.1 Danh sách các chức năng 28
Bảng 3.2 Danh sách các Use Case 31
Bảng 3.3 Đặc tả use case đăng nhập 44
Bảng 3.4 Đặc tả use case quên mật khẩu 45
Bảng 3.5 Đặc tả use case đăng ký 46
Bảng 3.6 Đặc tả use case tìm kiếm phim 47
Bảng 3.7 Đặc tả use case xem phim 48
Bảng 3.8 Đặc tả use case chọn tập phim 49
Bảng 3.9 Đặc tả use case chỉnh sửa thông tin hồ sơ 50
Bảng 3.10 Đặc tả use case thêm phim vào danh sách của tôi 51
Bảng 3.11 Đặc tả use case tải phim 52
Bảng 3.12 Đặc tả use case đánh giá phim 53
Bảng 3.13 Đặc tả use case đổi mật khẩu 54
Bảng 3.14 Đặc tả use case đăng xuất 55
Bảng 3.15 Danh sách các bảng đối tượng 57
Bảng 3.16 Chi tiết bảng Person 58
Bảng 3.17 Chi tiết bảng Cast 58
Bảng 3.18 Chi tiết bảng Crew 59
Bảng 3.19 Chi tiết bảng Film 60
Bảng 3.20 Chi tiết bảng Gerne 61
Bảng 3.21 Chi tiết bảng Film_Gerne 61
Bảng 3.22 Chi tiết bảng Seasons 61
Bảng 3.23 Chi tiết bảng Episodes 62
Bảng 3.24 Chi tiết bảng Review 63
Bảng 3.25 Chi tiết bảng Profile 63
Bảng 4.1 Mô tả màn hình giới thiệu 64
Trang 1010
Bảng 4.2 Mô tả màn hình Đăng nhập 65
Bảng 4.3 Mô tả màn hình Đăng ký 66
Bảng 4.4 Mô tả màn hình Trang chủ 68
Bảng 4.5 Mô tả hộp thoại Thể loại 69
Bảng 4.6 Mô tả màn hình Chi tiết thể loại 70
Bảng 4.7 Mô tả màn hình Mới và hot 71
Bảng 4.8 Mô tả màn hình Các phim tải xuống 72
Bảng 4.9 Mô tả màn hình Các tập phim tải xuống 73
Bảng 4.10 Mô tả màn hình Hồ sơ 74
Bảng 4.11 Mô tả màn hình Đổi mật khẩu 75
Bảng 4.12 Mô tả màn hình danh sách phát của tôi 76
Bảng 4.13 Mô tả màn hình chi tiết phim 78
Bảng 4.14 Mô tả mục đề xuất phim 79
Bảng 4.15 Mô tả mục danh sách diễn viên phim 79
Bảng 4.16 Mô tả mục danh sách đội ngũ 80
Bảng 4.17 Mô tả màn hình Danh sách tập phim 81
Bảng 4.18 Mô tả màn hình tải phim 82
Bảng 4.19 Mô tả hộp thoại phim đã tải 83
Bảng 4.20 Mô tả hộp thoại Đánh giá phim 84
Bảng 4.21 Mô tả màn hình Tìm kiếm phim 85
Bảng 4.22 Mô tả màn hình Kết quả tìm kiếm phim 86
Bảng 4.23 Mô tả hộp thoại đăng xuất 87
Bảng 4.24 Mô tả màn hình xem phim 88
Bảng 4.25 Mô tả màn hình trang mở đầu 90
Bảng 4.26 Mô tả màn hình web trang chủ 92
Bảng 4.27 Mô tả màn hình web phim chi tiết 93
Bảng 5.1 Bảng phân công công việc 95
Trang 1111
MỤC LỤC HÌNH ẢNH
Hình 1.1 Biểu đồ tỉ lệ người xem ở các nền tảng xem phim trực tuyến 14
Hình 2.1 Giới thiệu Flutter 20
Hình 2.2 Giới thiệu Supabase 23
Hình 2.3 Công thức tính xác suất thực nghiệm 25
Hình 3.1 Sơ đồ Use Case tổng quát 30
Hình 3.2 ActivityDiagram cho đăng nhập 32
Hình 3.3 Activity Diagram cho quên mật khẩu 33
Hình 3.4 Activity Diagram cho đăng ký 34
Hình 3.5 Activity Diagram cho tìm kiếm phim 35
Hình 3.6 Activity Diagram cho xem phim 35
Hình 3.7 Activity Diagram cho điều chỉnh phim xem 36
Hình 3.8 Activity Diagram cho chọn tập phim 36
Hình 3.9 Activity Diagram cho Thêm phim vào danh sách của tôi 37
Hình 3.10 Activity Diagram cho Tải phim 38
Hình 3.11 Activity Diagram cho chỉnh sửa thông tin hồ sơ 39
Hình 3.12 Activity Diagram cho đánh giá phim 40
Hình 3.13 Activity Diagram cho đổi mật khẩu 41
Hình 3.14 Activity Diagram cho đăng xuất 42
Hình 3.15 Activity Diagram cho xoá tài khoản 43
Hình 3.16 Sơ đồ các đối tượng 56
Trang 1212
Hình 4.9 Màn hình Các tập phim tải xuống 73
Hình 4.10 Màn hình Hồ sơ 74
Hình 4.11 Màn hình Đổi mật khẩu 75
Hình 4.12 Màn hình Danh sách của tôi 76
Hình 4.13 Màn hình chi tiết phim 77
Hình 4.14 Mục Đề xuất phim 78
Hình 4.15 Màn hình mục diễn viên phim 79
Hình 4.16 Màn hình mục danh sách đội ngũ phim 80
Hình 4.17 Màn hình Danh sách tập phim 81
Hình 4.18 Màn hình tải phim 82
Hình 4.19 Hộp thoại phim đã tải 83
Hình 4.20 Hộp thoại Đánh giá phim 84
Hình 4.21 Màn hình Tìm kiếm phim 85
Hình 4.22 Màn hình Kết quả tìm kiếm phim 86
Hình 4.23 Hộp thoại Đăng xuất 87
Hình 4.24 Màn hình Xem phim 88
Hình 4.25 Màn hình Web Giới thiệu 1 89
Hình 4.26 Màn hình Web Giới thiệu 2 89
Hình 4.27 Màn hình Web Giới thiệu 3 90
Hình 4.28 Màn hình Web Trang chủ 1 91
Hình 4.29 Màn hình Web Trang chủ 2 91
Hình 4.30 Màn hình Web phim chi tiết 1 92
Hình 4.31 Màn hình Web phim chi tiết 2 93Z
Trang 1313
Chương 1 GIỚI THIỆU ĐỀ TÀI
1.1 Mở đầu 1.1.1 Đề tài
1.1.1.1 Đặt vấn đề
Việc xem phim đóng vai trò quan trọng trong đời sống của con người, mang lại những lợi ích đa dạng Nó không chỉ là một hình thức giải trí và giảm stress hiệu quả mà còn tạo nguồn năng lượng tích cực và động lực Xem phim cung cấp cơ hội học hỏi và mở rộng kiến thức, giúp người xem hiểu biết về văn hóa, lịch sử và nhiều lĩnh vực khác Thông qua trải nghiệm xã hội, nó còn tạo ra những kỷ niệm đặc biệt và tăng cường kết nối xã hội
Ngoài ra, xem phim thúc đẩy sự phát triển tư duy và trí tưởng tượng, giúp người xem thách thức bản thân và khám phá những ý tưởng mới Nó cũng đóng vai trò trong việc thiết lập giá trị và triết lý cá nhân, đồng thời là một phương tiện giao tiếp nghệ thuật, mang lại trải nghiệm thị giác và sáng tạo
Việc có ứng dụng di động và trang web xem phim không chỉ mang lại sự thuận tiện và linh hoạt cao cho người xem mà còn cung cấp trải nghiệm người dùng tối ưu hóa Giao diện hiện đại và thân thiện của các ứng dụng giúp tăng cường trải nghiệm người dùng, đi kèm với các chức năng tìm kiếm thông minh và khả năng tương tác với người xem
Hiện nay theo thống kê từ movieguide.org [1], tổng số người xem phim trực tuyến trên thường xuyên lên tới hơn 70% dân số đều xem phim Trong đó, theo kết quả nghiên cứu từ GMO-Z.com RUNSYSTEM [2] cho thấy có đến hơn 67% người tham gia khảo sát có sử dụng nền tảng xem phim có bản quyền, trong đó chiếm tỉ lệ nhiều nhất là Netflix với 41.9%, và thiết bị chủ yếu khảo sát viên sử dụng rơi vào Laptop và SmartPhone
Trang 14Để giải quyết vấn đề trên, nhóm em quyết định chọn đề tài Xây dựng app và web xem phim tích hợp hệ thống khuyến nghị nhằm phát triển một ứng dụng cung cấp
một lựa chọn phù hợp với người sử dụng nhất giúp cải thiện trải nghiệm người dùng và tăng khả năng giữ chân khách hàng.
1.1.2 Mục đích và phạm vi của đề tài
1.1.2.1 Mục đích
- Xây dựng hệ thống quản lý các bộ phim
- Lên danh sách và cập nhật các bộ phim, sắp xếp các bộ phim theo danh mục, diễn viên, đạo diễn Từ đó người dùng có thể tìm kiếm phim hiệu quả
Trang 15- Chức năng xem thông tin diễn viên và đạo diễn và những bộ phim liên quan - Quản lý hồ sơ cá nhân người dùng
- Thông báo về các bộ phim sắp ra mắt và các thông báo về tài khoản người dùng
- Hệ thống khuyến nghị
- Mô hình hoạt động của ứng dụng xem phim
1.1.3 Phương pháp nghiên cứu
- Tìm hiểu công nghệ: Dart, Flutter, Supabase - PostgreSQL, Microsoft Azure
Trang 1616
- Phân tích các giải pháp của các ứng dụng tương tự trên thị trường - Thực hiện khảo sát nhu cầu, tình trạng thực tế của người dùng - Phân tích và xác định yêu cầu
- Lên kế hoạch - Thiết kế:
- Thiết kế cơ sở dữ liệu - Thiết kế đối tượng - Triển khai
1.2.1.1 Khảo sát các phần mềm hiện nay
Sau khi tìm hiểu các công nghệ và phần mềm tương tự có mặt tại Việt Nam, dưới đây là bảng so sánh của một số phần mềm tiêu biểu
Trang 1717
Bảng 1.1 Bảng khảo sát các phần mềm hiện nay
Video
Netflix Bilibili
Bắt buộc đăng nhập để sử dụng Có Có Không Cho phép đăng nhập từ bên thứ 3 Không Không Có
lượt/ngày)
Theo dõi thời lượng đã xem mỗi tập phim
Hầu hết các phần mềm đều quản lý số lượng lớn các bộ phim với đa dạng thể loại Trong đó vấn đề bảo mật và mức độ linh hoạt cũng được coi trọng
Dưới đây là bảng phân tích chi tiết phần mềm xem phim được đánh giá khá cao, Netflix
Trang 1818
Bảng 1.2 Bảng phân tích các khía cạnh Netflix
Khía Cạnh Phân Tích
Kiến Trúc Hệ Thống
Netflix sử dụng một kiến trúc phân tán để đảm bảo mức độ linh hoạt và mở rộng Cơ sở dữ liệu phải xử lý hàng triệu dữ liệu về người dùng, lịch sử xem phim, và thông tin phim Sự mở rộng đồng thời và cân nhắc kỹ thuật là quan trọng để đảm bảo trải nghiệm người dùng liền mạch
Trải Nghiệm Người Dùng
Giao diện người dùng của Netflix được thiết kế để đáp ứng tốt trên nhiều thiết bị và kích thích việc tương tác Kỹ sư phần mềm phải liên tục tối ưu hóa trải nghiệm người dùng, đồng thời sử dụng thuật toán máy học để đề xuất nội dung cá nhân hóa dựa trên lịch sử xem phim và sở thích cá nhân của người dùng
Quản Lý Nội Dung
Hệ thống quản lý nội dung phải xử lý hàng nghìn, thậm chí hàng triệu tiêu đề phim, đồng thời quản lý các biến thể chất lượng video và phụ đề Công nghệ mã hóa và lưu trữ phải được tối ưu hóa để đảm bảo tải nhanh và chất lượng video cao
Bảo Mật và Quyền Riêng
Tư
Bảo mật là mối quan tâm hàng đầu với Netflix vì thông tin người dùng, đặc biệt là thông tin thanh toán, phải được bảo vệ chặt chẽ Kỹ sư phần mềm cần triển khai các biện pháp bảo mật như mã hóa mạnh mẽ, kiểm soát truy cập và giám sát hệ thống liên tục
Tối Ưu Hóa Hiệu Suất
Việc tối ưu hóa hiệu suất là quan trọng để đảm bảo việc xem phim mượt mà và không gặp gián đoạn Kỹ sư phần mềm cần theo dõi hiệu suất hệ thống, tối ưu hóa mã nguồn và áp dụng các kỹ thuật caching để giảm thiểu thời gian tải
Trang 19nền tảng nhất có thể và tăng tính trải nghiệm người dùng
- Cải thiện chất lượng xem phim: Có thể xây dựng hệ thống khuyến nghị các bộ phim tương tự dựa trên thể loại phim của người dùng đang xem, góp phần làm người dùng hứng thú hơn khi sử dụn0g phần mềm
Trang 20Tại thời điểm ra mắt vào năm 2018, Flutter chủ yếu hỗ trợ phát triển ứng dụng di động Hiện nay, Flutter hỗ trợ phát triển ứng dụng trên sáu nền tảng: iOS, Android, web, Windows, MacOS và Linux
Hình 2.1 Giới thiệu Flutter
Flutter sử dụng Ngôn ngữ Dart Dart là ngôn ngữ thuần OOP, nó được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động
Sự hình thành và phát triển của Flutter có thể giải quyết cho vấn đề thường gặp ở trên di động là Fast Development – phát triển nhanh và Native Performance – hiệu suất gốc Sử dụng Flutter hoàn toàn không mất phí và dùng với mã nguồn mở
Flutter thường bao gồm 2 thành phần chính quan trọng như sau:
Trang 2121
- Một SDK (Software Development Kit): Đây là một bộ sưu tập bao gồm các công cụ có thể hỗ trợ cho người dùng có thể phát triển được các ứng dụng nền của mình Những điều này thường bao gồm các công cụ có trình để biên dịch mã thành các mã gốc dành riêng cho hệ điều hành iOS và Android
- Một Framework (UI Library based on widgets): Mỗi một tập hợp những thành phần giao diện của người dùng đều có thể thực hiện tái sử dụng vô cùng dễ dàng nên người sử dụng có thể cá nhân hóa tùy theo nhu cầu riêng của bản thân mình
Tính năng phát triển nhanh chóng các ứng dụng: Hầu hết, mọi tính năng hot reload của Flutter giúp cho người dùng có thể sử dụng thử nghiệm nhanh chóng và dễ dàng hơn rất nhiều Với khả năng xây dựng giao diện cho người dùng cộng thêm các tính năng về sửa lỗi nhanh chóng nên Flutter đang thu hút không ít người sử dụng lựa chọn Ngoài ra, các trải nghiệm về thực hiện tải lại lần thứ hai đều rất dễ dàng mà không làm mất đi trạng thái ở trên emulator, simulator và device cho cả iOS và Android.UI đẹp mắt và có tính biểu cảm: Flutter thỏa mãn người sử dụng nhờ các widget built-in vô cùng đẹp mắt dựa theo Material Design và Cupertino (iOS-flavor), thì các API sẽ thực hiện chuyển động theo nhiều hướng phong phú, scroll tự nhiên và mượt mà nên có thể tự động nhận thức được các nền tảng cần thiết
2.1.1.2 Ưu điểm
- Có hiệu ứng, hiệu suất ứng dụng cao
- Có sự giao tiếp với hệ thống gần như trực tiếp
- Sử dụng ngôn ngữ kiểu tĩnh nhưng có cú pháp hiện đại, linh động
- Có thể chạy giả lập mobile ở trên web, tiện ích cho sự phát triển Những bộ đo lường chỉ số hiệu suất giúp cho lập trình viên có thể kiểm soát hiệu suất của ứng dụng một cách hiệu quả
- Có thể dùng trong xây dựng các nền tảng gắn liền với ứng dụng thực tế nhằm tăng hiệu suất
Trang 2222
2.1.1.3 Nhược điểm
- Bộ Render UI được nhóm phát triển hầu như là viết lại, nó không có sự liên quan đến UI của Framework native, từ đó khiến cho memory sử dụng quá nhiều Đồng thời, những UI không chung cùng OS, nó được phát triển riêng nó tương tự với Android nhưng UI của Android thì lại khác với iOS
- Để dùng Flutter thì bạn cần phải học thêm ngôn ngữ Dart Dart lại không phổ biến lắm và có thể ảnh hưởng tới sự phát triển các ứng dụng trên thiết bị
2.1.2 Tổng quan về Supabase
2.1.2.1 Giới thiệu
Supabase [4] là một giải pháp thay thế Firebase mã nguồn mở cung cấp Backend dưới dạng Dịch vụ cho nhiều ứng dụng khác nhau Các công cụ mà Supabase cung cấp như sau:
- Cơ sở dữ liệu Postgres được lưu trữ - Đăng ký thời gian thực
- Xác thực và ủy quyền - API được tạo tự động - bảng điều khiển - Kho
Trang 2323
Hình 2.2 Giới thiệu Supabase
Supabase cung cấp tất cả các tính năng phụ trợ mà bạn cần để xây dựng một sản phẩm Bạn có thể sử dụng tất cả các công cụ hoặc chỉ những công cụ bạn cần nhất, ví dụ:
- Cơ sở dữ liệu: Cơ sở dữ liệu Postgres riêng tư, có thể mở rộng
- Thẩm quyền: Quản lý người dùng với Bảo mật cấp hàng
- Lưu trữ tập tin: Lưu trữ, sắp xếp và trình bày các tệp lớn
- API được tạo tự động: Tạo ngay API cho cơ sở dữ liệu của bạn
Supabase được xây dựng trên phần mềm nguồn mở Công cụ và cộng đồng MIT, Apache 2 hoặc, nếu có sẵn theo giấy phép tương thích, họ sẽ sử dụng và quảng bá chúng
Nếu nó chưa tồn tại, họ sẽ tạo chương trình và xuất bản nó Supabase không phải là bản đồ một - một của Firebase về mặt tính năng Mục đích của họ là cung cấp cho các nhà phát triển trải nghiệm phát triển tương tự bằng cách sử dụng các công nghệ nguồn mở
Supabase là một nền tảng được lưu trữ Bạn có thể đăng ký ngay và bắt đầu sử dụng Supabase mà không cần phải cài đặt bất cứ thứ gì trên máy chủ của mình Bạn cũng có thể lưu trữ và phát triển mọi thứ tại máy tính
Họ chia mỗi thư viện thành những phần nhỏ có thể sử dụng riêng Mỗi thư viện con là một triển khai độc lập của hệ thống bên ngoài Đây là một trong những cách để giữ cho các công nghệ hiện tại có liên quan
Trang 24- Gợi ý phim ảnh (Netflix, Youtube) - Xếp hạng page của Google
- Xếp hạng sản phẩm thương mại điện tử (Amazon) - Tự động hoàn thiện câu truy vấn
- Tìm kiếm hình ảnh (vimeo)
- Tìm kiếm nhà nghỉ (Expedia/Booking)
Trong bài toán Ranking, mô hình cố gắng dự đoán thứ hạng (hoặc chỉ số liên quan) của một danh sách các mục đối với task cụ thể Thuật toán đối với Ranking có thể chia làm các nhóm sau:
- Point-wise models: Dự đoán một điểm số đối với từng cặp truy vấn-văn bản trong dataset, và sử dụng nó để xếp hạng các mục
- Pairwise models: Học một phân loại nhị phân mà có thể trả lời rằng văn bản này có liên quan tới truy vấn này hay không?
Trang 252.1.3.2 Xác suất hậu nghiệm
Xác suất hậu nghiệm, theo thống kê của Bayes, là xác suất được điều chỉnh hoặc cập nhật của một biến cố xảy ra sau khi xem xét thông tin mới
Xác suất hậu nghiệm được xác định bằng cách điều chỉnh xác suất tiên nghiệm bằng định lí Bayes
Theo thuật ngữ thống kê, xác suất hậu nghiệm là xác suất của biến cố A xảy ra do biến cố B đã xảy ra
Xác suất tiên nghiệm theo Bayes, là xác suất của một biến cố xảy ra trước khi dữ liệu mới được thu thập
Xác suất tiên nghiệm là dự đoán đúng nhất về kết quả xác suất dựa trên kiến thức và tính logic ở thời điểm trước khi thử nghiệm được thực hiện
- Công thức tính xác suất hậu nghiệm:
Công thức tính xác suất hậu nghiệm của biến cố A xảy ra khi biến cố B đã xảy ra:
Hình 2.3 Công thức tính xác suất thực nghiệm
Trong đó:
- A,B là các biến cố
- P(B) và P(A) là xác suất của biến cố B xảy ra và biến cố A xảy ra - P(B\A) là xác suất biến cố B xảy ra khi biến cố A đúng
Trang 26Tên bộ dữ liệu: TMDB 5000 Movie Dataset
Tổng quan bộ dữ liệu: Bộ dữ liệu "TMDB 5000 Movie Dataset" là một tập dữ liệu chứa thông tin về các bộ phim từ trang web The Movie Database (TMDB) Dữ liệu này cung cấp một bản tổng quan về hàng ngàn bộ phim, bao gồm thông tin về đạo diễn, diễn viên, thể loại, ngày phát hành, đánh giá, doanh thu, và nhiều thuộc tính khác
2.2.2 Phương pháp huấn luyện
Sử dụng mô hình ranking để xếp loại các dữ liệu dựa trên các đánh giá trọng số của một thức đo đánh giá và tính lấy trung bình của các truy vấn theo mô hình List-wise models
[5]Phương pháp "listwise" là một hướng tiếp cận trong huấn luyện mô hình khuyến nghị dựa trên ranking, nơi mục tiêu là tối ưu hóa trực tiếp một hàm mất mát liên quan đến độ đo hiệu suất của toàn bộ danh sách các mục được đề xuất cho một người dùng Thay vì xem xét từng cặp mục hoặc dự đoán xác suất mỗi mục, phương pháp listwise đánh giá hiệu suất của mô hình trên toàn bộ danh sách và tối ưu hóa theo hàm mất mát liên quan đến thứ tự đúng của các mục trong danh sách
Trang 2727
2.2.2.2 Thuật toán
- Các thuật toán được thiết kế để tối ưu hóa hàm mất mát listwise thường đặc trưng bởi việc sử dụng các kỹ thuật học tập sâu (deep learning) hoặc học tập xếp hạng (learning to rank)
- Mô hình có thể sử dụng các kiến trúc như mạng nơ-ron, mạng nơ-ron học tập sâu, hoặc các mô hình nhúng (embedding models)
2.2.2.3 Dữ liệu đầu vào
- Dữ liệu đầu vào cho phương pháp listwise thường bao gồm các cặp người dùng và danh sách các mục được đề xuất, cùng với thông tin về thứ tự đúng của các mục đó
- Mỗi điểm dữ liệu đầu vào thường biểu diễn một người dùng và một danh sách đề xuất
Sử dụng mô hình xếp hạng (ranking) top 250 bộ phim của IMDB dựa trên số lượt bình chọn, có trọng số dựa trên công thức sau:
𝑊 =𝑅 𝑣 + 𝐶 𝑚𝑣 + 𝑚Trong đó:
Trang 2828
Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Yêu cầu chức năng
Bảng 3.1 Danh sách các chức năng
1 Đăng nhập 2 Đăng ký 3 Đăng xuất 4 Quên mật khẩu 5 Đổi mật khẩu
6 Hiện danh sách phim theo thể loại, hạng mục 7 Tìm kiếm phim theo từ khoá
8 Danh sách các thông báo về phim mới nhất
9 Danh sách các phim tải xuống Chỉ có trên mobile 10 Chi tiết phim
11 Xem phim
12 Tạo danh sách phim yêu thích
điểm trên thang 5 14 Danh sách phim đề xuất
15 Danh sách diễn viên
16 Danh sách đội ngũ sản xuất 17 Điều chỉnh tốc độ phim
18 Khoá màn hình xem phim Chỉ có trên mobile 19 Xem và chỉnh sửa hồ sơ người dùng
20 Xoá tài khoản
Trang 2929
3.2 Yêu cầu phi chức năng
- Giao diện người dùng thân thiện, dễ sử dụng, đáp ứng các nhu cầu của người dùng
- Hệ thống bảo mật: bảo vệ thông tin khách hàng, thông tin sản phẩm, thông tin nhân viên và dữ liệu kinh doanh khác khỏi các mối đe dọa bên ngoài
- Tính ổn định và độ tin cậy: hệ thống phải hoạt động ổn định và đáp ứng được các yêu cầu kinh doanh trong thời gian dài mà không gặp sự cố nghiêm trọng - Hiệu suất: Hệ thống phải cho phép thao tác và xuất kết quả nhanh chóng Truy
vấn cơ sở dữ liệu và hiển thị kết quả không quá 10 giây (yêu cầu Internet) - Tính khả dụng: Thiết bị cần được kết nối Internet
Trang 3030
3.3 Mô tả tổng thể 3.3.1 Mô hình Use Case
3.3.1.1 Sơ đồ tổng quát
Hình 3.1 Sơ đồ Use Case tổng quát
Trang 3131
3.3.1.1 Danh sách các Use Case
Bảng 3.2 Danh sách các Use Case
UC03 Đăng ký User Người dùng tạo tài khoản mới
UC04 Tìm kiếm phim User Người dùng tìm bộ phim bằng cách nhập thông tin phim
UC05 Xem phim User Người dùng muốn xem phim và các thao tác khi xem phim
UC06 Chọn tập phim User Người dùng chọn tập phim muốn xem trong giao diện xem phim
UC07 Chỉnh sửa thông
UC10 Đánh giá phim User Người dùng muốn đánh giá phim
UC11 Đổi mật khẩu User Người dùng muốn đổi mật khẩu của tài khoản
UC12 Đăng xuất User Người dùng muốn đăng xuất khỏi ứng dụng
UC13 Xoá tài khoản User Người dùng muốn xoá tài khoản
Trang 3232
3.3.2 Mô hình Activity
3.3.2.1 Activity Diagram cho Đăng nhập
Hình 3.2 ActivityDiagram cho đăng nhập
Trang 3333
3.3.2.2 Activity Diagram cho Quên mật khẩu
Hình 3.3 Activity Diagram cho quên mật khẩu
Trang 3434
3.3.2.3 Activity Diagram cho Đăng ký
Hình 3.4 Activity Diagram cho đăng ký
Trang 3535
3.3.2.4 Activity Diagram cho Tìm kiếm phim
Hình 3.5 Activity Diagram cho tìm kiếm phim
3.3.2.5 Activity Diagram cho Xem phim
Hình 3.6 Activity Diagram cho xem phim
Trang 3636
3.3.2.6 Activity Diagram cho Điều chỉnh phim xem
Hình 3.7 Activity Diagram cho điều chỉnh phim xem
3.3.2.7 Activity Diagram cho Chọn tập phim
Hình 3.8 Activity Diagram cho chọn tập phim
Trang 3737
3.3.2.8 Activity Diagram cho Thêm phim vào danh sách của tôi
Hình 3.9 Activity Diagram cho Thêm phim vào danh sách của tôi
Trang 3838
3.3.2.9 Activity Diagram cho Tải phim
Hình 3.10 Activity Diagram cho Tải phim
Trang 3939
3.3.2.10 Activity Diagram cho Chỉnh sửa thông tin hồ sơ
Hình 3.11 Activity Diagram cho chỉnh sửa thông tin hồ sơ
Trang 4040
3.3.2.11 Activity Diagram cho Đánh giá phim
Hình 3.12 Activity Diagram cho đánh giá phim