"אנו משתדלים יותר" – שימושי אחזור מידע באתר השאלות והתשובות השני בגדלו בעולם

יובל פיינשטיין 15.01.2009 09:50
"אנו משתדלים יותר" – שימושי אחזור מידע באתר השאלות והתשובות השני בגדלו בעולם - כרך 15


האתר http://wiki.answers.com מכיל כשבעה מיליון שאלות ששאלו המבקרים באתר.זה האתר השני בגדלו בעולם של שאלות ותשובות, אחרי Yahoo! Answers. השפה העיקרית של השאלות היא אנגלית. מטרת האתר לספק למשתמשי האתר דרך נוחה לשאול שאלות ולקבל תשובות - מיידית אם התשובה כבר באתר, או בעתיד אם השאלה עדיין לא נענתה. השאלות מאורגנות לפי קטגוריות במבנה היררכי. כל שאלה יכולה להופיע בעד שלוש קטגוריות. כיום יש יותר מארבעת אלפים קטגוריות, למשל: דובי פנדה, מתכונים, תולדות הכדורסל, ארגנטינה. באתר כארבע מאות מפקחים מתנדבים – רובם משגיחים על השאלות בקטגוריה מסוימת, ומנסים לארגן ולהשיב לשאלות אלה.



אתר ANSWERS עוסק בשאלות ותשובות. האתר מצליח. עם הצלחתו הוא גדל. הגידול במספר השאלות והתשובות מביא איתו אתגרים. נתאר מספר אתגרים הקשורים בחיפוש, ואיך אנו מתכוונים להשתמש במנוע חיפוש שפיתחנו כדי להתמודד איתם.

האתר http://wiki.answers.com  מכיל כשבעה מיליון שאלות ששאלו המבקרים באתר. זה האתר השני בגדלו בעולם של שאלות ותשובות, אחרי Yahoo! Answers. השפה העיקרית של השאלות היא אנגלית. (עוד נשוב לנקודה זו בהמשך). מטרתנו לספק למשתמשי האתר דרך נוחה לשאול שאלות ולקבל תשובות - מיידית אם התשובה כבר באתר, או בעתיד אם השאלה עדיין לא נענתה.

השאלות מאורגנות לפי קטגוריות במבנה היררכי. כל שאלה יכולה להופיע בעד שלוש קטגוריות. כיום יש יותר מארבעת אלפים קטגוריות, למשל: דובי פנדה, מתכונים, תולדות הכדורסל, ארגנטינה.

 באתר כארבע מאות מפקחים מתנדבים – רובם משגיחים על השאלות בקטגוריה מסוימת, ומנסים לארגן ולהשיב לשאלות אלה.

 

מסלול שאלה ותשובה

משתמשת מקלידה שאלה באתר WikiAnswers. היא יכולה לשכתב את השאלה עד הגעה לנוסח הרצוי, וכך יכולים לעשות גם משתמשים אחרים, למשל כדי לתקן שגיאות איות או דקדוק, להבהיר את הניסוח או לכתוב ניסוח שקול אחר. היא יכולה גם לתת לשאלה קטגוריות.

אם לא נענתה כבר השאלה בניסוח אחר, היא ממתינה למי שיענה עליה. משתמשת יכולה לחפש שאלה לפי מילות מפתח, לראות את השאלה ברשימת שאלות חדשות או למצוא אותה באחת הקטגוריות. היא כותבת את התשובה באתר. גם את התשובה ניתן לערוך ולשפר פעמים רבות לפי עקרונות הויקי. ניתן גם להוסיף קישורים לאתרי אינטרנט המבהירים או מבססים את התשובה. מטרת האתר היא שיפור הדרגתי באיכות התשובות, כך שלבסוף תהיה תשובה טובה לשאלה טובה.

 

אתגרי אחזור מידע

האתגרים בפיתוח האתר הם פועל יוצא של גדלו. גידול מסיבי של אתר אינטרנט מטיל עומס גם על החומרה, בסיסי הנתונים, ותוכנת האתר, וגם על מי שמנסה לשמור על התוכן באתר מאורגן וברמה סבירה. נעסוק במספר אתגרים:

