تطبیق و تجزیه و تحلیل محصولات در بازارها با استفاده از LLMS


نویسنده (ها): ایگور نویکوف

در ابتدا منتشر شده در به سمت هوش مصنوعیبشر

تصویر توسط نویسنده

حرفدر اینجا یک مشکل کلاسیک در هر بازار ایجاد لیست محصولات ، که به ویژه توسط کاربران ایجاد می شود ایجاد توضیحات مربوط به محصولات بسیار ساده است. شما یک مورد ساده و روزمره-مانند یک تی شرت آبی-به عنوان همه چیز از “آبی آسمان” گرفته تا “آبی سلطنتی” گرفته تا “نیروی دریایی دریایی” توصیف شده است. برخی از فروشندگان حتی جزئیات محصول را به خود تصویر می رسانند ، “بهترین پیراهن تا کنون!” در حروف سبز نئون بیش از یک عکس ضعیف. نتیجه؟ دو محصول یکسان می توانند به نظر برسند که گویی از جهان های کاملاً متفاوت آمده است.

این باعث می شود جستجو ، طبقه بندی و تجزیه و تحلیل این محصولات به یک سردرد واقعی (یا الف) کار ضمانت امنیتی دانشمندان داده – بستگی به نحوه نگاه شما به آن دارد). برای مدیریت قیمت گذاری در بازار ، می توان تجزیه و تحلیل رقبا را برای انجام تجزیه و تحلیل قیمت گذاری رقابتی مهم کرد ، بنابراین سطح دیگری از پیچیدگی را اضافه می کند زیرا سیستم عامل های رقابتی از قالب های مختلف کارت محصول برخوردار هستند.

البته با گذشت سالها چندین راه برای مقابله با آن اختراع شد:

  1. تطابق خاص
    یک مدل یا الگوریتم “Matcher” اختصاصی را برای هر دسته از محصولات آموزش دهید – یکی برای الکترونیک ، یکی برای پوشاک ، دیگری برای لوازم آرایشی و غیره. هر رویکرد تخصصی است اما در صورت داشتن 10،000 دسته ، می تواند به یک عمل دستکاری تبدیل شود.
  2. جستجوی نامزد با استفاده از تعبیه
    تعبیه ها بازنمایی بردار داده ها (به عنوان مثال ، توضیحات محصول یا نام) برای تعیین شباهت هستند. با استفاده از روش های پردازش متن یا تصویر (به عنوان مثال ، Word2VEC ، انتقال دهنده جمله) ، می توان محصولات مشابهی را پیدا کرد.
  3. استخراج ویژگی برای هر محصول
    داده های محصول (مانند برند ، مدل ، رنگ ، اندازه و غیره) از توضیحات برای تجزیه و تحلیل و مطابقت با محصولات در سطح عمیق تر استخراج می شود.
  4. تقویت شیب
    الگوریتم های تقویت شیب (مانند CatBoost یا XGBoost) برای کارهای طبقه بندی استفاده می شوند و تعیین می کنند که محصولات مشابه هستند یا خیر. این مدل ها بر روی داده های از پیش برچسب آموزش داده می شوند و هر دو ویژگی متنی و عددی را در نظر می گیرند.

این به یک نکته کمک می کند ، اما مردم هنوز هم در توصیف موارد به طرز حیرت انگیزی خلاق هستند. ویژگی جهنم هنگامی واقعی است که شما 400 روش برای گفتن “راحت” داشته باشید ، و وسایل پوشاک می توانند یکسان به نظر برسند اما به طرز چشمگیری متفاوت برچسب گذاری می شوند (“تی شرت کنف سازگار با محیط زیست” در مقابل “100 ٪ تاپ گیاهی پایدار پایدار “)

یک مشکل رایج ، ویژگی جهنم است ، جایی که شما ویژگی های زیادی برای موارد مشابه دارید که مطابق با آن است.

برای پوشاک و مواردی از این دست ، که می تواند یکسان باشد اما بسیار متفاوت توصیف می شود – تطبیق فقط با استفاده از عکس ها و تصاویر بر اساس رنگ ها ، شکل ها و الگوهای پارچه ای انجام می شود.

رویکرد جدید استفاده می کند LLMSمدل های چند مدلی برای انجام این کار. بسیاری از پلتفرم در حال حاضر این کار را انجام می دهند:

“ما از چندین مورد استفاده کرده ایم مدل های بزرگ زبان برای ایجاد یا بهبود دقیق بیش از 850 میلیون قطعه داده در یک کاتالوگ.

