Last active 3 months ago

drholy revised this gist 3 months ago. Go to revision

1 file changed, 238 insertions

README.md(file created)

@@ -0,0 +1,238 @@
1 + Да. Я сопоставил найденные наборы с локальными данными конкурса: 711 304 русскоязычные карточки, 365 654 бинарные пары, 20 категорий, поля `name / attributes / category`, много hard negatives, различающихся моделью, размером или фасовкой. Подробнее профиль виден в [README.md](A:/projects/ecup-matching/README.md:116).
2 +
3 + ## Лучшие аналоги
4 +
5 + | Приоритет | Датасет | Масштаб и разметка | Почему полезен |
6 + |---|---|---|---|
7 + | 1 | **WDC Products** | 11 715 офферов, 2 162 товара; pairwise и cluster labels; 27 вариантов | Лучший независимый тест hard negatives и unseen products |
8 + | 2 | **MARKT-PILOT** | 960 532 пары; 294 701 positive; отдельный вручную проверенный test на 5 000 пар | Почти тот же масштаб и бинарный формат, что у E‑CUP |
9 + | 3 | **WDC LSPM / products-2017** | 370 348 готовых пар; исходный корпус — 26 млн офферов | Близок по размеру и структуре, содержит названия, описания, бренды, характеристики |
10 + | 4 | **ProMap** | Небольшие ручные gold-наборы, English/Czech; изображения и спецификации | Очень качественные close negatives — лучший точечный regression test |
11 + | 5 | **Cross-lingual Product Matching** | 171 890 офферов, EN/DE/ES/FR; до 100 800 train-пар на язык и категорию | Проверка мультиязычного переноса и устойчивости к вариантам товара |
12 + | 6 | **PriceRunner** | 35 311 офферов, 10 категорий, 306 магазинов, product cluster IDs | Удобен для самостоятельного построения пар, особенно cross-shop |
13 + | 7 | **DeepMatcher product suite** | Amazon–Google, Walmart–Amazon, Abt–Buy | Классические небольшие regression-тесты |
14 + | 8 | **Alaska** | Около 70 000 спецификаций с 71 сайта и 15 000 имен атрибутов | Проверка обработки грязных разнородных JSON-атрибутов |
15 + | 9 | **ProductER** | Около 10 000 синтетических текстовых пар | Быстрый smoke-test рассуждений о модели/размере/комплектации |
16 + | 10 | **Amazon ESCI** | 2,62 млн ручных query-product judgments | Не прямой duplicate matching, но полезен для Exact vs Substitute vs Irrelevant |
17 + | 11 | **Shopee Product Matching** | Около 34 тыс. объявлений, 11 тыс. групп, текст и изображения | Полезен для мультимодального эксперимента, но хуже по лицензированию |
18 + | 12 | **Retail-786k / Stanford Online Products** | 786 тыс. и 120 тыс. изображений соответственно | Только для будущего визуального матчинга |
19 +
20 + ### 1. WDC Products — лучший именно для тестирования
21 +
22 + Это наиболее подходящий внешний benchmark. Он специально построен вокруг трех факторов:
23 +
24 + - 20%, 50% или 80% corner cases;
25 + - наличие товаров, не встречавшихся в обучении;
26 + - разный размер development set.
27 +
28 + Есть явный `is_hard_negative`, cluster IDs, pairwise labels и строгая непересекаемость офферов между split’ами. Поля: `title`, `description`, `brand`, `price`, `priceCurrency`. Архив pairwise-версии с 80% corner cases занимает всего 21,5 МБ. [Описание, схема и прямые загрузки](https://webdatacommons.org/largescaleproductcorpus/wdc-products/index.html).
29 +
30 + Рекомендация: использовать вариант **80% corner cases + максимальная доля unseen products** как основной внешний regression test. По логике он ближе всего к вашей `StratifiedGroupKFold`-валидации без пересечения товаров.
31 +
32 + ### 2. MARKT-PILOT — лучший большой внешний корпус
33 +
34 + Содержит 960 532 бинарные пары:
35 +
36 + - 294 701 positive;
37 + - 665 831 negative;
38 + - отдельный общий test из 5 000 вручную проверенных пар;
39 + - поднаборы S/M/L с разным дисбалансом.
40 +
41 + Файлы уже в Parquet, полный архив около 746 МБ. Лицензия явно указана как **CC BY-SA 4.0**. [Карточка и файлы MARKT-PILOT](https://huggingface.co/datasets/trettenmeier/markt-pilot).
42 +
43 + Это главный кандидат для проверки:
44 +
45 + - поведения PR-AUC на большом наборе;
46 + - устойчивости к дисбалансу;
47 + - переноса E5/cross-encoder на иностранный каталог;
48 + - калибровки вероятностей.
49 +
50 + Оговорка: открытая карточка не так подробно документирует процедуру формирования hard negatives, как WDC. Поэтому **ручной test используйте для оценки**, а огромный train — только для экспериментов после проверки правил конкурса.
51 +
52 + ### 3. WDC LSPM / `wdc/products-2017`
53 +
54 + Готовая версия на Hugging Face содержит 370 348 строк — почти ровно как 365 654 пары E‑CUP. Категории:
55 +
56 + - computers;
57 + - cameras;
58 + - watches;
59 + - shoes.
60 +
61 + Доступны `title`, `description`, `brand`, `price`, `specTableContent`, cluster ID и binary label. Обучающие метки получены через GTIN/MPN, тестовые пары проверялись экспертом. [Удобная Parquet-версия на Hugging Face](https://huggingface.co/datasets/wdc/products-2017).
62 +
63 + Исходный WDC LSPM ещё больше:
64 +
65 + - 26 млн офферов;
66 + - 16 млн товарных кластеров;
67 + - 4 400 вручную проверенных gold-пар;
68 + - train-наборы от примерно 9 тыс. до 214 тыс. пар;
69 + - отрицательные пары выбирались среди похожих кластеров, а не полностью случайно.
70 +
71 + Есть прямые загрузки всех категорий и исходного корпуса. [Официальная страница WDC LSPM](https://webdatacommons.org/largescaleproductcorpus/v2/index.html).
72 +
73 + Для ваших тестов лучше брать ненормализованные файлы: они сохраняют шум, пунктуацию и исходные описания.
74 +
75 + ### 4. ProMap — маленький, но очень ценный gold test
76 +
77 + ProMap создавался именно потому, что старые benchmarks содержали слишком простые отрицательные пары. В нём есть:
78 +
79 + - `match`;
80 + - `close non-match`;
81 + - `medium non-match`;
82 + - в расширенной версии — `distant non-match`;
83 + - название, краткое и полное описание;
84 + - цена;
85 + - спецификация как пары ключ–значение;
86 + - изображения;
87 + - 10 категорий.
88 +
89 + Исходные наборы:
90 +
91 + - ProMapCz — 1 495 чешских пар;
92 + - ProMapEn — 1 555 английских;
93 + - расширенные версии — по 2 000;
94 + - ProMapMulti позволяет обучаться на Walmart–Amazon и тестироваться на Walmart–Target/Walmart–Sears.
95 +
96 + [Статья со схемой и статистикой](https://link.springer.com/article/10.1007/s10660-024-09892-9), [репозиторий данных](https://github.com/kackamac/Product-Mapping-Datasets).
97 +
98 + Это лучший набор для ручного анализа ошибок вида:
99 +
100 + - одинаковая модель, но другой объём;
101 + - почти одинаковое название, но другая комплектация;
102 + - одинаковый бренд и серия, но другая модификация.
103 +
104 + Недостаток: в GitHub-репозитории я не обнаружил достаточно явной открытой лицензии на данные. Для внутреннего теста это обычно приемлемо, но для включения в распространяемый артефакт лицензию надо подтвердить у авторов.
105 +
106 + ### 5. Cross-lingual Product Matching
107 +
108 + Корпус содержит 171 890 офферов на английском, немецком, испанском и французском в категориях телефонов и игрушек. Телефоны специально разделяются по памяти, цвету и другим вариантам. Pairwise-наборы содержат смесь random и hard pairs, причём поле `hardness` дано явно.
109 +
110 + Для каждой из категорий есть:
111 +
112 + - до 100 800 английских train-пар;
113 + - до 50 400 немецких;
114 + - тесты по 1 200 пар для каждого языка;
115 + - `title`, `description`, `EAN`, `MPN`, бренд и cluster ID.
116 +
117 + [Полное описание и статистика](https://data.dws.informatik.uni-mannheim.de/Web-based-Systems-Group/StudentProjects/2020/Cross-lingual-Product-Matching-using-Transformers/).
118 +
119 + Доступ выдаётся по запросу авторам, только для research use. Зато это сильнейший тест для `multilingual-e5`: можно проверить train EN → test DE/ES/FR и увидеть, действительно ли выигрыш модели связан с мультиязычностью.
120 +
121 + ### 6. PriceRunner
122 +
123 + 35 311 предложений из 306 магазинов, 10 категорий, canonical product ID. Это не готовые бинарные пары, но cluster ID позволяет получить positives, а hard negatives можно создать среди ближайших товаров другой группы.
124 +
125 + Лицензия: **CC BY 4.0**. [Карточка PriceRunner](https://www.kaggle.com/datasets/joebeachcapital/pricerunner-product-classification-and-clustering).
126 +
127 + Для честного теста:
128 +
129 + 1. Разбить по canonical product ID.
130 + 2. Positive пары брать только внутри кластера.
131 + 3. Negative — BM25/TF-IDF top neighbors в той же категории, но с другим product ID.
132 + 4. Исключить случайные лёгкие negatives либо хранить их отдельным срезом.
133 +
134 + ### 7. DeepMatcher product benchmarks
135 +
136 + Готовые классические наборы:
137 +
138 + - Amazon–Google: 11 460 пар, 1 167 positive;
139 + - Walmart–Amazon: 10 242 пары, 962 positive;
140 + - Abt–Buy: 9 575 пар, 1 028 positive;
141 + - также существуют dirty-версии Walmart–Amazon.
142 +
143 + Есть готовые `train/valid/test`, таблицы товаров и прямые ZIP-ссылки. [Официальный индекс DeepMatcher](https://raw.githubusercontent.com/anhaidgroup/deepmatcher/master/Datasets.md), [Ditto с уже сериализованными версиями](https://github.com/megagonlabs/ditto).
144 +
145 + Это хорошие быстрые CI-тесты, но они заметно легче и меньше E‑CUP.
146 +
147 + ### 8. Alaska
148 +
149 + Около 70 тыс. реальных товарных спецификаций с 71 сайта, направления cameras/monitors/notebooks, порядка 15 тыс. различных названий атрибутов. Ground truth курировался экспертами. [Описание Alaska](https://arxiv.org/abs/2101.11259), [репозиторий](https://github.com/merialdo/research.alaska).
150 +
151 + Полезен не столько для общей метрики, сколько для проверки вашего парсера `attributes`:
152 +
153 + - разные ключи для одного свойства;
154 + - разные единицы измерения;
155 + - пропуски;
156 + - атрибуты, перемещённые в title;
157 + - несовместимые схемы разных магазинов.
158 +
159 + ### 9. ProductER
160 +
161 + 9 996 коротких пар названий с ответами `yes/no/maybe`, лицензия MIT. Набор специально содержит различия в model number и specifications. [ProductER](https://huggingface.co/datasets/crossingminds/productER).
162 +
163 + Но это синтетика, созданная с помощью `o1-preview`, а не реальные человеческие marketplace labels. Использовать как:
164 +
165 + - sanity-check для LLM teacher;
166 + - тест конфликтов размеров и моделей;
167 + - небольшой prompt/reranker benchmark.
168 +
169 + Не использовать как основной источник оценки качества.
170 +
171 + ### 10. Amazon ESCI
172 +
173 + 2,62 млн вручную размеченных query-product пар с классами Exact/Substitute/Complement/Irrelevant и полями title, description, bullet points, brand, color. Языки: английский, испанский и японский; лицензия Apache 2.0. [Официальный репозиторий Amazon ESCI](https://github.com/amazon-science/esci-data).
174 +
175 + Это не duplicate matching: левая часть является поисковым запросом. Но классы Exact и Substitute хорошо подходят для дополнительного обучения модели различать точное совпадение и просто похожий товар.
176 +
177 + ## Русскоязычные источники
178 +
179 + Публичного русскоязычного gold-набора, сопоставимого с E‑CUP, я не нашёл. Есть несколько смежных вариантов, но они не заменяют размеченный benchmark:
180 +
181 + - **OZON Product Category** — русские карточки, но нет пар и лицензия не указана: [Kaggle](https://www.kaggle.com/datasets/andrewboroda/ozon-product-category).
182 + - **S-SHOT** — актуальные выгрузки Ozon/Wildberries с названиями, брендами, ценами и ссылками, но без true match labels: [каталог](https://www.s-shot.ru/datasets/).
183 + - **Wildberries duplicate competition** действительно существовал, но датасет сейчас требует авторизации/не обнаружен как свободно скачиваемый публичный корпус: [WB Space](https://wbspace.wb.ru/).
184 + - На Hugging Face есть русскоязычная модель marketplace matching, но её train dataset описан как frozen/private и отдельно не опубликован.
185 + - Коммерческие выгрузки Ozon/Wildberries обычно содержат карточки, но не достоверные связи «один SKU».
186 +
187 + Такие выгрузки пригодны для unlabeled drift-тестов: проверить, что инференс не падает на новых брендах, форматах чисел и современных названиях. Делать из них gold labels автоматически опасно.
188 +
189 + ## Какой комплект я бы взял
190 +
191 + Минимальный, но сильный внешний test suite:
192 +
193 + 1. **WDC Products 80% corner cases** — главный тест hard negatives и unseen products.
194 + 2. **MARKT-PILOT manual test** — большая независимая бинарная проверка.
195 + 3. **ProMapEn + ProMapCz close/medium negatives** — точечная проверка критических атрибутов.
196 + 4. **WDC LSPM gold standard** — стабильный классический benchmark.
197 + 5. **PriceRunner, самостоятельно построенный unseen-cluster split** — тест генерации кандидатов.
198 + 6. **ProductER** — только быстрый semantic smoke-test.
199 +
200 + Для конвертации в формат E‑CUP:
201 +
202 + ```text
203 + items:
204 + id
205 + name <- title
206 + attributes <- JSON из brand, description, specification, price
207 + category
208 +
209 + matches:
210 + id1
211 + id2
212 + target
213 + ```
214 +
215 + Считать желательно несколько показателей:
216 +
217 + - global PR-AUC;
218 + - PR-AUC отдельно на hard negatives;
219 + - PR-AUC только на unseen entities;
220 + - recall при фиксированной высокой precision;
221 + - F1 для сравнения с опубликованными benchmark-результатами.
222 +
223 + Macro PR-AUC по 20 категориям E‑CUP напрямую с иностранными наборами несопоставим, поэтому внешний score лучше хранить отдельно.
224 +
225 + ## Лицензии и правила конкурса
226 +
227 + Надёжно определённые лицензии:
228 +
229 + - MARKT-PILOT — CC BY-SA 4.0;
230 + - PriceRunner — CC BY 4.0;
231 + - ProductER — MIT;
232 + - Amazon ESCI — Apache 2.0;
233 + - Retail-786k — CC BY-NC-ND 4.0, то есть не для коммерческого использования и без распространения производных данных;
234 + - Cross-lingual Mannheim — research only;
235 + - Shopee competition data — ограниченное использование по условиям соревнования;
236 + - ProMap и некоторые старые DeepMatcher/WDC-выгрузки требуют отдельной проверки условий именно для данных: лицензия кода не автоматически покрывает содержимое карточек.
237 +
238 + В открытом FAQ E‑CUP явно говорится о допустимости моделей с открытой лицензией, но я не нашёл столь же явного разрешения использовать внешние размеченные датасеты. [FAQ E‑CUP](https://ods.ai/tracks/e-cup-2026-competitions/faq). Поэтому безопасная стратегия: применять найденные наборы как **внешние тесты**, а перед добавлением их в fine-tuning письменно уточнить это у организаторов.
Newer Older