-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Peruse (read something in a relaxed way) PRS book #10
Comments
Hello @quangvv9Life, Về buổi nói chuyện hôm Thứ 7Thanks Quang và anh Công hôm trước T7 đã cùng nghe Hải nói về đọc PRS và khó khăn gặp phải nhé. Như tớ đã nói thì tớ cũng không giỏi lắm phần thuật toán. Ví dụ như ở Chương 7 có những thuật toán hay phương pháp sau
Rồi tớ cũng feedback là cũng đọc qua Chương 9 nhưng mà nói thật cũng sợ đọc xong hơi hiểu hiểu thôi, không làm thì quên mất =.= Anh Công với Quang cũng góp ý là nên vừa đọc vừa làm... Tớ cũng đồng ý với cái đấy. Có lẽ cứ đọc xong cái gì có 1 đoạn code ra được thì sẽ nhớ nhất!!! Mà không biết sẽ khó khăn thế nào nữa đây hix... Về việc Quang đề nghị giúp đỡ tớThì Quang cũng có nói là Quang tuần này sẽ bắt đầu nghỉ ở MB. Quang cũng có nhiều thời gian hơn và có thể giúp tớ mấy chỗ khó bằng cách đọc lại T_T Rồi chắc Quang sẽ giảng lại cho tớ nhỉ T_T. Phản ứng ban đầu của tớ thì cũng là không muốn vì thực ra tớ nghĩ đọc xong giải thích cho người khác cũng khó hix. Hình như tớ không quen tiếp nhận sự giúp đỡ người khác 1 cách trực tiếp như thế. Thói quen mà hix. Sau về nhà tớ cũng nghĩ thêm liệu có thể nhờ Quang gì được đây T_T Có lẽ tớ không dám chắc lắm nhưng mà khả năng chắc nhờ Quang check hộ log chạy cái website trên server =.= Tớ cũng nghĩ sẽ có những cái log khá khó đấy nhưng mà hi vọng Quang fix được hết hoặc 1 phần thui cũng được =.= Còn tớ tập trung quyển sách kia xem sao. Tớ thấy như thế hợp lý hơn. Hi vọng Quang chấp nhận!!! Vì dù sao như Quang nói hình như cái web app chạy lên rồi mà có vẻ chưa ra đúng, chưa thấy recommendation đâu hix. Về thời gian biểu tớ hôm nayMấy hôm nay hình như tớ toàn dậy sớm thì phải. Sáng CN thì dậy từ 5 giờ hơn hay 6 giờ để đi bốc mộ bà em ông ngoại tớ ở quê Hà Tây @@. Đi từ nhà dì thôi, cách nhà dì khoảng 30 phút. Sáng nay thì dậy sớm 6 giờ để đến trường THCS Nguyễn Trãi giúp mẹ quay video ca nhạc biểu diễn kỷ niệm 22/12 cho các em học sinh xem ý @@. Vậy là chiều nay 3 giờ 30 chiều mới mò dậy được hix. Mẹ tớ cũng mệt hay sao mà chả quát dậy nữa @@. Sáng nay thì vì biết (hơi biết thôi) là mẹ sẽ gọi mình đi sớm rồi. Tối CN mẹ tớ chỉ nói sáng hôm sau con đi với mẹ mà chả nói thời gian là gì :( Tớ cũng chả buồn hỏi lại 😞. Tính tớ thế mà =.= Vậy là sáng nay nghĩ mãi nên đọc sách PRS, nên kiểm tra log hay làm gì nhỉ _TT. Cuối cùng 9h sáng cũng về rồi vì tới 8h30 là hết chương trình, tớ chọn thôi đọc Chương 1 miễn phí trên ý cho dễ =.= Nguyên nhân là vì hôm nay mệt mà cứ đâm đầu làm cái khó chắc kết quả cũng chả có gì cả... Haizzz. Về Chương 1 sách PRSLúc tớ đọc Chương 1 thì thấy tác giả cũng viết nhiều, cũng reference nhiều thứ nhưng mà Netflix là chủ yếu ấy 😢. Tớ cũng đọc những link tác giả reference. Tớ ấn tượng với hệ thống 600 màn hình có thể customize theo giới tính, tuổi người xem ở 1 sân bay Đan Mạch thôi hix. Chứ vào link Netflix blog nói về hệ thống recommendation của họ lại thấy chóng mặt =.= https://netflixtechblog.com/netflix-recommendations-beyond-the-5-stars-part-1-55838468f429 Có vẻ cái này nó không vào tớ được. Nó thiên về cảm giác chủ quan, thiên về kiểu con người quá T_T. Thôi đành cố vậy @@@@@@. Rồi những phần khác đọc cũng thấy hơi mơ hồ 1 xíu. Có lẽ đo chương đấy là Overview mà. Tớ túm lại cũng hiểu sơ sơ thôi, chưa thấy code, chưa chạy được xem vào ra thế nào thì vẫn chưa thực sự là hiểu ý :( Nói thật cảm giác hôm trước tớ đọc phần phỏng vấn tác giả có vẻ vào hơn =.= Thôi thì cứ tiếp tục nào. Có lẽ do hôm nay còn hơi mệt =.= Hi vọng mai sẽ khấm khá hơn, ra cái gì đó hay ho hơn. Tớ dùng 10h sáng tới 12h sáng để đọc Chương 1 và 1 ít link reference hix. 15h30 dậy thì ngồi update nốt file nói về tương lai và ghi nhận cảm xúc vì ăn uống, vì nói chuyện nhiều thứ quá hix. Làm tới 18h30 thì xong. Giờ tớ đang viết cho Quang comment đây!!! Cảm ơn Quang đã đọc đến đây. Chúc Quang buổi tối vui vẻ!!! |
Hello @quangvv9Life, Thanks Quang đã fix lỗi bên M365 nhé @@. Tớ vẫn chưa check comment bên đấy hix Không hiểu sao vẫn chưa có notification lúc đăng nhập GitHub trên Safari ở macOS =.= Hay Quang quên mention Về Chương 2 tớ đọc hôm nayHôm nay tớ có vào link xem Chương 2 của quyển PRS ở Manning thì cũng có nhiều cảm giác khá hay ho. https://livebook.manning.com/book/practical-recommender-systems/chapter-2 Nói chung thì không có xiền hay tự hạn chế mình tiêu tiền mua sách xịn cũng là 1 cái khá hay (tất nhiên tớ có 500 credits để unlock lúc nào cần dùng để xem 1 đoạn nào đó rồi) Về đọc miễn phí trên Manning
Và ngoài ra
Về trải nghiệm đọc trên ManningThực sự ban đầu tớ cũng chưa mò ra nút unlock 5 phút như ở trên đâu. Cứ click vào đoạn văn nào là xổ ra unlock kiểu
Thực sự thì ban đầu cũng tiếc 500 tokens nên cứ nhìn figures và listings mà đọc. Thế mà hóa ra cũng hay phết Quang à @@. Tớ nhìn cái đống đấy thôi mà cũng hiểu sơ qua nội dung chương đấy. Cũng hiểu họ muốn nói gì, đoạn code này làm gì (tất nhiên kiểu hiểu sơ sơ thôi chứ chi tiết thì chịu hix).
Về số người đọc trên ManningTrong lúc mò mẫm cái trang web Manning tớ phát hiện ra 1 chức năng rất hay là xem có bao nhiêu người cùng đọc sách ở Manning với mình @@. Không phải cùng đọc quyển sách đấy không. Nhìn vào hình trên thấy ở Việt Nam ở Hà Nội có nè, Sài Gòn có nè, Củ Chi có nè. Cơ mà nhìn rộng ra thấy ở US đông người đọc thật =.= Manning có quảng cáo 1/2 số sách về web development là họ viết. Công nhận dân Mỹ họ đọc ác thật =.= Việt Nam mình có lẽ mải manufacturing hự hự 😞. Về nội dung Chương 2Okay thì quay lại chủ đề chính nội dung Chương 2 User Behavior and How to Collect It (Hành vi người sử dụng và làm sao để thu thập được hay là Làm sao để thu thập hành vi người sử dụng =.=) Thực sự thì đọc kiểu free tớ đã thấy rất hay ở Table 2.1. Examples of evidence from Netflix (view table figure) rồi @@. Hóa ra lúc design 1 website thì sau đấy bước nâng cao hơn là thu thập hành vi người dùng. Có nghĩa là xem người dùng click cái gì, click đấy sẽ được đánh giá như thế nào =.=
Ở bảng Table 2.3. Page durations and a possible interpretation (view table figure) cũng khá hay khi phân tích theo thời gian người dùng đấy xem trang web. Càng xem nhiều chứng tỏ càng thích (very interested). Rồi cả ở Figure 2.4. When an expansion link is clicked, it’s an indication of the visitor’s interest. This is an example from Amazon.co.uk. tớ cũng thấy bất ngờ khi họ nói nút Thậm chí cả Figure 2.6. Netflix search result window, searching on wonder woman nói về phim mà Netflix không mua license nhưng có lẽ vẫn lưu lại Cơ mà DisneyPlus có hết phim của Marvel rồi và quảng cáo cũng ác =.= Chắc ai mà mê mẩn Wonder Woman quá sẽ subscribe 1 tháng $9.99 bên đấy để xem thôi =.= À nói đến Netflix có 1 cái rất hay Quang à là Netflix ở Việt Nam cho xem miễn phí 1 số bộ phim trên Android đấy (từ 2021/Nov) https://about.netflix.com/en/news/netflix-launches-free-plan-in-vietnam Không phải Ấn, Trung Quốc, Hàn hay Nhật có mà chỉ duy nhất Việt Nam có =.= Xịn xò thật. Không hiểu ở Việt Nam có cái gì hay mà Netflix lại muốn thu hút thế =.= Có lẽ do Millennias, Gen Z streaming nhiều quá @@@@@@. Tớ cũng chưa thử xem là Netflix Free Plan trên Android có phim gì hự hự. Trên mạng cũng không thấy có cái list nào luôn =.= Như bình thường sẽ có list Netflix ở Nhật có phim gì, Mỹ có phim gì chẳng hạn vì họ mua license của Hãng phim thành ra cũng phải tuân theo phim ý có ở nước ý hay không @@. Hình Figure 2.7. Example of an outlier có lẽ nói về kiểu có user nào đó hành vi bất thường và có khi nên bỏ ra =.= Hình Figure 2.8. When rating something on Amazon, it provides hints as to what the number of stars means. nói về rating trên Amazon từ 1 đến 5 sao cho 1 quyển sách =.= Đọc đến đây tớ mới thấy bất ngờ Quang ạ.
Bảng Figure 2.13. Data model of an evidence logger cũng làm cho tớ hiểu hơn về MovieGEEKs web app. Có cái bảng này nhìn code sẽ dễ hơn hix. Cái này là design còn code là implementation T_T.
Đoạn code này viết theo kiểu JavaScript =.= Như tớ nói ở trên cũng hơi hiểu làm gì, modify cũng được có mà viết mới cũng chịu =.= https://github.com/9health/moviegeek/blob/master/templates/moviegeek/index.html Tớ cũng mò trong đoạn source code thì thấy dùng ở nhiều chỗ trong các file
Đoạn này thì hiểu là sau khi generate impression từ front-end thì sẽ lưu vào database O_O. https://github.com/practical-recommender-systems/moviegeek/search?p=1&q=add_impression&type=Code Event ở đây có thể là hover, là Bảng Table 2.4. MovieGEEKs evidence points (view table figure) thì giúp hiểu rõ hơn là web app MovieGEEKs sẽ log gì. Hình Figure 2.15. What happens when a user clicks a genre giúp hiểu cơ chế để log rõ hơn từ click, xử lý URL và lưu vào database. Hình Figure 2.18. Generic data model nói về 2 bảng dữ liệu Hình Figure 2.19. User data model lưu nhiều thông tin user hơn hình trên!!! Về nội dung Chương 2 sau khi unlock 5 phútThật sự đọc kỹ hơn phần chương 2 ví dụ về mua 1 cái máy xúc cây (chắc là cỡ hàng chục nghìn đô) thấy thiết kế 1 trang web đơn giản thôi cũng cần có sơ đồ UML kiểu hành vi thì mới có thể không bị sót được =.= Người dùng vào, cảm nhận trang web, nhìn các nút 1 cách dễ dàng mới có thể tin và order được!!! Ngoài ra thì cũng có 2 thể loại ứng xử (behaviors) là
Thực sự thì thông tin kiểu subjective kia thì cũng chưa chắc đúng hẳn vì nhỡ lúc ý người ý vui vui ấn nhầm 5-sao thì... Có lẽ thông tin kiểu objective, lưu tự động kia nếu phân tích đúng sẽ đưa ra nhiều dữ liệu hay hơn @@. VÌ có thể là người dùng nhìn thấy 1 poster nào hay hay, ở lại link đó 1 phút nhưng nhỡ có việc nào đó phải đi thì... Nếu mình suggest cái đấy cho người dùng có vẻ sẽ hiệu quả hơn nhỉ T_T Tóm lại 1 trang web cũng là 1 nơi mình thể hiện cảm xúc ý @@. Nó cũng giống như là khi nói chuyện giữa 2 người với nhau vậy sẽ có 1 cái mạch cảm xúc đấy đi kèm với mình =.= Thật sự thì thiết kế 1 trang web kiểu chỉ cần nó đủ thông tin thôi có lẽ sẽ không quá phức tạp.
Đấy thì phân tích như thế mới thấy là người như tớ cũ thật, có lẽ là tớ cần nghe nhạc nhiều hơn, xem phim nhiều hơn để biết được cái bên trong mình (inner) như thế nào T_T. Hơặc là tớ cần dành thời gian tĩnh tâm suy nghĩ nhiều hơn @@. Chưa biết cái nào hơn cả nhưng mà có lẽ chắc phải dành thời gian tiếp cận với bên ngoài thì mới mở mang đầu óc được @@. Chắc là 50/50 cho cả 2 hix hix. Và có lẽ là tớ sẽ hợp với việc code cái collect này hơn là ngồi nghĩ là collect cái gì, design như thế nào, trông layout thế nào T_T. Chắc là cái đấy phù hợp với Quang hơn hự hự. Tớ phù hợp cái đoạn AJAX với database thui... Có lẽ thế hix. Về thời gian biểu của tớ hôm naySáng nay thì 5 giờ chuông tớ đặt kêu rồi nhưng mà mẹ tớ đang ngủ say nên tớ cũng chưa dậy. Tớ cứ vừa nằm vừa suy nghĩ lơ mơ @_@. Rồi 6h15 mẹ tớ dậy, tớ cũng bung mình dậy luôn rồi mở máy tính. Tớ lúc ý cũng đắn đo lắm mình nên làm gì đây. Nên đọc Chương 9 tiếp đây hay là Chương 2 đây.
7h15 thì mẹ tớ gọi ra ăn sáng. Cơ mà mẹ tớ cứ làm gì ý, mãi tới 8h30 mới ăn sáng xong =.= Vậy là tớ đã dùng 1 tiếng cho cái này rùi. Còn 1 tiếng nữa tớ lại đắn đo xem là nên đọc tiếp code đoạn collector hay là ngồi update nốt file Ghi Nhận Cảm Xúc. Vì là 10h30 mẹ tớ bắt ăn trưa để 1h30 chiều có cuộc gặp chị kia rồi hix. Vậy là tớ ngồi tới 9h30 để đọc nốt code trang kia vì nghĩ là đi gặp xong chắc trong đầu sẽ lại lộn xộn, sẽ lại suy nghĩ chả làm gì được tiếp hix. 9h30 đọc code xong thì tớ điền nốt file Future, Ghi Nhận Cảm Xúc và gửi nốt những files chưa gửi vào email chị ý mặc dù biết là đọc sẽ không kịp haizzzz. Lời cuối cùngRất cảm ơn Quang đã giới thiệu cuốn sách này. Tớ thấy cái này mà chuyển thành hardware code Verilog chắc là không thể luôn =.= Ví dụ file spec tớ hay đọc là kiểu này này https://www.csd.uoc.gr/~hy428/reading/i2c_spec.pdf Đây là 1 chuẩn giao tiếp dùng thường hay có ở trong 1 con chip O_O. Có lẽ chip M1 cũng có, chip A15 trong iPhone cũng có... Thường dân hardware bọn tớ khi có 1 file sẵn có rồi, có các bác ở trên rất giỏi đã nghỉ rồi, đã có 1 cái reference implementation và thực ra họ viết lại file đấy thôi hoặc là ghép nhiều proposal vào. Quan trọng tại sao họ cần đưa ra file đấy cho các vendor khác đọc vì là nếu họ cứ giữ kín thì ai muốn đưa chuẩn I2C vào IC của họ rất khó. I2C master là ở con chip còn I2C slave ở IC O_O. I2C slave cũng có thể ở con chip được. Master và slave cần có chứ không thì cũng không biết ai truyền nhận T_T. Kiểu thế. Chuẩn này cũng không quá nhanh, thường họ dùng với tốc độ Tất nhiên có nhiều chuẩn khủng khiếp hơn gọi là High Speed lên tới cả Thôi cảm ơn Quang rất nhiều đã đọc đến đây và giới thiệu tớ quyển sách. Tối nay nhà tớ ăn cơm muộn, lúc 8h30 hix rồi xem trao giải VinFuture tới 10h đêm. Giờ là 11h15 thì cũng đang xem nốt phim "HÀNH TRÌNH CÔNG LÝ" đang rất là phức tạp và căng thẳng hix T_T. Sorry Quang nữa vì đã gửi muộn hix. Bài viết này có 16.3K ký tự, 3.1K ký tự và đọc trong vòng 15 phút!!! |
Hello @quangvv9Life, Về Microsoft 365 bị deactivated/lockedCảm ơn Quang đã tích cực liên hệ với Microsoft và cùng họ fix lỗi nhé @@. May quá Quang kịp thời đáp ứng chứ tớ thì chắc lắc lư tới vài tuần mất... Có lẽ do ở Việt Nam có 1 số bạn đăng ký mấy chương trình Microsoft 365 Developer Program mà không dùng @@. https://developer.microsoft.com/microsoft-365/dev-program Chương trình này cứ 3 tháng nếu mà không có output gì thì sẽ bị dừng. Benefits thì có lẽ được Office, Outlook, 1 TB OneDrive, Teams như của mình. Output họ đòi là phải viết mấy cái Power Apps cho họ hay 1 cái gì đó liên quan tới Power Platform chẳng hạn... Họ sẽ dùng AI để tracking mấy cái đấy T_T. Cũng là 1 cách hay để vừa tăng khả năng lập trình, vừa dùng được Microsoft 365 miễn phí ^_^ Cơ mà quan trọng là cần phải làm cái gì hix thì tớ chịu không nghĩ ra =.= Về Chương 2 tớ thực hành hôm nayHôm nay thì tớ đặt đồng hồ dậy lúc 5h sáng cơ mà mẹ đang ngủ nên 6 giờ mới dậy =.= Tớ cũng khá là mệt vì tối qua không ngủ được =.= Chả hiểu do nói chuyện chiều hôm qua hay là do uống cafe đen đá lúc 2h chiều nữa haizzz. Hình như 1 hay 2 giờ sáng mới ngủ kiểu hơi thao thức =.= Cứ suy nghĩ, suy nghĩ mãi @@@@@@@@@@. Sáng nay lúc mở máy tính ra cũng rất là đắn đo.
Làm theo cái thứ 3 mà ngồi mò mẫm AJAX thì lâu quá, chắc học mất thêm 1 tuần mất =.= Mà đọc tiếp Chương 2 kiểu miễn phí 5 phút thì tớ thấy cũng hơi chán vì như bài viết hôm qua Quang thấy thì tớ cũng đá nắm qua cài sườn Chương 2 rồi. Đọc kỹ hơn cũng chỉ biết thêm hơn thôi @@. Thôi thì tớ quyết định chuyển sang hướng code và cũng thấy hay phết. Output của tớ đặt ra trong 2 tiếng (thực ra có 1 tiếng 30 phút thôi vì 7h30 mẹ tớ gọi ăn sáng rồi =.=) là hiểu được lúc mình lia con chuột vào cái poster hay là mình ấn vào 1 bộ phim thì ở dưới sẽ xảy ra những sự kiện gì @@. Vậy là đầu tiên tớ mò mẫm vào database SQLite3 của MovieGEEKs. Files Về MovieGEEKs databaseĐây là các
Quang nhìn có thể thấy phần liên quan tới users' behavior sẽ nằm trong table Tớ dùng lệnh SQL xem và thấy cũng đúng thật 🤔.
Tiếp đó tớ mò mẫm xme thằng
Trong đống database đấy có rất nhiều phim luôn =.= Nó xổ ra 1 đống nếu tớ không Vậy là tớ đếm thử xem có bao nhiêu rows ở trong table đấy
Chà 38K nhiều thật. Xem thử bảng
Cũng kha khá nhiều, tận 90K rows. Bảng này giống như 1 bảng mapping (ánh xạ) vậy. Còn đây là bảng
Bảng này có lẽ không dùng thì phải... Tớ không thấy gì trong này. Đây là bảng
Bảng này
Về hoạt động thu thập hành vi người dùng (collect users' behavior)Vậy là tớ hiểu sơ sơ về MovieGEEKs web app database rồi. Tớ sẽ tìm hiểu xem khi mình lia chuột vào 1 cái poster phim thì chuyện gì sẽ xảy ra. Khi lia chuột vào 1 poster thì sẽ có 1 lệnh
Tớ dùng Firefox để debug cho dễ vì Safari ẩn đi hết rùi @@. Và cũng không hiểu sao trang web đấy vào Safari cứ chậm chậm hay không vào được sao đó. Chắc do không có Ở phần Python log sẽ xuất hiện những log sau
Tớ cũng thử các action khác
Ở phần database tớ check thì đã xuất hiện bản ghi mới, giống với bộ phim tớ lia chuột vào.
Đây là 1 số log Quang có thể thấy... Log khi search
Nhiều log hơn khi search
Đây là error xuất hiện khi tớ ấn vào link user để xem User Profile ở góc trên cùng bên phải.
Tớ sẽ reference ở issue check log. Đây là thông tin hiện lên trang web và thông tin dưới database về user.
Tớ cũng thấy 2 bên giống nhau nhưng trên web hiển thị xấu quá =.= Về bug hoặc là feature tớ phát hiện raTớ cũng không rõ đây là bug hay feature của tác giả nữa vì cũng chưa đọc kỹ Chương 2 @@. Cơ mà tớ nghĩ đấy là bug. Số là khi tớ kiểm tra tính năng Search và ra 1 vài phim, tớ lia chuột vào và hiện thêm thông tin về phim nhưng mà không có lệnh Trong khi ở Home page hay trong 1 Genre nào đó trên MovieGEEKs web app khi làm như tớ sẽ có lệnh Như tớ đánh giá đây là bug. Nếu mà cần fix thì chọc ngoáy vào phần front-end modify cũng khá là hay ho @_@. Tớ cũng biết cách check kết quả thế nào rùi 🤔. Một số vấn đề khácVề múi thời gian trên serverTớ cũng không nhớ lắm nhưng mà có lần đọc trên StackOverflow họ bảo Date Time trên OS chạy database nên để kiểu Cơ mà hôm trước tớ ngứa tay để về Hình như làm cho database không collect được thông tin nữa hix. Cơ mà restart lại hết và bật lại web app thì lại chạy bình thường như ở trên hix. Log ngày Nhưng mà tớ cũng cần check lại hix Về Google CollabTớ xem qua log lỗi thiếu file ở trên thì hình như mình cần phải training gì đó thì phải @@. Qua tớ mới nhớ ra Google Collab Jupyter Notebook training có Tớ có dùng để tách các nhạc và voice riêng ra cơ mà cũng không được hoàn hảo lắm =.= https://github.com/deezer/spleeter
Quang có thể thử ở link trên @@, rất tiện luôn. Có người mò tăng lên https://towardsdatascience.com/upgrade-your-memory-on-google-colab-for-free-1b8b18e8791d Tất cả những cái này của Google đều là free hết @@. Có thể chạy lệnh Linux trong Jupyter Notebook đấy luôn @@. Xịn thật. Bravo Google 👋. Các lệnh SQLite cơ bảnCái này có lẽ tớ sẽ tạo 1 trang Wiki riêng... Về cảm nhận của tớ khi ngồi mò mẫm check database, Python log,
|
Hello @quangvv9Life, Thanks Quang đã nhắn tin cho tớ ở qua iMessage nhé @@. Tớ cũng đọc mấy cái Quang gửi tối qua thôi hix. Cảm ơn Quang vẫn tiếp tục làm hix. Bao nhiêu lời mời gọi ở ngoài kia T__T. Giá mà có ai replace được thì tốt nhỉ... Hôm trước nữa thì buổi đêm về muộn, định ngồi viết cái note mà chắc do đêm trước nữa không ngủ nên là thôi đi ngủ chứ viết chắc đến 3-4 giờ sáng mất =.= 11h30 tối T4 đi ngủ. 6h sáng T5 dậy và cũng đắn đo Chương 2 tiếp tục hay là Chương 3 Về Chương 3Chương 2 có vẻ sau khi tớ nói chuyện với Quang cũng hòm hòm hiểu rồi =.= Xem code, check log từ front-end tới back-end cùng Quang luôn chiều T4 rồi. Công nhận ngồi nói lại tớ mới phát hiện ra phần Search front-end có 1 đoạn code chạy để log vào database mà lại không chạy như tớ với Quang thử. Chắc bug thật rồi. Tớ sẽ log lại ở 1 cái issue khác. Thế là tớ quyết chuyển sang Chương 3 đọc thôi. Lần này tớ cũng đọc theo kiểu nhìn hình trước, nhìn cái gì chưa bị lock và đoán nội dung. Cũng hiểu Chương 3 là nói về phần theo dõi (monitor) các thông tin và hiển thị ra. Trong này có 1 cái hình rất hay chắc là dành cho dân marketing với design Figure 3.5. A conversion funnel based on logging in at Amazon. Từ hình này có thể biết được action nào tương ứng với cảm nhận của user như thế nào. Nếu mà ấn nút Buy là thành công nhất rồi. Còn nếu mà chưa ấn, chỉ xem details thôi cũng là thành công một phần @@. Hình này giống như là 1 cái phễu vậy. Càng xuống phía dưới thì tỷ lệ càng thấp đi, quy luật rồi @@. Nếu mà mình log lại, vẽ hình lại mà không ra như thế chứng tỏ có 1 cái vấn đề gì đó. Hoặc ông nào vào mà cứ buy liên tục chắc cũng có vấn đề gì đó, không phải người bình thường =.= Thuật ngữ Conversion Rate trong này có thể dịch nôm ra là tỷ lệ quy thuật :|. Nó giống như là convert 1 người từ Đạo này sang Đạo kia vậy @@. Trong nầy họ cũng đưa 1 đoạn SQL code để giải thích tính tỷ lệ đấy thế nào
Nói chung là cũng khá thú vị =.= Có nhiều đoạn code lắm nhưng tớ cũng chưa xem kỹ. Tớ cũng bất ngờ vì họ phải code tay như thế thay vì dùng qua ORM các thứ. Cơ mà ORM thì đúng là có lẽ chỉ lấy được thông tin cơ bản cho dễ dùng thôi. Còn phân tích thì nên viết 1 lệnh SQL riêng của mình -.- Code SQL cho phần monitor này thì sẽ có hết trong file này https://github.com/9health/moviegeek/blob/master/analytics/views.py Tớ cũng chưa xem kỹ lắm nhưng mà cũng thấy khá là thú vị. Để xem được phần phân tích thì vào trang này (chưa có link ở trang chủ @@, chắc tớ sẽ sửa front-end để thêm vào, lại thêm 1 issue nữa ở đây) http://ninehealth.westus.cloudapp.azure.com:8080/analytics Tớ thấy trong này cũng ra con số nhưng mà cũng chưa kiểm tra kỹ xem đúng hay không =.= Do đã dùng hết thời gian 2 tiếng rồi nên là tớ định dành để hôm sau kiểm tra kĩ hơn... Nói thêm về liveBook trên ManningLúc mà đọc trên này tớ thấy khá là khó hiểu dòng code Không hiểu cái này có cần để làm cho phần mà hiển thị trong User chạy đúng không. Không biết cái này nên chạy ở đầu hay chạy ở cuối =.= Vậy là tớ thử search ở trang Manning và aha mình search đúng keyword thì nội dung sẽ hiện ra đầy đủ hết mà không bị lock @@, không cần phải bỏ tokens ra mua ý. Hay thật!!! Quang có thể thử bằng cách gõ chữ Vậy là sau khi đọc được phần text miêu tả 1 cách free. Tớ hiểu là cái này mình không chạy cũng được =.= Populate dịch nôm ra nghĩa là lấp đầy (từ population thì là dân số :-?). Đại khái là kiểu log mà mình chưa có thì mình thêm dữ liệu giả vào để xem kết quả sẽ như thế nào!!! Vì thế nếu mình chưa có thì nên chạy, nếu có rồi thì thôi!!! Cách hiển thị này của Manning rất là thông minh luôn =.= Thông minh hơn cả Google Books ý. Thế này mới gọi là eBook chứ hix Okay thì tớ thấy cái này hay quá thì đọc đọc xem còn chú ý gì nữa không. À nghe họ bảo thì tới Chương 4 chạy cái gì đó trang User mới hiển thị đúng hix. Tớ đang đọc Chương 3 nên chưa mò vào Chương 4... Trong kết quả tìm kiếm trên có 1 đoạn code rất là lạ ở Chương 4
Tớ tò mò quá thì tìm hiểu implicit rating là gì. Tớ lại dùng tính năng search của liveBook để tìm hiểu khái niệm đấy =.= Như đã nói ở trên, Manning sẽ hiển thị nội dung của những gì liên quan đến khái niệm đấy mà không lock =.= Tớ có thể đọc những đoạn text đấy thay vì đọc cả quyển sách để nắm khái niệm đó =.= Hóa ra là có 2 kiểu rating
Cái này họ có nhắc từ Chương 2 rồi thì phải nhưng sách bị lock nên tớ chưa đọc tới phần đấy =.= Hóa ra kiểu mà thu thập hành vi người dùng 1 cách âm thầm thì gọi là implicit. Còn kiểu thu thập dựa vào người dùng đánh giá item đấy 1 sao hay 5 sao thì gọi là explicit. Tác giả có xu hướng theo trường phái implicit nhiều hơn vì cũng không tin lắm vào explicit rating vì có thể người dùng không hiểu mình rating có đúng hay không nữa kiểu thế =.= Tất nhiên là cũng implicit rating cũng vẫn có thể sai cơ mà ít hơn @@. Tớ còn đọc thêm về 1 khái niệm nào đó mà không nhớ nữa =.= Tạm thời dừng ở mức đấy đã. Next task có lẽ xem code phần analytics app trên Django như thế nào @@. Công nhận viết code SQL và hiển thị lại trên web làm cho thông tin mình trực quan hơn nhiều!!! Tất cả live hết À còn 1 cái nữa là sách này cũng hỗ trợ phần comment Quang có thể vào trang liveBook của quyển PRS và ấn vào Chương 3 https://livebook.manning.com/book/practical-recommender-systems/chapter-3/ Sau đó sẽ thấy có số 8 và hình kiểu bong bóng dưới tiêu đề Chương 3 ý. Ấn vào đấy và xem 8 comments =.= Nhiều câu hỏi hay phết và tác giả cũng trả lời đầy đủ. Nhờ cái này tớ mới hiểu hơn về script Chà còn 1 cái trong comment nữa là Thôi tớ đọc kỹ hơn sau vậy =.= Haizzz Về thời gian biểu của tớThì sáng hôm qua tớ ngồi xong 2 tiếng là 8 giờ hơn. Mẹ tớ thì qua vẫn ở quê. Tớ ngồi lên mạng tìm hiểu một lúc về DPI các thứ tới 9h để làm sao cho ảnh screenshot chụp trên macOS nhỏ hơn. 9h30 tớ ăn sáng xong đợi máy laptop đang sạc thì gọi điện cho 1 em đồng nghiệp cũ đang onsite 1 mình ở bên Nhật, Fukuoka. Tưởng nói ngắn thui mà cuối cùng nói mới tới 11h30 mới xong @@. Bên Nhật lúc ý là 13h30 chiều rồi @@. Chủ đề nói về công ty outsource, công ty product, Infineon, Bosch, cuộc sống, lựa chọn, benefits =.= Xong tớ đói qúa ăn bánh mỳ với pa-tê và thêm cả khế nữa. 12h30 ăn xong tớ đi ngủ. Ngủ mơ màng mà hình như cũng chưa muốn dậy vì mệt và vì sáng dậy sớm buồn ngủ nữa T_T. 15h thì mẹ tớ từ quê lên bấm chuông reo to lắm @@. Thế là tớ tỉnh dậy luôn. Tớ ngồi viết file note gặp chị Chuyên gia Tâm lý kia tới tận 20h @@. Mẹ tớ về cũng mệt, ngồi nghịch điện thoại tới 17h rồi đi gội đầu. Rồi làm các thứ mãi tới 20h30 mới được ăn cơm @@. 22h tớ rửa bát xong rồi định lôi máy tính ra nhưng mệt quá nên thôi =.= 23h xem phim xong thì phơi quần áo =.= rồi đi ngủ. Sáng nay tớ dậy sớm nhưng mà có khi tớ off ngày hôm nay để làm mấy thứ khác hix. 6h sáng nay thì tớ ngồi copy hết ảnh của mẹ từ iPhone ra vì là bộ nhớ iPhone sắp đầy rồi :( Tớ mà không làm thì ai giúp mẹ. Rồi tớ copy hết cả đống Memories mà tạo từ ảnh ra trên iPhone ý vì xóa ảnh đi là sẽ mất hết :(. Mấy cái Memories ý đẹp lắm. Xong hết mọi thứ là 9h30 sáng @@. Hôm nay mồng 1 nên mẹ tớ đi chùa trước rồi :-S. Chiều tớ còn phải viết mấy cái email nữa đi đòi tiền với xin giúp đỡ :( mà không biết được hay không. Sáng mai thì mẹ tớ đi Hòa Bình với chỗ V3 - HVKTQS thì phải để kỷ niệm ngày 22/12 thì phải @@. Cơ mà không biết mấy giờ đi. Khả năng thì sáng mai chắc tớ họp online với Quang và anh Công được đấy hix. Quang gửi meeting request cho tớ nhé... Thanks Quang.... Giừo tớ đi ăn cơm trưa đây!!! Cẳm ơn Quang nhiều. Chúc Quang và gia đình Noel vui vẻ!!! À còn 1 cái nữa là chắc tớ sẽ nhờ Quang tắt cái MFA (Multi-factor Authentication) đi trên M365 đi vì mỗi lần login nhập cái số từ Authenticator mất thời gian lắm =.= Lại phải lôi điện thoại ra hix. Cái này hình như default là enabled thì phải. Có gì tớ sẽ email sau!!! Thanks Quang!!! Còn buổi họp với Microsoft về Azure hôm trước có 2 câu hỏi cuối không có trong file chat chắc tớ sẽ phải viết ra để nhỡ sau này dùng thì... |
Hello @quangvv9Life, Công nhận qua tớ dành thời gian để copy hết ảnh của mẹ từ iPhone ra là hợp lý thật. Giờ lại còn trống thêm Hôm nay mẹ tớ đi chơi chỗ Hòa Bình với cam gì đó chắc là sẽ chụp nhiều ảnh lắm. Sáng nay thì mẹ tớ 5 giờ đã dậy rồi và 6 giờ kém 15 đi rồi. Tớ cũng dậy lúc đấy và đọc chương 3 luôn. Về Chương 3 ở ManningThật sự thì hôm nay tớ cũng không dùng tính năng đọc miễn phí 5 phút nữa mà tập trung chủ yếu vào xem đọc code để hiểu hơn về phần monitor (quan sát) hay analytics của MovieGEEKs thế nào. Thật sự thì rất cảm ơn tác giả đã cho code là free và sách thì mất tiền thôi. Cơ mà như tớ nói là sách đọc kiểu này cũng gần như cho không rồi hix. Bác tác giả tớ có xem là làm ở Shopify là kiểu là cung cấp trang web cho những người muốn làm e-commerce các thứ ý và bác ý làm trong nhóm Recommender System (RecSys) thì phải. Vào link Twitter của bác ý thì cũng thấy là có hội thảo RecSys gì đó tổ chức hàng năm. Giờ thì bác ý còn đang viết tập 2 cho quyển PRS vào buổi tối nữa @@. Công ty Shopify thấy headquarter ở Canada nhưng cảm giác cứ như là ở châu Âu vậy :-?. Cananda trước là thuộc địa của Pháp nhỉ :-?. Tớ thấy cũng rất là lạ khi ban ngày bác ý làm data scientist mà buổi tối về lại có cả thời gian viết sách được @@. Như tớ hồi xưa ở Nhật nếu mà có ai định hướng chắc cũng sẽ làm như thế :-? Mỗi buổi tối có 2 tiếng mà. Cơ mà mình toàn làm linh tinh. Chắc là bác ý làm ở Anh thì phải cuộc sống cũng balance và có lẽ người ta cũng không sợ lộ các bí mật gì cả vì nói thật để bắt chước được 1 hệ thống thế tớ thấy cũng khó lắm =.= Và ở công ty châu Âu cũng hay có kiểu trao đổi kinh nghiệm bằng paper hay là các slide ý. Paper ở đây cũng không quá là học thuật đâu mà kiểu thiên về có hướng gì mới lúc đi làm và thấy đôi. Chia sẻ để industry của ngành đấy cùng đi lên tất cả @@. Slide kiểu như cũng là 1 dạng như thế vậy :-? Thường paper có trước và slide đi kèm paper giải thích rõ hơn ^_^ Chết nói sâu xa quá vì lúc tớ đang ngồi đọc code trên GitHub thấy mấy đoạn commit có tên bác ý, tớ ấn vào GitHub của bác ý rồi ấn vào Twitter và đọc thôi O_O. Về database của Analytics app
Như Quang thấy ở trên thì đây chính là dữ liệu mà hiển thị ở trang Analytics của MovieGEEKs web app. Có thể thấy dữ liệu này có từ rất lâu rồi @@. Và là dữ liệu này lấy từ ở bên trang The Movie Database nữa!!! Công nhận có 1 trang có dữ liệu, có rating open-source để nghiên cứu cũng hay ghê. Không biết bên food có cái nào như thế không. Tớ cũng nhắn đến 1 lần rùi. Có lẽ tìm sẽ ra thôi!!! Dữ liệu của TMDB còn được đưa lên trang Kaggle để nghiên cứu luôn!!! https://www.kaggle.com/datasets/tmdb/tmdb-movie-metadata
Tớ cũng thấy cái này có lẽ sẽ có nhiều data đây nên thử count xem như thế nào. Và aha có tận hơn 900K dòng, nhiều thật đấy =.= Không hiểu cái SQLite3 chịu nổi nhiệt không nhưng mà thấy đáp ứng vẫn có vẻ tốt. Có lẽ là do back-end của Azure tốt. Tớ đang dùng ổ Premium SSD P6 64GB. Hình như cũng thuộc loại gần xịn nhất rồi =.= I/O latency thấp mà băng thông cao nữa =.= HDD chắc không được thế đâu... Với cả chip vCPU 1 core thôi nhưng mà là dòng Xeon ra đời ngang với chip Intel đời 8 thì phải :-? Cũng khá là nhanh.
Tiếp tới tớ xem thông tin chi tiết các cột trong bảng
Tớ thử tìm xem ở cột
Tớ đếm thử xem có bao nhiêu unique user ở trong table đấy và ra là hơn 70K. Trung bình thì 1 user sẽ xem là Thế mới thấy bên TMDB có nhiều người dùng thế nào và họ chịu rating thế nào (chắc là không phải user giả đâu Quang ạ, đã free rồi còn làm kiểu dummy user làm gì đúng không???) Để rating thì tớ nghĩ chắc họ cũng phải xem phim này chứ dựa vào poster mà rating thì cũng hơi sao sao thật @@. Tớ thì xem phim xong hay mua đồ gì xong trên Amazon chẳng hạn cũng chả bao giờ rating T_T. Tớ lười quá. Có lẽ kiểu thế hệ Gen Z hay sau Gen Z chắc là thích rating hơn. Ví dụ như trên Foody chẳng hạn. App đấy tớ nghe quanh quanh từ hồi 2014. Cứ đi ra đường muốn ăn gì là mọi người lại lên Foody. Ngoài cơ sở dữ liệu tốn rất nhiều công thu thập ra và còn nhiều hơn cả Google Maps. Ở nước ngoài thì Google Maps họ có cái xe riêng hay thuê người riêng để đi chụp ảnh và thu thập nhưng ở Việt Nam do loằng ngoằng quá nên là mọi người tự làm hết thành ra database cũng không quá là mới. Thường tìm quán cafe nào mà khó tìm thì trên Foody có hết. Cơ mà Google Maps chưa chắc có. Ở Nhật thì ngược lại @@, trên Google Maps có hết và tớ cũng hay dùng vì có tiếng Anh. Cũng có 1 trang riêng của Nhật về list các chỗ ăn uống và có review đàng hoàng mà tớ quên tên rồi =.= Xưa các bác ở chỗ Yamanashi đặt chỗ ăn toàn vào trang đấy...
Tớ thử xem những row cuối cùng là người ta log khi nào. Có vẻ như là cũng không quá mới @@. Lẽ ra dữ liệu này tớ nghĩ năm 2022 thì đúng hơn. Chắc là có 1 vấn đề gì đó vì tớ có search phim Wakanda 2 trong này cũng không thấy luôn. Có lẽ script lúc chạy có vấn đề gì đó ^_^
Tớ cũng kiểm tra thử xem là có bao nhiêu bộ phim ở trên TMDB, cũng khá là nhiều, khoảng hơn 40K phim. Không hiểu phim Mỹ nhiều đây hay là phim Ấn =.= Ấn nhiều phim lắm ý.
Tớ xem thử có dữ liệu trong bảng Về API được gọi ở trang AnalyticsTớ thử vào trang analytics của MovieGEEKs ở đây http://ninehealth.westus.cloudapp.azure.com:8080/analytics Và tất nhiên lại dùng công cụ Firefox Web Developer Tools để xem kỹ hơn rồi.
Đầu tiên là API để lấy dữ liệu ra hiển thị các mục như bao nhiêu phim được bán, bao nhiêu người bị quy phục, bao nhiêu người vào website và có bao nhiêu session. Con số này có vẻ cũng chưa đúng lắm và tớ định kiểm tra lại trong code nhưng mà vẫn chưa làm hix =.= Thôi cứ để tạm đấy kiểm tra sau vậy hix. Không biết lệnh SQL của bác ý viết có gì sai không -.-
Đây là các API dùng để hiển thị xem có bao nhiêu người mua và không mua. Tớ cũng chưa hiểu rõ lắm. Có lẽ Quang nhìn vào cái hình đấy thì sẽ hiểu rõ hơn tớ =.= Tớ không chuyên phân tích lắm...
Còn đây là dữ liệu để hiển thị phân phối ratings của các phim. Có vẻ như cũng đúng khi mà phân phối này cũng hao hao phân phối chuẩn. Điểm 7 và 8 là nhiều nhất :-?
Còn đây là API lấy ra các bộ phim được mua nhiều nhất bởi người dùng ở trang web MovieGEEKs này @@. Cứ ấn nút Công nhận là Ấn nút này cũng có cảm giác hay hơn là rating vì rating phải chọn từ 1 tới 10 cũng rất là khó @@. Buy thì chỉ có kiểu như là Like hay không Like thôi ^_^
API này thì không trả ra gì cả @@. Nay Quang có hỏi tớ sáng họp là quyển sách này có tất cả bao nhiêu API @@. Từ từ tớ sẽ làm tài liệu để cho Quang xem nhé @@. Cũng không quá nhiều đâu... Còn về câu hỏi là đọc chương ý xem liên quan gì tới cái mình làm hãy nên đọc thì câu đấy có vẻ chung chung quá @@. Nói thật tớ không trả lời được câu hỏi chung chung kiểu như thế @@. Có lẽ chung chung với tớ thôi còn với Quang thì Quang đủ khả năng nhận ra =.= Tớ không giỏi mấy môn xã hội lắm mà, không giỏi nhận biết cảm xúc nữa =.= Về code Python và
|
Hi Hải, Cám ơn Hải đã cố gắng nhắn lại cho tớ mặc dù đã muộn nhé. Tớ đã mua cuốn "Practical Recommender system" trên manning rồi Hải nhé. Hải có thể truy cập bằng account sau để login và đọc livebook nhé : Phần này là TS của công ty nên mình quyết định đầu tư thôi BR |
Hi Hải, Về các luồng trao đổi va họp hành của cty mình thì Hải cố gắng vào email : nguyendanghai@9reatodin.onmicrosoft.com thường xuyên hơn để cập nhật kịp thời nhé. Br |
Hello @quangvv9Life, Tình hình là qua tớ ngồi quét sân cho bà ngoại, nhiều lá khô lắm với cả chặt lá chuối khô rùi đốt hết, sau đó tớ còn sang giặt mấy cái thảm, chiếu, dép ở bên nhà dì cùng với dì nữa thành ra hôm nay người ê ẩm luôn @@. Về thời gian biểu của tớ hôm nayTối qua lại còn đi xem chương trình "12 Ngày Đêm - Lằn Ranh Lịch Sử" nữa chứ @@. https://vtv.vn/video/12-ngay-dem-lan-ranh-lich-su-25-12-2022-596233.htm Mẹ tớ đòi đi từ 18 giờ để lấy chỗ đẹp cơ mà 20 giờ 10 mới bắt đầu, gần 22h mới xong, 22h15 mới về đến nhà =.= 5 giờ sáng nay thì tớ cũng tỉnh rồi nhưng mà nghĩ là mình hôm qua làm nhiều thứ quá nên cơ thể chắc mệt, dậy chưa chắc làm việc được tốt nên là thôi cứ ngủ đã rồi tính tiếp =.= Quan trọng bây giờ là phục hồi sức khỏe đã hix. 8 giờ kém 15 thì mẹ tớ gọi tớ dậy @@. Ngồi xem lại clip YouTube hôm qua. 9h15 ăn sáng xong, tớ ngồi vào bàn đọc mấy cái Azure các thứ vì hôm trước có comment những thứ mà cũng chưa rõ ràng lắm hix. Chiều thì tớ đi 1 lúc ra làm thẻ CCCD điện tử với mẹ @@. Về thì tớ email cho bạn cấp 2 tớ về vụ $15K U S D T hix. Cái clip hôm trước bị YouTube gỡ xuống rồi @@. Tớ sẽ update lại link mới ở bài viết trước @@. Bị cảnh cáo như thế 3 lần là sẽ bị xóa tài khoản :( Tớ thấy lo lắm. Vậy là tớ ngồi đọc luôn xem YouTube copyright là như thế nào :( YouTube Copyright School - YouTube https://www.youtube.com/watch?v=InzDjH1-9Ns Nói thật thì rất là loằng ngoằng khi xem kỹ video trên nhưng mà tóm lại cái gì copyrighted rồi thì không được upload lên YouTube kể cả nếu để private vì YouTube là distribution platform thành ra là private thì người khác không kiện được nhưng mà con bot của YouTube vẫn tìm thấy và báo cho người sở hữu bản quyền video đấy T_T. Tất nhiên là nếu chủ sở hữu bản quyền mà không biết và không kiện thì không sao hix. Hi vọng là tương lai account YouTube mẹ tớ không sao và tớ cũng sẽ cẩn trọng hơn video upload lên của mẹ tớ hix. Khi bị remove video như thế cảm giác rất là lo lắng :(. Bao nhiêu công sức mà lại bị removed :(. Nên là bị cảnh cáo là tớ phải kiểm tra và học luôn cho chắc hix. Tớ định share cho bạn tớ về cái phóng sự VTV Đặc Biệt - Bẫy mà không biết upload lên đâu để share theo kiểu private đi :( Dropbox không được, Google Drive không được. Thôi còn 1 cách là mã hóa, đặt mật khẩu file Đồng thời gửi kèm link VTV ở đây hix https://vtv.vn/truyen-hinh/xem-lai-vtv-dac-biet-bay-20221224162300588.htm Thế là tớ cũng bớt lo lắng rùi. Rồi tiếp theo là đọc email bạn cấp 2 tớ gửi từ hôm T6 mà chưa kịp đọc. Tớ cũng mất thời gian đọc thông tin, tìm hiểu đến 18h30 thì phải T_T. Lúc ý mẹ tớ mới đi ra ngoài về. Tớ mới bắt đầu ngồi đọc Chương 4 được 1 tiếng rồi ăn cơm hix. Về Chương 4 - Tính ratingVề trải nghiệm đọc trên ManningChương này thật sự tớ thấy cũng khá là hay khi đọc theo kiểu black-box. Thật sự thì chỉ cần nhìn phần Mục lục và hình vẽ tớ cũng hiểu qua về 80% ý tác giả định nói rồi @@. Cuối cùng vẫn là code thôi. Sách thì là tài liệu, đọc tài liệu mà giúp hiểu đoạn code ý là tác giả thành công rồi @@. Còn giải thích tại sao tác giả lại phải viết dài thế thì tớ cũng không rõ nữa :(. Cơ mà đọc kiểu này tớ nghĩ đủ thông tin và cũng đủ hiểu code, đủ đạt được output tớ đạt ra rồi. Khi nào tớ mà không hiểu lắm thì tớ sẽ đọc quyển sách Quang mua trên Manning nhé!!! Thanks Quang!!! À có thêm 1 ý này nữa là đọc cái gì khó quá, nhìn hình vẽ mà không hiểu ngay thì tốt nhất cứ tạm thời skip :( Hoặc là kiến thức của mình có vấn đề, hoặc là tác giả viết kiểu gì đó khó hiểu quá. Tất nhiên là sẽ có cách giải quyết cho cả 2 trường hợp đấy O_O. Cơ mà tớ thấy quyển sách này tác giả viết và có hình vẽ công nhận dễ hiểu thật vì không cần đọc cũng đã biết tác giả định nói gì thông qua hình vẽ rùi. Về nội dung chương 4Okay lan man quá quay lại chương 4 nào. Đầu tiên là nhắc lại có 2 kiẻu rating là
Tớ cũng đã giải thích ở bài viết trước rùi @@. Chương này tác giả tập trung nói về implicit rating. Vậy thì explicit rating để làm gì và có dùng không. Thật sự thì explicit rating thì vẫn sử dụng. Từ implicit rating tác giả sẽ có 1 công thức để tính ra explicit rating. Từ rating đấy tác giả sẽ dùng để làm input cho Recommender System. Đây chính là các bước trong RS Figure 4.1. Data processing model for recommender systems
Chương 4 này là đang ở bước thứ 2, preprocessing. Vậy thì công thức để tính rating cuối cùng từ implicit rating là gì? Đầu tiên thì cần nói implicit rating gồm những input là gì dựa vào Table 4.4. Weights on events[a] (view table figure)
Ngoài ra thì còn có các yếu tố sau nữa
Đấy thì dựa vào 3 cái đấy để tính ra là rating cuối cùng là thế nào. Tùy theo trang web, tùy theo người nghĩ ra thuật toán, tùy theo paper nghiên cứu trên mạng mà họ chọn cái gì. Tớ thấy yếu tố IFF có vẻ không phù hợp với tớ vì là thực sự tớ cũng chỉ thích những item nào nhiều người mua thôi vì những item mới mà ít người mua, ít sao sợ là hàng giả lắm hix. Có lẽ vì tớ hơi bị đi theo đám đông hix. Về nội dung Chương 4 tớ chưa đọcNgoài ra còn 1 chương này nữa tớ cũng chưa đọc kỹ (tớ vẫn chưa dùng 5-minute free hôm nay, chắc tớ cần unlock vì đoạn phân tích này chắc cũng khá hay hix).
Thật sự nếu bỏ qua cái này thì cũng không làm sao cả nhưng mà mình sẽ bị mất mất cái gốc @@. Kiểu như cứ tập trung chăm chăm chạy code mà không biết code ý tại sao mà có hix. Vậy thì cứ nhìn theo code đấy mà làm theo là 1 hướng không đúng lắm. Vì thực ra là tác giả đưa ra các công thức tính rating như trên dựa vào những công thức đã có và dựa vào quan sát tác giả hix. Có lẽ mỗi trang web có 1 cách tính rating từ implicit rating khác nhau!!! Về đoạn code chưa công thức tính ratinghttps://github.com/9health/moviegeek/blob/master/builder/implicit_ratings_calculator.py Đây là đoạn mà tính ra rating cuối cùng từ implicit rating. Cách chạy thì làm như thế này
Về bước thứ nhất thì tớ đã chạy luôn từ chương 3 và có rồi. Ở bài viết hôm trước tớ quên mất nói với Quang là tớ thấy cái database đấy nhìn trông kiểu synthetic (tổng hợp, giả) quá nên là tớ copy cái database mà từ folder mà Quang copy sang hôm trước (may quá, có Quang copy, cảm ơn Quang hix). Vậy là tớ hiện tại đang dùng 2 database
Nói chung để làm tiếp theo quyển sách thì tớ sẽ trỏ cái vào Còn sau khi làm xong tớ sẽ quay lại Tớ thì chưa chạy script này đâu. Trước khi chạy với sau khi chạy tớ sẽ chụp ảnh lại user Tớ nghĩ là có nhiều thứ sẽ bị thay đổi :-? Ngoài ra nếu Quang xem đoạn code Cũng có các hàm Ban đầu tớ đọc Chương 4 còn nghĩ tác giả viết nhầm vì thấy cái chỗ hướng dẫn nhìn quen quá. Mà hóa ra hôm trước mình nóng vội quá đang đọc Chương 3 mà chạy luôn Chương 4 trong khi không hiểu gì thì phải =.= Hình như tớ quên mất chạy dòng code thứ 2 chạy Thôi để kiểm tra lại sau vậy. Cảm ơn tác giả đã tổ chức code rất gọn gàng hix. Muốn thêm gì thì thêm, file hay folder gì. Tớ thấy rất là neat!!! Cảm ơn Quang giới thiệu quyển sách này. Một vài lời khácThanks Quang đã đọc đến đây và sorry tớ viết muộn quá :(. Đến giờ đi ngủ rồi. Bài viết trước tớ có nhắc đến mật khẩu thì tớ mới nhớ ra mật khẩu lần 2 của tớ ở công ty cũ là CQNzBBxAv80r. Công ty cũ bắt mật khẩu mặc định tăng lên 12 ký tự hix. Để đảm bảo tớ nhớ trong não thì tớ có thể viết lại y hệt cho Quang lúc gặp Quang, chỉ cần nhớ ký tự đầu thôi ^_^ Còn về Azure subscription thì tớ đọc kỹ lại slide họ gửi rồi Quang ạ!!! Bắt buộc mình phải đăng ký Azure offer đấy bằng account Thôi thì mình cứ đăng ký trước vậy. Sau này giả sử không dùng M365 nữa vì đắt quá thì chỉ để lại 1 account để duy trì cũng okay Quang à!!! Chắc chỉ cần dùng bản Business Basic https://www.microsoft.com/en-us/microsoft-365/business/compare-all-microsoft-365-business-products Còn nếu mà 1 năm sau xin được tiền của nhà đầu tư hay self-funding mà cảm thấy M365 okay thì tiếp tục hix. Mà chát phết T_T. Nhưng mà mình sử dụng được hết tài nguyên thì sẽ thấy quý giá T_T. Còn cách optimize cost nhất là ra ngoài lại dùng Outlook và Teams như bình thường thôi sau khi hết 1 năm cho các account khác T_T. Tớ cũng hơi suy nghĩ tiêu cực ở bài viết trước nhưng mà viết ra xong hết thì lại xong rồi hix. Cũng thấy thoải mái hơn rồi. Cứ cố gắng dần thôi, hi vọng mọi thứ sẽ okay. Tớ cũng cảm giác có lẽ mình cũng đang đúng hướng dần dần, mặc dù vạch đích ở rất xa nhưng mình cứ đi có lẽ sẽ đến hix. Cảm ơn Quang đã mua quyển sách kia và giúp tớ tạo database model cho food nhé. Có gì khó khăn cứ commit, tạo issue và tag tớ vào nhé nếu khó quá!!! Cảm ơn Quang nhiều!!! |
Hello @quangvv9Life, Tình hình là qua tớ cũng đã tìm cách recover được 2 tiếng mà không dậy sớm buổi sáng được hic. Hôm nay đám chuột đi đâu rồi và nói chung cũng ngủ được =.= Cơ mà ngồi làm clip với mama tới hơn 12 giờ sáng =.= Về thời gian biểu của tớ hôm quaĂn sáng xong là 9h hơn, tớ ngồi vào bàn, sửa sửa 1 ít tài liệu liên quan tới Azure offer rồi share cho Quang trên OneDrive rồi đấy. Tiếp xong tớ ngồi update file Future rồi file Ghi Nhận Cảm Xúc cho Thứ 7 tới Thứ 3. Mẹ tớ thì hôm qua đi tập hát xong còn đi với cô nào đấy tới 1h trưa mới về ăn cơm =.= 2h kém ăn xong thì ngủ tới 3h15 chiều. Tớ ngồi update tiếp file trên =.= 5h30 thì nói chung cũng hòm hòm và tớ cũng gửi email rồi. Tuần này chị kia ốm nên khả năng tớ không gặp được hic. Còn tối nay mẹ tớ về quê nên khả năng có khi mai tớ qua chỗ Quang được buổi chiều như hôm trước hic. Quang đã khỏi đau họng chưa :| Về đọc tiếp Chương 4 - RatingsThanks Quang đã mua eBook trên Manning nhé. Tác giả trong Chương 4 cũng bảo là thích mua sách trên Manning với O'Reilly vì là ở đấy rẻ hơn 1/2 so với Amazon =.= và cung cấp nhiều thứ free hơn :|. Mà tớ thấy đúng thế thật. Đọc trên Manning liveBook có nhiều tracker quá =.= Tớ có đo xem CPU tiêu thụ như thế nào thì đọc trên liveBook gấp 12 lần vào trang GitHub =.= Ngoài ra thì họ còn scramble text, load 1 đống JavaScript bảo sao chả tốn CPU hơn T_T. Ví dụ nếu ở trang Manning liveBook cả ngày pin chỉ có 10 tiếng thôi nhưng nếu ở trang GitHub cả ngày pin được 20 tiếng như máy tớ... Về hệ thống Recommend ở các trangCái này thì tớ chưa nói ở bài viết trước nhưng mà đọc xong tớ có thấy hóa ra là
Quang thì chắc chưa dùng Amazon mấy vì ở VN không có nhưng ở Nhật thì Amazon nói chung là 1 trang web e-commerce cũng thuộc loại to đùng luôn. Có cả Rakuten cạnh tranh nữa cơ mà nói chung tớ mua đồ thì thích vào Amazon hơn =.= Tớ mua thì thường là cho em tớ chứ cũng không mua cho tớ nhiều hix. Đồ tớ mua cho tớ ít lắm. Khi nào bắt buộc phải mua như là giầy đi lâu quá bị hỏng, trời mưa tầm tã 1 tuần mà không có giầy đến công ty nên order và cuối tuần ngồi ở nhà nhận =.= Thực ra ở siêu thị AEON gần ga tớ hay đi chợ cũng có bán giầy cơ mà có lẽ là do không biết tiếng nên cũng sợ không dám mua =.= Mua trên Amazon cũng chọn giầy rẻ nhất mà mua thôi, hình như của hãng Dunlop gì ý. Sau cái giầy ý có vấn đề gì đó tớ đi nhiều bị chai chân ở ngón bên phải. Hix thôi tớ lan man nhiều quá =.= Túm lại tớ cứ nghĩ là Amazon recommend theo kiểu non-personalized cơ vì nghĩ cứ cái gì tốt, được explicit rating cao là họ sẽ giới thiệu. Cơ mà thực sự họ dựa và lịch sử order của mình và khẩu vị của những người như mình (user's taste) trong cùng 1 category đấy để đưa ra recommendation hay suggestion =.= Quả thật là chạy hệ thống đấy ngốn CPU và RAM thật vì nhân ma trận, tính toán nhiều :|. Về trang NYTimes thì khi vào sẽ thấy có 3 cột ở bên phải là
Thực sự thì hồi xưa tớ cũng hiểu Most Emailed với Most Viewed là gì thôi =.= Giờ tớ mới hiểu cái Recommended for You là dựa trên những articles mình đọc =.= Người Mỹ kể cũng lạ thật vì có Most Emailed vì nói thật ở mấy trang tin lớn ở Việt Nam chả có link đấy luôn =.= Most Emailed và Most Viewed là non-personalized recommendations. Cứ cái nào sắp xếp dựa vào máy và không liên quan tới lịch sử đọc sách của người dùng thì sẽ là non-personalized hết. Về 5 phút free trên trang Manning liveBookTớ có dùng unlock free 5 phút mỗi ngày ở trang liveText và thú thật là 5 phút đấy đủ để tớ copy hết Chương 4 ra 1 file text như Quang có thể vào folder Tớ cũng đo thử là xem tác giả viết bao nhiêu từ ở Chương 4 thì là 7K từ. Vậy là nếu mà viết dễ hiểu thì đọc trong 30 - 45 phút là xong (tốc độ 250 wpm) =.= Tớ cũng thử đọc hết và thấy đọc được hết trong khoảng thời gian như thế thật. Tớ cũng khá là bất ngờ vì Manning cho mình copy text ra từ website. Như các trang web bình thường mà hỗ trợ đọc eBook online chắc là họ sẽ dùng JavaScript để chặn không cho copy hết =.= Câu hỏi đặt ra là tại sao Manning lại làm như thế, cho mọi người copy text free? Nhỡ mọi người copy cả quyển sách thì sao? Nói thật tớ nghĩ cho copy chả ảnh hưởng gì cả =.= Copy text về thì còn 1 công đoạn nữa là format hay thuật ngữ chuyên ngành là typesetting. Nếu muốn chuyển cái ý về giống như nguyên bản, chỗ nào Header 1, Header 2 các thứ, chỗ nào in nghiêng, chỗ nào code thì chắc mất cả tháng mới format xong cả quyển =.= Vậy nên cho copy text thoải mái cũng không lo lắng gì cả vì reproduce ra 1 quyển eBook như thế khá tốn công (xưa tớ cũng làm eBook prc, eBook PDF nên tớ biết...) Tớ đánh giá Manning tốt ở điểm cho copy text như thế =.= Gọi là 5 phút thôi chứ tớ thấy phải được 10 hay 15 phút. Tớ mất đâu độ chục cái Ctrl + C va Ctrl + V là copy hết Chương 4 ra TextEdit rồi =.= Hình vẽ có sẵn và không bị locked rồi. Vậy là đọc thôi... Bravo Manning!!! Thanks Quang đã tìm ra quyển sách đấy!!! Nói thêm 1 chút về Implicit RatingsĐọc trong này tớ thấy lặp lại những gì mà Quang nói cho tớ hồi xưa là user họ bảo họ thích nhưng mà thực sự họ có thích không??? Tác giả cũng ví dụ là tác giả xem 1 bộ phim đấy vì nghe bảo nó rất chán @@. Có lẽ kể những chuyện như là bộ phim ý rất tệ với bạn bè thì có lẽ là bạn bè sẽ thích hơn @@. Có những người lại có những suy nghĩ như thế mới kỳ lạ =.= Mà đúng là có khi như thế thật =.= Phim đoạt giải Oscars có phải ai xem cũng hiểu đâu =.= Phim mà kiểu action, kiểu đầu tư nhiều, quảng cáo nhiều như Avengers, doanh thu lên cả tỷ đô thì lại nhiều người xem cơ mà rating thấp =.= Phim Oscars thường rating sẽ cao hơn =.= Như ở trang IMDB thì Top 250 phim hay nhất người ta dựa và rating của user (tất nhiên tớ nghĩ không phải user nào cũng có rating weight như nhau =.= chắc user mà kiểu profile khủng, hiểu thật sự về phim sẽ có trọng số cao hơn =.=). Top 250 đấy không dựa vào revenue của phim đấy để sắp xếp (sort) =.= Tại sao thì như thế tớ cũng không biết =.= Có lẽ khi xem 1 bộ phim người ta không đặt nặng vấn đề tài chính, doanh thu hay nói nôm là tiền bạc mà người ta đặt nặng cái đánh giá vào nội dung của phim =.= 1 câu hỏi đơn giản là "Phim có hay không?" sẽ được trả lời trên trang IMDB theo phương pháp định lượng. Ý là những bộ phim mà có chi phí thấp nhưng doanh thu cao vì nội dung hay tất nhiên vẫn lọt vào Top rồi =.= Hơi lan man 1 xíu thì làm sao để tránh những thứ như Quang nói hay tác giả có đề cập là user có thực sự thích item này khi rating 5 sao không??? Cái đấy cần dựa vào behavior của user trên website như thế nào. User đấy click vào những chỗ nào, nút nào cũng là 1 thông tin quan trọng biết được user đấy có thật sự thích item đó hay không. Mở rộng ra về implicit và explicitTớ bắt đầu suy nghĩ thêm về 2 khái niệm này vì nói thật trước nghe Quang nói mà tớ cũng chỉ nghe thôi chứ cũng không thực sự hiểu ý của Quang là gì. User like có thật là like không =.= Quang cũng không giải thích rõ được thêm thành ra là cái đấy cũng vẫn lưu vào đầu tớ nhưng mà xong thì cũng chả có gì thêm hic =.= Đọc tới chương này và dành thời gian ngẫm nghĩ mới bắt đầu phân tích được nhận xét của Quang vậy =.= Thật sự thì cái này cũng giống như là tâm lý học mà trước 1 bạn tớ có kể cho tớ. Ví dụ như khi mình kiểu phản ứng với 1 người khác không phải qua lời nói mà qua cử chỉ chẳng hạn như là tay nắm chặt, mặt đỏ gay chẳng hạn.
1 ví dụ khác là Khi một người vào 1 cửa hàng và cứ nhìn món hàng đấy chăm chú nhưng mà không mua chẳng hạn. Vậy thì người bán hàng nếu mà tinh ý sẽ có hành động như thế nào @@. Nếu mà họ đến chơi thôi và nhìn 1 lần thì có lẽ là họ sẽ không quay lại. Nhưng mà nếu họ chăm chú nhìn và nếu họ quay lại lần sau nữa thì người bán hàng nên có hành động gì không? Có nên giảm giá để bán được hàng không? Cái này có lẽ là tớ đã gặp ở Nhật rồi =.= Có 1 lần kính của tớ bị hỏng do là tớ kiểu gập mạnh tay quá. Tớ cũng cần thay kính mới nhưng mà tiếc xiền vì tận gọng kính giá toàn hơn $100 :(. Thế là tớ đến 1 cửa hàng kính cách nhà khoảng 20 phút đi bộ xem nhưng mà không dám mua. Cửa hàng bán kính đấy thì cũng ít khách lắm T_T. Cơ mà vì rảnh và lúc đó cũng cần phải có gọng kính mới để làm 1 số việc khác nên khi tớ quay lại lần 2 thì thấy cái gọng kính giá rẻ nhất giảm xuống $70 rồi. Vậy là tớ thay luôn gọng mới hix. Ở Nhật họ không chịu thay mắt kính cho gọng kính ở nước ngoài nên phải mua cả gọng, cả mắt mới haizzz. Đấy thì người bán hàng họ biết giá kiểu bán lẻ và họ có thể discount được để sao cho người muốn mua sẽ mua =.= Cái này có lẽ liên quan nhiều tới tâm lý nhỉ hix. Mà tớ lại không giỏi cái đấy lắm. Recommendation này cũng dựa trên chủ yếu là tâm lý hix. Có lẽ Quang giỏi cái này hơn tớ, cảm nhận giỏi hơn tớ thì sẽ hiểu user hơn tớ =.= Chứ tớ nói thật đi làm tớ toàn làm theo kiểu implicit thôi Quang à. Sếp của tớ cứ bảo em phải thể hiện ra ngoài đi cơ mà tớ kệ. Miễn sao mình được giao việc và hoàn thành theo cách của mình, xong thì báo cáo =.= Còn explicit thì tớ kệ. Hay là tớ về quê chẳng hạn :( Mẹ tớ bắt tớ lau nhà cho dì. Tớ thấy dì tớ giặt thảm, giặt dép, giặt chiếu mặc dù nói thật mình cũng không muốn làm đâu nhưng mà tớ thấy phụ nữ làm thế thành ra cũng muốn giúp hix. Cái đấy gọi là implicit hay explicit nhỉ. Nếu mà thực sự mình nói ra mình muốn giúp có lẽ là explicit nhỉ. Còn nếu mà mình cứ âm thầm làm, âm thầm giúp mà chả nói gì có lẽ là implicit nhỉ. Chính vì sự mù mờ đó mà nhiều người lầm tưởng tớ thật sự muốn giúp nhưng mà tớ kiểu thể hiện ở mức implicit cũng không đúng nữa @@. Có lẽ thế =.= Hoặc ví dụ như mẹ tớ bảo tớ làm video chẳng hạn =.= Thực sự tớ có khả năng tớ cứ giúp thôi nhưng mà đấy gọi là implicit của mình hay không tớ không biết nữa. Có lẽ cái feeling của tớ nó ở sâu lắm mà cả implicit hay explicit cũng khó thể hiện ra ngoài. Thành ra là dễ gây hiểu nhầm cho những người kiểu hơi non nớt hix. Mà có khi tớ còn hiểu nhầm cả implicit của mình nữa cơ. Hiểu nhầm explicit của mình là đương nhiên rồi. Haizzzz. Sorry TextEdit, GitHub, Quang vì đã để tớ viết ra mấy cái kiểu trút bỏ cảm xúc thế này =.= Một ít trường hợp khác về recommendationTiếp theo chuyện tác giả chỉ thích xem những bộ phim mà có rating thấp (ở đây là explicit theo tớ nghĩ thế) chẳng hạn vì 1 lý do gì đó. Vậy thì recommend cho user như là tác giả có nên recommend những bộ phim có rating cao không? Hay là nên tìm 1 user nào có khẩu vị (user's taste) giống như là tác giả và recommend 1 list y thế? Hay là recommend những bộ phim rating low cùng category như thế? Đây là những kỹ thuật tâm lý mà cần quan sát từ ngoài đời và áp dụng vào phần xử lý phía sau của 1 website hix. Lại tâm lý :(. Cái này thì trẻ con cũng biết mà không hiểu sao tớ lại không biết nhỉ =.= Về đoạn code tính implicit ratinghttps://github.com/9health/moviegeek/blob/master/builder/implicit_ratings_calculator.py
Đọc Chương 4 thì cũng thấy công thức toán học dùng tính implicit rating thế nào rồi. Khi chuyển thành code, chuyển thành ma trận các thứ mới thấy tác giả implement tốt thật =.= Tớ nói thật là xưa tớ thấy tớ khá là kém về đoạn chuyển từ thuật toán ra code. Tớ cũng không hiểu tại sao nữa =.= Thuật toán người ta viết rõ như thế rồi, chỉ cần hiểu là chuyển ra code được mà tớ cứ bị struggle cái phần đấy =.= Cơ mà sau này thì cũng dỡ hơn rồi vì tớ toàn kiểu đi sửa code, đi maintain ý thành ra cũng biết 1 vài pattern hay dùng chẳng hạn. Chứ tớ mà nghĩ về thuật toán là đầu tớ như vào 1 cái loop và ở mãi trong ý luôn haizzz. Như đoạn code trên tác giả có 3 phần chính ở 3 vòng
Cách chạy thì là
Chạy rất là đơn giản =.= Đây là trang user Đây là trang user Nói thêm 1 chút về đoạn code trên từ góc nhìn hardware designNói thật là đoạn code trên mà implement bằng hardware chắc là mất 2 tuần tới 1 tháng để cả design và cả verify đấy haizzz. Lâu rồi tớ chưa làm nữa nên estimate chắc có khi cũng sai =.= Cơ mà làm hardware thì code không chỉ như trên đâu mà phải căn ke từng bit cho phép nhân với phép cộng =.= Ví dụ như ở bên C# có Rồi data vào như thế nào, ra như thế nào nữa, hoạt động với tần số bao nhiêu, throughput là bao nhiêu =.= Xuống hardware là cả 1 mớ lằng nhằng luôn. Cơ mà code C hay code Python hay code software chỉ cần thế này là đủ rồi... Nhận xét thêm về cách tác giả codeThật sự nhìn cách tác giả xây dựng database, cách lấy dữ liệu từ database ra, cách xử lý dữ liệu đầu ra như thế nào tớ thấy Python viết simple thật và làm prototype nhanh thật. Chỉ cần tìm đúng sách, đúng ví dụ là áp dụng được chứ cái .NET kia nào là LINQ, nào là cái gì gì đó mà chưa mường tượng được ra mình sẽ làm thế nào. Chứ chỉ cần nhìn cách tác giả code, cách tác giả tổ chức files, folders là mình có thể làm được 1 project kha khá to rồi đấy. Và nhiều người cùng join làm project đấy, integrate mà không có vấn đề gì cả... Cái này tớ thấy dễ hiểu hơn là Taiga nữa (có lẽ Taiga không có document viết chi tiết đi kèm nên khó hiểu hix). Và có khi đọc xong quyển này rồi thì tự dưng đọc code Taiga lại thấy dễ hơn =.= Okay nói thêm 1 chút lấy dữ liệu ra từ database nữa. Đây là đoạn code của tác giả dùng
Trong sách thì là lệnh SQL dài ngoằng thế này
Tại sao lại có sự khác nhau như thế =.= Do đoạn code trên ở Python là đã model lại database theo kiểu ORM và Python có lẽ cũng có 1 kiểu LINQ nào đấy giống như là bên .NET
Xem lại 1 chút database trông như thế nào cho dễ hiểu lệnh trên hơn!!! Thực ra dùng ORM rồi thì cũng chả cần chui vào database xem kỹ làm gì cho mệt đầu =.= Cứ hiểu theo kiểu object, class là okay rùi. À đoạn code Python có 3 vòng Mất 20 phút ở chỗ đấy và nghĩ mãi. Cuối cùng quay lại đọc phần giải thích trong sách thì mới hiểu ra. Mặc dù biết là normalize rồi nhưng chưa hiểu normalize là như thế nào hay implement như thế nào =.= Haizzz, tác giả thật tốt khi share code và sách ;(. Thêm 1 cái nữa khi tớ chạy đoạn code tính implicit rating thì tớ quên mất không copy database trước khi chạy rồi haizzz. Thôi dùng đoạn database tính lại rồi vậy... Về kiểm tra kết quả tính implicit ratingMột cái nữa sau khi tớ chạy và xem kết quả ở trang http://ninehealth.westus.cloudapp.azure.com:8080/analytics/user/400005 Thì tớ thấy rating tính theo kiểu implicit hiện ra rồi. Cơ mà có 1 cái là phần tính similarity với các user khác. Ở bài viết trước tớ quên nói với Quang là phần getting similarity tính toán rất là lâu luôn. Cần Tớ cũng chưa check thử CPU lúc ý lên thế nào nữa... Cái này tớ sẽ tạo 1 issue riêng hix. Ngoài ra thì tớ thấy Quang có chạy Python server từ hôm nào ấy mà giờ tớ vào trang web trên là cái máy ảo của tớ trên Azure đơ luôn Quang à, không login được nữa trong vòng 5 phút :( Nếu mà tớ thử lại với user http://ninehealth.westus.cloudapp.azure.com:8080/analytics/user/3/ Có lẽ tớ sẽ tạo 1 issue khác và viết sau!!! Cơ mà thôi tớ điều tra luôn =.= Có lẽ do ma trận của user
Có vẻ tớ lấy data chưa đúng lắm. Dùng bảng
Thực sự cũng chưa hiểu lắm tại sao Quang à =.= Cơ mà tớ nghĩ là có lẽ để cho an toàn chỉ nên chạy 1 Python web server 1 người 1 thời điểm thôi =.= Tớ nghĩ phần của Quang đang build database model thì tạm thời chưa cần chạy cũng được hic. Tớ nghĩ chỉ cần dùng command line là đủ ấy T_T. Quang có thể là vào và tắt hộ tớ cái Python web server ở port Cảm ơn Quang nhiều T_T. Vì tớ mà dùng database populate và vào trang analytics của user 400005 là máy ảo treo luôn. Thực ra thì tớ cũng có thể cancel cái Quang đang chạy được nhưng mà biết đâu nhỡ Quang đang chạy cái gì mà tớ cancel làm hỏng thì sao =.= Nên tớ bắt chước các bác Nhật là cứ email cho user mà đang chạy job ý!!! Thanks Quang nhiều!!! Về kế hoạch tiếp theoTớ nghĩ Chương 4 với tớ như thế hòm hòm rồi. Tiếp tục tớ sẽ qua đọc Chương 5 O_O. Sáng nay thì tớ cũng không dậy sớm được hic. 1 tuần có 5 ngày mà 3 ngày cái khoảng 2 giờ bị shift đi rồi hix. Cũng chả biết làm thế nào nữa, cuộc sống vary mà hix. Thôi lại tiếp tục cố gắng recover trong ngày vậy. Tối qua tớ đọc từ 8h15 tới 9h30 trong lúc mẹ tớ đang xem bóng đá. Tớ ra phơi quần áo xong thì 10h. Mẹ tớ giục làm clip từ 8h tối thì phải nhưng tớ đang đọc dở cái 2 tiếng nên thôi :( Cũng buồn cho mẹ lắm. Sau may mà đọc cũng hết 7K chữ rồi nên ra giúp mẹ. Tới 12h hơn thì làm xong clip và 2 mẹ con đi ngủ T_T https://www.youtube.com/watch?v=PZkH_u-NPRE&list=PLzc9r8PlgBfdFEUoSmvoFmw1Ar9mQQQSq&index=3 Trong này clip thì tớ vi phạm bản quyền cả nhạc này (bị nhiều lần rồi mà không sao) rồi cả hình ảnh (cắt ghép từ VTV1 ý). Không hiểu là có bị yêu cầu gỡ xuống và bị xóa không đây haizzz. Hi vọng là không. Chiều nay thì 1h tớ giúp mẹ bê loa ra Phường rồi quay phim mẹ hát nữa. Chắc là 2h hay 3h chiều mới về nhà T_T. Mẹ tớ định 10h30 sáng ăn mà không làm được. Chắc 11h15 tớ phải ăn trưa rồi và còn ngủ trưa nữa T_T. Hi vọng ngày hôm nay là 1 ngày tốt lành. Chúc Quang cũng như thế!!! À sáng nay 7 giờ dậy tớ viết file này và giờ mới xong. Lúc 8 giờ kém 15 mẹ gọi ra đánh răng rửa mặt, ăn sáng T_T. Cảm giác rất là tồi tệ vì có 2 tiếng mỗi ngày hứa với bạn mà không thực hiện được hic. Giờ thì cũng đỡ rồi hic. Có 1 suy nghĩ của tớ là Quang hay bảo là mẹ không sống với mình được mãi đâu nhưng mà tớ nghĩ là vì như thế nên mẹ tớ còn sống ngày nào thì tớ làm cái gì được mà mẹ tớ happy thì tớ làm :(. Khi nào mà mẹ tớ không muốn tớ làm nữa thì thôi vậy @@. Tớ cũng không biết tương lai sẽ như thế nào nhưng mà thôi những cái sở thích của mình nó được thì tốt mà không được thì thôi, cứ cho mẹ happy đã rồi tính của mình sau. Cả đến lúc mẹ tớ 90 tuổi, tớ 60 tuổi chẳng hạn @@. Chắc là 60 tuổi tớ mới dám lấy vợ mất @@@@@@@._ |
Hi Hải, @9health Thank Hải đã comment tiến độ theo ngày nhé. Tớ đã tắt server django tại port 8081 rồi nhé. Mai Hải có qua nhà tớ không ? và mấy giờ vậy ? báo tớ trước nhé Tớ đang thấy luồng trao đổi vừa ở cả github vừa ở cả outlook rồi imess thế này không quy được về một mối khó quá Để tớ nghĩ xem có cách nào thống nhất luồng trao đổi không nhé. Thank Hải !!! BR |
Hello @quangvv9Life, Thanks Quang đã tắt Python web server để save resource cho tớ nha @@. Chiều nay thì 3h30 cuối cùng tớ cũng đã quay video xong cho mẹ và về nhà rồi. Link video tớ sẽ gửi sau. Hôm nay biểu diễn là cho Tổng kết Đảng (Hội nghị Sơ kết Giữa kì) gì đó có cả bác Phó Chủ tịch ở Quận về @@. Đông lắm @@. Mà tớ cũng quen nhiều vì đi du lịch với hội CCB của mẹ 3-4 lần rồi, mỗi lần tour 2 ngày, có khi 4 ngày =.= Bài hát Màu Cờ Tôi Yêu ST Phạm Tuyên do CLB Hòa Thanh CCB Phường Kim Mã Quận Ba Đình TPHN biểu diễn - Minh Sua Nguyen Thi https://www.youtube.com/watch?v=GtGvfAix56E Mẹ tớ hôm nay lại không về quê nữa vì mưa với rét. Tớ cũng chưa biết ngày mai thế nào đây =.= Thứ 7 khả năng tớ cũng không biết có về quê hay không nữa =.= Nếu mà về quê chắc khả năng không họp với Quang được rồi. Mà hình như đợt tới là 3 ngày nghỉ lễ liên tục nhỉ, nghỉ cả Thứ 2 nữa hix =.= Có gi tớ sẽ nhắn lại sau Chúc Quang năm mới nhiều thành công và luôn tràn đầy niềm vui nhé!!! Về Chương 5 - Non-personalized RecommendationsTiếp tục về trải nghiệm đọc trên ManningNói thật xưa tớ đọc sách Quang ạ là tớ hay có xu hướng đọc từ đầu tới cuối quyển sách ý ở chỗ có đoạn nào đọc được. Cơ mà từ khi vào trang Manning này và đọc theo kiểu
Thì tớ phát hiện ra rằng tốc độ đọc của mình tăng lên đáng kể @@. Không cần đọc hết cả Chương đấy mà hiểu được Chương đấy nói gì rồi. Còn đi vào chi tiết, hiểu từng dòng code thì hơi mất thời gian. Tạm thời bỏ qua cũng được =.= Mục đích của tớ là chạy và xem là output ra thế nào. Và giờ thì độ khó từng dòng code cũng đang tăng dần =.= Để được level code như tác giả thì chắc cũng phải code khá nhiều đấy... Rất là dễ nhìn mà cũng rất là gọn gàng =.= Cách đặt tên biến cũng rất thông minh =.= Tớ đặt tên biến lung tung lắm haizzzz. Về nội dung Chương 5Lúc bắt đầu đọc nói chung tớ cũng khá mệt vì vừa đi mưa về, lại còn phải mở cửa cất loa các thứ nữa =.= Cơ mà thôi lại hi vọng là cách làm cũ sẽ có hiệu quả và đúng là có thật. Chương 5 này đã bắt đầu tập trung vào phần recommendation rồi. Về recommendation những item phổ biến nhấtVà cái recommendation cơ bản nhất sẽ là hiện thị ra có bao nhiêu người mua (buy) ở ô bên phải (tác giả gọi là chart, tớ thấy chart phải có tọa độ các thứ, tớ thấy cái này giống với cả list hơn =.=). Thôi tớ nói luôn vào API cho dễ hiểu nhé @@. http://ninehealth.westus.cloudapp.azure.com:8080 Khi mà mình vào trang Home page của MovieGEEKs thì sẽ có API call như ở dưới http://ninehealth.westus.cloudapp.azure.com:8080/rec/chart Data trả về là
Có vài API này cũng đang được gọi nhưng mà chắc phải đọc các chương sau mới biết được thế nào. Thôi cứ từ từ vậy @@.
Có vẻ như là đều gọi đến các kiểu recommendation khác nhau hết =.= Tiếp theo là kiểm tra xem API đấy xử lý như thế nào Đầu tiên mình tìm trong Recommender app URL sẽ là thế nào thui https://github.com/9health/moviegeek/blob/master/recommender/urls.py
Tiếp đó là xem nội dung hàm https://github.com/9health/moviegeek/blob/master/recommender/views.py
Điểm chú ý trong này sẽ là object Ấn vào đấy trên GitHub thì ra luôn file chứa hàm đấy là https://github.com/9health/moviegeek/blob/master/recs/popularity_recommender.py
Đây lại là 1 folder khác rồi!!! Trước là recommender app. Còn đây kiểu các hàm recommendations khác nhau viết tắt là Lại 1 cách tổ chức kiểu khác cũng khá hay ho :-? Thực sự cho hết vào folder
Quang có thể thấy trong folder Tha hồ mà thử nhiều kiểu hự. Vậy là hiểu sơ sơ về recommendation kiểu Top item như thế là okay rùi. Nhưng mà có 1 cái trong hình vẽ database của MovieGEEKs app Figure 5.7. MovieGEEKs architecture with the recommender system highlighted có những thành phần là
Như mình thấy kiểu recommendation theo độ phổ biến ở trên thực ra lấy dữ liệu từ Collector app là chính. Vậy thì Tìm hiểu thêm thì trong Recommender app có file https://github.com/9health/moviegeek/blob/master/recommender/models.py
Rất là nhiều model luôn, tớ chỉ copy tên model ra đây thui. Okay vậy tìm hiểu tiếp nào Về cách dùng association để recommendĐây là 1 cách khác để đưa ra item recommend. Tác giả đưa ra ví dụ là
Đại ý là recommendation ở đây dựa vào association. Như hồi học tiểu học có biết là tính chất hoán vị (associative) là
Association còn có nghĩa là relationship nữa =.= Tớ cũng chỉ nghĩ đến đây thôi, tìm được đoạn code của tác giả từ ở file này rùi https://github.com/9health/moviegeek/blob/master/recommender/views.py#L21-L67 Cơ mà đọc cũng chưa hiểu lắm =.= Code ảo diệu quá. Thôi từ từ để ngấm dần vậy. Còn không lại dùng đến sách hix. Về một vài nội dung khácCái này thì tớ cũng chưa chia sẻ lắm phần tác giả nói ở các trang web khác recommendation theo kiểu popularity thế nào @@. Hoặc là sort theo ngày chẳng hạn. Thôi để đọc có lẽ sẽ hiểu ý kỹ hơn =.= Về association builder thì có lẽ toàn toán học, có lẽ cũng phải tham khảo thêm để hiểu dễ hơn =.= Code viết ác liệt quá hự. Còn về chạy code thì tớ sẽ để sau :-? Dùng đoạn code tác giả cung cấp thì sẽ ra được các item liên quan theo kiểu association với 1 bộ phim như Figure 5.20. Details page showing the recommendations ^_^ Tạm thời tớ dùng cũng có vẻ gần hết 2 tiếng rồi =.= Thôi cứ làm tròn nhé. Tớ nghĩ có thời gian đầu óc sẽ nghĩ được thêm và cảm nhận hơn về popularity, association recommendation. Chúc Quang nhiều sức khỏe, buổi tối vui vẻ!!! Chúc mọi việc gia đình Quang thuận lợi nhé!!! Cảm ơn Quang đã đọc tới đây!!! Về vụ nhiều chỗ trao đổi, nhiều thông tin quá thì cái đấy đương nhiên thui @@. Như ở chỗ cũ tớ làm thì có các kênh sau
Túm lại là mỗi người mỗi kiểu @@. Tài liệu rải rác mỗi nơi, chat rải rác mỗi nơi, viết rải rác mỗi nơi :( Tớ thấy tiếc nhất là hình như Teams không cho backup thì phải =.= Hoặc là tớ chưa dành thời gian tìm hiểu xem để download hết message trong Teams thế nào. Vì là có nhiều cái tớ viết hồi xưa dài trên đấy mà không backup được :( Email thì có thể download về và lưu trữ offline, xem lại sau bằng Thunderbird free cũng okay. Facebook at Work thì có thể export data mình ra dạng JSON được thì phải... OneDrive for Business thì tài liệu trên đấy rùi nên là không sợ bị mất nữa... Và cũng download về được ý. Đấy thì ở đâu cũng thế thui Quang O_O. Cái cuối cùng mình cần có là Tài liệu và code. Thông tin gì mà quan trọng là cứ phải lưu hết vào đấy chứ để trên chat là mất ý... Tớ có thói quen là vậy... Vậy thui. Mẹ tớ vẫn đang mải mê cầm cái điện thoại, xem bao nhiêu người likes bài post trên Zalo về cái video ở trên haizzzz =.= Giờ vẫn chưa được ăn nè :(. Huhu Thôi cảm ơn Quang đọc đến đây nhé!!! |
Hello @quangvv9Life , Thanks Quang đã ngồi họp hôm nay với tớ và đã cùng xem lại Chương 4 và Chương 5 cũng như đưa ra nhiều câu hỏi liên quan tới tương lai nhé O_O. Nói thật lúc đọc tớ cũng chỉ làm sao mình hiểu đúng ý tác giả thôi chứ áp dụng thì cũng chưa nghĩ đến. Nguyên nhân là vì mình mà chưa hiểu làm sao mình có thể dùng lại được @@. Vậy nên là cứ theo từng bước mà phát triển thôi, cũng không cần đốt cháy giai đoạn quá đâu. Biết là nhanh mà tốt nhưng mà nhanh những lúc nào mới tốt, chậm lúc nào mới tốt thì cái đấy mới là đúng nhất O_O. Tiếp tục về Chương 5Thực sự thì hôm qua đọc Chương 5 xong tớ cũng chỉ mới hiểu 1/2 ý của tác giả thôi. Còn phần Association thì cũng chưa hiểu hẳn lắm =.= Sáng nay thì 5h40 tớ đã dậy được rồi và lại đắn đo xem là nên mở Manning ra đọc hay là tiếp tục đọc code nhỉ =.= Thực sự hôm qua chưa dùng 5 phút free của Manning nữa. Nếu mà mình lại đọc thì liệu khá khẩm hơn gì không =.= Code nhìn 1 lần mà không hiểu chứng tỏ là mình có vấn đề hay tác giả viết có vấn đề. Hình vẽ cũng y như thế. Thôi thì cứ bám vào cái hình association của tác giả vẽ vậy rồi lao vào đọc code xem như thế nào :|. Dù gì thì cũng review tính chất giao hoán là gì, tổ hợp là gì, chỉnh hợp là gì rồi... Về đọc code Build Association RulesĐầu tiên thì tớ đọc file này thôi https://github.com/9health/moviegeek/blob/master/builder/association_rules_calculator.py Vì đây chính là Python script cần chạy để ra được rules cho đúng. Lúc này tớ cũng chưa hiểu ý tác giả muốn thế nào đâu vì nhìn mấy cái công thức toán học trên trang đấy khó hiểu quá =.=
Đầu tiên là đọc hàm này trước. Từ collector database lấy ra tất cả Sau đó generate ra 1 ma trận kiểu như sau
Đến đoạn code này mới bắt đầu khó đây :-? Đầu tiên là tác giả dùng Tìm hiểu về https://docs.python.org/3/library/collections.html#collections.defaultdict
Dùng Hàm https://docs.python.org/3/library/stdtypes.html#types-set
Túm lại tác giả dùng Mục đích là vì dùng kiểu Hiểu được 2 cái trên rồi thì cũng hòm hòm rồi. Có đủ khả năng hiểu hết rùi :-? Ở 2 vòng Nói thêm 1 chút về hàm https://docs.python.org/3/tutorial/datastructures.html#dictionaries
Okay còn ở vòng lặp Ở đây mặc định có lẽ Nếu mà bộ phim ý có số lần đếm hơn 1% số lượng transactions thì mới được ghi nhận. Đầu ra hàm này là Chuyển tiếp sang hàm thứ khó hơn
Dòng có comment
Đầu tiên nên xem lúc mà các Session ID mà có Hàm Nếu mà có thì ghi nhận cặp phim đấy @@. Đối với Session ID có Nói thêm 1 ít về hàm https://docs.python.org/3/library/itertools.html#itertools.combinations
Okay vậy là đã xong hàm tính Giả sử đang vào link của bộ phim Bộ phim Có thể thấy được theo association rule thì phim sẽ được recommend như thế nào trong Figure 5.20. Details page showing the recommendations Quả thật là magic O_O. Thuật toán diệu kì thật
Sau khi hiểu kỹ hơn về 2 vòng Hàm https://docs.python.org/3/library/stdtypes.html#frozenset.issubset
Có thể thử bằng đoạn code sau.
Giờ tớ mới hiểu kiểu Check tập con thật là nhanh!!! Tương tự đọc để hiểu hàm https://docs.python.org/3/library/stdtypes.html#frozenset.difference
Thử với đoạn code sau
Từ đấy có thể hiểu Phần tính toán Ở đây tớ nghĩ phục vụ để kiểm tra xem thuật toán chạy ổn hay không. Tớ hiểu Còn Xem thêm hình này Figure 5.14. Itemset lattice with four elements để dễ hiểu hơn về tập 1-phim và tập 2-phim.
Đúng là sách do người châu Âu viết. Rất dễ hiểu và pratical =.= Hàm
Tớ có thử ở đây để mô phỏng lại. Hi vọng hiểu đúng =.= Cuối cùng Rules sẽ được lưu lại ở đây
Tìm hiểu thêm database model https://github.com/9health/moviegeek/blob/master/recommender/models.py#L49-L64
Tớ copy 1 ít ra ở đây để xem... Và association rules được lấy ra và dùng ở đây https://github.com/9health/moviegeek/blob/master/recommender/views.py#L21-L47
Bộ phim được recommend theo kiểu association sẽ được trả về theo JSON và front-end parsing rồi hiển thị thôi. Về next stepsTớ chưa hiểu lắm là với Có lẽ tớ nên thử trên Python Django hự. Cơ mà đang tính nên dùng GitHub Codespaces hay là thử ở local đây T_T Và thử hết có lâu không, lâu quá thì... Cơ mà cái này kiểu gì có lẽ cũng gặp nhiều nên là cũng có khi cần hiểu tương đối hix =.= Ngoài ra thì tớ cũng chỉ dành 2 tiếng sáng nay để đọc và hiểu đống code này thôi, hiểu cả những kiểu dữ liệu chưa bao giờ dùng, những hàm chưa bao giờ dùng nữa T_T. Công nhận là chương này ngốn thời gian thật đấy nhưng mà vẫn gặp và phải trải qua thôi hix hix. Cảm giác khi đọc chương này giống như là đang học môn Thuật toán vậy @@. Xưa tớ học Đại học thì không có môn nào kiểu thế riêng thì phải. Có lẽ bên Computer Science mới có... Nếu mà implement trên hardware thìThật sự cái này mà viết lại bằng ngôn ngữ phần cứng bọn tớ hay dùng là Verilog thì chắc mất vài tháng mất =.= Nếu mà làm cẩn thận ý, cả design và verify =.= Riêng 1 cái mảng mà có cả trăm tới nghìn phần tử là phải dùng 1 con SRAM riêng rồi haizzz. Mà trong này cứ có kiểu Cái này mà code Verilog thì cũng lâu ghê đấy =.= Nên là software viết trên CPU là đúng rồi hix. Quá là general với tất cả các loại thuật toán hix. Thêm 1 chút về trải nghiệm đọc trên ManningHôm qua lúc viết cho Quang tớ có lưu ý về CPU power khi vào trang Manning. Hôm nay tớ cũng lại lưu ý nữa =.= Trang Manning tốn CPU power là do contact với nhiều tracker (theo dõi) hành vi người dùng quá =.= (Facebook, Amazon, Google haizzz) Trang GitHub với OneDrive thì chả contact với tracker nào cả =.= thành ra là cứ để đấy chả tốn pin mấy =.= Vậy là tớ cứ mở GitHub ra đọc thôi trong vòng 2 tiếng hình như đâu hết có Trang Python docs cũng không contact tracker nào cả, nên cũng đỡ tốn CPU power... Về 1 số việc khácSorry Quang tớ đùn đẩy cho Quang việc đăng ký cái Azure offer =.= Cơ mà tớ cũng không biết lý do hợp lý là gì nữa nhưng mà tớ nghĩ là nhỡ tớ sau này làm sao Quang còn biết cách mà setup chứ =.= Với cả tớ cũng không thích kiểu làm lại cái gì mình làm rồi lắm :| Sorry Quang nhé. Nói chung kể ra rất nhiều lý do chắc cũng không make sense lắm =.= Hôm trước thì tớ có ngồi kiểm tra mấy cái Azure plan các thứ, subscription các thứ thì phát hiện ra bị dùng quá Cơ mà tớ chưa tạo issue thôi. Tớ cũng check qua rồi và có lẽ không có vấn đề gì, sẽ không bị trừ vào thẻ của tớ =.= Còn máy ảo Linux hiện tại thì đang hết cỡ khoảng Tớ sẽ thông tin nhiều hơn trong issue đấy =.= Mà dùng quá băng thông là bị charge tiền. Dùng quá I/O Microsoft cho phép cũng bị charge tiền. I/O ở đây là đọc ghi vào ổ SSD ý @@. Tớ cũng chưa tính free quy ra là bao nhiêu GB nữa =.= Cơ mà túm lại mọi thứ giờ vẫn Vậy thôi còn 1 cái nữa là có lẽ cuối năm đang kỳ nghĩ lễ nên chắc Quang xin video Azure Onboarding hôm trước chắc cũng khó :| Nếu không được thì thui vậy, không sao đâu Quang!!! Hix tớ dành nhiều thời gian cho Quang quá mà file Ghi Nhận Cảm Xúc, future tớ vẫn chưa update :((((. Thanks Quang đã đọc đến đây và good night!!! Mai tớ sẽ đọc lại Chương 5 tiếp cho hiểu hơn!!! |
Hello @quangvv9Life, Thanks Quang đã comment vào bài viết hôm trước cho tớ mà tớ vẫn chưa đọc hic T_T. Mấy hôm ở quê lau nhà, lau ban công, lau lan can, lau cửa sổ, đốt lá, chạy bộ 3 km sau khi ăn tối làm người tớ cũng bị oải quá @@. Cơ mà cũng cố gắng sáng nay dậy để có tiến độ =.= Về GitHub CodespacesTớ cũng nghĩ mãi các cách thử thư viện Query của Django xem cái nào hợp lý nhất =.=
Nói chung tớ thường prefer cách mới hơn và cuối cùng là tốn công học cái GitHub Codespaces đấy cơ mà cũng có nhiều cái thú vị =.= Tớ sẽ cố gắng khắc phục điểm yếu hix. Về GitHub Codespaces thì tớ có tìm hiểu kỹ hơn những gì họ cho free
Công thức thì có thể xem kỹ hơn ở trang này
Về phần networking thì không thấy họ nói gì, có lẽ dùng bao nhiêu cũng được =.= Tính kỹ thêm về giá cả thì nói chung 60-hour đấy sẽ tương ứng với Cứ mỗi tháng sẽ được reset lại số giờ dùng đấy. Dịch vụ cloud họ dùng tất nhiên là Azure rồi. Cảm ơn Microsoft cho mỗi tháng free Về Dev ContainerTrước thì tớ cũng đã dùng GitHub Codespaces vài lần rồi và thấy mọi thứ tương đối là easy. Nhưng mà nói thật trước khi dùng hẳn thì mình cứ đọc tài liệu cho chắc vì tớ bị cái lỗi là không hiện output ở integrated terminal =.= Tớ có đọc và phát hiện ra 1 thuật ngữ rất hay là dev container. Nghĩa là kiểu dùng môi trường docker để develop luôn =.= Cái máy ảo mà GitHub tạo ra cho mình thực chất là 1 dev container chứa VSCode ở bên trong đấy... Trước thì như tớ có chia sẻ với Quang và anh Công là setup ở Azure Containers khó vì nhìn các bước loằng ngoằng quá =.= Cứ tưởng là develop sẽ không bao giờ dùng container, docker cơ mà giờ thì khác thật... Dùng container là cách mà tạo ra môi trường để dev nhanh nhất luôn hix. Và VSCode còn có trò là đồng bộ settings từ máy mình lên máy ảo đấy... Thật sự thì đúng là mọi thứ rất là mới, rất là innovative hix Tớ còn đi theo dài... Về fix lỗi không hiện chữ ở Integrated TerminalNhư tớ có chia sẻ với Quang trước tớ dùng GitHub Codespaces bị một lỗi rất chuối là output ở Terminal không hiện ra gì =.= Khi đọc xong phần hướng dẫn của GitHub Codespaces rồi tớ cũng biết thuật ngữ gọi cái cửa sổ đấy là Integrated Terminal. Tớ mò mẫm trên mạng xem có ai bị không thì thấy có mấy hướng dẫn này https://code.visualstudio.com/docs/terminal/appearance#_gpu-acceleration Nói chung là có nhiều cách fix.
Tớ thì không đọc phần GPU các thứ thấy có vẻ là tắt đi hơi có vấn đề thật =.= Liệu dùng CPU có tăng lên không??? Đọc tài liệu của VSCode online cũng không hiểu lắm thật =.= Thấy có vẻ tăng CPU nên tớ cũng không thích lắm. Tớ chọn cách chuyển sang dùng bản Cơ mà CPU thì lên cao ngất ngưởng luôn =.= Thế là tớ cũng không thích rồi. Tốn pin =.= Vậy thì đành phải chuyển về bản như bình thường, Cơ mà chuyển về Không tìm cách nào để view trang web Django luôn =.= Haizzz. Tớ mò mẫm 10 rồi 15 phút không ra được nản quá hức Mẹ tớ gọi ra ăn sáng rồi, thôi vậy là 1 tiếng 30 phút mình đã trôi qua cũng gọi là hơi phí hay không phí đây hix. Tớ stop, start máy ảo mãi không lần. Cũng tiếc không muốn xóa nhưng mà không có cách gì fix được đành xóa thôi :(. Về next stepsCó vẻ như tớ có khả năng bôi những thứ gì đơn giản ra nhiều thứ và kéo dài thời gian ra =.= Từ xưa đã như thế rồi. Từ đầu mà cứ tạo trên máy ảo có phải hơn không. Ports cũng mở rồi =.= Haizzz thôi thì tớ cũng nghĩ mãi mình làm cái gì sai ở đây nhỉ? Liệu dùng GitHub Codespaces có đáng không? À cái phần Dev Container ở trên tớ cũng chưa dám đọc kỹ lắm vì sợ tốn thời gian với đi xa quá hix =.= Thôi kệ vậy. Tớ nhớ lại Django Tutorial hồi xưa học ở W3Schools cùng với Quang https://github.com/9health/django-tut-w3c Thôi thì tớ sẽ blend hết mọi thứ lại. Tớ sẽ vẫn dùng GitHub Codespaces và không cần xem terminal output ra như thế nào nữa =.= Tớ sẽ thực hiện insert trên database bằng 1 cái button và load dữ liệu ra cũng bằng 1 cái button vậy =.= Plan ban đầu là insert data tới SQLite3 database bằng command line cơ nhưng mà thôi vậy =.= Nói chung hôm nay tớ thấy hơi đen vào ngày đầu năm mới. Cơ mà thôi hi vọng ngày mai sáng sủa hơn. Hi vọng là Quang ủng hộ tớ nhé hix. Về Chương 5Tớ vẫn còn 30 phút chưa dùng nữa, mà giờ quay lại Django thấy có vẻ mờ mịt quá, cần suy nghĩ kỹ hơn =.= Thôi thì tớ nghĩ mình nên đọc Chương 5 xem thế nào. 18h30 tớ mới bắt đầu kế hoạch được =.= Về trải nghiệm đọc trên ManningGiờ tớ mới để ý hóa ra Manning cũng không phải unlock hết text đâu. Có 2 đoạn văn vãn là scambled text. Tớ lại dùng trò 5 phút free và copy hết text ra, mất khoảng 5 phút thôi.
Tớ cũng đếm thử số chữ của Chương 5 thì thấy là có khoảng 7K từ @@. Công nhận tác giả viết giỏi thật, chương nào cũng đúng 7K tới 8K từ chuẩn thật. Còn về link ảnh thì cái nào tớ xem rồi và thấy quan trọng thì tớ lưu lại link đấy thôi. Tớ quay vào TextEdit và đọc trên đấy cũng thấy thoải mái. TextEdit của macOS có hỗ trợ Dark Mode dùng khá tốt @@. Và nói chung dùng cũng đỡ tốn pin hơn là đọc trên liveBook của Manning nữa @@. Tổng cộng lúc đọc có 7 trackers chạy phía sau =.= Càng nhiều trackers thì càng tốn CPU =.= Ví dụ như vào hòm mail Outlook tại https://outlook.com thì tớ thấy Safari hiện có 32 trackers, tốn CPU kinh =.= Về nội dung Chương 5Tớ thấy tầm 7K từ tớ cũng nghĩ 30 - 45 phút là đọc xong thôi. Cơ mà đúng như tớ dự đoán đoạn đầu đọc dễ dễ, tính popularity các thứ. Cơ mà đọc đến phần tính association loằng ngoằng thật đấy =.= Hiện tại tớ mới đọc xong 2 tiếng nên đầu tớ chưa tự xử lý được nhiều thứ hay ho. Cơ mà đúng là đọc full-text không nhìn hình cũng thấy hiểu hơn những thứ mình từ suy ra =.= 1 khái niệm tớ hiểu được từ đấy thì là những gì non-personalized là những item mà luôn luôn giống với tất cả user @@. Khi mình build association rule cũng là 1 cách tạo ra non-personalized recommendation vì là ai cũng sẽ hiện như thế =.= Hiện tại tớ đang tạm dừng ở công thích tính Confidence. Cũng thấy khá hay. Còn association rule chạy sẽ tốn CPU vì query từ database và xử lý cũng sẽ lâu vì thế thường sẽ chia ra làm 2 giai đoạn là
Như cách tác giả implement cũng có thể thấy là thực hiện đúng y như vậy. Build rule riêng và chạy ra movie liên quan riêng. Ví dụ như khi sort hàng chục nghìn hay hàng trăm nghìn bộ phim mà được nhiều người mua nhất chẳng hạn tác giả cũng bảo 1 ngày chạy 1 lần cũng không sao vì thời gian query từ database tương đối lâu. Tạm thời thế đã =.= Một vài suy nghĩ khácCảm ơn Quang đã đọc tới đây. Sorry Quang đã gửi comment muộn. Chúc Quang buổi tối vui vẻ hix!!! Hi vọng mai mọi thứ sẽ okay O_O O_O O_O |
Hello @quangvv9Life, Thanks Quang đã đọc bài viết hôm qua của tớ nhé mà tớ chưa kịp comment lại :( Tớ thấy có email báo trong hòm mail rồi @@. Tớ cũng biết vì sao GitHub không báo notification rồi =.= Thế nào mà option đấy bị unselected @@. Thế cũng hay, mỗi lần nhìn thấy email mới hay là có tin nhắn mới, thông báo mới theo kiểu unexpected là tớ tim đập chân run @@@@@@. Hình như thế. Sáng nay thì mẹ tớ dậy sớm quá, 5 giờ kém đã dậy rồi @@. Tớ cũng tỉnh rồi, vậy là tớ thức thôi @@. Về tìm hiểu QuerySet trong DjangoQua tớ ngẫm nghĩ mãi xem mình có nên tiếp tục với GitHub Codespaces không =.= Hay ho thật nhưng mà cứ kiểu sao sao ấy =.= có vẻ có cái gì đó không thuận. Cái tớ cần chỉ là hiểu mấy cái Filter Query của Django thôi mà theo hướng đấy có vẻ làm nhiều thứ quá. Qua thì tớ đọc Chương 5 và có nhớ là tác giả bảo lúc mà hiện movies ra ở trang Home page ấy có thể sửa lại như sau để cho ra những bộ phim cũ nhất @@
Cái này là làm cho vui thôi chứ thực tế người ta sẽ thích xem phim mới hơn. Cơ mà cũng chưa chắc đã thích xem phim thật là mới như tác giả có bảo thế @@. Một số trang web như mua đồ cổ thì cái gì càng cổ có khi hiện ra lại hay hơn =.= Tác giả cũng khuyên là không nên sắp xếp theo thứ tự trong database nữa Vậy là từ đoạn code trên tớ nghĩ là tốt nhất mình nên tập trung vào cái web app MovieGEEKs của mình để thử vậy. Cái GitHub Codespaces kia biết được dev container là hay ho rồi. Mà cái VSCode bản web có vẻ không thân thiện với tớ lắm. Tớ hay ấn lung tung quá thành ra mất cái này cái nọ =.= Mà cũng tốn CPU lúc dùng nữa. Dùng Terminal mặc định của macOS đỡ tốn hơn =.= Thôi chắc tớ không có duyên với mấy cái IDE rồi, lại quay lại terminal và debug trên ý hự hự. Lại theo cách nông dân vậy... Về MovieGEEKs web app bị dừngTớ thì phát hiện ra cái web server bị down từ tối hôm qua rồi nhưng chưa hiểu tại làm sao @@. Lại do Quang như lần trước hay là vì 1 lý do gì đó =.= Mà tớ thì lại đang cần dùng vì không còn đi theo hướng GitHub Codespaces nữa. Vậy là tớ lao vào điều tra như trong Issues này đây @@. Cơ mà kết quả là không ra gì cả :( Chắc là phải hỏi Quang mới rõ ngọn ngành @@. Công nhận 1 mình tớ dùng không sao cơ mà thêm 1 hay 2 hay nhiều users hơn sẽ phát sinh vấn đề ^_^ Cái này mình cứ giải quyết dần thôi. Vậy là tớ mất 30 phút để kiểm tra mấy cái log như trong Issue trên. Rồi tớ nghĩ tốt nhất nên tạo 1 user độc lập để chỉ chạy web server và chỉ cho tớ dùng thôi như ở Tasks này Tớ nghĩ làm như vậy thì Quang sẽ không còn bị vào nhầm folder, cài đặt nhầm environment nữa @@. Đúng là dễ nhầm thật vì là tên giống nhau @@. Về Linux administrationNói thật về tạo user, tạo group các thứ tớ cũng có ít kinh nghiệm rùi vì trước tớ cài tool cho công ty là chia nhiều người nhiều folder khác nhau =.= Hồi ở Yamanashi tớ làm trên Linux server dùng mấy cái tool vi mạch cũng được các bác tạo sẵn rùi. Ở chỗ tớ làm ở Nhật có 1 cái hay là cùng 1 work (project đúng hơn) folder ai cũng có quyền đọc ghi hết kể cả folder người khác. Và cũng nhìn thấy hết home folder người khác luôn. Mà hồi xưa tớ dùng Fedora 14 (2010) thì không có trò dấy @@. User nào là xem home folder user đấy thôi. Do permission mặc định mà... Tớ thì nói chung chỉ quen dùng 1 mình nên cũng chả để ý lắm mấy cái chia folder, chia permission read, write các thứ =.= Cơ mà nói thật là nhiều user phải học thật mà tớ cũng lười. Tớ thì không gây ra vụ nào kiểu to tát cả. Chỉ 1 lần gần release project thì tớ chạy nhầm lệnh Mà không có bản backup nào luôn =.= Recover trên Linux thì có khả năng nhưng mà nói chung cũng khá loằng ngoằng =.= Các bác cũng thử giúp tìm hiểu recover giúp tớ mà không được =.= May mà sau 1 tuần tớ vẫn còn nhớ đống test patterns đấy và tạo lại được. Dự án không bị làm sao chứ như vụ dấy chắc delay 1-2 tuần =.= May tớ làm module cũng không quá to nữa. Sau vụ đấy tớ thấy sợ quá, vậy là viết test patterns hay môi trường hay gì tớ đều cho lên svn hết ở folder work của tớ =.= Các bác ý thì cũng có lúc dùng svn, cũng có lúc không dùng. Chắc sợ mọi người không quen =.= Nói chung svn cũng khá là loằng ngoằng cơ mà tớ cũng tiếp xúc 1 ít ít rồi với cả các bác cũng không đặt nặng quá tiến độ, tớ vừa tạo test pattern, vừa học lệnh svn thôi =.= Cuối cùng cũng làm được, nhớ được nhiều cái @@, dùng được nên chuyển qua git cũng không tốn thời gian mấy @@. Nhờ có svn thì mới có 1 folder repository lưu hết lại code môi trường, test case của mình chứ không thì lại remove nhầm thì chết =.= Còn 1 em khác làm ở Shibuya tớ nghe kể chuyện hình như skill Linux em ý cũng không thạo lắm. Em ý Không hiểu chuyện gì xảy ra nữa. Vì cái đấy ảnh hưởng tới nhiều người @@. Hi vọng Quang đọc log trên của tớ cũng sẽ hiểu qua qua Và hi vọng là sẽ sự cố bị tắt web server trong tương lai ít đi. Nói chung dùng nhiều user tớ thấy cũng có cái hay, vào nhầm folder người khác mà nhỡ có thay đổi gì (write) thì sẽ có dòng này xuất hiện
Quang có thể mới chưa quen nhưng mà có thể bắt chước tớ làm theo @@. Hơi lâu cơ mà tớ thấy cũng có ích hự. Thật ra tớ cũng là newbie thui ý mà =.= Biết hơn có tí vì thực hành nhiều hơn =.= Folder nào quan trọng là phải đặt permission quan trọng.
Nhìn vào đây thì Quang có thể thấy 3 permission cho owner, group, others. Ví dụ như file Như folder User Nhìn vào permission ở trên thì user Cơ mà nếu login từ user
Vì priority group (cái này tớ không sure lắm đâu). Có 1 lệnh là
Đại khái là user mình thuộc nhiều groups thì mình có thể chọn group đầu tiên là gì :-? Chắc là tớ sẽ thử sau này Cơ mà nhìn vào group và nhìn vào permission như trên. Thì user Cơ mà nếu bị đổi group thành Tớ phỏng đoán vậy thôi. Cái này Google gọi là primary group @@. Chắc ngồi thử cũng mất 15-20 phút rồi report nữa... https://unix.stackexchange.com/questions/151113/how-to-change-primary-group Thôi để sau vậy :|. Tạm thời như vậy tương đối ổn. hix Về HTTP/3Thì phần kiểm tra lỗi, tạo group mới, user mới, permission cho folder mới tớ làm hết trong vòng hơn 1 tiếng. Tớ ra nghỉ giải lao 1 lúc thì tự dưng nhớ tới cái Private Relay của Apple =.= Không hiểu có ảnh hưởng gì tới việc MovieGEEKs website không vào được trên ý không @@. https://support.apple.com/en-us/HT212614 https://developer.apple.com/support/prepare-your-network-for-icloud-private-relay Lại mải miết đọc mải miết đọc thấy có 1 cái là lạ là Lại mải miết đọc tiếp @@ https://www.cloudflare.com/en-gb/learning/performance/what-is-http3/ https://blog.cloudflare.com/http3-the-past-present-and-future/ Nói chung cũng khá là hay. HTTP/3 kết hợp với QUIC làm cho vào web an toàn hơn @@. HTTP/2 thì làm cho vào web nhanh hơn nhờ tạo ra nhiều thread để GET data @@. Về hiển thị Home page của MovieGEEKs web appHix đọc linh tinh 1 hồi tớ quay về chủ đề chính. Làm sao để hiển thị oldest movie như gợi ý tác giả trong Chương 5 @@.
Đoạn code ví dụ tác giả đưa ra tớ chưa hề biết ở đâu luôn. https://github.com/9health/moviegeek/blob/master/templates/moviegeek/index.html Đầu tiên tớ đọc code front-end như thế nào cơ mà cũng rối =.= 10-15 phút không ra gì Đúng là mình không có gen front-end. Quay ra tiếp vào lại trang MovieGEEKs home page, bặt Firefox Web Developer Tools lên, vào tab Network xem liệu có gì khả quan để mò ra được cái đống movies ở giữa hiển thị ra thế nào không. http://ninehealth.westus.cloudapp.azure.com:8080 Cũng không khả quan lắm =.= Chỉ thấy gọi 1 đống thông tin từ TMDB thôi... Thôi mò tiếp vào phần folder
Search thử https://github.com/9health/moviegeek/blob/master/moviegeeks/models.py
Xem phần models của database như thế nào :-? Xem tiếp phần API hay URL thế nào nữa https://github.com/9health/moviegeek/blob/master/moviegeeks/urls.py
Xem đăng ký ở project Django thế nào https://github.com/9health/moviegeek/blob/master/prs_project/urls.py
Chà đoạn bắt pattern Hay ho đây :-? Kiểm tra 1 chút phần database
Kiểm tra tra tiếp bảng tham chiếu Genre và Movie
Kiểm tra xem table
Ở Kiểm tra xem hiển thị trên Home page có giống như trong database không @@
Đây là lệnh bên Python Django https://github.com/9health/moviegeek/blob/master/moviegeeks/views.py
Kiểm tra ở page 1 vài item có vẻ giống giống nhưng page 2 thì khác hẳn =.= Lệnh SQL của tớ có vấn đề rồi, cần sort theo Đây là API gọi thông tin phim ở trang 1
Có thấy phim Jungle Cruise ở trang 1.
Cơ mà phim Tom & Jerry (2021) thì không thấy =.= Chắc TMDB có vấn đề =.= Phim này cũng thấy
Phim này cũng thấy
Đến đây cũng hết thời gian 2 tiếng rồi. Vậy là giờ tớ đã hiểu Home page được render như thế nào rùi!!! https://github.com/9health/moviegeek/blob/master/moviegeeks/views.py#L36 Chính là ở đây @@. moviegeeks app sẽ đọc file Để thay đổi cách movie hiển thị ra ở trang Home page có thể sửa ở file trên!!! Về next tasksCó lẽ tớ sẽ thử xem như thế nào @@. Cơ mà tìm hiểu thế này cũng thấy vui hơn rồi vì đúng hướng và hiểu MovieGEEKs web app hơn. Hi vọng là mai mọi thứ lại đi đúng đường. Còn về Chương 5 tớ vẫn chưa đọc thêm gì cả =.= Sáng nay 8h mẹ tớ đi họp chi bộ rồi tham gia CLB hát. Chắc 11h30 sẽ về =.= Tớ thì mẹ đi là lau nhà, là lau phòng tắm, phòng vệ sinh @@, rửa nồi cơm @@. Nay tớ thấy trời nắng đẹp @@. Quang cho tớ sang xin bữa cơm nhé!!! Tớ tới chỗ EcoHome Phúc Lợi đây @@. Cảm ơn Quang nhiều!!! Nhiều vấn đề phát sinh quá ở Chương 5 cơ mà hi vọng mọi thứ sẽ okay!!! |
Output
Chapter 9 EVALUATING AND TESTING YOUR RECOMMENDER
, section9.5.1 Verify the algorithm
and section9.5.2 Regression Testing
.Reason
History
The text was updated successfully, but these errors were encountered: