Chào số đông người, lúc này mình sẽ chia sẻ cho mọi người về một câu hỏi mà bản thân nghĩ đa số các doanh nghiệp phần đa quan tâm: khối hệ thống gợi ý. Ở nội dung bài viết này mình share về các áp dụng graph-based vào khối hệ thống gợi ý. Các công ty như amazon tốt google, ... Gần như đã với đang áp dụng graph-based vào hệ thống gợi ý của khách hàng họ và mọi người cũng biết rồi đấy hệ thống gợi ý của những doanh nghiệp này cực kì đỉnh luôn luôn

*
Hình: lấy ví dụ như về graph quan hệ tình dục giữa user cùng movie của tập dữ liệu 20M

movies data

Dữ liệu movies tất cả chứa tin tức của từng cỗ phim: tên bộ phim truyện và thể loại.

Bạn đang xem: Phân tích dữ liệu dựa trên đồ thị (Graph-based Data Analytics)

movies_data = pd.read_csv("data/movies.csv")movies_data.head()

*
Hình: thông tin của movies data

ratings data

Dữ liệu rating là từng user vẫn rated cho các tập phim có thang rating từ một -> 5.

ratings_data = pd.read_csv("data/ratings.csv")ratings_data.head()

*
Hình: tin tức ratings data

Create graph cho tài liệu movielens 20M

Ở đây mình áp dụng neo4j để sinh sản graph database.

install neo4j

Mọi tín đồ install neo4j theo link này .Đầu tiên đề xuất install java trước

sudo apt install default-jre default-jre-headlesssudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/bin/javasudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
Sau đó sẽ install neo4j

wget --no-check-certificate -O - https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key địa chỉ cửa hàng -echo "deb http://debian.neo4j.org/repo stable/" | sudo tee /etc/apt/sources.list.d/neo4j.listsudo apt updatesudo apt install neo4j
Bật neo4j lên:

sudo service neo4j start
Khi không muốn dùng nữa thì stop đi:

sudo service neo4j stop
Để chế tác graph database bởi code python thì bạn cài thêm package py2neo nữa:

pip install py2neo==2020.0.0Sau lúc đã thiết đặt xong thì bọn chúng ta ban đầu code thôi nào! let"s go!

Kết nối với Neo4j

import csvfrom py2neo import Graph, Nodeimport osimport time
HOST = os.environ.get("NEO4J_HOST", "localhost")PORT = 7687USER = "neo4j"PASS = "neo4j" #defaultgraph = Graph("bolt://" + HOST + ":7687", auth=(USER, PASS))

Tạo Node Movie

Bước trước tiên để chế tạo ra graph relationship thì chúng ta phải chế tạo Node trước. Đầu tiên mình sẽ tạo nên node các movies
*
Hình: Movies Node sau khoản thời gian tạo

Tạo Node genres

def create
Genre
Nodes(): all
Genres = <"Action", "Adventure", "Animation", "Children"s", "Comedy", "Crime", "Documentary", "Drama", "Fantasy", "Film-Noir", "Horror", "Musical", "Mystery", "Romance", "Sci-Fi", "Thriller", "War", "Western"> for genre in all
Genres: ren = Node("Genre", name=genre) graph.create(gen)create
Genre
Nodes()

*
Hình: Genres Node sau khoản thời gian tạo

Tạo Genre & Movies relationships

def create
Genre
Movie
Relationships(row): movie
Id = row<0> movie
Genres = row<2>.split("|") for movie
Genre in movie
Genres: graph.run("MATCH (g:Genre name: genre), (m:Movie id: movie
Id) CREATE (g)-<:IS_GENRE_OF>->(m)", genre=movie
Genre, movie
Id=movie
Id)def parse
Row
Genre
Movie
Relationships(row): movie
Id = row<0> movie
Genres = row<2>.split("|") return (movie
Id, movie
Genres)def load
Genre
Movie
Relationships(): with open("data/movies.csv") as csvfile: read
CSV = csv.reader(csvfile, delimiter=",") next(read
CSV, None) # skip header for i, row in enumerate(read
CSV): create
Genre
Movie
Relationships(row) if i >= 1000: breakload
Genre
Movie
Relationships()Sau khi sinh sản relationships giữa movies với genres chúng ta sẽ gồm graph như hình dưới đây:

