Tag: Data Science

  • Neighborhood-Based Collaborative Filtering – Recommendation Systems – Phần 2

    Neighborhood-Based Collaborative Filtering – Recommendation Systems – Phần 2

    Xin chào mọi người, ở bài viết trước thì mình đã giới thiệu qua về Hệ thống gợi ý ( Recommendation Systems ) và trong bài biết lần này mình sẽ trình bày với các bạn 1 phương pháp của Lọc cộng tác ( Collaborative Filtering ) có tên là Neighborhood-based Collaborative Filtering (NBCF)

    Nội dung trong phần này

    Giới thiệu

    Trong Content-based Recommendation Systems, chúng ta đã biết đặc điểm của Content-based Recommendation Systems là việc xây dựng mô hình cho mỗi user không phụ thuộc vào các users khác mà phụ thuộc vào profile của mỗi items. Việc làm này có lợi thế là tiết kiệm bộ nhớ và thời gian tính toán. Đồng thời, hệ thống có khả năng tận dụng các thông tin đặc trưng của mỗi item như được mô tả trong bản mô tả (description) của mỗi item. Bản mô tả này có thể được xây dựng bởi nhà cung cấp hoặc được thu thập bằng cách yêu cầu users gắn tags cho items. Việc xây dựng feature vector cho mỗi item thường bao gồm các kỹ thuật Xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP).

    Cách làm trên có hai nhược điểm cơ bản. Thứ nhất, khi xây dựng mô hình cho một user, các hệ thống Content-based không tận dụng được thông tin từ các users khác. Những thông tin này thường rất hữu ích vì hành vi mua hàng của các users thường được nhóm thành một vài nhóm đơn giản; nếu biết hành vi mua hàng của một vài users trong nhóm, hệ thống nên suy luận ra hành vi của những users còn lại. Thứ hai, không phải lúc nào chúng ta cũng có bản mô tả cho mỗi item. Việc yêu cầu users gắn tags còn khó khăn hơn vì không phải ai cũng sẵn sàng làm việc đó; hoặc có làm nhưng sẽ mang xu hướng cá nhân. Các thuật toán NLP cũng phức tạp hơn ở việc phải xử lý các từ gần nghĩa, viết tắt, sai chính tả, hoặc được viết ở các ngôn ngữ khác nhau.

    Những nhược điểm phía trên có thể được giải quyết bằng Collaborative Filtering (CF). Trong bài viết này, tôi sẽ trình bày tới các bạn một phương pháp CF có tên là Neighborhood-based Collaborative Filtering (NBCF). Bài tiếp theo sẽ trình bày về một phương pháp CF khác có tên Matrix Factorization Collaborative Filtering. Khi chỉ nói Collaborative Filtering, chúng ta sẽ ngầm hiểu rằng phương pháp được sử dụng là Neighborhood-based.

    Ý tưởng cơ bản của NBCF là xác định mức độ quan tâm của một user tới một item dựa trên các users khác gần giống với user này. Việc gần giống nhau giữa các users có thể được xác định thông qua mức độ quan tâm của các users này tới các items khác mà hệ thống đã biết. Ví dụ, A, B đều thích phim Cảnh sát hình sự, tức đều rate bộ phim này 5 sao. Ta đã biết A cũng thích Người phán xử, vậy nhiều khả năng B cũng thích bộ phim này.

    Các bạn có thể đã hình dung ra, hai câu hỏi quan trọng nhất trong một hệ thống Neighborhood-based Collaborative Filtering là:

    • Làm thế nào xác định được sự giống nhau giữa hai users?
    • Khi đã xác định được các users gần giống nhau (similar users) rồi, làm thế nào dự đoán được mức độ quan tâm của một user lên một item?

    Việc xác định mức độ quan tâm của mỗi user tới một item dựa trên mức độ quan tâm của similar users tới item đó còn được gọi là User-user collaborative filtering. Có một hướng tiếp cận khác được cho là làm việc hiệu quả hơn là Item-item collaborative filtering. Trong hướng tiếp cận này, thay vì xác định user similarities, hệ thống sẽ xác định item similarities. Từ đó, hệ thống gợi ý những items gần giống với những items mà user có mức độ quan tâm cao.

    Phương pháp này được chia thành 2 hướng nhỏ, là User-User Collaborative Filtering (uuCF) và Item-Item Collaborative Filtering (iiCF).

    uuCF : Về cơ bản,anh em có thể hiểu là tìm ra những nhóm User tương tự nhau từ đó sẽ đưa ra dự đoán mực độ quan tâm của User trên các User khác cũng nhóm . Về chi tiết mình sẽ nói ỏ phần 2

    iiCF : Tương tự như User-User, phương pháp này sẽ tìm ra những nhóm item tương tự nhau. Sau đó, dự đoán mức độ yêu thích của user với item dựa trên độ yêu thích của user đó với các item khác cùng loại. Về chi tiết mình sẽ nói ở phần 3

    User-user Collaborative Filtering

    Đầu vào của bài toán là Utility matrix và công việc quan trọng nhất trong uuCF là phải xác định được sự giống nhau giữa hai User và cách xác định sự giống nhau này dựa trên độ quan tâm với các item giữa các User. Ví dụ nhé:

    Hình trên là 1 ví dụ về đầu vào là utility matrix dựa trên số sao rating của các user với item. Nhìn phát thấy luôn là User 1 và 0 cho rating về các item khá giống nhau ít ra còn giống hơn mấy các User còn lại vậy nên ta có thể đoàn rằng user 0 cũng quan tâm tới item 2 như user 1

    Vậy để thuận tiện tính toán similarity giữa các User ta phải điền giá trị vào các ô ‘?’. Vậy mỗi ô ‘?’ cần được điền giá trị như thế nào để thích hợp, có thể nhiều người sẽ nghĩ đến là 0 nhưng điều này mình đánh giá sẽ ảnh hưởng khá lớn trong việc đưa ra gợi ý vì mức 0 có nghĩa đây là 1 mức khá tiêu cực đối với item. Một giá trị mình thấy rất khả quan hơn trong trường hợp này chính là giá trị trung bình cộng của các ratings mà User đã đánh giá cho các item còn lại. Ví dụ như ở user đầu ta có thể tính được giá trị trung bình này là 3.25 được tính từ trung bình cộng của 5-3-2-2. Ta sẽ tính được utility matrix

    Tiếp theo chúng ta sẽ xây dựng normalized utility matrix bằng cách trừ mỗi rating đi với giá trị trung bình. Vậy tại sao lại cần bước chuẩn hóa này lại cần thiết và quan trọng như vâỵ thì rất dễ hiểu thôi:

    • Việc trừ đi trung bình cộng của mỗi cột khiến trong trong mỗi cột có những giá trị dương và âm và 0 ( là giá trị chưa xác định ) . Những giá trị âm và dương này đại diện cho sự quan tâm của User đến Item là thích hoặc không thích còn 0 là đại diện cho những User không có chứng kiến =)) hiểu nôm na là chưa xác định được có thích hay không.
    • Về mặt kỹ thuật, số chiều của utility matrix là rất lớn với hàng triệu users và items, nếu lưu toàn bộ các giá trị này trong một ma trận thì khả năng cao là sẽ không đủ bộ nhớ. Quan sát thấy rằng vì số lượng ratings biết trước thường là một số rất nhỏ so với kích thước của utility matrix, sẽ tốt hơn nếu chúng ta lưu ma trận này dưới dạng sparse matrix, tức chỉ lưu các giá trị khác không và vị trí của chúng. Vì vậy, tốt hơn hết, các dấu ‘?’ nên được thay bằng giá trị ‘0’, tức chưa xác định liệu user có thích item hay không. Việc này không những tối ưu bộ nhớ mà việc tính toán similarity matrix sau này cũng hiệu quả hơn.

    Ma trận sau khi được chuẩn hóa còn được gọi là normalized utility matrix như hình dưới:

    Tính toán Similarity

    vậy sau khi xây dựng xong normalized utility matrix , bước quan trọng tiếp theo chúng cần cần làm là tính toán độ tương đồng giữa các User.

    Ta gọi mực độ tương đồng của 2 User là Sim(Ui,Uj). Để xây dựng 1 hàm Similarity thì chúng ta cần đảm bảo yếu tố sau :

    Ở đây mình sẽ đề cập đến 2 similarity function đó là

    • Cosine Similarity : Đây là hàm được sử dụng nhiều nhất, và cũng quen thuộc với các bạn nhất. Nếu các bạn không nhớ công thức tính cos của góc giữa hai vector u1 , u2 trong chương trình phổ thông, thì dưới đây là công thức:

    Trong bài này mình sẽ sử dụng công thức này nhé.

    • Pearson Corelation : Mình thường k hay sử dụng công thức này , anh em có thể tham khảo thêm ở đây

    Sau khi sử dụng Cosine Similarity thì chúng ta sẽ thu được ma trận Similarity như sau:

    Rating Prediction

    Sau khi xây dựng được ma trận Similarity thì chúng ta phải đưa ra dự đoán đúng không nào? Ở đây chúng ta sẽ dự đoán theo K- User gần nhất . K càng nhiều thì dự đoán sẽ càng chính xác nghe khá giống với K-NN nhỉ.

    Công thức được đưa ra ở đây là:

    Để mình lấy ví dụ minh họa dự đoán user 5 rating cho item 3 với K = 3 luôn cho anh em dễ hiểu nhé:

    • Xác định các User đã rated cho item 3 là User 0,1,2,3,4,6
    • Xác định similarities của User 5 với các User còn lại lần lượt là : 0.2 , -0.23 , 0.47 , -0.29 , 0 , 0.56 với K = 3 thì ta chọn 0,2,6
    • Xác định Normalized ratings của User 0,2,6 lần lượt là -1.25 , 0.5 , 0.67
    • Đưa ra dự đoán theo công thức :

    Thực hiện tương tự là ta có thể hoàn thiện normalized ratings matrix :

    Đến bước này là gần như đã xong việc cuối cùng của ae là cộng lại với gái trị trung bình ban đầu tính được là ta có thể đưa ra dự đoán của 1 User với 1 Item rồi

    Item-item Collaborative Filtering

    Một số hạn chês của User-user CF:

    • Trên thực tế, số lượng users luôn lớn hơn số lượng items rất nhiều. Kéo theo đó là Similarity matrix là rất lớn với số phần tử phải lưu giữ là hơn 1 nửa của bình phương số lượng users (chú ý rằng ma trận này là đối xứng). Việc này, như đã đề cập ở trên, khiến cho việc lưu trữ ma trận này trong nhiều trường hợp là không khả thi.
    • Ma trận Utility Y thường là rất sparse. Với số lượng users rất lớn so với số lượng items, rất nhiều cột của ma trận này sẽ rất sparse, tức chỉ có một vài phần tử khác 0. Lý do là users thường lười rating. Cũng chính vì việc này, một khi user đó thay đổi rating hoặc rate thêm items, trung bình cộng các ratings cũng như vector chuẩn hoá tương ứng với user này thay đổi nhiều. Kéo theo đó, việc tính toán ma trận Similarity, vốn tốn nhiều bộ nhớ và thời gian, cũng cần được thực hiện lại.

    Ngược lại, nếu chúng ta tính toán similarity giữa các items rồi recommend những items gần giống với item yêu thích của một user thì sẽ có những lợi ích sau:

    • Vì số lượng items thường nhỏ hơn số lượng users, Similarity matrix trong trường hợp này cũng nhỏ hơn nhiều, thuận lợi cho việc lưu trữ và tính toán ở các bước sau.
    • Vì số lượng phần tử đã biết trong Utility matrix là như nhau nhưng số hàng (items) ít hơn số cột (users), nên trung bình, mỗi hàng của ma trận này sẽ có nhiều phần tử đã biết hơn số phần tử đã biết trong mỗi cột. Việc này cũng dễ hiểu vì mỗi item có thể được rated bởi nhiều users. Kéo theo đó, giá trị trung bình của mỗi hàng ít bị thay đổi hơn khi có thêm một vài ratings. Như vậy, việc cập nhật ma trận Similarity Matrix có thể được thực hiện ít thường xuyên hơn.

    Cách tiếp cận thứ hai này được gọi là Item-item Collaborative Filtering. Mình thấy hướng tiếp cận này được sử dụng nhiều trong thực tế hơn.

    Quy trình dự đoán missing ratings cũng tương tự như trong User-user CF

    Đầu tiên tính giá trị trung bình của rating theo item:

    Xây dựng normalized utility matrix :

    Xây dựng Item similarity matrix :

    Đưa ra dự đoán còn thiếu:

    Trên đây là lý thuyết về NBCF. Mình xin kết thúc bài viết này ở đây , ở phần sau mình sẽ đi vào code Python và kiểm thử dữ liệu cho anh em nhé . Hẹn ae ở bài viết tới

    Tài liệu mình hay tham khảo

    1. Khá hay và nhiều kiến thức của các pháp sư US-UK AWS Machine Learning Blog

    2. Kho Dataset cho anh em GroupLens

    3. Mình cũng hay tham khảo ở đây TensorFlowBlog

  • Tổng quan về Recommendation Systems – Phần 1

    Tổng quan về Recommendation Systems – Phần 1

    Tổng quan về Recommendation Systems – Phần 1

    Recommendation Systems

    Xin chào mọi người, đây là bài đầu tiên của mình về chủ đề Machine Learning và cũng là bài đầu tiên về Series Recommendation Systems này, mặc dù chủ đề này không có liên quan đến công việc của mình nhưng do sở thích hay đi đọc block dạo và cũng muốn thử học hỏi thêm tý kiến thức khác nên mình quyết định viết lên series này vì vậy sẽ có nhiều thiếu sót nên mong các anh em có thể góp ý cho mình , gạch đá như nào mình gom hết về xây nhà, nhà em cũng đang thiếu ít gạch

    Nội dung trong phần này

    Trong phần này mình sẽ giới thiệu chung về hệ thống Recommendation và hai nhóm chính của RS, ở bài viết sau mình sẽ đi chi tiết và những nhóm chính để mọi người có thể có cái nhìn chi tiết nhất, bài đầu này như kiểu món tráng miệng cho anh em thôi.

    Giới thiệu về hệ thống

    Mình tin chắc rằng những anh(chị) em ở đây đã gặp phải 1 trong những trường hợp này thường xuyên trong cuộc sống:

    • Khi xem hết 1 video trên youtube hoặc sắp hết sẽ có 1 loạt các gợi ý các video tiếp theo cho bạn xem kể bạn có là chiếu mới khi xem youtube thì họ vẫn có thể đưa cho bạn 1 list video và tất nhiên sẽ có cái mà bạn thích
    • Đắng lòng hơn là khi bạn lỡ nói hoặc tìm kiếm cái gì đó trên google thì khi bạn sử dụng dịch vụ của Google hay lướt news trên Facebook thì sẽ có hàng loạt các gợi ý về sản phẩm tương tự cho bạn , hoặc lỡ bạn có like 1 vài item nào đó trên nên tảng của họ thì bạn cũng sẽ nhận được 1 rổ gợi ý về các loại item đấy cho bạn
    • Trên các sàn thương mại điện tử thì càng ác liệt hơn khi đây chính là cách mà họ moi tiền trong thẻ tín dụng của bạn, nhất là các ông lớn như Amazon , Shopee , Lazada. Mỗi khi bạn mua 1 sản phẩm nào đó thì họ sẽ yêu cầu bạn đánh giá sản phẩm ý để lấy rating ( cái để phục vụ cho họ để đưa ra gợi ý chính xác nhất ) nếu bạn không Rating thì họ sẽ gửi mail , bật thông báo để đòi bạn bao giờ rating mới thôi thế nên mình toàn rating cho có .

    Còn rất nhiều các ví dụ khác mà hệ thống có khả năng tự gợi ý cho người dùng những sản phẩm họ có thể thích đây chính là lý do vì sao mà anh em ta đi mua đồ trên các trang web hay thương mại điện tử thường vượt quá budget. Bằng cách quảng cáo đúng tim đen của người dùng thì doanh thu cũng tăng lên và những thuật toán đằng sau những ứng dụng này là những thuật toán Machine Learning có cách gọi chung là Recommendation Systems – Hệ thống gợi ý

    Recommemdation Systems là 1 trong những mảng tương đối lớn của Machine Learning và có tuổi đời đã khá lớn khi lần đầu tiên được đề cập trong 1 báo cáo kĩ thuật năm 1990 bởi Jussi Karlgren tại Đại Học Columbia và được triển khai quy mô lớn từ năm 1994 trở đi bởi Jussi Karlgren . RS là 1 giải pháp thay thế cho các thuật toán tìm kiếm ví chúng giúp người dùng có thế thấy được các item mà họ có thể thích kể cả họ có tìm tiếm hay không.

    Các thực thể chính trong hệ thống

    Như anh em đã biết thì để làm việc hay xây dựng lên 1 hệ thống thì điều đầu tiên chúng ta cần xác minh là cần những thành phần nào để tạo ra hệ thống. Nói đến hệ thống gợi ý thì chúng ta cần phải có tối thiểu 2 yếu tố sau:

    • User : Rõ ràng luôn, không có người dùng thì gợi ý cho vong ỏ? các đặc điểm của User thường được sử dụng trong gợi ý kết bạn điển hình là Facebook.
    • Item : Nó lại là 1 điều hiển nhiên luôn vì có người dùng mà k có sản phẩm thì gợi ý cho nhau à? Đúng , nếu không có 1 item cụ thể nào đó mà chỉ có người dùng thì chỉ có thể gợi ý người dùng khác cho nhau và các anh em biết cái ứng dụng nào đang sử dụng rồi đó , chính là Tinder nhưng trong trường hợp này User lại tính là 1 item trong bài toán gợi ý kết bạn hay kết nối với nhau.
    • Rating : Thực ra đây là 1 yếu tố mình nghĩ trong 1 vài hệ thống gợi ý sẽ không cần đến nhưng đa số thì đây là 1 yếu tố rất quan trọng để đưa ra gợi ý chính xác nhất cho người dùng. Vì rating hay feedback rất quan trọng , nó mô tả sự quan tâm của 1 người dùng nào đó đến với 1 item nó đó qua đó có thể đưa ra những gợi ý chính xác nhất cho khách hàng.

    Và sau đây mình sẽ đề cập đến 2 nhóm chính trong RS, tất nhiên trong Recommendation Systems có rất nhiều nhóm khác nữa nhưng những nhóm ý chúng ta sẽ đi ở các bài viết khác nhé vì chúng khác là trừu tượng và dài.

    Hai nhóm chính của Recommendation Systems

    Các hệ thống gợi ý (RS) thường được chia làm 2 nhóm chính lớn:

    • Content-based systems: Hệ thống sẽ quan tâm đến đặc điểm của mục tiêu ví dụ như khi bạn nghe Lạc Trôi , Em của ngày hôm qua , Nắng ấm xa dần thì hệ thống sẽ phân tích ra các bài hát bạn vừa nghe là của Sơn Tùng thì hệ thống sẽ chuẩn đoán bạn đích thực là 1 SKY rồi thế là nhồi cho bạn 1 list nhạc của MTP luôn , User cũng tương tự trong bài toán gợi ý kết bạn hay lướt tinder ví dụ bạn hay thả tym cho các cô gái 1m5-1m6 tuổi 18-20 , nhà Tây Hồ đi Mer thì Hệ thống sẽ đề xuất cho bạn làm trạn vương
    • Collaborative filtering: Nhóm này thì đẳng cấp hơn khi gợi ý các item dựa trên sự tương quan (similarity) giữa các User và(hoặc) Item, hơi khó hiểu nhỉ để dễ hình dùng hơn là nhóm này gợi ý dựa trên rating của User với Item hay được recommended tới User dự trên những User có hành vi tương tự. Ví dụ: Có 4 cô A,B,C,D đều thích nhạc của Sơn Tùng và là SKY chân chính luôn. Ngoài ra hệ thống còn có thông tin 2 cô A,B đều ghét nhạc của JACK mà k biết 2 cô kia thế nào? Dựa trên phán đoán của hệ thống có thể đề xuất cả 2 cô còn lại đều ghét nhạc của JACK bằng cách rating 1 sao hoặc dislike nhạc và không bao giờ gợi ý nhạc JACK cho 2 cô còn lại . Trong CF này còn được chia ra làm 3 cách khách nhau như NCF (Neural Collaborative Filtering) , NBCF (Neighborhood-Based Collaborative Filtering) , MF(Matrix Factorization Collaborative Filtering) về chi tiết 3 cách này mình sẽ đi vào chi tiết ở các bài viết tới.

    Vậy chúng ta nên sử dụng phương pháp nào cho ứng dụng của mình?

    Có một điều dễ nhận thấy là nếu chúng ta sử dụng Collaborative filtering thì rõ ràng là chúng ta đã có 1 lượng data khá ổn định về rating , feedback của khách hàng để đưa ra đề xuất hợp lí và chính xác nhất chính vì vậy cách này được sử dụng khi bạn đã có 1 lượng thông tin đủ dày rồi nhưng cách này lại đưa ra đề xuất 1 cách chính xác hơn nhưng nếu bạn chưa có đủ lượng data cần thiết thì cách Content-based lại khá hữu ích khi bạn chưa có được lượng data về rating hay feedback mà chỉ có thông tin item mà User quan tâm. Chính vì vậy tùy vào tình huống , trường hợp của mỗi ứng dụng mà chúng ta sẽ sử dụng cách nào.

    Utility matrix

    Như đã đề cập, có hai thực thể chính trong các Recommendation Systems là users và items. Mỗi user sẽ có mức độ quan tâm (degree of preference) tới từng item khác nhau. Mức độ quan tâm này, nếu đã biết trước, được gán cho một giá trị ứng với mỗi cặp user-item. Giả sử rằng mức độ quan tâm được đo bằng giá trị user rate cho item, ta tạm gọi giá trị này là rating. Tập hợp tất cả các ratings, bao gồm cả những giá trị chưa biết cần được dự đoán, tạo nên một ma trận gọi là utility matrix. Xét vị dụ:

    Ví dụ về utility matrix

    Hình 1: Ví dụ về utility matrix với hệ thống Gợi ý.

    Các item được người dùng đánh giá từ 1 đến 5. Các dấu ‘?’ ứng với việc dữ liệu chưa tồn tại trong cơ sở dữ liệu. Nhiệm vụ của RS là phải tự điền các giá trị và các ô còn thiếu này và từ đó đưa ra gợi ý cho người dùng.

    Thông thường, có rất nhiều users và items trong hệ thống, và mỗi user thường chỉ rate một số lượng rất nhỏ các item, thậm chí có những user không rate item nào (với những users này thì cách tốt nhất là gợi ý các items phổ biến nhất). Vì vậy, lượng ô ‘?’ của utility matrix trong các bài toán đó thường là rất lớn, và lượng các ô đã được điền là một số rất nhỏ.

    Rõ ràng rằng càng nhiều ô được điền thì độ chính xác của hệ thống sẽ càng được cải thiện. Vì vậy, các hệ thống luôn luôn hỏi người dùng về sự quan tâm của họ tới sản phẩm, và muốn người dùng đánh giá càng nhiều sản phẩm càng tốt. Việc đánh giá các sản phẩm, vì thế, không những giúp các người dùng khác biết được chất lượng sản phẩm mà còn giúp hệ thống biết được sở thích của người dùng, qua đó có chính sách quảng cáo hợp lý.

    Không có utility matrix gần như là không thể đưa ra gợi ý chính xác tới người dùng cũng có thể đưa ra các sản phẩm phổ biến nhất. Vì vậy trong các Recommendation Systems, việc hoàn thiện hay xây dựng utility matrix là điều rất cần thiết nhưng việc xây dựng nó lại rất khó khăn vì khách hàng thường mua hàng xong là mất hút luôn mà k để lại bất kì dạng feedback gì cả chính vì vậy mà các ông lớn đã tìm ra rất nhiều cách để lấy cái feedback này của khách hàng và mình đúc kết lại có 3 cách chính sau để lấy rating của khách hàng:

    • Yêu cầu người dùng Rating sản phẩm, các ông lớn như Amazon, Alibaba , Shopee thường sẽ gửi mail liên tục nếu bạn không rating sẩn phẩm của họ hoặc thông báo đến bạn và rất nhiều trang thương mại điện tử cũng làm theo các cách này để lấy được rating của khách hàng nhưng nó lại khá là gây ức chế cho người dùng và dễ gây ra rating chống đối, không đúng mong muốn
    • Cách thứ hai đó là dựa theo hành vi người dùng , cách này khá là có triển vọng vì dựa vào hành vì chúng ta có thể kết luận được mức độ quan tâm của 1 user đến 1 item nào đó. Ví dụ bạn xem 1 video trên youtube rất nhiều lần thì có thể kết luận rằng bạn thích xem video đó hay là dựa vào các hành vi khách như Like , thả Tym trên facebook , mua 1 món đồ nào đó nhiều lần … Tất cả các hành vi của bạn đều phản ánh sự quan tâm của bạn đến 1 item nào đó vì trả ai ngáo đến nỗi xem đi xem lại 1 thứ nhiều lần trong khi rất ghét nó
    • Lấy rating từ 1 nguồn khác , điển hình là Facebook và Google , chắc chắn bạn đã thấy khi search google 1 cái gì đó hoặc tìm mua 1 món đồ nào đó trên các trang thương mại điện tử khác thì chỉ 1 lúc sau trên facebook bạn sẽ tràn ngập quảng cáo món đồ đó vì Facebook họ dùng 1 cái là Pixel. Anh em có thể hiểu nôm na là 1 đoạn mã nhỏ gắn vào cách website. Đoạn mã này hiểu nôm na nó cho Facebook biết ai là người đang sử dụng ứng dụng nào và cho Facebook biết các trạng thái của bạn như xem , tìm kiếm , thêm vào giỏ hàng , thanh toán … để đưa ra chính sách quảng cáo phù hợp . Kĩ thuật này còn gọi là Retargeting

    Có nhiều người thường cho rằng mấy ông lớn đang nghe lén bạn, nếu có thế thật thì chắc mấy ông lớn phải tìm hành tinh khác để lưu trữ dữ liệu và 1 thuật toán thần thánh nào đó để phân tích đống dữ liệu kia đủ nhanh

    Tản mạn đến đây thôi, ở bài viết sau mình sẽ đề cập chi tiết đến CBF, 1 trong cách nhánh chính của RS.Tấm chiếu mới trong viết bài về công nghệ như mình sẽ không tránh khỏi sai sót trong kiến thức, mong các huynh đệ có thể góp ý để có gạch xây nhà

    Tài liệu mình hay tham khảo

    1. Khá hay và nhiều kiến thức của các pháp sư US-UK AWS Machine Learning Blog

    2. Kho Dataset cho anh em GroupLens

    3. Mình cũng hay tham khảo ở đây TensorFlowBlog

    Còn rất nhiều Blog hay về AI , Machine Learning , Data Science nhưng khi nói về phần nào mình sẽ share về phần ý cho anh đỡ phân tâm nhé. Hẹn anh em ở bài viết lần sau nhé , mọi người có thể gọi mình là Yonko