FMºÍFFMÄ£ÐÍÊÇ×î½ü¼¸ÄêÌá³öµÄÄ£ÐÍ£¬Æ¾½èÆäÔÚÊý¾ÝÁ¿±È½Ï´ó²¢ÇÒÌØÕ÷Ï¡ÊèµÄÇé¿öÏ£¬ÈÔÈ»Äܹ»µÃµ½ÓÅÐãµÄÐÔÄܺÍЧ¹ûµÄÌØÐÔ£¬ÂÅ´ÎÔÚ¸÷´ó¹«Ë¾¾Ù°ìµÄCTRÔ¤¹À±ÈÈüÖлñµÃ²»´íµÄÕ½¼¨¡£ÃÀÍŵãÆÀ¼¼ÊõÍŶÓÔڴDSPµÄ¹ý³ÌÖУ¬Ì½Ë÷²¢Ê¹ÓÃÁËFMºÍFFMÄ£ÐͽøÐÐCTRºÍCVRÔ¤¹À£¬²¢ÇÒÈ¡µÃÁ˲»´íµÄЧ¹û¡£±¾ÎÄÖ¼ÔÚ°ÑÎÒÃǶÔFMºÍFFMÔÀíµÄ̽Ë÷ºÍÓ¦ÓõľÑé½éÉܸøÓÐÐËȤµÄ¶ÁÕß¡£
ǰÑÔ
ÔÚ¼ÆËã¹ã¸æÁìÓò£¬µã»÷ÂÊCTR£¨click-through rate£©ºÍת»¯ÂÊCVR£¨conversion rate£©ÊǺâÁ¿¹ã¸æÁ÷Á¿µÄÁ½¸ö¹Ø¼üÖ¸±ê¡£×¼È·µÄ¹À¼ÆCTR¡¢CVR¶ÔÓÚÌá¸ßÁ÷Á¿µÄ¼ÛÖµ£¬Ôö¼Ó¹ã¸æÊÕÈëÓÐÖØÒªµÄÖ¸µ¼×÷Óá£Ô¤¹ÀCTR/CVR£¬Òµ½ç³£Óõķ½·¨ÓÐÈ˹¤ÌØÕ÷¹¤³Ì + LR(Logistic Regression)¡¢GBDT(Gradient Boosting Decision Tree) + LR[1][2][3]¡¢FM£¨Factorization Machine£©[2][7]ºÍFFM£¨Field-aware Factorization Machine£©[9]Ä£ÐÍ¡£ÔÚÕâЩģÐÍÖУ¬FMºÍFFM½üÄêÀ´±íÏÖÍ»³ö£¬·Ö±ðÔÚÓÉCriteoºÍAvazu¾Ù°ìµÄCTRÔ¤²â¾ºÈüÖжáµÃ¹Ú¾ü[4][5]¡£
¿¼Âǵ½FFMÄ£ÐÍÔÚCTRÔ¤¹À±ÈÈüÖеIJ»Ë×Õ½¼¨£¬ÃÀÍŵãÆÀ¼¼ÊõÍŶÓÔڴDSP£¨Demand Side Platform£©[6]ƽ̨ʱ£¬ÔÚÕ¾ÄÚCTR/CVRµÄÔ¤¹ÀÉÏʹÓÃÁ˸ÃÄ£ÐÍ£¬È¡µÃÁ˲»´íµÄЧ¹û¡£±¾ÎÄÊÇ»ùÓÚ¶ÔFFMÄ£Ð͵ÄÉî¶Èµ÷ÑкÍʹÓþÑ飬´ÓÔÀí¡¢ÊµÏÖºÍÓ¦Óü¸¸ö·½Ãæ¶ÔFFM½øÐÐ̽ÌÖ£¬Ï£ÍûÄܹ»´ÓÔÀíÉϽâÊÍFFMÄ£ÐÍÔÚµã»÷ÂÊÔ¤¹ÀÉÏÈ¡µÃÓÅÐãЧ¹ûµÄÔÒò¡£ÒòΪFFMÊÇÔÚFMµÄ»ù´¡ÉϸĽøµÃÀ´µÄ£¬ËùÒÔÎÒÃÇÊ×ÏÈÒýÈëFMÄ£ÐÍ£¬±¾ÎÄÕ½Ú×éÖ¯·½Ê½ÈçÏ£º
- Ê×ÏȽéÉÜFMµÄÔÀí¡£
- Æä´Î½éÉÜFFM¶ÔFMµÄ¸Ä½ø¡£
- È»ºó½éÉÜFFMµÄʵÏÖϸ½Ú¡£
- ×îºó½éÉÜÄ£ÐÍÔÚDSP³¡¾°µÄÓ¦Óá£
FMÔÀí
FM£¨Factorization Machine£©ÊÇÓÉKonstanz´óѧSteffen Rendle£¨ÏÖÈÎÖ°ÓÚGoogle£©ÓÚ2010Äê×îÔçÌá³öµÄ£¬Ö¼ÔÚ½â¾öÏ¡ÊèÊý¾ÝϵÄÌØÕ÷×éºÏÎÊÌâ[7]¡£ÏÂÃæÒÔÒ»¸öʾÀýÒýÈëFMÄ£ÐÍ¡£¼ÙÉèÒ»¸ö¹ã¸æ·ÖÀàµÄÎÊÌ⣬¸ù¾ÝÓû§ºÍ¹ã¸æÎ»Ïà¹ØµÄÌØÕ÷£¬Ô¤²âÓû§ÊÇ·ñµã»÷ÁË¹ã¸æ¡£Ô´Êý¾ÝÈçÏÂ[8]
Clicked |
Country |
Day |
Ad_type |
1 |
USA |
26/11/15 |
Movie |
0 |
China |
1/7/14 |
Game |
1 |
China |
19/2/15 |
Game |
¡°Clicked¡±ÊÇlabel£¬Country¡¢Day¡¢Ad_typeÊÇÌØÕ÷¡£ÓÉÓÚÈýÖÖÌØÕ÷¶¼ÊÇcategoricalÀàÐ͵ģ¬ÐèÒª¾¹ý¶ÀÈȱàÂ루One-Hot Encoding£©×ª»»³ÉÊýÖµÐÍÌØÕ÷¡£
Clicked |
Country=USA |
Country=China |
Day=26/11/15 |
Day=1/7/14 |
Day=19/2/15 |
Ad_type=Movie |
Ad_type=Game |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
ÓÉÉϱí¿ÉÒÔ¿´³ö£¬¾¹ýOne-Hot±àÂëÖ®ºó£¬´ó²¿·ÖÑù±¾Êý¾ÝÌØÕ÷ÊDZȽÏÏ¡ÊèµÄ¡£ÉÏÃæµÄÑùÀýÖУ¬Ã¿¸öÑù±¾ÓÐ7Î¬ÌØÕ÷£¬µ«Æ½¾ù½öÓÐ3Î¬ÌØÕ÷¾ßÓзÇÁãÖµ¡£Êµ¼ÊÉÏ£¬ÕâÖÖÇé¿ö²¢²»ÊÇ´ËÀý¶ÀÓеģ¬ÔÚÕæÊµÓ¦Óó¡¾°ÖÐÕâÖÖÇé¿öÆÕ±é´æÔÚ¡£ÀýÈ磬CTR/CVRÔ¤²âʱ£¬Óû§µÄÐÔ±ð¡¢Ö°Òµ¡¢½ÌÓýˮƽ¡¢Æ·ÀàÆ«ºÃ£¬ÉÌÆ·µÄÆ·ÀàµÈ£¬¾¹ýOne-Hot±àÂëת»»ºó¶¼»áµ¼ÖÂÑù±¾Êý¾ÝµÄÏ¡ÊèÐÔ¡£ÌرðÊÇÉÌÆ·Æ·ÀàÕâÖÖÀàÐ͵ÄÌØÕ÷£¬ÈçÉÌÆ·µÄÄ©¼¶Æ·ÀàÔ¼ÓÐ550¸ö£¬²ÉÓÃOne-Hot±àÂëÉú³É550¸öÊýÖµÌØÕ÷£¬µ«Ã¿¸öÑù±¾µÄÕâ550¸öÌØÕ÷£¬ÓÐÇÒ½öÓÐÒ»¸öÊÇÓÐЧµÄ£¨·ÇÁ㣩¡£Óɴ˿ɼû£¬Êý¾ÝÏ¡ÊèÐÔÊÇʵ¼ÊÎÊÌâÖв»¿É±ÜÃâµÄÌôÕ½¡£
One-Hot±àÂëµÄÁíÒ»¸öÌØµã¾ÍÊǵ¼ÖÂÌØÕ÷¿Õ¼ä´ó¡£ÀýÈ磬ÉÌÆ·Æ·ÀàÓÐ550Î¬ÌØÕ÷£¬Ò»¸öcategoricalÌØÕ÷ת»»Îª550άÊýÖµÌØÕ÷£¬ÌØÕ÷¿Õ¼ä¾çÔö¡£
ͬʱͨ¹ý¹Û²ì´óÁ¿µÄÑù±¾Êý¾Ý¿ÉÒÔ·¢ÏÖ£¬Ä³Ð©ÌØÕ÷¾¹ý¹ØÁªÖ®ºó£¬ÓëlabelÖ®¼äµÄÏà¹ØÐԾͻáÌá¸ß¡£ÀýÈ磬¡°USA¡±Óë¡°Thanksgiving¡±¡¢¡°China¡±Óë¡°Chinese New Year¡±ÕâÑùµÄ¹ØÁªÌØÕ÷£¬¶ÔÓû§µÄµã»÷ÓÐ×ÅÕýÏòµÄÓ°Ïì¡£»»¾ä»°Ëµ£¬À´×Ô¡°China¡±µÄÓû§ºÜ¿ÉÄÜ»áÔÚ¡°Chinese New Year¡±ÓдóÁ¿µÄä¯ÀÀ¡¢¹ºÂòÐÐΪ£¬¶øÔÚ¡°Thanksgiving¡±È´²»»áÓÐÌØ±ðµÄÏû·ÑÐÐΪ¡£ÕâÖÖ¹ØÁªÌØÕ÷ÓëlabelµÄÕýÏòÏà¹ØÐÔÔÚʵ¼ÊÎÊÌâÖÐÊÇÆÕ±é´æÔڵģ¬Èç¡°»¯×±Æ·¡±ÀàÉÌÆ·Óë¡°Å®¡±ÐÔ£¬¡°ÇòÀàÔ˶¯Åä¼þ¡±µÄÉÌÆ·Óë¡°ÄС±ÐÔ£¬¡°µçӰƱ¡±µÄÉÌÆ·Óë¡°µçÓ°¡±Æ·ÀàÆ«ºÃµÈ¡£Òò´Ë£¬ÒýÈëÁ½¸öÌØÕ÷µÄ×éºÏÊǷdz£ÓÐÒâÒåµÄ¡£
¶àÏîʽģÐÍÊǰüº¬ÌØÕ÷×éºÏµÄ×îÖ±¹ÛµÄÄ£ÐÍ¡£ÔÚ¶àÏîʽģÐÍÖУ¬ÌØÕ÷ xi ºÍ xj µÄ×éºÏ²ÉÓà xixj ±íʾ£¬¼´ xi ºÍ xj ¶¼·ÇÁãʱ£¬×éºÏÌØÕ÷ xixj ²ÅÓÐÒâÒå¡£´Ó¶Ô±ÈµÄ½Ç¶È£¬±¾ÎÄÖ»ÌÖÂÛ¶þ½×¶àÏîʽģÐÍ¡£Ä£Ð͵ıí´ïʽÈçÏ£º