بدون استفاده از هوش مصنوعی مولد ، این کار تقریباً 100 برابر میزان فعلی را برای تکمیل در همان زمان نیاز دارد. “

داگ مک میلون ، مدیرعامل ، والمارت

در اینجا چارچوب کلی وجود دارد:

1. جستجوی نامزد با استفاده از تعبیه

این تعبیه ها به سیستم اجازه می دهد تا شباهت بین محصولات مختلف را به طور کارآمد محاسبه کند ، بنابراین مرحله اول مانند گذشته است. به عنوان مثال ، تعبیه های تولید شده توسط LLM های پیشرفته (مانند مدل های OpenAI یا انتقال دهنده های جمله) می توانند با مقایسه بردارهای توضیحات محصول یا ویژگی ها ، برای شناسایی مسابقات بالقوه استفاده شوند.

2. استخراج ویژگی برای هر محصول با استفاده از LLMS

LLMS ویژگی های خاص محصول (به عنوان مثال ، برند ، رنگ ، اندازه ، مواد) را از توضیحات متنی خود استخراج می کند.

به عنوان مثال ، “تی شرت پنبه قرمز روشن شیک برای مردان” به رنگ = قرمز ، ماده = پنبه ، جمعیتی هدفمند = مردان و غیره تقسیم می شود. این مانند خریدار شخصی (متن) شخصی شما است که بسیار آزار دهنده است.

مثالهای زیر را مشاهده کنید.

3. تطبیق دو محصول بر اساس ویژگی های استخراج شده با استفاده از LLMS

پس از استخراج ویژگی ها ، از LLMS برای مقایسه دو محصول بر اساس این ویژگی ها استفاده می شود و تعیین می کند که آیا آنها یک مسابقه هستند.

LLM ها می توانند هم شباهت های صریح (به عنوان مثال ، همان برند و اندازه) و هم ضمنی را در نظر بگیرند (به عنوان مثال ، “سازگار با محیط زیست” در مقابل “پایدار”).

به عنوان مثالبا مطابق با تشخیص اینکه آنها به همان محصول مراجعه می کنند ، “کفش ورزشی Nike Air Max” با “Nike Air Max Shoes for Men” مطابقت دارد.

مثالهای زیر را مشاهده کنید.

4. تطبیق بر اساس تصاویر با استفاده از VLMS (مدل های بینایی زبان)

برخی از ویژگی ها ، مانند رنگ ، طراحی یا الگوهای منحصر به فرد ، به بهترین وجه از نظر بصری مورد تجزیه و تحلیل قرار می گیرند تا از نظر متنی. VLM ها داده های بصری و متنی را برای تطبیق دقیق تر محصول ترکیب می کنند. این مدل ها تصاویر محصول را در کنار توضیحات خود تجزیه و تحلیل می کنند تا محصول را بهتر بشناسند.

به عنوان مثال: تطبیق یک تصویر محصول از یک کیف دستی چرمی سیاه با کیف دستی مشابه دیگر با شناسایی ویژگی های بصری (شکل ، بافت و غیره) و ترکیب آنها با داده های متنی.

مزایای LLMS برای تطبیق

  • تطبیق دقیق تر عدم تطابق کاذب کمتری (مثل آن زمان پیراهن “فیروزه ای” به جای “Teal”).
  • دقت و یادآوری در محدوده 90-99 ٪ ، به خصوص با مدل های تنظیم شده
  • داده های متنوع را کنترل می کند. متن ، تصاویر ، ایموجی های تصادفی ، شما آن را نامگذاری می کنید.
  • درک پیشرفته از توضیحات محصول و ویژگی های بصری.
  • هیچ آموزش تخصصی لازم نیست: هیچ ساختمان بیشتر و حفظ 50 مسابقه تخصصی مختلف.

اشکالات

  • به قدرت محاسباتی بسیار بیشتری نیاز دارد
  • تأخیر عالی نیست. برای پردازش دسته ای کار می کند اما در زمان واقعی نیست

به طور کلی ، برای برخی از دسته ها ، در صورت جلوگیری از آن ، هیچ نکته ای در استفاده از LLM وجود ندارد. اگر این گروه ساده باشد و الگوریتم های استاندارد آن را به خوبی انجام دهند ، به طور قابل توجهی ارزان تر خواهد بود. LLM ها برای پردازش دسته های متوسط ​​و پیچیده مناسب تر هستند. به عنوان مثال ، قطعات اتومبیل – آنها دارای وین هستند که قسمت را مشخص می کنند و تطبیق توسط وینز برای اکثر اهداف کافی است.