א.      קטגוריזציה אוטומטית – כאמור, השאלות מאורגנות לפי קטגוריות. בעץ הקטגוריות יש יותר מארבעת אלפים קטגוריות. איש אינו מכיר את כולן. נרצה ששאלה תנותב אוטומטית לקטגוריות המתאימות לה. ראשית, כדי לאפשר לאנשים המתמחים בקטגוריה מסויימת להשיב לשאלה; סביר שייקל על מומחים בתחום להשיב לשאלות מהתחום. שנית, כדי לרכז שאלות הקשורות אחת לשניה במקום קרוב, וכך להקל על הדפדוף באתר. שלישית, יש משתמשים המנויים על רשימת שאלות בקטגוריה מסויימת ומקבלים עדכון על כל שאלה חדשה בקטגוריה.

ב.       מציאת שאלות דומות –  נרצה להציע למי ששואל שאלה רשימה של שאלות דומות. זאת, כדי לאפשר לשואל לקבל תשובה מיידית אם ניסוח שונה של אותה שאלה כבר מופיע באתר עם תשובה, וגם כדי למנוע את הצורך להשיב מספר פעמים לגירסאות שונות של אותה שאלה.

ג.        בינאום – מטרתנו להרחיב את האתר לטיפול בשאלות ובתשובות בשפות שאינן אנגלית. השימוש באנגלית הוא רק ב-29% מהתקשורת באינטרנט (http://www.internetworldstats.com/stats7.htm), ואתרים בשפות אחרות צומחים במהירות גדולה.

ד.      סינון  זבל והודעות פוגעניות –  בכל אתר תוכן מבוסס-משתמשים (UGC) יש משתמשים המכניסים פרסומות, התבטאויות פוגעניות וסתם שטויות, למשל תשובה שאינה רלבנטית לשאלה. ברצוננו לסייע לקהילת המשתמשים והמפקחים לאתר מסמכים כאלה ולתקן אותם.

ה.      קישור עם Answers.com Answers.com הוא אתר יעץ אנציקלופדי, המשלים את WikiAnswers. שילוב הדוק יותר בין האתרים יתרום למשתמשים בשניהם.

 

אטלס – מנוע חיפוש שאלות ותשובות

אטלס הוא מנוע חיפוש של שאלות ותשובות המבוסס על Lucene. הוא מתבסס על מפתוח כל השאלות, התשובות והקטגוריות באתר WikiAnswers.

 

תכנון

מתחילתו ועד היום השתמש WikiAnswers ביכולת החיפוש הטקסטואלי המובנית במסד הנתונים.  הבעיות העיקריות בתכונה זו של מסד הנתונים הן צריכת חישוב גבוהה, המכבידה על השרתים, ודיוק לא מספיק של תוצאות החיפוש.

החלטנו לבנות מנוע חיפוש נפרד, שירוץ על שרתים ייעודיים (Service Oriented Architecture – SOA). ההתמקדות בחיפוש הטקסטואלי מאפשרת לייעל אותו ולא להתפשר בגלל שימושים אחרים בתוכנה.

Lucene, עליה ביססנו את מנוע החיפוש, היא ספריית חיפוש טקסטואלי הכתובה בג'אווה. זה פרויקט קוד פתוח, הנהנה מקהילת מפתחים ומשתמשים גדולה ומסורה, ונכלל כיום בפרויקט Apache. Lucene מספקת שירותי אחזור מידע מתוחכמים ומהירים, זאת במחיר של עיסוק בהרבה פרטי יישום ברמה בסיסית.    

בגלל גודל האתר וציפיות להמשך גדילתו, תכננו לחלק את האינדקס הן חלוקה אנכית (לפי נושאים) והן חלוקה אופקית (בה פריטי מידע מאותו סוג ינותבו למחשבי אינדקס שונים). כמו-כן, בגלל הדינאמיות של האתר, נרצה לעדכן את האינדקס באופן שוטף במקום  לבנותו מאפס כל פעם. הגרסה הנוכחית מכילה אינדקס של מיליוני שאלות, בזמן גישה של כמה עשרות מילי שניות.

 

מענה לאתגרים

א.      קטגוריזציה אוטומטית:

נרצה שכל שאלה תנותב לקטגוריות המתאימות לה ביותר. מצד שני נרצה עומס מינימאלי על תהליך הכנסת השאלה. לשם כך, עם הכנסת שאלה חדשה, מנסים להציע אוטומטית מספר קטגוריות המתאימות לשאלה. האופן בו פועלת הקטגוריזציה האוטומטית הוא:

1.      מחפשים שאלות ותשובות דומות לטקסט של השאלה.

2.      לכל שאלה/תשובה כזו יש רשימת קטגוריות קיימות, והיא "מצביעה" בעד הקטגוריות שלה. משקל ההצבעה הוא הציון שנתן אטלס להתאמה בין השאלה החדשה לשאלה הקיימת.

3.      מוצעות הקטגוריות שזכו בהצבעה – שהמשקל המצטבר שלהן הוא הגבוה ביותר, ומעל סף מסוים.

שיטת הקטגוריזציה היא מטיפוס K-nearest neighbor classification.

יתרונות: התאמה אוטומטית לקטיגוריות חדשות, כל עוד שומרים על האינדקס מעודכן. אפשרות להתמודד עם מספר גבוה של קטיגוריות.

חסרונות: אין למידה מהיזון חוזר של משתמשים; השיטה עלולה להגביר סיווגים גרועים.

דוגמא: השאלה:

Who first wrote fables?

מקבלת את הקטגוריות:

Ancient History, Fables and Mythology, Ancient Greece

 

 

ב.       מציאת שאלות דומות:

כדי לענות על כל שאלה בזמן הקצר ביותר האפשרי, נבדוק עם הכנסת השאלה באם יש כבר במערכת שאלות דומות לה. אם המשתמש יחליט ששאלה קיימת זהה במשמעותה לשאלה ששאל, הוא יכול לאחד את שתי השאלות; במקרה זה, אם כבר יש תשובה לשאלה הקיימת, היא תוצג למשתמש. אחרת – עדיין חסכנו למשתמשת שתשיב על השאלה את הצורך להשיב שתי תשובות זהות.

כדי להציג רשימת שאלות דומות נחפש את טקסט השאלה החדשה באטלס. נחזיר שאלות עם רמת דמיון גבוהה מסף שייקבע בצורה אמפירית.

דוגמא: לשאלה:

Where in Israel can you go white water rafting?

מוצעות השאלות הדומות:

Where would you go white water rafting?

When is the Best time to go white water rafting?

What is scientific about white water rafting?

How dangerous is white water rafting?

When do you back paddle when you are white water rafting?


ג.
       
בינאום:

רוב התעבורה באתר היא כרגע באנגלית. בכוונתנו להוסיף אתרים במתכונת WikiAnswers שממשק המשתמש, השאלות, התשובות, והקטגוריות בהם יהיו בשפות אחרות. הבינאום מעלה מספר אתגרי איחזור מידע וביניהם:

1.      זיהוי אוטומטי של שפת השאלה – אם זיהינו שאלה בשפה שיש לנו אתר ייעודי בשבילה, נרצה להפנות את המשתמש (ואת השאלה) לאתר המתאים. מספר אפשרויות לזיהוי שפה קיימות בעולם:

                                                  i.      ספריות כגון  TextCat, המשתמשות בחישוב "חתימה" של הטקסט - רצפי תוים אופייניים, ומציאת מרחק מחתימות אופייניות.

                                                ii.      שירות של גוגל, המשתמש בסטטיסטיקה של הטקסט.

                                              iii.      שיטה המשתמשת באטלס – נמצא קטגוריות של שאלות ותשובות קיימות הדומות לשאלה החדשה, ונסיק שפה על-פי הקטגוריות.

כל השיטות פועלות היטב לטקסט ארוך; פחות מזה - לשאלות קצרות.  שילוב בין מספר שיטות נותן תוצאות טובות יותר.

2.      מיפתוח וחיפוש בשפות שאינן אנגלית – בסיס העבודה עם Lucene  הוא אובייקט הנקרא Analyzer. הוא מגדיר כיצד מתרגמים טקסט גולמי לסמלים אותם מאנדקסים. הניתוח מושפע מאוד מהמורפולוגיה של השפה הממופתחת, ולכן יהיה שונה לכל שפה. גם רשימת המילים השכיחות בכל שפה היא שונה. ככל הנראה נצטרך לבנות אטלס נפרד לכל שפה.

3.      טיפול בקטגוריות לא-אנגליות – לכל שפה נבנה היררכיה נפרדת של קטגוריות. התאמת אטלס לשפות המטופלות באתר תיתן גם מענה לקטגוריזציה אוטומטית בשפות אלה.

 

ד.       סינון זבל והודעות פוגעניות:

בכל אתר  בו התוכן נוצר ע"י משתמשים יש שיעור מסוים של הודעות המכילות גסויות, זבל, וכו'.  אפשר להשתמש בכלים אוטומטיים כדי לזהות שאלות ותשובות בעייתיות. הפתרונות האפשריים בכמה רמות סיבוך:

1.      חיפוש מילים מרשימת  "מילים רעות"

2.      חיפוש צירופי מילים מרשימה כזו

3.      סינון בייסיאני,או על-ידי מסווג אחר, של הודעות.

ניתן למחוק את ההודעות הללו אוטומטית, אך רצוי להעבירן לביקורת אצל מפקח.


ה.
     
קישור עם Answers.com:

אתר היעץ http://www.answers.com (להלן Reference Answers) מפותח גם הוא ע"י חברת Answers.com. במקרים רבים יכולה משתמשת השואלת שאלה ב-WikiAnswers לקבל תשובה או חלק ממנה מ-Reference Answers. בכיוון השני, משתמשת ב-Reference Answers יכולה לקבל מידע משלים משאלות ותשובות ב-WikiAnswers. כיום נעשה קישור ידני בין שני האתרים.

מנוע חיפוש יכול לסייע ב:

1.      קישור אוטומטי/השבה אוטומטית מתוך Reference Answers: נאנדקס את Reference Answers. בהינתן שאלה חדשה, נחפש ערכים המכילים מילות מפתח מהשאלה בתוך Reference Answers. מעל סף מסוים, נקשר אל ערכים אלה; מעל סף גבוה יותר, נכניס את הערך בתור תשובה.

2.      קישור אוטומטי מערך אנציקלופדי לרשימת שאלות קשורות: נעבור על ערך ב-Reference Answers ונחפש שאלות ב-WikiAnswers בעלות מילות מפתח הקשורות אליו. שוב, נקשר לשאלות שציונן מעל סף מסוים.

 הקישור בין האתרים גם יקל על המשתמש, שלא תמיד מבין את ההבדל בין האתרים ובין חיפוש לפי כותרות מושגים לבין שאלת שאלה – במיוחד לאור שם האתר.

 

 

סיכום

הראינו כיצד אטלס, מנוע חיפוש באתר השאלות והתשובות WikiAnswers, מסייע להוספת תכונות לאתר. בעזרתו יש אוטומציה של משימות חשובות, אך מייגעות לעיתים, של משתמשי האתר. השילוב של ספרית Lucene ושל מאגר מידע של מיליוני שאלות ותשובות מאפשר דיוק ועדכניות גבוהים.

__________________________________________________________________
למצגת ההרצאה


attachment 152-answers-012008.pdf



הוספת תגובה
  מגיב אנונימי
שם או כינוי:
חסימת סיסמה:
  זכור אותי תמיד במחשב זה

כותרת ראשית:
אבקש לקבל בדואר אלקטרוני כל תגובה לטוקבק שלי
אבקש לקבל בדואר אלקטרוני כל תגובה למאמר הזה