[ad_1]
Được viết bởi Varun Joshi Và Gauri Kamat
Khi thương mại điện tử tiếp tục thống trị không gian bán lẻ, thách thức về việc kết hợp chính xác các sản phẩm trên các nền tảng và cơ sở dữ liệu ngày càng phức tạp hơn. Trong bài viết này, chúng tôi chứng minh rằng việc so khớp sản phẩm có thể đơn giản là một ví dụ của khung thống kê rộng hơn về độ phân giải thực thể.
Đối sánh sản phẩm (PM) đề cập đến vấn đề tìm hiểu xem hai danh sách riêng biệt có thực sự đề cập đến cùng một sản phẩm hay không. Có nhiều tình huống trong đó điều này quan trọng. Ví dụ: hãy xem xét các trường hợp sử dụng dưới đây:
- Với sự mở rộng nhanh chóng của thị trường trực tuyến, các nền tảng thương mại điện tử (ví dụ: Amazon) có hàng nghìn người bán cung cấp sản phẩm của họ và những người bán mới thường xuyên tham gia nền tảng này. Hơn nữa, những người bán này có khả năng thêm hàng nghìn sản phẩm mới vào nền tảng mỗi ngày (1). Tuy nhiên, sản phẩm tương tự có thể đã có sẵn trên trang internet từ những người bán khác. Cần phải so khớp sản phẩm để nhóm các ưu đãi khác nhau này vào một danh sách duy nhất để khách hàng có thể có cái nhìn rõ ràng về các ưu đãi khác nhau có sẵn cho một sản phẩm
- Trong các thị trường thương mại điện tử, người bán cũng có thể tạo danh sách trùng lặp để có được nhiều bất động sản hơn trên trang tìm kiếm. Nói cách khác, họ có thể liệt kê cùng một sản phẩm nhiều lần (với một chút thay đổi về tiêu đề, mô tả, v.v.) để tăng khả năng khách hàng nhìn thấy sản phẩm của họ. Để cải thiện trải nghiệm của khách hàng, cần phải khớp sản phẩm để phát hiện và xóa các danh sách trùng lặp đó
- Một trường hợp sử dụng quan trọng khác là phân tích đối thủ cạnh tranh. Để đặt giá cạnh tranh và đưa ra quyết định về hàng tồn kho, các công ty thương mại điện tử cần nhận thức được các ưu đãi cho cùng một sản phẩm so với đối thủ cạnh tranh của họ.
- Cuối cùng, các dịch vụ so sánh giá, ví dụ: Google mua sắm (2), cần kết hợp sản phẩm để tìm ra giá cho một sản phẩm trên các nền tảng khác nhau.
Trong bài viết này, chúng tôi trình bày cách khung Độ phân giải thực thể (ER) giúp chúng tôi giải quyết vấn đề PM. Cụ thể, chúng tôi mô tả một khung được sử dụng rộng rãi trong ER và trình diễn ứng dụng của nó trên bộ dữ liệu PM tổng hợp. Chúng tôi bắt đầu bằng cách cung cấp thông tin cơ bản có liên quan về ER.
Phân giải thực thể (ER) là một kỹ thuật xác định các thực thể trùng lặp trong hoặc trên các nguồn dữ liệu. ER trong cùng một cơ sở dữ liệu thường được gọi là sự trùng lặptrong khi ER trên nhiều cơ sở dữ liệu được gọi liên kết ghi lại. Khi có sẵn số nhận dạng duy nhất (như số an sinh xã hội), ER là một nhiệm vụ khá dễ dàng. Tuy nhiên, những số nhận dạng như vậy thường không có sẵn vì lý do bảo mật dữ liệu. Trong những trường hợp này, ER trở nên phức tạp hơn đáng kể.
Tại sao ER lại quan trọng? ER có thể giúp tăng cường cơ sở dữ liệu hiện có bằng dữ liệu từ các nguồn bổ sung. Điều này cho phép người dùng thực hiện các phân tích mới mà không phải trả thêm chi phí thu thập thêm dữ liệu. ER đã tìm thấy các ứng dụng trên nhiều lĩnh vực, bao gồm thương mại điện tử, nghiên cứu nhân quyền và chăm sóc sức khỏe. MỘT ứng dụng gần đây liên quan đến việc đếm số thương vong trong cuộc nội chiến ở El Salvador, bằng cách áp dụng ER vào các cuộc khảo sát hồi cứu về tỷ lệ tử vong. Khác ứng dụng thú vị đang loại bỏ trùng lặp tên nhà phát minh trong cơ sở dữ liệu bằng sáng chế do Văn phòng Nhãn hiệu và Bằng sáng chế Hoa Kỳ duy trì.
ER xác định và xác suất
Các phương pháp ER xác định dựa trên sự đồng ý chính xác về tất cả các thuộc tính của bất kỳ cặp bản ghi nào. Ví dụ: giả sử chúng ta có hai tệp A và B. Giả sử chúng ta đang so sánh bản ghi Một từ tập tin A và b từ tệp B. Hơn nữa, giả sử rằng việc so sánh dựa trên hai thuộc tính: loại sản phẩm (ví dụ: quần áo, đồ điện tử) và năm sản xuất. Một quy tắc xác định tuyên bố (một, b) là một liên kết, nếu loại sản phẩmᵃ = loại sản phẩmᵇ và nămᵃ= nămᵇ. Điều này có thể thực hiện được, miễn là tất cả các thuộc tính đều được phân loại. Nếu chúng ta có thuộc tính văn bản như tên sản phẩm thì liên kết xác định có thể gây ra lỗi. Ví dụ: nếu nameᵃ = “Sony TV 4” và nameᵇ = “Sony TV4”, thì (một,b) sẽ được khai báo là không liên kết, mặc dù hai tên chỉ khác nhau một khoảng trắng.
Những gì chúng ta cần sau đó là thứ gì đó có tính đến mức độ đồng ý một phần. Đây là nơi có thể sử dụng ER xác suất. Trong ER xác suất, mọi cặp (một,b) được gán xác suất là một liên kết, dựa trên (1) số lượng thuộc tính phù hợp; và (2) họ đồng ý như thế nào. Ví dụ: nếu loại sản phẩmᵃ = loại sản phẩmᵇ, nămᵃ= nămᵇ và tênᵃ và tênᵇ khá gần nhau, thì (một,b) sẽ được gán khả năng cao là một liên kết. Nếu loại sản phẩmᵃ = loại sản phẩmᵇ, nămᵃ= nămᵇ, nhưng tênᵃ và tênᵇ cách nhau hai cực (ví dụ: “AirPods” và “Sony TV4”) thì xác suất này sẽ thấp hơn nhiều. Đối với các thuộc tính văn bản, ER xác suất dựa vào số liệu khoảng cách chuỗichẳng hạn như Jaro-Winkler và Levenshtein khoảng cách.
Mô hình Fellegi-Sunter
Mô hình Fellegi-Sunter (3) cung cấp một khung xác suất, cho phép các nhà phân tích định lượng khả năng trùng khớp giữa các bản ghi, dựa trên sự giống nhau về thuộc tính của chúng. Mô hình hoạt động bằng cách tính toán trọng số phù hợp cho từng cặp bản ghi từ cả hai tệp. Trọng số này phản ánh mức độ thống nhất giữa các thuộc tính tương ứng của chúng. Đối với một cặp bản ghi nhất định, trọng số phù hợp là
trong đó mᵢ là xác suất mà hai bản ghi đồng ý về thuộc tính Tôi cho rằng họ là một cặp đôi; uᵢ là xác suất hai bản ghi đồng ý về thuộc tính Tôi cho rằng chúng không khớp nhau; Và lambda là xác suất trước của sự trùng khớp, tức là xác suất trùng khớp khi không có thông tin nào khác về cặp bản ghi. Các tôi xác suất thường phản ánh chất lượng của các biến được sử dụng để liên kết, trong khi bạn xác suất phản ánh sự thỏa thuận ngẫu nhiên giữa các cặp bản ghi không khớp.
Trọng số trận đấu được chuyển đổi thành xác suất trùng khớp giữa hai bản ghi.
Cuối cùng, xác suất trùng khớp được so sánh với giá trị ngưỡng đã chọn để quyết định xem cặp bản ghi có khớp, không khớp hay cần xem xét thủ công thêm.
Tạo dữ liệu
Chúng tôi tạo ra dữ liệu để phản ánh kịch bản phù hợp với sản phẩm thực tế. Cụ thể, chúng tôi tạo tệp A gồm 79 bản ghi và tệp B gồm 192 bản ghi. Có 59 bản ghi chồng chéo giữa hai tệp. Cả hai tệp đều chứa bốn biến liên kết, đó là tên sản phẩm, loại sản phẩm, nhãn hiệu và giá cả. Ví dụ: một bản ghi trong tệp A đại diện cho Apple airpod có tên sản phẩm là “Apple AirPods”, loại sản phẩm là “Earbuds”, nhãn hiệu được ghi là “Apple” và giá sản phẩm là 200 USD. Tên, loại và nhãn hiệu sản phẩm là các biến có giá trị chuỗi, trong khi giá là biến số có giá trị liên tục. Chúng tôi cũng tạo ra lỗi trong từng biến liên kết. Trong các trường có giá trị chuỗi, chúng tôi đưa ra lỗi xóa; ví dụ: Apple Watch Collection 6 có thể được ghi là “Apple Watch Collection 6” trong tệp A và là “Apple Watch 6” trong tệp B. Chúng tôi cũng đưa ra các lỗi thay đổi kiểu chữ trong các trường chuỗi; ví dụ: cùng một sản phẩm có thể được ghi là “apple watch collection 6” trong tệp A và “Apple Watch 6” trong tệp B. Tính chất liên tục của biến giá có thể tự động gây ra lỗi. Ví dụ: một sản phẩm có thể có giá 55 USD trong một tệp nhưng lại có giá 55,2 USD trong tệp kia.
Để tạo dữ liệu tổng hợp, chúng tôi đã sử dụng phiên bản ChatGPT miễn phí (tức là GPT 3.5) (4). Ba lời nhắc sau đây đã được sử dụng để tạo dữ liệu:
Lời nhắc 1: tạo tập dữ liệu có liên kết
Generate an artificial dataset which hyperlinks 59 distinct merchandise from two completely different sources.
The dataset ought to have the next columns: Title_A, Product_Type_A, Brand_A, Price_A, Title_B, Product_Type_B, Brand_B, Price_B.
Every row of the dataset refers back to the similar product however the values of the corresponding columns from Dataset A and Dataset B could be barely completely different. There could be typos or lacking worth in every column. For instance, try the next couple of rows:
Title_A | Product_Type_A | Brand_A | Price_A | Title_B | Product_Type_B | Brand_B | Price_B
Levis Males 505 Common | Denims | Levis | 55 | Levs Males 505 | Denims | Levis | 56
Toshiba C350 55 in 4k | Sensible TV | Toshiba | 350 | Toshiba C350 4k Fireplace TV | Sensible TV | Toshiba Inc | 370
Nike Air Max 90 | Sneakers | Nike | 120 | Nike Air Max 90 | Footwear | Nikes | 120
Sony WH-1000XM4 | Headphones | Sony | 275 | Sony WH-1000XM4 | | Sony | 275 |
Make it possible for |Price_A - Price_B| *100/Price_A <= 10
Output the dataset as a desk with 59 rows which could be exported to Excel
Lời nhắc ở trên tạo tập dữ liệu có liên kết. Số lượng hàng có thể được sửa đổi để tạo tập dữ liệu có số lượng liên kết khác nhau.
Để tạo thêm bản ghi cho từng tập dữ liệu riêng lẻ (tập dữ liệu A hoặc tập dữ liệu B), hai lời nhắc sau đã được sử dụng.
Lời nhắc 2: để tạo thêm bản ghi cho tập dữ liệu A
Generate 20 extra distinct merchandise for the above dataset. However this time, I solely want the details about dataset A. The dataset ought to have the next columns: Title_A, Product_Type_A, Brand_A, Price_A
Lời nhắc 3: để tạo thêm bản ghi cho tập dữ liệu B
Now generate 60 extra distinct merchandise for the above dataset. However this time, I solely want the details about dataset B. The dataset ought to have the next columns: Title_B, Product_Type_B, Brand_B, Price_B. Do not simply get me digital merchandise. As an alternative, attempt to get a wide range of completely different product varieties e.g., clothes, furnishings, auto, house enchancment, family necessities, and so forth.
Ghi lại liên kết
Mục tiêu của chúng tôi là xác định các bản ghi chồng chéo giữa các tệp A và B bằng mô hình Fellegi-Sunter (FS). Chúng tôi triển khai mô hình FS bằng cách sử dụng bắn tung tóe gói (5) bằng Python.
Để so sánh tiêu đề sản phẩm, loại sản phẩm và nhãn hiệu, chúng tôi sử dụng mặc định tên chức năng so sánh có sẵn trong bắn tung tóe bưu kiện. Cụ thể, hàm so sánh có 4 mức so sánh sau:
- Kết hợp chuẩn xác
- Khoảng cách Damerau-Levenshtein <= 1
- Độ tương tự của Jaro Winkler >= 0,9
- Độ tương tự của Jaro Winkler >= 0,8
Nếu một cặp sản phẩm không thuộc bất kỳ cấp độ nào trong 4 cấp độ, mặc định Còn gì nữa không mức độ được chỉ định cho cặp.
Các bắn tung tóe gói không có chức năng so sánh các cột số. Do đó, để so sánh giá, trước tiên chúng tôi chuyển đổi giá thành một biến phân loại bằng cách chia giá thành các nhóm sau: (<$100, $100–200, $200–300, $300–400, $400–500, $500–600, $600– 700, $700–800, $800–900, $900–1000, >=$1000). Sau đó, chúng tôi kiểm tra xem giá của một cặp bản ghi có rơi vào cùng một nhóm hay không. Nói cách khác, chúng tôi sử dụng Kết hợp chuẩn xác mức độ so sánh
Tất cả các so sánh có thể được chỉ định thông qua từ điển cài đặt trong bắn tung tóe bưu kiện
Các tham số của mô hình FS được ước tính bằng thuật toán tối đa hóa kỳ vọng. TRONG bắn tung tóecó các hàm dựng sẵn để thực hiện việc này
Để đánh giá hiệu suất của mô hình FS, chúng tôi lưu ý số lượng bản ghi được liên kết, độ chính xác, mức thu hồi và điểm F1 của dự đoán. Độ chính xác được định nghĩa là tỷ lệ các bản ghi được liên kết là các liên kết thực sự. Và Recall được định nghĩa là tỷ lệ các liên kết thực sự được xác định chính xác. Điểm F1 bằng 2*Precision*Recall/(Precision + Recall). Snhấp nháy cung cấp một chức năng để tạo ra tất cả các số liệu này như hiển thị bên dưới
Mã đầy đủ để đào tạo và đánh giá mô hình này có sẵn tại đây: https://github.com/vjoshi345/product-matching-article/blob/main/train_synthetic_fellegi_sunter.py
Chúng tôi chạy mô hình FS trên tất cả các cặp sản phẩm có thể có từ hai bộ dữ liệu. Cụ thể có 15.168 cặp sản phẩm (79 * 192). Các bắn tung tóe gói có chức năng tự động tạo dự đoán (tức là liên kết phù hợp) cho các ngưỡng xác suất khớp khác nhau. Dưới đây chúng tôi hiển thị ma trận nhầm lẫn cho xác suất trùng khớp = 0,913 (ngưỡng mà chúng tôi nhận được điểm F1 cao nhất).
Tổng số bản ghi được liên kết = 82
Độ chính xác = 58/82 = 0,707
Thu hồi = 58/59 = 0,983
F1 = (2 * 0,707 * 0,983)/(0,707 + 0,983) = 0,823
Mục đích của bài viết này là để chỉ ra cách so khớp sản phẩm là một trường hợp cụ thể của vấn đề Giải quyết thực thể tổng quát hơn. Chúng tôi đã chứng minh điều này bằng cách sử dụng một trong những mô hình phổ biến từ khung ER để giải quyết vấn đề khớp sản phẩm. Vì chúng tôi muốn đây là một bài viết giới thiệu nên chúng tôi đã tạo một tập dữ liệu tổng hợp tương đối đơn giản. Trong kịch bản thế giới thực, dữ liệu sẽ phức tạp hơn nhiều với hàng tá biến số khác nhau, ví dụ: mô tả sản phẩm, màu sắc, kích thước, v.v. Để đối sánh chính xác, chúng tôi sẽ cần các kỹ thuật NLP nâng cao hơn ngoài các chỉ số khoảng cách văn bản. Ví dụ: chúng ta có thể sử dụng các phần nhúng có nguồn gốc từ các mô hình Transformer để khớp các sản phẩm về mặt ngữ nghĩa. Điều này có thể giúp chúng tôi khớp hai sản phẩm có mô tả khác nhau về mặt cú pháp, ví dụ: hai sản phẩm có Loại sản phẩm Quần jean Và quần jean tương ứng.
Hơn nữa, số lượng sản phẩm dành cho bộ dữ liệu trong thế giới thực sẽ vào khoảng hàng trăm triệu với hàng trăm nghìn liên kết tiềm năng. Các bộ dữ liệu như vậy đòi hỏi các phương pháp hiệu quả hơn cũng như các tài nguyên tính toán để kết hợp sản phẩm hiệu quả.
(1): https://medium.com/walmartglobaltech/product-matching-in-ecommerce-4f19b6aebaca
(2): https://shopping.google.com/?pli=1
(3) I. Fellegi và AB Sunter (1969). Một lý thuyết về liên kết hồ sơ. Tạp chí của Hiệp hội Thống kê Hoa Kỳ
(5): https://moj-analytical-services.github.io/splink/index.html
[ad_2]
Source link