استخراج ویژگی ها با استفاده از LLM

I have a product card from the "Refrigerators" category on a marketplace. 
I need to extract and format attributes from it.

key_attributes_list = [
{
"name": "model",
"attribute_comment": "Refrigerator model. Include brand or company name but exclude color and size."
},
{
"name": "capacity",
"attribute_comment": "Total volume of the refrigerator, typically measured in liters (L). Look for terms like 'Total Capacity'. If unavailable, set value to null."
},
{
"name": "energy_efficiency",
"attribute_comment": "Extract the energy efficiency class, such as 'A++', 'A+', or 'B'. Look for terms like 'Energy Efficiency Class'. If unavailable, set value to null."
},
{
"name": "number_of_doors",
"attribute_comment": "Number of doors, such as '1', '2', or 'Side-by-Side'. Look for terms like 'Doors', 'Number of Doors'. If missing, set value to null."
},
{
"name": "freezer_position",
"attribute_comment": "Position of the freezer, such as 'Top', 'Bottom', or 'Side'. Extract from terms like 'Freezer Position'. If unspecified, set value to null."
},
{
"name": "defrost_system",
"attribute_comment": "Type of defrost system, such as 'No Frost' or 'Manual Defrost'. Look for terms like 'Defrost System'. If not mentioned, set value to null."
},
{
"name": "dimensions",
"attribute_comment": "Include height, width, and depth in centimeters (e.g., '180x70x60'). Look for terms like 'Dimensions''. If not available, set value to null."
}
]

خروجی:

extracted_attributes = {
"model": "Upstreman UF70",
"capacity": "7.0 cubic feet",
"energy_efficiency": "ENERGY STAR certified",
"number_of_doors": "1",
"freezer_position": "Convertible",
"defrost_system": "Low Frost Design",
"dimensions": "56.1x21.3x22.76 inches",
}

تطبیق با LLM

مثال رنگ هماهنگ

سریع:

I have two product cards from the category "Freezers" on a marketplace.
I need to compare the attribute "color."
The response should include:
is_match: A boolean indicating whether the values match.
reason: A detailed explanation of the comparison result.

Format the answer in JSON.

خروجی:

{
"is_match": false,
"reason": "The color attributes do not match. Product 1 has 'White' while Product 2 has 'Stainless Steel'."
}

تطبیق چندین ویژگی

سریع:

I have two product cards from the category "Freezers" on a marketplace.
I need to compare their attributes to determine if the two products are similar enough to be considered the same model.

Attributes to compare:
Model name: Replace + with plus and remove spaces for comparison.
Capacity: Match if the difference is less than or equal to 0.2 cubic feet.
Energy efficiency: Match if both are certified by ENERGY STAR or have identical efficiency ratings.
Dimensions: Match if the height, width, and depth differences are each within 1 inch.
Color: Match only if the color is identical.

The response should include:
is_match: A boolean indicating whether the two products are considered the same model.
reason: A detailed explanation of the comparison result.

Format the answer in JSON.

خروجی:

{
"is_match": true,
"reason": "The two freezers are considered the same model based on the following comparisons:
1. Model name matches after normalization ('UpstremanUF70').
2. Capacity is similar (7.0 vs 6.9 cubic feet, difference is 0.1 cubic feet, which is within the acceptable range of 0.2 cubic feet).
3. Both are ENERGY STAR certified, indicating identical energy efficiency.
4. Dimensions are nearly identical (differences: height 0.1 inch, width 0.1 inch, depth 0.1 inch, all within the acceptable tolerance of 1 inch).
5. Both products share a similar color: 'White and ‘Pearl White’."

}

کار با عکس و تصاویر

استخراج ویژگی

بگویید ما تصویری مانند آن داریم. ما قصد داریم از همان سریع برای استخراج متن استفاده کنیم:

I have a product card from the "Refrigerators" category on a marketplace. 
I need to extract and format attributes from it.
key_attributes_list = [

{
"name": "dimensions",
"attribute_comment": "Include height, width, and depth in centimeters (e.g., '180x70x60'). Look for terms like 'Dimensions''. If not available, set value to null."
}
]

خروجی:

{
"dimensions": "56.10x21.30x22.76 inches"
}

