[ad_1]
Dữ liệu khách hàng thường được lưu trữ dưới dạng hồ sơ trong hệ thống Quản lý quan hệ khách hàng (CRM). Dữ liệu được một trong nhiều người dùng nhập thủ công vào các hệ thống như vậy theo thời gian sẽ dẫn đến việc sao chép dữ liệu, sao chép một phần hoặc sao chép mờ. Điều này có nghĩa là không còn một nguồn thông tin xác thực duy nhất về khách hàng, người liên hệ, tài khoản, v.v. Các quy trình kinh doanh xuôi dòng ngày càng trở nên phức tạp và giả tạo nếu không có sự ánh xạ duy nhất giữa bản ghi trong CRM và khách hàng mục tiêu. Các phương pháp hiện tại để phát hiện và loại bỏ bản ghi trùng lặp sử dụng các kỹ thuật Xử lý ngôn ngữ tự nhiên truyền thống được gọi là So khớp thực thể. Nhưng có thể sử dụng những tiến bộ mới nhất trong Mô hình ngôn ngữ lớn và AI sáng tạo để cải thiện đáng kể việc xác định và sửa chữa các bản ghi trùng lặp. Trên các tập dữ liệu điểm chuẩn phổ biến, tôi nhận thấy sự cải thiện về độ chính xác của tỷ lệ loại bỏ trùng lặp dữ liệu từ 30% khi sử dụng kỹ thuật NLP lên gần 60% khi sử dụng phương pháp đề xuất của tôi.
Tôi muốn giải thích kỹ thuật này ở đây với hy vọng rằng những người khác sẽ thấy nó hữu ích và sử dụng nó cho nhu cầu loại bỏ trùng lặp của riêng họ. Nó hữu ích cho các tình huống khác khi bạn muốn xác định các bản ghi trùng lặp, không chỉ đối với dữ liệu Khách hàng. Tôi cũng đã viết và xuất bản một bài báo nghiên cứu về vấn đề này mà bạn có thể xem trên Arxiv, nếu bạn muốn biết thêm chi tiết:
Nhiệm vụ xác định các bản ghi trùng lặp thường được thực hiện bằng cách so sánh từng cặp bản ghi và được gọi là “So khớp thực thể” (EM). Các bước điển hình của quy trình này sẽ là:
- Chuẩn bị dữ liệu
- Thế hệ ứng viên
- Chặn
- Phù hợp
- Phân cụm
Chuẩn bị dữ liệu
Chuẩn bị dữ liệu là quá trình làm sạch dữ liệu và bao gồm những việc như xóa các ký tự không phải ASCII, viết hoa và mã hóa văn bản. Đây là một bước quan trọng và cần thiết cho các thuật toán khớp NLP sau này trong quá trình này, không hoạt động tốt với các trường hợp khác nhau hoặc các ký tự không phải ASCII.
Thế hệ ứng viên
Trong phương pháp EM thông thường, chúng ta sẽ tạo ra các bản ghi ứng viên bằng cách kết hợp tất cả các bản ghi trong bảng với chính chúng để tạo ra tích Descartes. Bạn sẽ loại bỏ tất cả các kết hợp cùng hàng với chính nó. Đối với nhiều thuật toán so khớp NLP, việc so sánh hàng A với hàng B tương đương với việc so sánh hàng B với hàng A. Đối với những trường hợp đó, bạn có thể chỉ giữ lại một trong các cặp đó. Nhưng ngay cả sau đó, bạn vẫn còn rất nhiều hồ sơ ứng cử viên. Để giảm con số này, người ta thường sử dụng một kỹ thuật gọi là “chặn”.
Chặn
Ý tưởng của việc chặn là loại bỏ những bản ghi mà chúng ta biết rằng không thể trùng lặp với nhau vì chúng có các giá trị khác nhau cho cột “bị chặn”. Ví dụ: Nếu chúng tôi đang xem xét hồ sơ khách hàng, một cột có thể bị chặn có thể là “Thành phố”. Điều này là do chúng tôi biết rằng ngay cả khi tất cả các chi tiết khác của bản ghi đều tương tự nhau thì họ không thể là cùng một khách hàng nếu họ sống ở các thành phố khác nhau. Khi chúng tôi đã tạo các bản ghi ứng cử viên của mình, chúng tôi sẽ sử dụng tính năng chặn để loại bỏ những bản ghi có giá trị khác nhau cho cột bị chặn.
Phù hợp
Tiếp theo việc chặn, giờ đây chúng tôi kiểm tra tất cả các bản ghi ứng cử viên và tính toán các số liệu giá trị thuộc tính dựa trên mức độ tương tự NLP truyền thống với các trường từ hai hàng. Bằng cách sử dụng các số liệu này, chúng tôi có thể xác định xem chúng tôi có đối tượng tiềm năng phù hợp hay không phù hợp.
Phân cụm
Bây giờ chúng ta đã có danh sách các bản ghi ứng viên khớp nhau, sau đó chúng ta có thể nhóm chúng thành các cụm.
Có một số bước trong phương pháp được đề xuất, nhưng điều quan trọng nhất cần lưu ý là chúng ta không còn cần phải thực hiện bước “Chuẩn bị dữ liệu” hoặc “Tạo ứng viên” của các phương pháp truyền thống nữa. Các bước mới trở thành:
- Tạo câu phù hợp
- Tạo các vectơ nhúng của các câu phù hợp đó
- Phân cụm
Tạo câu phù hợp
Đầu tiên, một “Câu đối sánh” được tạo ra bằng cách nối các thuộc tính mà chúng ta quan tâm và phân tách chúng bằng khoảng trắng. Ví dụ, giả sử chúng ta có một hồ sơ khách hàng trông như thế này:
Chúng ta sẽ tạo ra một “Câu ghép” bằng cách nối các thuộc tính name1, name2, name3, tackle và metropolis với khoảng trắng, điều này sẽ cung cấp cho chúng ta kết quả sau:
“John Hartley Smith 20 Predominant Road Luân Đôn”
Tạo vectơ nhúng
Khi “Câu phù hợp” của chúng tôi đã được tạo, nó sẽ được mã hóa vào không gian vectơ bằng mô hình nhúng đã chọn của chúng tôi. Điều này đạt được bằng cách sử dụng “Biến đổi câu”. Đầu ra của mã hóa này sẽ là một vectơ dấu phẩy động có các chiều được xác định trước. Các chiều này liên quan đến mô hình nhúng được sử dụng. Tôi đã sử dụng all-mpnet-base-v2 mô hình nhúng có không gian vectơ 768 chiều. Sau đó, vectơ nhúng này được thêm vào bản ghi. Điều này được thực hiện cho tất cả các bản ghi.
Phân cụm
Khi các vectơ nhúng đã được tính toán cho tất cả các bản ghi, bước tiếp theo là tạo các cụm bản ghi tương tự. Để làm điều này tôi sử dụng kỹ thuật DBSCAN. DBSCAN hoạt động bằng cách trước tiên chọn một bản ghi ngẫu nhiên và tìm các bản ghi gần với bản ghi đó bằng cách sử dụng thước đo khoảng cách. Có 2 loại số liệu khoảng cách khác nhau mà tôi thấy có hiệu quả:
- Khoảng cách chuẩn L2
- Độ tương tự cosin
Đối với mỗi số liệu đó, bạn chọn giá trị epsilon làm giá trị ngưỡng. Sau đó, tất cả các bản ghi nằm trong khoảng cách epsilon và có cùng giá trị cho cột “bị chặn” sẽ được thêm vào cụm này. Khi cụm đó hoàn tất, một bản ghi ngẫu nhiên khác sẽ được chọn từ các bản ghi chưa được truy cập và sau đó một cụm được tạo xung quanh nó. Điều này sau đó tiếp tục cho đến khi tất cả các hồ sơ đã được truy cập.
Tôi đã sử dụng phương pháp này để xác định các bản ghi trùng lặp với dữ liệu khách hàng trong công việc của mình. Nó tạo ra một số kết quả khớp rất tốt. Để khách quan hơn, tôi cũng đã chạy một số thử nghiệm bằng cách sử dụng một tập dữ liệu chuẩn có tên là “Musicbrainz 200K”. Nó tạo ra một số kết quả có thể định lượng được, là một cải tiến so với các kỹ thuật NLP tiêu chuẩn.
Trực quan hóa phân cụm
Tôi đã tạo bản đồ cụm lân cận gần nhất cho tập dữ liệu Musicbrainz 200K mà sau đó tôi hiển thị ở dạng 2D bằng thuật toán giảm UMAP:
Tài nguyên
Tôi đã tạo nhiều sổ ghi chép khác nhau để giúp bạn tự mình thử nghiệm phương pháp này:
[ad_2]
Source link