(1)
ÆäÖУ¬n ´ú±íÑù±¾µÄÌØÕ÷ÊýÁ¿£¬xi ÊÇµÚ i ¸öÌØÕ÷µÄÖµ£¬w0¡¢wi¡¢wij ÊÇÄ£ÐͲÎÊý¡£
´Ó¹«Ê½(1)¿ÉÒÔ¿´³ö£¬×éºÏÌØÕ÷µÄ²ÎÊýÒ»¹²ÓÐ n(n1)/2 ¸ö£¬ÈÎÒâÁ½¸ö²ÎÊý¶¼ÊǶÀÁ¢µÄ¡£È»¶ø£¬ÔÚÊý¾ÝÏ¡ÊèÐÔÆÕ±é´æÔÚµÄʵ¼ÊÓ¦Óó¡¾°ÖУ¬¶þ´ÎÏî²ÎÊýµÄѵÁ·ÊǺÜÀ§Äѵġ£ÆäÔÒòÊÇ£¬Ã¿¸ö²ÎÊý wij µÄѵÁ·ÐèÒª´óÁ¿ xi ºÍ xj ¶¼·ÇÁãµÄÑù±¾£»ÓÉÓÚÑù±¾Êý¾Ý±¾À´¾Í±È½ÏÏ¡Ê裬Âú×ã¡°xi ºÍ xj ¶¼·ÇÁ㡱µÄÑù±¾½«»á·Ç³£ÉÙ¡£ÑµÁ·Ñù±¾µÄ²»×㣬ºÜÈÝÒ×µ¼Ö²ÎÊý wij ²»×¼È·£¬×îÖÕ½«ÑÏÖØÓ°ÏìÄ£Ð͵ÄÐÔÄÜ¡£
ÄÇô£¬ÈçºÎ½â¾ö¶þ´ÎÏî²ÎÊýµÄѵÁ·ÎÊÌâÄØ£¿¾ØÕó·Ö½âÌṩÁËÒ»ÖÖ½â¾ö˼·¡£ÔÚmodel-basedµÄÐͬ¹ýÂËÖУ¬Ò»¸örating¾ØÕó¿ÉÒÔ·Ö½âΪuser¾ØÕóºÍitem¾ØÕó£¬Ã¿¸öuserºÍitem¶¼¿ÉÒÔ²ÉÓÃÒ»¸öÒþÏòÁ¿±íʾ[8]¡£±ÈÈçÔÚÏÂͼÖеÄÀý×ÓÖУ¬ÎÒÃǰÑÿ¸öuser±íʾ³ÉÒ»¸ö¶þάÏòÁ¿£¬Í¬Ê±°Ñÿ¸öitem±íʾ³ÉÒ»¸ö¶þάÏòÁ¿£¬Á½¸öÏòÁ¿µÄµã»ý¾ÍÊǾØÕóÖÐuser¶ÔitemµÄ´ò·Ö¡£

