עיבוד שפות טבעיות – שיעור חמישי N-grams with smoothings
description
Transcript of עיבוד שפות טבעיות – שיעור חמישי N-grams with smoothings
עיבוד שפות טבעיות – שיעור חמישיN-grams with smoothings
יעל נצר
מדעי המחשב
אוניברסיטת בן גוריון
תזכורת
מסתכלים על ההסתברות של משפט כהסתברות של רצף מילים:
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)
תזכורת – הנחה מרקובית
הנחה מרקובית מצמצמת את החישוב של הסתברות מילים )כלומר הנחה מרקובית Nהמשפט לרצף של
(.N-1מסדר P(I)*P(want|I)*P(to|I want)*
P(eat|want to) *P(British|to eat) *P(food|eat British)
ככל שמסתכלים על מספר מילים גדול יותר לפני המילה הנוכחית, ההערכה מדוייקת יותר.
ככל שמסתכלים על יותר מילים, קשה יותר לקבל נתונים סטטיסטיים מדוייקים.
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.
הערה על שימוש בלוגים
נניח כי נתונות ההסתברויות: 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פה תהיה )האנטי-לוג(.
Bi-gram grammar from BERP
<s> I.25I want.32want to.65to eat.26British
food.60
<s>I’d.06I would.29want a.05to have.14British restauran
t
.15
<s>Tell
.04I don’t.08want some
.04to spend.09British cuisine
.01
<s>I’m
.02I have.04want thai.01to be.02British lunch
.01
Bi-gram counts of seven words
bi-grams frequency
כמה נקודות חשובות
איך ניתן לחשב הסתברות של אירוע שטרם נצפה?
training and testing setsקורפוס – Training set הקורפוס ממנו נלקחים –
התדירויות והנתונים. קב' אימון כמודל שפה – . וקב' הבחינה – n-gramsממנו נלקחות ספירת ה
עליה מעריכים את המודל שנבנה.
שיטה טובה יותר – חלוקה לשלוש
Training setDev Test Set נתונים עליהם מתבצעת –
של המודלfine-tuningההערכה וה-Test set הקבוצה הסופית לבחינת המודל –
והערכתועדיף: מכיוון שכאשר משתמשים בקבוצת
כדי לאפיין את המודל בעצמו, testingה-הופכים אותו בעצם לחלק מקבוצת האימון.
Cross validation
:cross validationאפשרות נוספת היא קבוצותNחלק את הנתונים ל-
תתי קבוצותN-1אמן את המודל על
-יתNובדוק על הקבוצה ה-
הקבוצותNחזור על הפעולה עבור כל אחת מ-
התוצאה תהיה הממוצע של המודלים.
Maximum Likelihood Estimation - MLE
הרעיון: תדירות הופעת מילה בקורפוס היא ה- MLE של הופעת המילה בשפה ככלל, או בשפה
40פשוטה: נראה הכי הגיוני שאם מילה מופיעה פעמים בתוך מליון מילים, אזי תדירותה בשפה
.0.00004היא
Bi-gram של MLEמדד ה-)מדוע מספיק לחלק את התוצאה במספר ההופעות
של מילה בקורפוס?(
Smoothing – 1 add-one
BERPטבלת ההופעות ב-
-ADD אחרי ה-BERPטבלת ההופעות ב-ONE
ADD_ONE בעיות ב-
שינוי חד מדי בהסתברויות שאינן אפס, מכיוון שמסה גדולה מדי הועברה להסתברויות האפס.
הערכה מוטעית משמעותית ביחס להסתברויות האפסיות.
לפעמים אפילו יותר גרוע מאשר בשיטות שהן .smoothingללא
Witten Bell Discounting
הרעיון הבסיסי הוא – מילה שלא נצפתה עדיין ( ההסתברות שלה לקרות היא כמו bi-gram)או
של התדירות של מילה/צירוף שטרם נראה בקורפוס.
מהו צירוף שטרם נראה?
בעצם צירוף שנצפה בפעם הראשונה.
של הצירופים typeכלומר – מספר ה'טיפוסים' בקורפוס בסך הכל.
בתוספת מספר tokensמנרמלים במספר ה- מכיוון שרואים את הקורפוס כרצף של typesה-
.type ואירוע לכל tokenאירועים – אירוע לכל
V הוא מספר הטיפוסים שכבר ראינו, ו-Tכאן – הוא סך הטיפוסים שנוכל לראות בסך הכל.
רוצים לראות מהי ההסתברות של כל אחד ואחד מהזוגות – וזאת על ידי חלוקה במספר הופעות האפסים.
המשך
פעמים, כל 0 שנספרו n-grams סך ה-Zיהי אחד כזה מקבל עכשיו את חלקו השווה במסת
ההסתברות החדשה:
-Nלשם כך מפחיתים את ההסתברות של ה-gramsשכבר נצפו
Discounting
קצת על אנטרופיה
Entropy -ו preplexity הם שני מדדים חשובים .N-gramsלחישוב מודלי
שייכים למה שנקרא – תורת האינפורמציהאנטרופיה היא מידה של אינפורמציה – ומדד חשוב
בעיבוד שפות טבעיות, כמו גם זיהוי קול.משמש להערכת הדמיון, למשל בין דקדוק או מודל נתון
ובין השפה שאותו מייצג.בהנתן, למשל, שני דקדוקים וקורפוס, ניתן להעריך בעזרת האנטרופיה מי מייצג טוב יותר את הקורפוס.
חישוב אנטרופיה
Xחישוב האנטרופיה מניח קיום משתנה אקראי שמקבל ערכים אפשריים )מילים, אותיות, חלקי דיבר
.p(x)וכו'(, ופונקצית הסתברות כלשהי
היא ע"פ ההגדרהXהאנטרופיה של משתנה אקראי
H(X)= -Σx in Xp(x)log2p(x)( 2אנטרופיה נמדדת בביטים )השימוש בלוג
אפשר לראות אנטרופיה כחסם תחתון למספר הביטים הנדרשים לייצוג מידע בסכמת קוד אופטימלית.
דוגמא
רוצים להמר במירוץ סוסים, אבל לשלוח את ההודעות לסוכן מרחוק.
יש שמונה סוסים במירוץ.דרך אחת לקידוד היא שימוש בייצוג בינארי כלומר
– וכולי, 010 – 2 , סוס מספר 001 – 1 סוס מספר
.000 יהיה 8ואילו סוס מספר אם כל היום נהמר בקוד של שלושה ביטים, בממוצע
ביטים לכל מירוץ.3נשלח
האם ניתן לעשות טוב יותר?
נניח שההסתברות עבור כל אחד מהסוסים שונה –
– ½ 1סוס
– ¼ 2סוס
1/8 – 3סוס
1/16 – 4סוס
1/64 – 5,6,7,8סוסים
האנטרופיה עבור ההימור
משתנה אקראי שמקבל את ערכי הסוסים, 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
במקרה של שוויון בהסתברויות
אם נסתכל על המקרה הראשון שלכל סוס ניתנה – האנטרופיה 1/8הסתברות שווה כלומר
בבחירת הסוס היא
H(X)= -i=1,81/8log1/8 =-log1/8=3 bits
כלומר, האנטרופיה כאן עקבית עם מה שכבר ידענו.
Preplexity
Preplexity 2 מוגדר כערךH
באופן אינטואיטיבי, זהו ממוצע "ממושקל“weighted של מספר ההחלטות הממוצע
שהמשתנה האקראי צריך להחליט – כלומר: סוסים, שלכל אחד מהם הסתברות 8בחירה בין
.8 כלומר 23 הוא preplexityשווה, ה-עבור הטבלה בה לכל סוס הסתברות שונה –
.4כלומר 22הערך הוא
אנטרופיה של רצף
כשמסתכלים למשל על מודל של שפה, מסתכלים על רצפים של מילים ומשתנה אקראי אחד לא
מספיק.
ניתן להניח קיום משתנה אחד שערכיו הם כל w1 w2….. wnהרצפים האפשריים
כאנטרופיה של הרצף entropy rateניתן להגדיר על ידי חלוקה של האנטרופיה במספר המילים ברצף
6.47 226עמ'
אבל כאשר מחשבים אנטרופיה של שפה, צריך להחשיב גם רצפים באורך אינסופי
Shanon-McMillan-Breiman theorem גורסת שאם שפה היא רגולרית באופן כלשהו, אזי ניתן להגדיר את
האנטרופיה כ-כלומר אם לוקחים רצף ארוך מספיק במקום לסכם את סך כל
הרצפים האפשריים.ההנחה כאן היא שאם לוקחים רצף ארוך מספיק, אזי הוא
יכול רצפים קצרים, וכל אחד מהרצפים הקצרים האלה יופיע בארוך באותו יחס על פי הסתברותו.
אם stationaryמודל הסתברותי נקרא קבוע ההסתברות שנתנות לרצף אינן משתנות ביחס לזמן
Time index .t+1 שקולות לאלה בזמן tכלומר, ההסתברויות בזמן מודלי מרקוב, הם קבועים.
מכיוון stationaryמצד שני שפה טבעית אינה שקיימות בשפה תלויות ממרחק גדול יותר ותלויות-זמן.
לכן, מודל סטטיסטי כזה נותן רק הערכה ביחס לתפוצות ולאנטרופיה של השפה.
לסיכום
קבלת החלטות שאינן נכונות או מדוייקות אך נוחות ומפשטות , ניתן לחשב אנטרופיה של
תהליך הסתברותי על ידי לקיחת דוגמא ארוכה הסתברות שלו.logמאוד של פלט, וחישוב ה
בשיעורים הבאים נראה למה רוצים לעשות את זה וגם איך לחשב.