1 / 37

עיבוד שפות טבעיות – שיעור חמישי N-grams with smoothings

עיבוד שפות טבעיות – שיעור חמישי N-grams with smoothings. יעל נצר מדעי המחשב אוניברסיטת בן גוריון. תזכורת. מסתכלים על ההסתברות של משפט כהסתברות של רצף מילים: P( I want to eat British food ) שימוש בחוק השרשרת:

yakov
Download Presentation

עיבוד שפות טבעיות – שיעור חמישי N-grams with smoothings

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. עיבוד שפות טבעיות – שיעור חמישיN-grams with smoothings יעל נצר מדעי המחשב אוניברסיטת בן גוריון

  2. תזכורת • מסתכלים על ההסתברות של משפט כהסתברות של רצף מילים: • P(I want to eat British food) • שימוש בחוק השרשרת: • P(I)*P(want|I)*P(to|I want)*P(eat|I want to) *P(British|I want to eat) *P(food|I want to eat British)

  3. תזכורת – הנחה מרקובית • הנחה מרקובית מצמצמת את החישוב של הסתברות המשפט לרצף של N מילים (כלומר הנחה מרקובית מסדר N-1). • P(I)*P(want|I)*P(to|I want)* • P(eat|want to) *P(British|to eat) *P(food|eat British) • ככל שמסתכלים על מספר מילים גדול יותר לפני המילה הנוכחית, ההערכה מדוייקת יותר. • ככל שמסתכלים על יותר מילים, קשה יותר לקבל נתונים סטטיסטיים מדוייקים.

  4. דוגמא – Berkeley Restaurant Project - BERP • פרוייקט שנעשה באוניברסיטת ברקלי לייעוץ מסעדות מבוסס-קול • המערכת מציגה מידע רלוונטי מתוך בסיס נתונים על המסעדות המקומיות על פי שאילתות מסוג: • I’d like to eat dinner someplace nearby. • I’m looking for a good place to eat breakfast. • I’m looking for Cantonese food.

  5. הערה על שימוש בלוגים • נניח כי נתונות ההסתברויות: • P(<s>|I)*P(want|I)*P(to|want)* P(eat|to) *P(British|eat) *P(food| British)=0.25*0.32*0.65*0.26*0.002*0.60 = 0.000016 • מכיוון שההסתברויות קטנות מ-1 מכפלתן קטנה ככל שמספר המוכפלים גדל, מה שיכול להביא ל-numerical underflow. • לכן, נהוג להעביר את החישוב למרחב לוג – (ברירת המחדל פה תהיה log2) ואז, מחזירים את התוצאה למספר המקורי (האנטי-לוג).

  6. Bi-gram grammar from BERP

  7. Bi-gram counts of seven words

  8. bi-grams frequency

  9. כמה נקודות חשובות

  10. איך ניתן לחשב הסתברות של אירוע שטרם נצפה? • קורפוס – training and testing sets • Training set – הקורפוס ממנו נלקחים התדירויות והנתונים. קב' אימון כמודל שפה – ממנו נלקחות ספירת הn-grams. וקב' הבחינה – עליה מעריכים את המודל שנבנה.

  11. שיטה טובה יותר – חלוקה לשלוש • Training set • Dev Test Set – נתונים עליהם מתבצעת ההערכה וה-fine-tuning של המודל • Test set – הקבוצה הסופית לבחינת המודל והערכתו • עדיף: מכיוון שכאשר משתמשים בקבוצת ה-testing כדי לאפיין את המודל בעצמו, הופכים אותו בעצם לחלק מקבוצת האימון.

  12. Cross validation • אפשרות נוספת היא cross validation: • חלק את הנתונים ל-N קבוצות • אמן את המודל על N-1 תתי קבוצות • ובדוק על הקבוצה ה-N-ית • חזור על הפעולה עבור כל אחת מ-N הקבוצות • התוצאה תהיה הממוצע של המודלים.

  13. Maximum Likelihood Estimation - MLE • הרעיון: תדירות הופעת מילה בקורפוס היא ה- MLE של הופעת המילה בשפה ככלל, או בשפה פשוטה: נראה הכי הגיוני שאם מילה מופיעה 40 פעמים בתוך מליון מילים, אזי תדירותה בשפה היא 0.00004. • מדד ה-MLE של Bi-gram (מדוע מספיק לחלק את התוצאה במספר ההופעות של מילה בקורפוס?)

  14. Smoothing – 1 add-one

  15. טבלת ההופעות ב-BERP

  16. טבלת ההופעות ב-BERP אחרי ה-ADD-ONE

  17. בעיות ב-ADD_ONE • שינוי חד מדי בהסתברויות שאינן אפס, מכיוון שמסה גדולה מדי הועברה להסתברויות האפס. • הערכה מוטעית משמעותית ביחס להסתברויות האפסיות. • לפעמים אפילו יותר גרוע מאשר בשיטות שהן ללא smoothing.

  18. Witten Bell Discounting • הרעיון הבסיסי הוא – מילה שלא נצפתה עדיין (או bi-gram) ההסתברות שלה לקרות היא כמו של התדירות של מילה/צירוף שטרם נראה בקורפוס. • מהו צירוף שטרם נראה? • בעצם צירוף שנצפה בפעם הראשונה. • כלומר – מספר ה'טיפוסים' type של הצירופים בקורפוס בסך הכל.

  19. מנרמלים במספר ה-tokens בתוספת מספר ה-types מכיוון שרואים את הקורפוס כרצף של אירועים – אירוע לכל token ואירוע לכל type. • כאן – T הוא מספר הטיפוסים שכבר ראינו, ו-V הוא סך הטיפוסים שנוכל לראות בסך הכל.

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

  21. המשך • יהי Z סך ה-n-grams שנספרו 0 פעמים, כל אחד כזה מקבל עכשיו את חלקו השווה במסת ההסתברות החדשה: • לשם כך מפחיתים את ההסתברות של ה-N-grams שכבר נצפו

  22. Discounting

  23. קצת על אנטרופיה • Entropy ו-preplexity הם שני מדדים חשובים לחישוב מודלי N-grams. • שייכים למה שנקרא – תורת האינפורמציה • אנטרופיה היא מידה של אינפורמציה – ומדד חשוב בעיבוד שפות טבעיות, כמו גם זיהוי קול. • משמש להערכת הדמיון, למשל בין דקדוק או מודל נתון ובין השפה שאותו מייצג. • בהנתן, למשל, שני דקדוקים וקורפוס, ניתן להעריך בעזרת האנטרופיה מי מייצג טוב יותר את הקורפוס.

  24. חישוב אנטרופיה • חישוב האנטרופיה מניח קיום משתנה אקראי X שמקבל ערכים אפשריים (מילים, אותיות, חלקי דיבר וכו'), ופונקצית הסתברות כלשהי p(x). • האנטרופיה של משתנה אקראי X היא ע"פ ההגדרה • H(X)= -Σx in Xp(x)log2p(x) • אנטרופיה נמדדת בביטים (השימוש בלוג 2) • אפשר לראות אנטרופיה כחסם תחתון למספר הביטים הנדרשים לייצוג מידע בסכמת קוד אופטימלית.

  25. דוגמא • רוצים להמר במירוץ סוסים, אבל לשלוח את ההודעות לסוכן מרחוק. • יש שמונה סוסים במירוץ. • דרך אחת לקידוד היא שימוש בייצוג בינארי כלומר – סוס מספר 1 – 001 , סוס מספר 2 – 010 וכולי, ואילו סוס מספר 8 יהיה 000. אם כל היום נהמר בקוד של שלושה ביטים, בממוצע נשלח 3 ביטים לכל מירוץ.

  26. האם ניתן לעשות טוב יותר? • נניח שההסתברות עבור כל אחד מהסוסים שונה – • סוס 1 – ½ • סוס 2 – ¼ • סוס 3 – 1/8 • סוס 4 – 1/16 • סוסים 5,6,7,8 – 1/64

  27. האנטרופיה עבור ההימור • עבור X משתנה אקראי שמקבל את ערכי הסוסים, האנטרופיה נותנת לנו את החסם התחתון למספר הביטים: • H(X) = -i=1,8p(i)logp(i)= -1/2log1/2 – 1/4log1/4 – 1/8log1/8 –1/16log1/16 – 4(1/64log1/64) = 2 bits. • כלומר בממוצע ניתן להשתמש בשני ביטים למירוץ וזאת ניתן לעשות על ידי בניית קידוד על פי ההסתברות – ככל שההסתברות נמוכה יותר מספר הביטים גדל • לסוס עם ההסתברות הגדולה ביותר יהיה הקוד 0, ואחריו – 10, 110, 1110, 111100, 111101, 111110, 111111

  28. במקרה של שוויון בהסתברויות • אם נסתכל על המקרה הראשון שלכל סוס ניתנה הסתברות שווה כלומר 1/8 – האנטרופיה בבחירת הסוס היא • H(X)= -i=1,81/8log1/8 =-log1/8=3 bits • כלומר, האנטרופיה כאן עקבית עם מה שכבר ידענו.

  29. Preplexity • Preplexity מוגדר כערך 2H • באופן אינטואיטיבי, זהו ממוצע "ממושקל“ weighted של מספר ההחלטות הממוצע שהמשתנה האקראי צריך להחליט – כלומר: בחירה בין 8 סוסים, שלכל אחד מהם הסתברות שווה, ה-preplexity הוא 23 כלומר 8. • עבור הטבלה בה לכל סוס הסתברות שונה – הערך הוא 22 כלומר 4.

  30. אנטרופיה של רצף • כשמסתכלים למשל על מודל של שפה, מסתכלים על רצפים של מילים ומשתנה אקראי אחד לא מספיק. • ניתן להניח קיום משתנה אחד שערכיו הם כל הרצפים האפשריים w1 w2….. wn • ניתן להגדיר entropy rate כאנטרופיה של הרצף על ידי חלוקה של האנטרופיה במספר המילים ברצף • עמ' 226 6.47

  31. אבל כאשר מחשבים אנטרופיה של שפה, צריך להחשיב גם רצפים באורך אינסופי • Shanon-McMillan-Breiman theorem גורסת שאם שפה היא רגולרית באופן כלשהו, אזי ניתן להגדיר את האנטרופיה כ- • כלומר אם לוקחים רצף ארוך מספיק במקום לסכם את סך כל הרצפים האפשריים. • ההנחה כאן היא שאם לוקחים רצף ארוך מספיק, אזי הוא יכול רצפים קצרים, וכל אחד מהרצפים הקצרים האלה יופיע בארוך באותו יחס על פי הסתברותו.

  32. מודל הסתברותי נקרא קבוע stationary אם ההסתברות שנתנות לרצף אינן משתנות ביחס לזמן • Time index • כלומר, ההסתברויות בזמן t שקולות לאלה בזמן t+1. • מודלי מרקוב, הם קבועים. • מצד שני שפה טבעית אינה stationary מכיוון שקיימות בשפה תלויות ממרחק גדול יותר ותלויות-זמן. • לכן, מודל סטטיסטי כזה נותן רק הערכה ביחס לתפוצות ולאנטרופיה של השפה.

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

More Related