ÀàËÆµØ£¬ËùÓжþ´ÎÏî²ÎÊý wij ¿ÉÒÔ×é³ÉÒ»¸ö¶Ô³ÆÕó W£¨ÎªÁË·½±ã˵Ã÷FMµÄÓÉÀ´£¬¶Ô½ÇÔªËØ¿ÉÒÔÉèÖÃΪÕýʵÊý£©£¬ÄÇôÕâ¸ö¾ØÕó¾Í¿ÉÒÔ·Ö½âΪ W=VTV£¬V µÄµÚ j ÁбãÊÇµÚ j Î¬ÌØÕ÷µÄÒþÏòÁ¿¡£»»¾ä»°Ëµ£¬Ã¿¸ö²ÎÊý wij=vi,vj£¬Õâ¾ÍÊÇFMÄ£Ð͵ĺËÐÄ˼Ïë¡£Òò´Ë£¬FMµÄÄ£ÐÍ·½³ÌΪ£¨±¾ÎIJ»ÌÖÂÛFMµÄ¸ß½×ÐÎʽ£©:
 (2)
ÆäÖУ¬vi ÊÇµÚ i Î¬ÌØÕ÷µÄÒþÏòÁ¿£¬, ´ú±íÏòÁ¿µã»ý¡£ÒþÏòÁ¿µÄ³¤¶ÈΪ k£¨kԶԶСÓÚn£©£¬°üº¬ k ¸öÃèÊöÌØÕ÷µÄÒò×Ó¡£¸ù¾Ý¹«Ê½(2)£¬¶þ´ÎÏîµÄ²ÎÊýÊýÁ¿¼õÉÙΪ kn¸ö£¬Ô¶ÉÙÓÚ¶àÏîʽģÐ͵IJÎÊýÊýÁ¿¡£ÁíÍ⣬²ÎÊýÒò×Ó»¯Ê¹µÃ xhxi µÄ²ÎÊýºÍ xixj µÄ²ÎÊý²»ÔÙÊÇÏ໥¶ÀÁ¢µÄ£¬Òò´ËÎÒÃÇ¿ÉÒÔÔÚÑù±¾Ï¡ÊèµÄÇé¿öÏÂÏà¶ÔºÏÀíµØ¹À¼ÆFMµÄ¶þ´ÎÏî²ÎÊý¡£¾ßÌåÀ´Ëµ£¬xhxi ºÍ xixj µÄϵÊý·Ö±ðΪ vh,vi ºÍ vi,vj£¬ËüÃÇÖ®¼äÓй²Í¬Ïî vi¡£Ò²¾ÍÊÇ˵£¬ËùÓаüº¬¡°xi µÄ·ÇÁã×éºÏÌØÕ÷¡±£¨´æÔÚij¸ö j¡Ùi£¬Ê¹µÃ xixj¡Ù0£©µÄÑù±¾¶¼¿ÉÒÔÓÃÀ´Ñ§Ï°ÒþÏòÁ¿ vi£¬ÕâºÜ´ó³Ì¶ÈÉϱÜÃâÁËÊý¾ÝÏ¡ÊèÐÔÔì³ÉµÄÓ°Ïì¡£¶øÔÚ¶àÏîʽģÐÍÖУ¬whi ºÍ wij ÊÇÏ໥¶ÀÁ¢µÄ¡£
ÏÔ¶øÒ×¼û£¬¹«Ê½(2)ÊÇÒ»¸öͨÓõÄÄâºÏ·½³Ì£¬¿ÉÒÔ²ÉÓò»Í¬µÄËðʧº¯ÊýÓÃÓÚ½â¾ö»Ø¹é¡¢¶þÔª·ÖÀàµÈÎÊÌ⣬±ÈÈç¿ÉÒÔ²ÉÓÃMSE£¨Mean Square Error£©Ëðʧº¯ÊýÀ´Çó½â»Ø¹éÎÊÌ⣬Ҳ¿ÉÒÔ²ÉÓÃHinge/Cross-EntropyËðʧÀ´Çó½â·ÖÀàÎÊÌâ¡£µ±È»£¬ÔÚ½øÐжþÔª·ÖÀàʱ£¬FMµÄÊä³öÐèÒª¾¹ýsigmoid±ä»»£¬ÕâÓëLogistic»Ø¹éÊÇÒ»ÑùµÄ¡£Ö±¹ÛÉÏ¿´£¬FMµÄ¸´ÔÓ¶ÈÊÇ O(kn2)¡£µ«ÊÇ£¬Í¨¹ý¹«Ê½(3)µÄµÈʽ£¬FMµÄ¶þ´ÎÏî¿ÉÒÔ»¯¼ò£¬Æä¸´ÔÓ¶È¿ÉÒÔÓÅ»¯µ½ O(kn)[7]¡£Óɴ˿ɼû£¬FM¿ÉÒÔÔÚÏßÐÔʱ¼ä¶ÔÐÂÑù±¾×÷³öÔ¤²â¡£
 (3)