*
Hình: sản xuất relationships giữa movies và genres

Sau lúc mình thử click nhằm xem mối quan hệ giữa Comedy genre với các tập phim thì đã ra được ngoài ra dưới đây. Quan sát mà rối tung đầu =)))

*
Hình: mối quan hệ giữa Comedy genre với những bộ phim

Tạo relationship Rating

Ở đây tức là tạo graph quan hệ giữa user và movie phụ thuộc action rating của mỗi cá nhân dùng mang lại các bộ phim khác nhau. Nhờ vào đây chúng ta có thể dễ dàng gửi ra lưu ý phim mang đến từng user. Mình đang tạo luôn user node nghỉ ngơi đây luôn nhé

*
Hình: Node Users sau khi tạo

*
Hình: lấy ví dụ về một user đang rated những bộ phim

Recommendation system áp dụng graph-based

Sau lúc tạo kết thúc graph database bản thân sẽ bắt đầu với vấn đề sử dụng để làm hệ thống gợi ý. Ở phía trên mình sử dụng theo phía user-based và phương pháp tính độ tương đương giữa 2 users ( ví dụ như user A coi phim Naruto cùng onepieces User B cũng xem onepieces với 1 vài tập phim khác thì 2 users A với B gồm độ tương đồng là vì cùng xem onepieces) mình thực hiện Pearson Similarity sau đó mình sẽ sắp xếp lại theo vật dụng tự tập phim có độ tương đồng cao nhất cho đến thấp tốt nhất và mang ra từ bên trên xuống để recommended mang đến user kia .

*
Hình: user-based

Ở hình trên:Giả sửUser 1 xem các bộ phim: movie 1,movie 2 với movie 10. User 2 xem các bộ phim: movie 2, movie 5, movie 6 với movie 10. Chúng ta có thể thấy rằng cả hai User 1 cùng User 2 đều sở hữu điểm tầm thường là xem phim:movie 2 với movie 10. Do vậy họ sẽ gợi ý cho User 1 thêm 2 bộ phim movie 6 với movie 5 nhưng lại để chọn lọc gợi ý bộ phim truyện nào đẩy lên trước tiên thì chúng ta sẽ sử dụng công thức pearson nhằm tính điểm 2 movie này, tương tự như với User 2.

Câu lệnh query phần nhiều người hoàn toàn có thể tham khảo tại Build a Cypher Recommendation Engine.