یکی دیگر:

خروجی:

{
"category": "Headphones",
"brand": "KVIDIO",
"color": "Black",
"features": [
"Over-ear design",
"Wireless",
"Bluetooth connectivity",
"Padded ear cushions"
]
}

مقایسه وسایل لباس

سریع:

As a fashion expert, you are tasked with comparing two photographs of women's tops from a marketplace.
Your analysis should focus exclusively on the tops themselves, disregarding:
Any other visible clothing items, even if part of the outfit or matching
in style.
Variations in poses, body movements, or how the tops are worn.

Your goal:
Determine whether the tops are identical or an exact match.
Provide a clear "Identical" or "Different" answer, followed by a single
concise sentence explaining your reasoning.
Answer in JSON format.

و نتیجه؟ من توانستم تفاوت بسیار ظریف در گردنبند را تشخیص دهم ، که من ، مرد بودن ، قادر به توجه نبودم.

خروجی:

{
"result": "Different",
"reason": "The tops have distinct necklines; the first features a crew neck while the second has a scoop neck."
}

اینجا یکی دیگر است:

خروجی:

{
"result": "Identical",
"reasoning": "Both tops have the same color, design, and fabric characteristics, including the long sleeves, slim fit, and light aqua tone."
}

عالی

مدل ها و توان

توان برای یک بازار بسیار مهم است زیرا هزاران محصول وجود دارد و هر روز بیشتر اضافه می شود. توان به دو چیز بستگی دارد:

  1. سخت افزار شما
  2. اندازه و نوع مدل

اگر از یک مدل 70B مانند Llama یا Qwen استفاده کنید ، خوب کار خواهد کرد اما کند است. بنابراین ، مگر اینکه یک ابر رایانه داشته باشید ، برای مدلهای بزرگ در GPU های تجاری در دسترس با 0-5 RPS روبرو خواهید شد.

برای بهبود عملکرد چندین کار را می توان انجام داد.

با استفاده از یک مدل کوچکتر که روی محصول خود تنظیم شده است مجموعه دادهبشر چقدر کوچک به کار بستگی دارد و به احتمال زیاد شما باید چندین مدل کوچک را آموزش دهید زیرا می تواند فقط در بسیاری از دسته های قابل آموزش باشد. مدل های 7b به طور کلی برای استخراج متن به خوبی کار می کنند و 1B برای زیر مجموعه محدود از ویژگی های تنظیم شده زیبا. می توان چنین مدلی را از یک مدل بزرگتر تقطیر کرد.

این ممکن است توان شما را تا 10-20 برابر بهبود بخشد. با این حال ، توجه داشته باشید که مدل های کوچکتر نمی توانند از یک بار استخراج ویژگی های زیادی را کنترل کنند و با پیشبرد های پیچیده مبارزه می کنند ، بنابراین شما باید برای کار خود آزمایش کنید.

کمیت همچنین پیشرفت 20-50 ٪ در RPS بدون افت قابل توجه در کیفیت کار مدل را نشان می دهد.

در یک سناریوی حجم عظیم ، استفاده از چیزی جز یک مدل خود میزبان منطقی نیست زیرا هزینه های استفاده از OpenAi یا Anthropic بسیار زیاد خواهد بود ، اما آنها برای نمونه سازی و تلاش برای استفاده از آنها مفید هستند. برای سناریوی خود میزبان ، من با آخرین نسخه های آموزش Llama یا Qwen می روم زیرا آنها بهترین نتیجه را در آزمایش ما نشان داده اند ، از 70B برای آزمایش شروع می کنند و سپس بهینه سازی مدل های کوچکتر تا لحظه ای که از عملکرد رضایت بخش دست می کشید بشر

شما به احتمال زیاد مجبور خواهید بود با هم تنظیم کردن به عنوان مثال ، مدل برای دسته های خاص ، فضای پزشکی دارای اختصارات زیادی و همچنین صنعت ساخت و ساز است. مدل عمومی ممکن است به خوبی انجام ندهد ، بنابراین یک پاس لورا در این مورد ایده خوبی است. علاوه بر این ، زبان را در نظر بگیرید ، به عنوان مثال ، لاما به خوبی به زبان انگلیسی کار می کند اما به زبان چینی احتمالاً توهینبشر گوئن احتمالاً انتخاب بهتری خواهد بود.

لذت ببرید!

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/l/matching-and-analyzing-products-in-marketplaces-using-llms