ÎÒÃÇÔÙÀ´¿´Ò»ÏÂFMµÄѵÁ·¸´ÔÓ¶È£¬ÀûÓÃSGD£¨Stochastic Gradient Descent£©ÑµÁ·Ä£ÐÍ¡£Ä£Ð͸÷¸ö²ÎÊýµÄÌݶÈÈçÏÂ:


FMÓëÆäËûÄ£Ð͵ĶԱÈ
FMÊÇÒ»ÖֱȽÏÁé»îµÄÄ£ÐÍ£¬Í¨¹ýºÏÊʵÄÌØÕ÷±ä»»·½Ê½£¬FM¿ÉÒÔÄ£Äâ¶þ½×¶àÏîʽºËµÄSVMÄ£ÐÍ¡¢MFÄ£ÐÍ¡¢SVD++Ä£Ð͵È[7]¡£
Ïà±ÈSVMµÄ¶þ½×¶àÏîʽºË¶øÑÔ£¬FMÔÚÑù±¾Ï¡ÊèµÄÇé¿öÏÂÊÇÓÐÓÅÊÆµÄ£»¶øÇÒ£¬FMµÄѵÁ·/Ô¤²â¸´ÔÓ¶ÈÊÇÏßÐԵ쬶ø¶þÏî¶àÏîʽºËSVMÐèÒª¼ÆËãºË¾ØÕ󣬺˾ØÕó¸´ÔӶȾÍÊÇNƽ·½¡£
Ïà±ÈMF¶øÑÔ£¬ÎÒÃǰÑMFÖÐÿһÏîµÄrating·Ö¸ÄдΪ:

´Ó¹«Ê½(2)ÖпÉÒÔ¿´³ö£¬ÕâÏ൱ÓÚÖ»ÓÐÁ½ÀàÌØÕ÷ u ºÍ i µÄFMÄ£ÐÍ¡£¶ÔÓÚFM¶øÑÔ£¬ÎÒÃÇ¿ÉÒÔ¼ÓÈÎÒâ¶àµÄÌØÕ÷£¬±ÈÈçuserµÄÀúÊ·¹ºÂòƽ¾ùÖµ£¬itemµÄÀúÊ·¹ºÂòƽ¾ùÖµµÈ£¬µ«ÊÇMFÖ»ÄܾÖÏÞÔÚÁ½ÀàÌØÕ÷¡£SVD++ÓëMFÀàËÆ£¬ÔÚÌØÕ÷µÄÀ©Õ¹ÐÔÉ϶¼²»ÈçFM£¬Ôڴ˲»ÔÙ׸Êö¡£
FFMÔÀí
FFM£¨Field-aware Factorization Machine£©×î³õµÄ¸ÅÄîÀ´×ÔYu-Chin Juan£¨ÈîØ¹ÇÕ£¬±ÏÒµÓÚÖйų́Íå´óѧ£¬ÏÖÔÚÃÀ¹úCriteo¹¤×÷£©ÓëÆä±ÈÈü¶ÓÔ±£¬ÊÇËûÃÇ½è¼øÁËÀ´×ÔMichael JahrerµÄÂÛÎÄ[14]ÖеÄfield¸ÅÄîÌá³öÁËFMµÄÉý¼¶°æÄ£ÐÍ¡£Í¨¹ýÒýÈëfieldµÄ¸ÅÄFFM°ÑÏàͬÐÔÖʵÄÌØÕ÷¹éÓÚͬһ¸öfield¡£ÒÔÉÏÃæµÄ¹ã¸æ·ÖÀàΪÀý£¬¡°Day=26/11/15¡±¡¢¡°Day=1/7/14¡±¡¢¡°Day=19/2/15¡±ÕâÈý¸öÌØÕ÷¶¼ÊÇ´ú±íÈͮ򵀣¬¿ÉÒԷŵ½Í¬Ò»¸öfieldÖС£Í¬Àí£¬ÉÌÆ·µÄÄ©¼¶Æ·Àà±àÂëÉú³ÉÁË550¸öÌØÕ÷£¬Õâ550¸öÌØÕ÷¶¼ÊÇ˵Ã÷ÉÌÆ·ËùÊôµÄÆ·À࣬Òò´ËËüÃÇÒ²¿ÉÒԷŵ½Í¬Ò»¸öfieldÖС£¼òµ¥À´Ëµ£¬Í¬Ò»¸öcategoricalÌØÕ÷¾¹ýOne-Hot±àÂëÉú³ÉµÄÊýÖµÌØÕ÷¶¼¿ÉÒԷŵ½Í¬Ò»¸öfield£¬°üÀ¨Óû§ÐÔ±ð¡¢Ö°Òµ¡¢Æ·ÀàÆ«ºÃµÈ¡£ÔÚFFMÖУ¬Ã¿Ò»Î¬ÌØÕ÷ xi£¬Õë¶ÔÆäËüÌØÕ÷µÄÿһÖÖfield fj£¬¶¼»áѧϰһ¸öÒþÏòÁ¿ vi,fj¡£Òò´Ë£¬ÒþÏòÁ¿²»½öÓëÌØÕ÷Ïà¹Ø£¬Ò²ÓëfieldÏà¹Ø¡£Ò²¾ÍÊÇ˵£¬¡°Day=26/11/15¡±Õâ¸öÌØÕ÷Óë¡°Country¡±ÌØÕ÷ºÍ¡°Ad_type¡±ÌØÕ÷½øÐйØÁªµÄʱºòʹÓò»Í¬µÄÒþÏòÁ¿£¬ÕâÓë¡°Country¡±ºÍ¡°Ad_type¡±µÄÄÚÔÚ²îÒìÏà·û£¬Ò²ÊÇFFMÖС°field-aware¡±µÄÓÉÀ´¡£
¼ÙÉèÑù±¾µÄ n ¸öÌØÕ÷ÊôÓÚ f ¸öfield£¬ÄÇôFFMµÄ¶þ´ÎÏîÓÐ nf¸öÒþÏòÁ¿¡£¶øÔÚFMÄ£ÐÍÖУ¬Ã¿Ò»Î¬ÌØÕ÷µÄÒþÏòÁ¿Ö»ÓÐÒ»¸ö¡£FM¿ÉÒÔ¿´×÷FFMµÄÌØÀý£¬ÊǰÑËùÓÐÌØÕ÷¶¼¹éÊôµ½Ò»¸öfieldʱµÄFFMÄ£ÐÍ¡£¸ù¾ÝFFMµÄfieldÃô¸ÐÌØÐÔ£¬¿ÉÒÔµ¼³öÆäÄ£ÐÍ·½³Ì¡£

