پتنت Identifying Subjective Attribute of Entities آخرین پتنتی بود که آقای Bill Slawski در وبسایت خود منتشر کرده بود و بعد از مطالعه آن به نظرم بسیار جالب آمد و تصمیم گرفتم مقالهای درباره آن بنویسم. در واقع این پتنت روشی برای شناسایی و پیش بینی ویژگیها و احساسات کیفی موجود در موجودیتهایی است که درون محتوای تولید شده توسط کاربران (UGC) وجود دارد.
اول اینکه subjective attribute را تعریف کنیم. subjective attribute به ویژگیهای کیفی یا احساسی ذهن گفته میشود. مثلا تجربه کیفی از دیدن رنگ قرمز یا آبی یک مثالی است که میتوانیم به آن اشاره کنیم.
حال یک قسمتی از این سیستم میتواند ویژگیهای کیفی یک موجودیت مثل یک فیلم را بر اساس ری اکشنهای مردم بفهمد. مثلا وقتی تعداد زیادی از مردم یک فیلم خاص را میگویند که خندهدار است، سیستم میفهمد که بامزه بودن یک ویژگی کیفی این فیلم است.
بخش دیگری از این سیستم میتواند تعیین کند که این ویژگی چقدر به آیتمهای اون رسانه مرتبط است و توی مثال فیلم میزان اهمیت خندهدار بودن آن را با یک امتیاز (Relevancy Score) تعیین میکند.
همچنین یک Classifier به سیستم آموزش داده میشود، برای اینکه سیستم یاد بگیرد چطور با استفاده از این مجموعه ویژگیها و یک خروجی هدف (امتیازهای مربوط به ویژگیهای کیفی ) بتواند پیش بینی انجام دهد.
نوعی از آلگوریتمهای یادگیری ماشین است برای اینکه برچسبهایی رو به یک دیتای ورودی اختصاص بدهد. مثلا یک عکس که شامل یک درخت، یک مرد و موتور است رو میتوانیم با این برچسب ها کلاس بندی کنیم.
حالا داخل مثال فیلمی که زده شد، مثلا یک فیلم شامل مجموعهای از ویژگیها مانند ژانر فیلم، مود فیلم، موسیقی، دیالوگها و خیلی از المانهای دیگری است. پس در واقع برای موجودیتهایی که در یک موجودیت اصلی ) فیلم ( است، ویژگیهای کیفی ذهن تعریف میشود و بر اساس همان classifier که آموزش (Train) داده میشود، این سیستم میتواند پیش بینیهایی انجام دهد. به شکلهای مختلفی از این classifier میتوان استفاده کرد. برای مثال شما موجودیتی را به عنوان ورودی میدهید و ویژگیهای کیفی آن موجودیت را به عنوان خروجی به صورت پیش بینی دریافت میکنید.
در واقع این پتنت به دنبال این است که ویژگیها را بر اساس اینکه چطور به هم مرتبط هستند، لینک کند و در طبقه بندیهای مختلف قرار دهد.
از انواع ری اکشنهای کاربران مثل:
1. لایک یا دیس لایک
2. به اشتراک گذاری اون موجودیتها
3. بوکمارک کردن
4. اضافه کردن به یک پلی لیست
5. کامنتهای یک پست بلاگ یا سوشال نتورکها
سیستم در شناسایی این ویژگیها با تعریف آستانههایی تعیین میکند که چطور یک ویژگی با یک موجودیت مرتبط است. مثلا اگر یک ویژگی مشخص در n کامنت آورده شد، پس این ویژگی با موجودیت E و امتیاز S مرتبط است.
حال ویژگیهای کیفی که برای هر موجودیت به روشهای گفته شده تولید میشود، میتواند بر اساس یک سلسله مراتبی مرتبط با آن ویژگی سازماندهی شود که با عنوان meta-attribute میتوان از آن نام برد.
برای مثال ویژگی "الهام بخش" دارای meta-attribute مثبت است و ویژگی دیگری مانند "ترسناک" دارای meta-attribute منفی است.
وقتی ما در مورد چیزی صحبت میکنیم که یک وجود فیزیکی واقعی دارد، میتواند یک شخص بازیگر یا یک رستوران یا یک محصول مثل گوشی باشد. این را میدانیم که اطلاعاتی از آنها در فضای اینترنت وجود دارد. این اطلاعات از طریق روشی به اسم “cyber proxy” پردازش میشود که نشان دهنده موجودیتهای واقعی در اینترنت است. مثلا فن پیج یک بازیگر یا نظراتی در مورد یک رستوران
اما یک نکته اینجا وجود دارد. وقتی در مورد ویژگیهای کیفی یک موجودیت صحبت میشود، در مورد موجودیتی مثل فن پیج بازیگر و یا نظرات یک رستوران نیست و در مورد خود موجودیت است.
حال برای مثال فرض بگیریم یک شخصی یک ویدیو جدید آپلود کرده یا یک مقاله خبری وجود دارد که هنوز هیچ کامنتی نگرفته است. در این صورت به وسیله این سیستم ما میتوانیم اطلاعاتی را در مورد موجودیتهای آن از جمله ویژگیهایش و اینکه چقدر مرتبط هستند، جمعآوری کنیم و سپس این اطلاعات را با خود موجودیت به وسیله افزودن یک برچسب یا رکورد در دیتابیس مرتبط کنیم. پس از موجودیتهای موجود در آن کمک میگیریم.
با این تفاصیل سیستم در طول زمان در بازههای زمانی مختلف دوباره و دوباره آموزش داده میشود و بر اساس این پروسه و تکرارها (iterations) عملکردش بهتر میشود.
این سیستم برای پردازش اینکه بفهمد مردم چه احساسی را در مورد یک موجودیت در کامنتها دارند، از این شیوه استفاده میکند:
1. ابتدا به کلماتی که کاربر در کامنت استفاده میکند، توجه میکند.
2. سپس این کلمات با لیستی از subjective attributes از قبل تهیه شده مقایسه میشود.
3. اگر کلمات به کار گرفته شده با کلماتی که در لیست پیش فرض قرار دارد تطابقی داشته باشند، تا میتواند به اندازهای برای ابتدا متوجه آن میشود. مثلا اگر کلمه "کاربردی" در کامنت استفاده شده باشد، میتوانیم متوجه شویم که آن موجودیت را دوست داشته اند.
4. همچنین از تکنیکهای دیگری برای فهمیدن جملات و ساختار آن استفاده میشود که کمک بکند منظور کاربر را در کامنت متوجه بشود. برای مثال از روشهای نحوی (Syntactic) و معنایی (Semantic) که شاخههایی از علم NLP هستند، استفاده میشود.
وقتی در مورد موجودیتهای خاصی صحبت میشود که مردم به صورت آنلاین به اشتراک میگذارند یا درباره آنها صحبت میکنند، میتوانیم به مکانهای مختلفی که آن موجودیت در آنجا وجود دارند، نگاهی داشته باشیم.
برای مثال اگر آهنگ یا ویدیویی در پلی لیست بسیاری از افراد باشد یا در فیدهای خبری آنها در شبکههای اجتماعیشان زیاد نمایش داده شود، میتوانیم از این طریق بگوییم که چقدر محبوب یا مهم هستند.
وقتی متوجه میشویم که این موارد چقدر مهم یا مرتبط هستند، چند مورد را در نظر میگیریم. ابتدا به فردی که آنها را به اشتراک میگذارد یا درباره آنها صحبت میکند نگاه میکنیم. اگر شخص به عنوان متخصص در نوعی خاص از موسیقی مثلا راک یا کلاسیک شناخته شود، ممکن است نظر او مهم تر از دیگران باشد. این سیستم به نحوه واکنش مردم، اینکه چیزی را لایک کرده اند یا به آن دیس لایک داده اند، توجه میکند.
همچنین این سیستم به این که آنها در چند مکان مختلف ظاهر شدهاند نیز اهمیت میدهد. به عنوان مثال اگر یک ویدیو در صدها پلی لیست باشد یا یک مقاله در صدها بوکمارک ذخیره شده باشد، احتمالا مهمتر و مرتبطتر با آن موجودیت است از ویدیویی که فقط در چند پلی لیست است یا مقالهای است که به تعداد کمی بوکمارک شده است.
تصور کنید در حال خواندن نظرات به صورت آنلاین هستید و میخواهید بفهمید که کدام کلمات مهمترین یا مرتبطترین هستند. فرض کنید در کل 40 نظر وجود دارد. کلمه "ترسناک" در 20 مورد از این نظرها ظاهر میشود، در حالی که کلمه "خشن" در 8 مورد ظاهر میشود. کدام کلمه مهمتر است؟
به هر کلمهای نمرهای به نام امتیاز مرتبط (Relevancy score) میدهد. در این مورد کلمه "ترسناک" فارغ از وزنهای دیگر، میتواند نمره بالاتری نسبت به خشن بگیرد و در اینجا برای قیاس راحتتر و بهتر نمره بین 0 تا 1 است. در برخی از موارد هم ممکن است تصمیم بگیرد برخی از کلمات به اندازه کافی مهم نیستند و آنها را نادیده بگیرد یا به این شکل که با تعریف آستانهای کلماتی که نمره آنها زیر این آستانه است در نظر گرفته نشوند.
وقتی در مورد یک موجودیت مانند یک ویدیو، تصویر، کلیپ صوتی یا مقاله صحبت میکنیم، میتوانیم از بردار ویژگی (Feature vector) برای توصیف جنبههای مختلف آن استفاده کنیم. Feature vector را به عنوان مجموعهای از اعداد در نظر بگیرید، که اطلاعات خاصی را در مورد موجودیت به ما میگوید. (برای مثال استفاده از RGB برای توصیف رنگها)
به عنوان مثال اگر یک کلیپ ویدیویی یا تصویری داریم، بردار ویژگی میتواند شامل اعدادی در مورد رنگ، بافت و روشنایی آن باشد.برای یک mp3 این بردار میتواند حاوی ویژگیهایی مثل میزان صدا، فرکانسها، لحن گوینده و غیره باشد. برای یک سند متنی بردار ویژگی میتواند شامل اعدادی باشد که کاربرد کلمه، طول جمله، سبک متن و موارد دیگری را نشان دهد.
برای پیش بینی در مورد موجودیتها همانطور که گفته شد ، از یک Classifier آموزش دیده استفاده میشود. در واقع این Classifier ، بردار ویژگی را به عنوان ورودی میگیرد و subjective attributes و Relevancy score را به عنوان خروجی میدهد.
پس subjective attributes ویژگیهایی هستند که به نظرات یا احساسات شخصی بستگی دارند و Relevancy score به ما میگوید که موجودیت در یک زمینه خاص چقدر مرتبط یا مهم است.
در نهایت، این ویژگیهای ذهنی پیش بینی شده و امتیازات مرتبط طبق خروجی Classifier با موجودیت در ارتباط هستند. سیستم این کار را میتواند با افزودن برچسب به موجودیت یا با ذخیره اطلاعات در جداول دیتابیس انجام دهد.
بنابراین به زبان ساده از اعداد برای توصیف جنبههای مختلف یک موجودیت استفاده میشود. از یک برنامه کامپیوتری برای پیش بینی بر اساس آن اعداد استفاده میکند و سپس آن پیش بینیها را با موجودیت مرتبط میکند.
راه دیگری برای پی بردن به این ویژگی و اهمیتشان برای موجودیتها وجود دارد. بعضی از این کارها توسط یک کامپیوتر اصلی انجام میشود، اما قسمتی وجود دارد که توسط دستگاههای دیگر انجام میشود.
ابتدا مجموعه ای از ویژگیها برای یک موجودیت ساخته میشود. یک برنامه کامپیوتری از قبل آموزش داده شده از این ویژگیها برای پیش بینی ویژگیهای کیفی و اهمیت آنها برای موجودیت استفاده میکند. سپس ویژگیهای پیش بینی شده به کاربر پشنهاد میشود، مانند شخصی که موجودیت E را آپلود کرده است. کاربر میتواند با انتخاب از بین موارد پیشنهادی یا اضافه کردن موارد جدید با استفاده از یک صفحه وب، نظرات خود را در مورد ویژگیهای کیفی ارائه بدهد.
هنگامی که شخصی اطلاعات جدیدی را به یک سیستم اضافه میکند، به آن یک امتیاز پیش فرض داده میشود تا نشان دهد چقدر مرتبط و مهم است. امتیاز از 0 تا 1 متغییر است که 1 بالاترین آن است.
امتیاز پیش فرض بستگی به شخصی دارد که اطلاعات را اضافه میکند. به عنوان مثال کسی واقعا در پیشنهاد دادن چیزهای مختلف (بر اساس تاریخچه اون) خوب باشد، ممکن است به پیشنهادات او امتیاز 1 داده شود.اگر مثلا تا حدودی خوب باشد، به او فرضا امتیاز پیش فرض 0.8 داده شود.
اگر شخص تصمیم گرفت که هر یک از Subjective attribute پیشنهادی را با انتخاب نکردن آن حذف کند، آنچه حذف شده ذخیره میشود و از آن به عنوان نمونهای برای بهبود سیستم استفاده میشود.
منابع:
https://www.seobythesea.com/2022/05/identifying-subjective-attributes-of-entities/
https://patents.google.com/patent/US9811780B1/en