rec = graph.run( # đo lường và thống kê số movie được u1 rated với tính rating vừa phải (u1_mean) "MATCH (u1:User id:userid)-->(m:Movie) " "WITH u1, avg(r.rating) AS u1_mean " # lôi ra những user có số bộ phim truyền hình đều rated giống như nhau lớn hơn 5 "MATCH (u1)-->(m:Movie) 5 " # Sau khi tìm được u2 => Tính rating vừa phải của những tập phim u2 rated "MATCH (u2)-->(m:Movie) " "WITH u1, u1_mean, u2, avg(r.rating) AS u2_mean, ratings " "UNWIND ratings AS r " # Tính dựa theo phương pháp pearson "WITH sum( (r.r1.rating-u1_mean) * (r.r2.rating-u2_mean) ) AS nom, " "sqrt( sum( (r.r1.rating - u1_mean)^2) * sum( (r.r2.rating - u2_mean) ^2)) AS denom, u1, u2 WHERE denom 0 " "WITH u1, u2, nom/denom AS pearson " "ORDER BY pearson DESC LIMIT 10 " # đem hết toàn bộ các bộ phim từ u2 nhưng u1 trước đó chưa từng rated "MATCH (u2)-->(m:Movie) WHERE NOT EXISTS( (u1)-<:RATED>->(m) ) " # Dựa với số movies bạn có nhu cầu lấy ra từng nào để recommended mang đến u1 thì bọn họ lấy bên trên xuống khi đã đo lường score "RETURN m.title AS title, SUM( pearson * r.rating) AS score " "ORDER BY score DESC LIMIT to
Int(n);", userid=userid, n=n) Tiếp theo họ thử recommended xem cụ nào nhé

userid = "User 1"n = 10Sau đấy là 10 tập phim được recommeded cho User 1:

*
Hình: !0 bộ phim truyện recommeded mang đến User 1

Kết Luận

Cảm ơn mọi bạn đã đọc bài viết của mình, mong mỏi nhận được sự góp ý của hầu như người. Bên cạnh đó nếu bài viết hữu ích thì hổ hang gì cấm đoán mình 1 Upvoted.

Reference

https://www.kernix.com/article/an-efficient-recommender-system-based-on-graph-database/

Ở những bài trước chúng ta đã tìm hiểu về tư tưởng Data Mining cũng tương tự các công cụ khai phá dữ liệu phổ cập nhất. Hôm nay, Viện chuyenbentre.edu.vn với chuyenbentre.edu.vn chuyenbentre.edu.vn sẽ tiếp tục bàn luận về chủ đề này với vận dụng của Data Mining vào các nghành nghề dịch vụ khác nhau.


*

Ứng dụng của Data Mining vào từng lĩnh vực


1. Lĩnh vực tài chính

Ứng dụng của Data Mining trong nghành này được dùng để làm tăng độ trung thành của khách hàng hàng bằng phương pháp thu thập và phân tích dữ liệu hành vi của khách hàng hàng. Thoạt nghe vẫn thấy khá vô lý vì tài liệu hành vi người dùng thường sẽ tương quan đến lĩnh vực Marketing.

Tuy nhiên, nghành nghề dịch vụ tài chính ở đây là các ngân hàng, họ sử dụng nó để dự đoán hành vi của người sử dụng để tung ra những dịch vụ và thành phầm thích hợp.

Ngoài ra, áp dụng của Data Mining trong nghành nghề dịch vụ tài chính còn làm khám phá mối tương quan ẩn giữa các chỉ số tài chính khác nhau để phát hiện ra các vận động đáng ngờ có rủi ro tiềm ẩn cao.

Nó còn giúp hỗ trợ xác minh các hành vi gian lận hoặc không gian lận bằng cách thu thập dữ liệu lịch sử dân tộc và sau đó thay đổi nó thành thông tin hợp lệ cùng hữu ích.

2. Lĩnh vực quan tâm sức khỏe 

Data Mining giúp những doanh nghiệp tăng thêm lợi thế tuyên chiến đối đầu bằng việc cung ứng các thông tin về chủ yếu phủ, phương pháp và địch thủ cạnh tranh. Nó cung ứng quá trình R&D và tiếp đến là chiến lược tiếp cận thị trường với kỹ năng tiếp cận thông tin gấp rút ở đều giai đoạn.

Thêm vào đó, việc đào bới tìm kiếm ra quan hệ giữa những loại bệnh và kết quả của phương pháp điều trị sẽ giúp biến hóa các bài thuốc mới hoặc đảm bảo rằng bệnh nhân được chăm lo phù hợp, kịp thời.

Ngoài ra, áp dụng của Data Mining vào lĩnh vực âu yếm sức khỏe mạnh còn hỗ trợ các công ty cung ứng dịch vụ bảo hiểm sức mạnh phát hiện gian lận hay lạm dụng.

3. Nghành nghề viễn thông

Trong nghành nghề dịch vụ này, ứng dụng của data mining góp ngành viễn thông giành được lợi thế cạnh tranh và giảm chi tiêu khách hàng bằng phương pháp hiểu các điểm lưu ý nhân khẩu học tập và dự kiến hành vi của khách hàng hàng.

Ngoài ra, nó không hầu như giúp tăng lòng trung thành của công ty và nâng cấp lợi nhuận bằng phương pháp cung cấp những dịch vụ tùy chỉnh, mà lại còn hỗ trợ các chiến lược tiếp cận khách hàng hàng bằng phương pháp phát triển những chiến dịch marketing và định giá phù hợp.

4. Lĩnh vực sale và Sales

Về cơ bản, khai phá dữ liệu chất nhận được các công ty hiểu các điều ẩn ẩn dưới dữ liệu thanh toán mua buôn bán của khách hàng hàng. Từ bỏ đó, doanh nghiệp rất có thể lên kế hoạch và khởi động những chiến dịch marketing mới.

Ứng dụng của Data Mining giúp doanh nghiệp phân tích nhu cầu thị trường để hiểu về thành phầm thường được thiết lập cùng nhau. Thông tin này giúp doanh nghiệp quảng bá sản phẩm có lợi nhuận tối đa và tối đa hóa lợi nhuận. Ngoài ra, nó còn khuyến khích người sử dụng mua các thành phầm liên quan.

5. Lĩnh vực thương mại năng lượng điện tử

Nhiều công ty dịch vụ thương mại điện tử đang áp dụng ứng dụng của Data Mining để bán hàng qua các nước thông qua các website của họ. Trong những công ty lừng danh nhất ứng dụng điều này là Amazon. Bọn họ sử dụng các kỹ thuật khai phá dữ liệu nhằm lái “những bạn đã xem sản phẩm đó cũng thích sản phẩm được giới thiệu này”.

6. Lĩnh vực giáo dục

Gần đây có một nghành mới nổi, nó được gọi là khai thác dữ liệu giáo dục (EDM). Nó mày mò kiến ​​thức từ dữ liệu bắt mối cung cấp từ môi trường giáo dục. Phương châm của EDM được khẳng định là dự kiến hành vi tiếp thu kiến thức của học sinh trong tương lai. 

Chúng tôi sử dụng khai thác dữ liệu để lấy ra quyết định đúng đắn và tương tự như để dự đoán công dụng của học tập sinh. Với tác dụng đó, đơn vị trường rất có thể tập trung vào hầu như gì đề nghị dạy và giải pháp dạy tự đó đổi mới các phương thức dạy học công dụng hơn.

Tuy nhiên, áp dụng của Data Mining trong nghành nghề dịch vụ giáo dục vẫn chưa thực sự được phát huy khỏe mạnh trong thời điểm hiện tại. Cõ lẽ chính vì sự mới lạ của Data Mining nghỉ ngơi Việt Nam, tương tự như những túi tiền nhất định mang lại việc vận dụng kỹ thuật này vào khối hệ thống giáo dục.

7. Nghành kỹ thuật sản xuất

Chúng ta thường xuyên sử dụng các công rứa Data Mining để tò mò các mẫu mã (patterns) trong tiến trình sản xuất phức tạp. Quanh đó ra, nó còn được dùng để tham dự đoán thời gian cải cách và phát triển sản phẩm, chi phí.


*

Data Mining được ứng dụng mạnh mẽ trong rất nhiều lĩnh vực


8. Những ứng dụng khoa học khác

Các vận dụng của Data Mining được đàm đạo ở bên trên có xu hướng xử lý các tập dữ liệu bé dại và đồng nhất. Đối với những ứng dụng này thường xuyên yêu cầu hầu hết kỹ thuật thống kê phù hợp, tích lũy một lượng lớn tài liệu từ các nghành khoa học, chế tạo ra ra một số trong những lượng lớn các tập dữ liệu, v.v.

Xem thêm: Hướng dẫn nhanh cách kiểm tra thời gian bảo hành của samsung chỉ trong

Sau đấy là các ứng dụng khai quật dữ liệu trong lĩnh vực khoa học ứng dụng:

Kho dữ liệu và tiền xử lý dữ liệu (Data Warehouses and data preprocessing). Khai thác dựa vào đồ thị (Graph-based mining). Hình dung và kiến ​​thức rõ ràng miền (Visualization and domain-specific knowledge).
Cập nhật kỹ năng mới

Nhập e-mail để cập nhật nhanh nhất thông tin, kỹ năng và kiến thức từ Viện chuyenbentre.edu.vn