(4)
ÆäÖУ¬fj ÊÇµÚ j ¸öÌØÕ÷ËùÊôµÄfield¡£Èç¹ûÒþÏòÁ¿µÄ³¤¶ÈΪ k£¬ÄÇôFFMµÄ¶þ´Î²ÎÊýÓÐ nfk ¸ö£¬Ô¶¶àÓÚFMÄ£Ð굀 nk ¸ö¡£´ËÍ⣬ÓÉÓÚÒþÏòÁ¿ÓëfieldÏà¹Ø£¬FFM¶þ´ÎÏî²¢²»Äܹ»»¯¼ò£¬ÆäÔ¤²â¸´ÔÓ¶ÈÊÇ O(kn2)¡£
ÏÂÃæÒÔÒ»¸öÀý×Ó¼òµ¥ËµÃ÷FFMµÄÌØÕ÷×éºÏ·½Ê½[9]¡£ÊäÈë¼Ç¼ÈçÏ£º
User |
Movie |
Genre |
Price |
YuChin |
3Idiots |
Comedy, Drama |
$9.99 |
ÕâÌõ¼Ç¼¿ÉÒÔ±àÂë³É5¸öÌØÕ÷£¬ÆäÖС°Genre=Comedy¡±ºÍ¡°Genre=Drama¡±ÊôÓÚͬһ¸öfield£¬¡°Price¡±ÊÇÊýÖµÐÍ£¬²»ÓÃOne-Hot±àÂëת»»¡£ÎªÁË·½±ã˵Ã÷FFMµÄÑù±¾¸ñʽ£¬ÎÒÃǽ«ËùÓеÄÌØÕ÷ºÍ¶ÔÓ¦µÄfieldÓ³Éä³ÉÕûÊý±àºÅ¡£
Field name |
Field index |
Feature name |
Feature index |
User |
1 |
User=YuChin |
1 |
Movie |
2 |
Movie=3Idiots |
2 |
Genre |
3 |
Genre=Comedy |
3 |
Price |
4 |
Genre=Drama |
4 |
Price |
5 |
|
|
ÄÇô£¬FFMµÄ×éºÏÌØÕ÷ÓÐ10ÏÈçÏÂͼËùʾ¡£

ÆäÖУ¬ºìÉ«ÊÇfield±àºÅ£¬À¶É«ÊÇÌØÕ÷±àºÅ£¬ÂÌÉ«ÊÇ´ËÑù±¾µÄÌØÕ÷ȡֵ¡£¶þ´ÎÏîµÄϵÊýÊÇͨ¹ýÓëÌØÕ÷fieldÏà¹ØµÄÒþÏòÁ¿µã»ýµÃµ½µÄ£¬¶þ´ÎÏî¹²ÓÐ n(n1)/2 ¸ö¡£
FFMʵÏÖ
Yu-Chin JuanʵÏÖÁËÒ»¸öC++°æµÄFFMÄ£ÐÍ£¬Ô´Âë¿É´ÓGithubÏÂÔØ[10]¡£Õâ¸ö°æ±¾µÄFFMÊ¡ÂÔÁ˳£ÊýÏîºÍÒ»´ÎÏģÐÍ·½³ÌÈçÏÂ:

(5)
ÆäÖУ¬C2 ÊÇ·ÇÁãÌØÕ÷µÄ¶þÔª×éºÏ£¬j1 ÊÇÌØÕ÷£¬ÊôÓÚfield f1£¬wj1,f2 ÊÇÌØÕ÷ j1 ¶Ôfield f2 µÄÒþÏòÁ¿¡£´ËFFMÄ£ÐͲÉÓÃlogistic loss×÷ΪËðʧº¯Êý£¬ºÍL2³Í·£ÏÒò´ËÖ»ÄÜÓÃÓÚ¶þÔª·ÖÀàÎÊÌâ¡£

ÆäÖУ¬yi¡Ê{1,1} ÊÇµÚ i ¸öÑù±¾µÄlabel£¬L ÊÇѵÁ·Ñù±¾ÊýÁ¿£¬¦Ë Êdzͷ£ÏîϵÊý¡£Ä£ÐͲÉÓÃSGDÓÅ»¯£¬ÓÅ»¯Á÷³ÌÈçÏÂ:

²Î¿¼ Algorithm1, ÏÂÃæ¼òµ¥½âÊÍÒ»ÏÂFFMµÄSGDÓÅ»¯¹ý³Ì¡£
Ëã·¨µÄÊäÈë tr¡¢va¡¢pa ·Ö±ðÊÇѵÁ·Ñù±¾¼¯¡¢ÑéÖ¤Ñù±¾¼¯ºÍѵÁ·²ÎÊýÉèÖá£
- ¸ù¾ÝÑù±¾ÌØÕ÷ÊýÁ¿£¨tr.n£©¡¢fieldµÄ¸öÊý£¨tr.m£©ºÍѵÁ·²ÎÊý£¨pa£©£¬Éú³É³õʼ»¯Ä£ÐÍ£¬¼´Ëæ»úÉú³ÉÄ£Ð͵IJÎÊý£»
- Èç¹û¹éÒ»»¯²ÎÊý pa.norm ÎªÕæ£¬¼ÆËãѵÁ·ºÍÑéÖ¤Ñù±¾µÄ¹éÒ»»¯ÏµÊý£¬Ñù±¾ i µÄ¹éÒ»»¯ÏµÊýΪ R[i]=1/¡ÎX[i]¡Î £»
- ¶ÔÿһÂÖµü´ú£¬Èç¹ûËæ»ú¸üвÎÊý pa.rand ÎªÕæ£¬Ëæ»ú´òÂÒѵÁ·Ñù±¾µÄ˳Ðò£»
- ¶Ôÿһ¸öѵÁ·Ñù±¾£¬Ö´ÐÐÈçϲÙ×÷:
- ¼ÆËãÿһ¸öÑù±¾µÄFFMÏ¼´¹«Ê½(5)ÖеÄÊä³ö £»
- ¼ÆËãÿһ¸öÑù±¾µÄѵÁ·Îó²î£¬ÈçËã·¨Ëùʾ£¬ÕâÀï²ÉÓõÄÊǽ»²æìØËðʧº¯Êý log(1+e)£»
- ÀûÓõ¥¸öÑù±¾µÄËðʧº¯Êý¼ÆËãÌÝ¶È g¦µ£¬ÔÙ¸ù¾ÝÌݶȸüÐÂÄ£ÐͲÎÊý£»
¶Ôÿһ¸öÑéÖ¤Ñù±¾£¬¼ÆËãÑù±¾µÄFFMÊä³ö£¬¼ÆËãÑéÖ¤Îó²î£»
- ÖØ¸´²½Öè3~5£¬Ö±µ½µü´ú½áÊø»òÑéÖ¤Îó²î´ïµ½×îС¡£
ÔÚSGDѰÓÅʱ£¬´úÂë²ÉÓÃÁËһЩС¼¼ÇÉ£¬¶ÔÓÚÌáÉý¼ÆËãЧÂÊÊǷdz£ÓÐЧµÄ¡£
µÚÒ»£¬Ìݶȷֲ½¼ÆËã¡£²ÉÓÃSGDѵÁ·FFMÄ£ÐÍʱ£¬Ö»²ÉÓõ¥¸öÑù±¾µÄËðʧº¯ÊýÀ´¼ÆËãÄ£ÐͲÎÊýµÄÌݶȡ£

ÉÏÃæµÄ¹«Ê½±íÃ÷£¬Lerr/ Óë¾ßÌåµÄÄ£ÐͲÎÊýÎ޹ء£Òò´Ë£¬Ã¿´Î¸üÐÂÄ£ÐÍʱ£¬Ö»Ðè¼ÆËãÒ»´Î£¬Ö®ºóÖ±½Óµ÷Óà Lerr/ µÄÖµ¼´¿É¡£¶ÔÓÚ¸üРnfk ¸öÄ£ÐͲÎÊý£¬ÕâÖÖ·½Ê½Äܹ»¼«´óÌáÉýÔËËãЧÂÊ¡£
µÚ¶þ£¬×ÔÊÊӦѧϰÂÊ¡£´Ë°æ±¾µÄFFMʵÏÖûÓвÉÓó£ÓõÄÖ¸ÊýµÝ¼õµÄѧϰÂʸüвßÂÔ£¬¶øÊÇÀûÓà nfk ¸ö¸¡µãÊýµÄÁÙʱ¿Õ¼ä£¬×ÔÊÊÓ¦µØ¸üÐÂѧϰÂÊ¡£Ñ§Ï°ÂÊÊDzο¼AdaGradËã·¨¼ÆËãµÄ[11]£¬°´ÈçÏ·½Ê½¸üÐÂ


µÚÈý£¬OpenMP¶àºË²¢ÐмÆËã¡£OpenMPÊÇÓÃÓÚ¹²ÏíÄÚ´æ²¢ÐÐϵͳµÄ¶à´¦ÀíÆ÷³ÌÐòÉè¼ÆµÄ±àÒë·½°¸£¬±ãÓÚÒÆÖ²ºÍ¶àºËÀ©Õ¹[12]¡£FFMµÄÔ´Âë²ÉÓÃÁËOpenMPµÄAPI£¬¶Ô²ÎÊýѵÁ·¹ý³ÌSGD½øÐÐÁ˶àÏß³ÌÀ©Õ¹£¬Ö§³Ö¶àÏ̱߳àÒë¡£Òò´Ë£¬OpenMP¼¼Êõ¼«´óµØÌá¸ßÁËFFMµÄѵÁ·Ð§ÂʺͶàºËCPUµÄÀûÓÃÂÊ¡£ÔÚѵÁ·Ä£ÐÍʱ£¬ÊäÈëµÄѵÁ·²ÎÊýns_threadsÖ¸¶¨ÁËÏß³ÌÊýÁ¿£¬Ò»°ãÉ趨ΪCPUµÄºËÐÄÊý£¬±ãÓÚÍêÈ«ÀûÓÃCPU×ÊÔ´¡£
µÚËÄ£¬SSE3Ö¸Áî²¢Ðбà³Ì¡£SSE3È«³ÆÎªÊý¾ÝÁ÷µ¥Ö¸Áî¶àÊý¾ÝÀ©Õ¹Ö¸Á3£¬ÊÇCPU¶ÔÊý¾Ý²ã²¢ÐеĹؼüÖ¸ÁÖ÷ÒªÓÃÓÚ¶àýÌåºÍÓÎÏ·µÄÓ¦ÓóÌÐòÖÐ[13]¡£SSE3Ö¸Áî²ÉÓÃ128λµÄ¼Ä´æÆ÷£¬Í¬Ê±²Ù×÷4¸öµ¥¾«¶È¸¡µãÊý»òÕûÊý¡£SSE3Ö¸ÁîµÄ¹¦Äܷdz£ÀàËÆÓÚÏòÁ¿ÔËËã¡£ÀýÈ磬a ºÍ b ²ÉÓÃSSE3Ö¸ÁîÏà¼Ó£¨a ºÍ b ·Ö±ð°üº¬4¸öÊý¾Ý£©£¬Æä¹¦ÄÜÊÇ a ÖеÄ4¸öÔªËØÓë b ÖÐ4¸öÔªËØ¶ÔÓ¦Ïà¼Ó£¬µÃµ½4¸öÏà¼ÓºóµÄÖµ¡£²ÉÓÃSSE3Ö¸Áîºó£¬ÏòÁ¿ÔËËãµÄËٶȸü¼Ó¿ì½Ý£¬Õâ¶Ô°üº¬´óÁ¿ÏòÁ¿ÔËËãµÄFFMÄ£ÐÍÊǷdz£ÓÐÀûµÄ¡£
³ýÁËÉÏÃæµÄ¼¼ÇÉÖ®Í⣬FFMµÄʵÏÖÖл¹Óкܶàµ÷Óż¼ÇÉÐèҪ̽Ë÷¡£ÀýÈ磬´úÂëÊǰ´fieldºÍÌØÕ÷µÄ±àºÅÉêÇë²ÎÊý¿Õ¼äµÄ£¬Èç¹ûѡȡÁË·ÇÁ¬Ðø»ò¹ý´óµÄ±àºÅ£¬¾Í»áÔì³É´óÁ¿µÄÄÚ´æÀË·Ñ£»ÔÚÿ¸öÑù±¾ÖмÓÈëֵΪ1µÄÐÂÌØÕ÷£¬Ï൱ÓÚÒýÈëÁËÒò×Ó»¯µÄÒ»´ÎÏ±ÜÃâÁËȱÉÙÒ»´ÎÏî´øÀ´µÄÄ£ÐÍÆ«²îµÈ¡£
FFMÓ¦ÓÃ
ÔÚDSPµÄ³¡¾°ÖУ¬FFMÖ÷ÒªÓÃÀ´Ô¤¹ÀÕ¾ÄÚµÄCTRºÍCVR£¬¼´Ò»¸öÓû§¶ÔÒ»¸öÉÌÆ·µÄDZÔÚµã»÷Âʺ͵ã»÷ºóµÄת»¯ÂÊ¡£
CTRºÍCVRÔ¤¹ÀÄ£ÐͶ¼ÊÇÔÚÏßÏÂѵÁ·£¬È»ºóÓÃÓÚÏßÉÏÔ¤²â¡£Á½¸öÄ£ÐͲÉÓõÄÌØÕ÷´óͬСÒ죬Ö÷ÒªÓÐÈýÀࣺÓû§Ïà¹ØµÄÌØÕ÷¡¢ÉÌÆ·Ïà¹ØµÄÌØÕ÷¡¢ÒÔ¼°Óû§-ÉÌÆ·Æ¥ÅäÌØÕ÷¡£Óû§Ïà¹ØµÄÌØÕ÷°üÀ¨ÄêÁä¡¢ÐÔ±ð¡¢Ö°Òµ¡¢ÐËȤ¡¢Æ·ÀàÆ«ºÃ¡¢ä¯ÀÀ/¹ºÂòÆ·ÀàµÈ»ù±¾ÐÅÏ¢£¬ÒÔ¼°Óû§½üÆÚµã»÷Á¿¡¢¹ºÂòÁ¿¡¢Ïû·Ñ¶îµÈͳ¼ÆÐÅÏ¢¡£ÉÌÆ·Ïà¹ØµÄÌØÕ÷°üÀ¨ËùÊôÆ·Àà¡¢ÏúÁ¿¡¢¼Û¸ñ¡¢ÆÀ·Ö¡¢ÀúÊ·CTR/CVRµÈÐÅÏ¢¡£Óû§-ÉÌÆ·Æ¥ÅäÌØÕ÷Ö÷ÒªÓÐä¯ÀÀ/¹ºÂòÆ·ÀàÆ¥Åä¡¢ä¯ÀÀ/¹ºÂòÉÌ¼ÒÆ¥Åä¡¢ÐËȤƫºÃÆ¥ÅäµÈ¼¸¸öά¶È¡£
ΪÁËʹÓÃFFM·½·¨£¬ËùÓеÄÌØÕ÷±ØÐëת»»³É¡°field_id:feat_id:value¡±¸ñʽ£¬field_id´ú±íÌØÕ÷ËùÊôfieldµÄ±àºÅ£¬feat_idÊÇÌØÕ÷±àºÅ£¬valueÊÇÌØÕ÷µÄÖµ¡£ÊýÖµÐ͵ÄÌØÕ÷±È½ÏÈÝÒ×´¦Àí£¬Ö»Ðè·ÖÅäµ¥¶ÀµÄfield±àºÅ£¬ÈçÓû§ÆÀÂ۵÷֡¢ÉÌÆ·µÄÀúÊ·CTR/CVRµÈ¡£categoricalÌØÕ÷ÐèÒª¾¹ýOne-Hot±àÂë³ÉÊýÖµÐÍ£¬±àÂë²úÉúµÄËùÓÐÌØÕ÷ͬÊôÓÚÒ»¸öfield£¬¶øÌØÕ÷µÄÖµÖ»ÄÜÊÇ0»ò1£¬ÈçÓû§µÄÐÔ±ð¡¢ÄêÁä¶Î£¬ÉÌÆ·µÄÆ·ÀàidµÈ¡£³ý´ËÖ®Í⣬»¹ÓеÚÈýÀàÌØÕ÷£¬ÈçÓû§ä¯ÀÀ/¹ºÂòÆ·À࣬Óжà¸öÆ·ÀàidÇÒÓÃÒ»¸öÊýÖµºâÁ¿Óû§ä¯ÀÀ»ò¹ºÂòÿ¸öÆ·ÀàÉÌÆ·µÄÊýÁ¿¡£ÕâÀàÌØÕ÷°´ÕÕcategoricalÌØÕ÷´¦Àí£¬²»Í¬µÄÖ»ÊÇÌØÕ÷µÄÖµ²»ÊÇ0»ò1£¬¶øÊÇ´ú±íÓû§ä¯ÀÀ»ò¹ºÂòÊýÁ¿µÄÊýÖµ¡£°´Ç°Êö·½·¨µÃµ½field_idÖ®ºó£¬ÔÙ¶Ôת»»ºóÌØÕ÷˳Ðò±àºÅ£¬µÃµ½feat_id£¬ÌØÕ÷µÄÖµÒ²¿ÉÒÔ°´ÕÕ֮ǰµÄ·½·¨»ñµÃ¡£
CTR¡¢CVRÔ¤¹ÀÑù±¾µÄÀà±ðÊǰ´²»Í¬·½Ê½»ñÈ¡µÄ¡£CTRÔ¤¹ÀµÄÕýÑù±¾ÊÇÕ¾ÄÚµã»÷µÄÓû§-ÉÌÆ·¼Ç¼£¬¸ºÑù±¾ÊÇÕ¹ÏÖµ«Î´µã»÷µÄ¼Ç¼£»CVRÔ¤¹ÀµÄÕýÑù±¾ÊÇÕ¾ÄÚÖ§¸¶£¨·¢Éúת»¯£©µÄÓû§-ÉÌÆ·¼Ç¼£¬¸ºÑù±¾Êǵã»÷µ«Î´Ö§¸¶µÄ¼Ç¼¡£¹¹½¨³öÑù±¾Êý¾Ýºó£¬²ÉÓÃFFMѵÁ·Ô¤¹ÀÄ£ÐÍ£¬²¢²âÊÔÄ£Ð͵ÄÐÔÄÜ¡£
|
#(field) |
(feature) |
AUC |
Logloss |
Õ¾ÄÚCTR |
39 |
2456 |
0.77 |
0.38 |
Õ¾ÄÚCVR |
67 |
2441 |
0.92 |
0.13 |
ÓÉÓÚÄ£ÐÍÊǰ´ÌìѵÁ·µÄ£¬Ã¿ÌìµÄÐÔÄÜÖ¸±ê¿ÉÄÜ»áÓÐЩ²¨¶¯£¬µ«±ä»¯·ù¶È²»ÊǺܴó¡£Õâ¸ö±íµÄ½á¹û˵Ã÷£¬Õ¾ÄÚCTR/CVRÔ¤¹ÀÄ£ÐÍÊǷdz£ÓÐЧµÄ¡£
ÔÚѵÁ·FFMµÄ¹ý³ÌÖУ¬ÓÐÐí¶àСϸ½ÚÖµµÃÌØ±ð¹Ø×¢¡£
µÚÒ»£¬Ñù±¾¹éÒ»»¯¡£FFMĬÈÏÊǽøÐÐÑù±¾Êý¾ÝµÄ¹éÒ»»¯£¬¼´ pa.norm ÎªÕæ£»Èô´Ë²ÎÊýÉèÖÃΪ¼Ù£¬ºÜÈÝÒ×Ôì³ÉÊý¾ÝinfÒç³ö£¬½ø¶øÒýÆðÌݶȼÆËãµÄnan´íÎó¡£Òò´Ë£¬Ñù±¾²ãÃæµÄÊý¾ÝÊÇÍÆ¼ö½øÐйéÒ»»¯µÄ¡£
µÚ¶þ£¬ÌØÕ÷¹éÒ»»¯¡£CTR/CVRÄ£ÐͲÉÓÃÁ˶àÖÖÀàÐ͵ÄÔ´ÌØÕ÷£¬°üÀ¨ÊýÖµÐͺÍcategoricalÀàÐ͵ȡ£µ«ÊÇ£¬categoricalÀà±àÂëºóµÄÌØÕ÷ȡֵֻÓÐ0»ò1£¬½Ï´óµÄÊýÖµÐÍÌØÕ÷»áÔì³ÉÑù±¾¹éÒ»»¯ºócategoricalÀàÉú³ÉÌØÕ÷µÄÖµ·Ç³£Ð¡£¬Ã»ÓÐÇø·ÖÐÔ¡£ÀýÈ磬һÌõÓû§-ÉÌÆ·¼Ç¼£¬Óû§Îª¡°ÄС±ÐÔ£¬ÉÌÆ·µÄÏúÁ¿ÊÇ5000¸ö£¨¼ÙÉèÆäËüÌØÕ÷µÄֵΪÁ㣩£¬ÄÇô¹éÒ»»¯ºóÌØÕ÷¡°sex=male¡±£¨ÐÔ±ðΪÄУ©µÄÖµÂÔСÓÚ0.0002£¬¶ø¡°volume¡±£¨ÏúÁ¿£©µÄÖµ½üËÆÎª1¡£ÌØÕ÷¡°sex=male¡±ÔÚÕâ¸öÑù±¾ÖеÄ×÷Óü¸ºõ¿ÉÒÔºöÂÔ²»¼Æ£¬ÕâÊÇÏ൱²»ºÏÀíµÄ¡£Òò´Ë£¬½«Ô´ÊýÖµÐÍÌØÕ÷µÄÖµ¹éÒ»»¯µ½ [0,1] ÊǷdz£±ØÒªµÄ¡£
µÚÈý£¬Ê¡ÂÔÁãÖµÌØÕ÷¡£´ÓFFMÄ£Ð͵ıí´ïʽ(4)¿ÉÒÔ¿´³ö£¬ÁãÖµÌØÕ÷¶ÔÄ£ÐÍÍêȫûÓй±Ïס£°üº¬ÁãÖµÌØÕ÷µÄÒ»´ÎÏîºÍ×éºÏÏî¾ùΪÁ㣬¶ÔÓÚѵÁ·Ä£ÐͲÎÊý»òÕßÄ¿±êÖµÔ¤¹ÀÊÇûÓÐ×÷Óõġ£Òò´Ë£¬¿ÉÒÔʡȥÁãÖµÌØÕ÷£¬Ìá¸ßFFMÄ£ÐÍѵÁ·ºÍÔ¤²âµÄËÙ¶È£¬ÕâÒ²ÊÇÏ¡ÊèÑù±¾²ÉÓÃFFMµÄÏÔÖøÓÅÊÆ¡£
ºó¼Ç
±¾ÎÄÖ÷Òª½éÉÜÁËFFMµÄ˼·À´Ô´ºÍÀíÂÛÔÀí£¬²¢½áºÏÔ´Âë˵Ã÷FFMµÄʵ¼ÊÓ¦ÓúÍһЩСϸ½Ú¡£´ÓÀíÂÛÉÏ·ÖÎö£¬FFMµÄ²ÎÊýÒò×Ó»¯·½Ê½¾ßÓÐһЩÏÔÖøµÄÓÅÊÆ£¬ÌرðÊʺϴ¦ÀíÑù±¾Ï¡ÊèÐÔÎÊÌ⣬ÇÒÈ·±£Á˽ϺõÄÐÔÄÜ£»´ÓÓ¦Óýá¹ûÀ´¿´£¬Õ¾ÄÚCTR/CVRÔ¤¹À²ÉÓÃFFMÊǷdz£ºÏÀíµÄ£¬¸÷ÏîÖ¸±ê¶¼ËµÃ÷ÁËFFMÔÚµã»÷ÂÊÔ¤¹À·½ÃæµÄ׿Խ±íÏÖ¡£µ±È»£¬FFM²»Ò»¶¨ÊÊÓÃÓÚËùÓг¡¾°ÇÒ¾ßÓг¬Ô½ÆäËûÄ£Ð͵ÄÐÔÄÜ£¬ºÏÊʵÄÓ¦Óó¡¾°²ÅÄܳɾÍFFMµÄ¡°ÍþÃû¡±¡£
|