ç¾Žå›¢ç½‘ç«™çš„æ•°æ®æœç´¢æŽ’åºè§£å†³æ–¹æ¡ˆç²¾åŽåˆ†äº«
二ã€çº¿ä¸‹ç¯‡
  针对美团90%的交易å‘生在移动端的业务特点,我们实现了一套适用于O2O业务的æœç´¢æŽ’åºæŠ€æœ¯æ–¹æ¡ˆï¼Œå·²åœ¨è®¸å¤šäº§å“å’Œå行业ä¸å¾—到应用。在之å‰çš„ 线上篇ä¸ï¼Œæˆ‘们已ç»ä»‹ç»äº†æœåŠ¡çš„æ¡†æž¶ã€æŽ’åºç®—法ç‰ã€‚本文为线下篇,主è¦è®²è¿°æ•°æ®æ¸…æ´—ã€ç‰¹å¾çŸ©é˜µã€ç›‘æŽ§ç³»ç»Ÿã€æ¨¡åž‹è®ç»ƒå’Œæ•ˆæžœè¯„ä¼°ç‰æ¨¡å—。
ã€€ã€€æ•°æ®æ¸…æ´—
ã€€ã€€æ•°æ®æ¸…洗的主è¦å·¥ä½œæ˜¯ä¸ºç¦»çº¿æ¨¡åž‹è®ç»ƒå‡†å¤‡æ ‡æ³¨æ•°æ®ï¼ŒåŒæ—¶æ´—掉ä¸åˆæ³•æ•°æ®ã€‚æ•°æ®æ¸…æ´—çš„æ•°æ®æºä¸»è¦æœ‰å›¢è´çš„æ›å…‰ã€ç‚¹å‡»å’Œä¸‹å•。
ã€€ã€€æ•´ä¸ªæ•°æ®æ¸…æ´—çš„æµç¨‹å¦‚下:
  åºåˆ—化
  æ›å…‰ã€ç‚¹å‡»å’Œä¸‹å•æ•°æ®ä»ŽHive表ä¸è¯»å–,采用schemaçš„å¤„ç†æ–¹å¼ï¼Œå¯ä»¥ç›´æŽ¥æ ¹æ®æ—¥å¿—å—æ®µåæ¥æŠ½å–ç›¸åº”çš„å—æ®µï¼Œä¸å—æ—¥å¿—å—æ®µå¢žåŠ æˆ–è€…å‡å°‘的影å“。
  æ›å…‰æ—¥å¿—å˜å‚¨äº†ä¸€æ¬¡ç”¨æˆ·è¡Œä¸ºçš„详细信æ¯ï¼ŒåŒ…括城市ã€åœ°ç†ä½ç½®ã€ç›é€‰æ¡ä»¶åŠä¸€äº›è¡Œä¸ºç‰¹å¾;点击日志主è¦è®°å½•了用户点击的POIIDã€ç‚¹å‡»æ—¶é—´;下 啿—¥å¿—记录了用户下å•çš„POIIDã€ä¸‹å•时间和下å•的金é¢ã€‚æ•°æ®æ¸…æ´—æ¨¡å—æ ¹æ®é…ç½®æ–‡ä»¶ä»Žæ•°æ®æºä¸æŠ½å–需è¦çš„å—æ®µï¼Œè¿›è¡Œåºåˆ—化 (Serialization)之åŽå˜å‚¨åœ¨HDFS上。
  åºåˆ—化的过程ä¸ï¼Œå¦‚æžœæ—¥å¿—å—æ®µä¸åˆæ³•或者å•一用户æ›å…‰ã€ç‚¹å‡»æˆ–下å•超出设定的阈值,相关日志都会被清洗掉,é¿å…æ•°æ®å¯¹æ¨¡åž‹è®ç»ƒé€ æˆå½±å“。
ã€€ã€€æ•°æ®æ ‡æ³¨
  数æ®åºåˆ—化之åŽåœ¨HDFS上ä¿å˜ä¸‰ä»½æ–‡æœ¬æ–‡ä»¶ï¼Œåˆ†åˆ«æ˜¯æ›å…‰(Impression)ã€ç‚¹å‡»(Click)和下å•(Order)ã€‚æ•°æ®æ ‡æ³¨æ¨¡å—æ ¹ æ®globalid(一次æœç´¢çš„å…¨å±€å”¯ä¸€æ ‡ç¤ºï¼Œç±»ä¼¼äºŽsessionid)和相应的团è´id为key,将æ›å…‰ã€ç‚¹å‡»å’Œä¸‹å•å…³è”èµ·æ¥ï¼Œæœ€ç»ˆç”Ÿæˆä¸€ä»½æ ‡æ³¨å¥½æ˜¯ å¦è¢«ç‚¹å‡»ã€ä¸‹å•ã€æ”¯ä»˜çš„æ ‡æ³¨æ•°æ®ã€‚åŒæ—¶è¿™ä»½æ ‡æ³¨æ•°æ®æºå¸¦äº†æœ¬æ¬¡å±•现的详细特å¾ä¿¡æ¯ã€‚
ã€€ã€€æ•°æ®æ ‡æ³¨é€šè¿‡ä¸€æ¬¡Map/Reduceæ¥å®Œæˆã€‚
  Map阶段:Map的输入为æ›å…‰ã€ç‚¹å‡»å’Œä¸‹å•三ç§HDFSæ•°æ®ã€‚ 用三个Mapper分别处ç†ä¸‰ç§æ—¥å¿—。数æ®åˆ†å‘çš„key为globalid。其ä¸ï¼Œå¦‚æžœç‚¹å‡»å’Œä¸‹å•æ•°æ®ä¸çš„globalidå—æ®µä¸ºç©º("")ï¼Œåˆ™ä¸¢å¼ƒè¯¥æ¡ æ—¥å¿—(å› ä¸ºglobalidä¸ºç©ºæ— æ³•å’Œæ›å…‰æ—¥å¿—joinï¼Œä¼šå‡ºçŽ°è¯¯æ ‡æ³¨)。
  Reduce阶段:Reduce接收的key为globalid, values为具有相åŒglobalidçš„æ›å…‰ã€ç‚¹å‡»ã€ä¸‹å•æ•°æ®List,é历该List, 如果
  日志类型为æ›å…‰æ—¥å¿—ï¼Œåˆ™æ ‡è®°è¯¥globalid对应的æ›å…‰æ—¥å¿—å˜åœ¨(imp_exist=true)。
  日志类型为点击日志,则将æ›å…‰æ—¥å¿—çš„clickedå—æ®µç½®ä¸º1。
ã€€ã€€æ—¥å¿—ç±»åž‹ä¸ºä¸‹å•æ—¥å¿—,则将æ›å…‰æ—¥å¿—çš„orderedå—æ®µç½®ä¸º1。
ã€€ã€€æ—¥å¿—ç±»åž‹ä¸ºä¸‹å•æ—¥å¿—,如果pay_accountå—æ®µ>0, 则将æ›å…‰æ—¥å¿—çš„paidå—æ®µç½®ä¸º1。
  é历List之åŽï¼Œå¦‚æžœimp_exist == true, åˆ™å°†æ ‡æ³¨å¥½çš„æ•°æ®å†™å…¥HDFS, å¦åˆ™ä¸¢å¼ƒã€‚
ã€€ã€€æ•°æ®æ ‡æ³¨çš„æµç¨‹å›¾å¦‚ä¸‹ï¼š

  特å¾çŸ©é˜µ
  特å¾çŸ©é˜µçš„作用是æä¾›ä¸°å¯Œçš„特å¾é›†åˆï¼Œä»¥æ–¹ä¾¿åœ¨çº¿å’Œç¦»çº¿ç‰¹å¾è°ƒç ”使用。
  特å¾çŸ©é˜µçš„生æˆ
  特å¾çŸ©é˜µçš„ç”Ÿæˆæ¡†æž¶ä¸ºï¼š

ã€€ã€€ä¸‹é¢æˆ‘们æ¥è¯¦ç»†è¯´æ˜Žä¸€ä¸‹æµç¨‹ã€‚
ã€€ã€€åŸºç¡€ç‰¹å¾æŒ‰æ¥æºå¯åˆ†ä¸ºä¸‰éƒ¨åˆ†ï¼š
  1ã€Hive表:有一些基础特å¾å˜å‚¨åœ¨Hiveæ ‡æ³¨ï¼Œå¦‚POIçš„åå—ã€å“ç±»ã€å›¢è´æ•°ç‰ã€‚
  2ã€ç¦»çº¿è®¡ç®—:一些特å¾éœ€è¦ç§¯ç´¯ä¸€æ®µæ—¶é—´æ‰èƒ½ç»Ÿè®¡ï¼Œå¦‚POI的点击率ã€é”€é‡ç‰ï¼Œè¿™éƒ¨åˆ†é€šè¿‡ç§¯ç´¯åކ岿•°æ®ï¼Œç„¶åŽç»è¿‡Map/Reduce处ç†å¾—到。
  3ã€HDFS:特å¾çŸ©é˜µå¯èƒ½èžåˆç¬¬ä¸‰æ–¹æœåŠ¡çš„ç‰¹å¾ï¼Œä¸€èˆ¬ç¬¬ä¸‰æ–¹æœåŠ¡å°†äº§ç”Ÿçš„ç‰¹å¾æŒ‰ç…§çº¦å®šçš„æ ¼å¼å˜å‚¨åœ¨HDFS上。
ã€€ã€€æ•°æ®æºç»Ÿä¸€æ ¼å¼ä¸ºï¼š poiid/dealid/bizareaid 't' name1:value1't' name2:value2...
  特å¾åˆå¹¶æ¨¡å—ï¼Œå°†æ‰€æœ‰æ¥æºåˆå¹¶ä¸ºä¸€ä¸ªå¤§æ–‡ä»¶ï¼Œé€šè¿‡feature confé…置的特å¾å’Œç‰¹å¾é¡ºåºï¼Œå°†ç‰¹å¾åºåˆ—化,然åŽå†™å…¥Hive表。
  特å¾ç›‘æŽ§æ¨¡å—æ¯å¤©ç›‘控特å¾çš„åˆ†å¸ƒç‰æ˜¯å¦å¼‚常。 特å¾çŸ©é˜µçš„ç‰¹å¾æ¯æ—¥æ›´æ–°ã€‚
ã€€ã€€æ·»åŠ æ–°çš„ç‰¹å¾æ¥æºï¼Œåªéœ€è¦æŒ‰ç…§çº¦å®šçš„æ ¼å¼ç”Ÿæˆæ•°æ®æºï¼Œé…置路径,å¯è‡ªåŠ¨æ·»åŠ ã€‚
ã€€ã€€æ·»åŠ æ–°ç‰¹å¾ï¼Œåœ¨feature confæ–‡ä»¶æœ«å°¾æ·»åŠ ç›¸åº”çš„ç‰¹å¾å,特å¾åå—å’Œæ•°æ®æºä¸çš„特å¾nameä¿æŒä¸€è‡´ï¼Œæœ€åŽä¿®æ”¹ç›¸åº”的特å¾Hive表结构。
  特å¾çŸ©é˜µçš„使用
  特å¾çŸ©é˜µçš„使用框架为:

  我们æ¥è¯¦ç»†è¯´æ˜Žä¸€ä¸‹æµç¨‹ã€‚
  其ä¸ç‰¹å¾çŸ©é˜µæ—¢æä¾›åœ¨çº¿çš„特å¾ä»“库,åˆå¯æä¾›ç¦»çº¿çš„特å¾è°ƒç ”。线上æœåŠ¡éœ€è¦å¤§é‡çš„ç‰¹å¾æ¥å¯¹POI/DEALè´¨é‡æ‰“分,特å¾åˆ†æ•£ä¼šé€ æˆæœåŠ¡å–用特 å¾å¾ˆè€—时,特å¾çŸ©é˜µå°†ç‰¹å¾æ•´åˆï¼Œå¾ˆå¥½çš„解决了特å¾è€—æ—¶çš„é—®é¢˜ã€‚ä¸€èˆ¬è°ƒç ”ä¸€ä¸ªæ–°ç‰¹å¾éœ€è¦ç§¯ç´¯ä¸€æ®µæ—¶é—´çš„æ•°æ®ï¼Œå°†ç‰¹å¾æ”¾å…¥ç‰¹å¾çŸ©é˜µï¼Œ
  然åŽå’Œå·²æœ‰çš„æ•°æ®è¿›è¡Œèžåˆï¼Œå¯æ–¹ä¾¿çš„æž„é€ åŒ…å«æ–°ç‰¹å¾çš„è®ç»ƒæ•°æ®ã€‚䏋颿ˆ‘们分别æ¥çœ‹ä¸€ä¸‹åœ¨çº¿ã€ç¦»çº¿å’Œç‰¹å¾èžåˆçš„æµç¨‹ã€‚
  在线使用
  在线方é¢çš„ä½¿ç”¨ä¸»è¦æ˜¯æ–¹ä¾¿ç‰¹å¾çš„获å–,将线上需è¦çš„特å¾çº³å…¥ç‰¹å¾çŸ©é˜µç»Ÿä¸€ç®¡ç†ï¼Œé€šè¿‡é…置文件读å–特å¾çŸ©é˜µçš„特å¾ï¼Œå°è£…æˆProto Buffers写入Medis(美团自主构建的Redis集群,支æŒåˆ†å¸ƒå¼å’Œå®¹é”™),通过Medis key批é‡è¯»å–该key对应的特å¾ï¼Œå‡å°‘读å–Medis的次数,从而缩å‡ç‰¹å¾èŽ·å–的时间,æé«˜ç³»ç»Ÿçš„æ€§èƒ½ã€‚
  特å¾çŸ©é˜µåœ¨çº¿ä½¿ç”¨æ¡†æž¶å¦‚下:

  æµç¨‹è¯´æ˜Žï¼š
  åºåˆ—化模å—通过特å¾é…置文件从特å¾çŸ©é˜µæŠ½å–需è¦çš„特å¾ï¼Œè°ƒç”¨protoBuffer Lib将特å¾å°è£…æˆprotoBufferçš„æ ¼å¼ï¼Œå†™å…¥Medis。
  线上通过featureLoaderæœåŠ¡ä»ŽMedisè¯»å–æ•°æ®ï¼Œç„¶åŽé€šè¿‡protoBufferLibååºåˆ—化数æ®ï¼Œå–到相应的特å¾å€¼ã€‚
  离线使用
  离线方é¢çš„ä½¿ç”¨ä¸»è¦æ˜¯æ–¹ä¾¿è°ƒç ”新特å¾ã€‚å¦‚æžœä»Žçº¿ä¸ŠèŽ·å–æ–°ç‰¹å¾ï¼Œç”±äºŽéœ€è¦ç§¯ç´¯è®ç»ƒæ•°æ®ï¼Œç‰¹å¾è°ƒç ”的周期会å˜é•¿;è€Œå¦‚æžœå°†å¾…è°ƒç ”çš„ç‰¹å¾çº³å…¥ç‰¹å¾çŸ©é˜µä¸ï¼Œå¯ä»¥å¾ˆæ–¹ä¾¿åœ°é€šè¿‡ç¦»çº¿çš„æ–¹æ³•è°ƒç ”ç‰¹å¾çš„æœ‰æ•ˆæ€§ï¼Œæžå¤§çš„缩çŸäº†ç‰¹å¾è°ƒç ”的周期,æé«˜å¼€å‘效率和模型è¿ä»£çš„速度。
  特å¾çŸ©é˜µç¦»çº¿ä½¿ç”¨æ¡†æž¶å¦‚下:

  其ä¸ï¼Œä»Žç‰¹å¾çŸ©é˜µå–å‡ºå¾…è°ƒç ”çš„æ–°ç‰¹å¾ï¼Œæ ¼å¼åŒ–为 joinKey 't' FeatureName:FeatureValue, 例如 12345 't' CTR:0.123,joinkey为poiid, 新特å¾ä¸ºCTR,特å¾å€¼ä¸º0.123ã€‚æ ¼å¼åŒ–åŽçš„æ–°ç‰¹å¾æ–‡ä»¶å’Œæ ‡æ³¨å¥½çš„rerank日志作为输入,ç»è¿‡Map/Reduce处ç†ç”Ÿæˆæ–°çš„æ ‡æ³¨æ—¥å¿—,用于模 åž‹è®ç»ƒã€‚
  特å¾èžåˆ
  特å¾èžåˆä½œç”¨äºŽç¦»çº¿ç‰¹å¾è°ƒç ”,上篇我们æåˆ°æ•°æ®æ ‡å‡†ä¼šè¾“出拥有丰富特å¾çš„æ ‡æ³¨æ—¥å¿—,特å¾èžåˆçš„ç›®çš„åœ¨äºŽå°†å¾…è°ƒç ”çš„æ–°ç‰¹å¾é€šè¿‡æŸä¸€ä¸ªjoinkey åˆå¹¶åˆ°åœ¨çº¿ç‰¹å¾åˆ—表ä¸ï¼Œä»Žè€Œåœ¨æ¨¡åž‹è®ç»ƒä¸ä½¿ç”¨è¯¥ç‰¹å¾ã€‚
  特å¾èžåˆçš„æ¡†æž¶ï¼š

  æµç¨‹è¯´æ˜Žï¼š 特å¾èžåˆæ¨¡å—å¯ä»¥æŒ‡å®šä»»æ„一个或者多个join key,将离线特å¾åŠ å…¥åœ¨çº¿ç‰¹å¾åˆ—表。
  监控系统
  监控系统的目的是确ä¿åœ¨çº¿å’Œç¦»çº¿ä»»åŠ¡çš„æ£å¸¸è¿è¡Œã€‚监控系统按照作用范围的ä¸åŒåˆåˆ†ä¸ºçº¿ä¸Šç›‘控和离线监控。
  线上监控
ã€€ã€€çº¿ä¸Šç›‘æŽ§ä¸»è¦æ˜¯ç›‘æµ‹æ”¶é›†çš„åœ¨çº¿ç‰¹å¾æ—¥å¿—æ˜¯å¦æ£å¸¸ï¼Œçº¿ä¸Šç‰¹å¾ç›‘æŽ§ä¸»è¦æ£€æµ‹ç‰¹å¾çš„覆盖度ã€é˜ˆå€¼èŒƒå›´ã€åˆ†å¸ƒå¼‚常三方é¢ã€‚
  三方é¢çš„监控主è¦åˆ†ä»¥ä¸‹å‡ 个场景:
  覆盖度:监控特å¾çš„æ•°æ®æºæ˜¯å¦å˜åœ¨æˆ–者有数æ®ä¸¢å¤±ã€‚
  阈值范围:监控特å¾çš„阈值是å¦ç¬¦åˆé¢„期,防æ¢å› 为生æˆç‰¹å¾çš„ç®—æ³•æ”¹å˜æˆ–者在线计算方法的ä¸åŒç‰å› ç´ é€ æˆç‰¹å¾çš„æœ€å¤§å€¼æˆ–者最å°å€¼å‘生比较明显的å˜åŒ–,导致特å¾ä¸å¯ç”¨ã€‚
  分布异常:监控特å¾å€¼çš„分布是å¦ç¬¦åˆé¢„期,主è¦é˜²æ¢å› 为获å–ä¸åˆ°ç‰¹å¾ï¼Œä½¿å¾—特å¾éƒ½ä½¿ç”¨äº†é»˜è®¤å€¼ï¼Œè€Œåˆæ²¡æœ‰åŠæ—¶å‘现,导致线上模型预估出现å差。分布异常主è¦ç”¨åˆ°äº†å¡æ–¹è·ç¦»[3]。
  特å¾è¦†ç›–度监控效果图:
  下图是用户到POIè·ç¦»çš„覆盖度监控。从图ä¸å¯ä»¥ç›´è§‚的看出,该特å¾çš„覆盖度约为75%,也å³åªæœ‰75%的用户能得到è·ç¦»ç‰¹å¾ï¼Œå¦å¤–25%å¯èƒ½ æ²¡æœ‰å¼€æ‰‹æœºå®šä½æœåŠ¡æˆ–è€…å¾—ä¸åˆ°POIçš„åæ ‡ã€‚75%çš„è¦†ç›–åº¦æ˜¯ä¸€ä¸ªæ¯”è¾ƒç¨³å®šçš„æŒ‡æ ‡ï¼Œå¦‚æžœè¦†ç›–åº¦å˜çš„很高或者很低都说明我们的系统出现了问题,而我们的监控 ç³»ç»Ÿèƒ½åŠæ—¶å‘现这ç§é—®é¢˜ã€‚

  离线监控
ã€€ã€€ç¦»çº¿ç›‘æŽ§ä¸»è¦æ£€æµ‹ä¸¤æ–¹é¢ï¼š1ã€ç¦»çº¿ä»»åŠ¡æ˜¯å¦æŒ‰æ—¶å®ŒæˆåŠç”Ÿæˆçš„æ•°æ®æ˜¯å¦æ£ç¡®ã€‚ 2ã€ç‰¹å¾çŸ©é˜µç‰¹å¾çš„æœ‰æ•ˆæ€§ã€‚
  当离线定时任务多达数å个的时候,很难æ¯å¤©åŽ»é€ä¸ªæ£€æŸ¥æ¯ä¸ªä»»åŠ¡æ˜¯å¦å¦‚期完æˆï¼Œè¿™æ—¶å€™ç¦»çº¿ä»»åŠ¡ç›‘æŽ§çš„é‡è¦æ€§å°±å‡¸æ˜¾å‡ºæ¥ã€‚当å‰ç¦»çº¿ç›‘控å¯ä»¥æ ¹æ®é…ç½® 文件,监控需è¦å…³æ³¨çš„任务,以åŠè¿™äº›ä»»åŠ¡ç”Ÿæˆçš„æ•°æ®æ˜¯å¦æ£å¸¸ã€‚å¦‚æžœä¸æ£å¸¸åˆ™å‘出报è¦ç»™ä»»åŠ¡è´Ÿè´£äººï¼Œè¾¾åˆ°ä»»åŠ¡å¤±è´¥èƒ½å¤ŸåŠæ—¶å¤„ç†çš„目的。
  特å¾çŸ©é˜µç›‘控的目的与在线特å¾çš„ç›‘æŽ§ç›®çš„ä¸€æ ·ï¼Œç›‘æŽ§æŒ‡æ ‡ä¹Ÿç›¸åŒï¼Œæ‰€ä¸åŒçš„æ˜¯å› 为监控数æ®çš„获å–ä¸åŒï¼Œç›‘控实现也ä¸å°½ç›¸åŒï¼Œè¿™é‡Œä¸å†èµ˜è¿°ã€‚
ã€€ã€€æ¨¡åž‹è°ƒç ”
  模型è®ç»ƒ
  模型è®ç»ƒæ¡†æž¶æ”¯æŒå¤šç§æ¨¡åž‹çš„è®ç»ƒï¼Œå°†è®ç»ƒæ•°æ®æ ¼å¼åŒ–为模型需è¦çš„è¾“å…¥æ ¼å¼ã€‚修改模型è®ç»ƒçš„é…置文件,就å¯ä»¥ä½¿ç”¨è¯¥æ¡†æž¶è®ç»ƒæ¨¡åž‹äº†ã€‚
  模型è®ç»ƒæ¡†æž¶ï¼š

  其ä¸ï¼Œé¡¶å±‚是è®ç»ƒæ•°æ®å’Œæµ‹è¯•æ•°æ®çš„输入层,该层是原始è®ç»ƒå’Œæµ‹è¯•æ•°æ®ã€‚
  ä¸é—´æ˜¯æ¨¡åž‹è®ç»ƒçš„æ¡†æž¶ï¼Œæ¡†æž¶æ”¯æŒå¤šä¸ªé…置项,包括é…置模型算法ã€ç›¸åº”çš„å‚æ•°ã€æ•°æ®æºçš„è¾“å…¥åŠæ¨¡åž‹çš„输出ç‰ã€‚
ã€€ã€€åº•å±‚æ˜¯å¤šç§æ¨¡åž‹çš„实现,算法之å‰ç›¸äº’独立,æ¯ç§ç®—法å°è£…æˆç‹¬ç«‹çš„jar,æä¾›ç»™æ¨¡åž‹è®ç»ƒæ¡†æž¶ä½¿ç”¨ï¼Œç›®å‰æ”¯æŒçš„算法包括GBDT[4]ã€FTRL[5]。
  为了实现模型的快速è¿ä»£ï¼Œæ¨¡åž‹è®ç»ƒæ”¯æŒåœ¨Spark上è¿è¡Œã€‚
  效果评估
ã€€ã€€æ¨¡åž‹çš„æ•ˆæžœè¯„ä¼°ä¸»è¦æ˜¯å¯¹æ¯”æ–°æ¨¡åž‹å’Œè€æ¨¡åž‹çš„æ•ˆæžœï¼Œä»¥è¯„估结果æ¥å†³å®šæ˜¯å¦æ›´æ–°çº¿ä¸Šæ¨¡åž‹ã€‚
  我们的系统支æŒä¸¤ç§æ•ˆæžœæŒ‡æ ‡çš„è¯„ä¼°ï¼Œä¸€ç§æ˜¯AUC[1],å¦ä¸€ç§æ˜¯MAP。
  MAP(Mean Average Precision)[2]是一ç§å¯¹æœç´¢æŽ’åºç»“果好åè¯„ä¼°çš„æŒ‡æ ‡ã€‚
  Prec@K 的定义: 设定阈值K,计算排åºç»“æžœtopK的相关度。

  注:绿色表示æœç´¢ç»“果与æœç´¢è¯ç›¸å…³ï¼Œçº¢è‰²è¡¨ç¤ºä¸ç›¸å…³ã€‚
  AP(Average Precision)的定义: Average Precision = average of Prec@K

  AP作为排åºå¥½å的直观ç†è§£

  ç°è‰²è¡¨ç¤ºä¸Žæœç´¢ç›¸å…³çš„结果,在团è´ä¸è¡¨ç¤ºè¢«ç‚¹å‡»çš„DEAL,从å¬å›žç»“果看Ranking#1è¦å¥½äºŽRanking#2ï¼Œåæ˜ 在MAPæŒ‡æ ‡ä¸Šï¼ŒRanking#1çš„MAP值大于Ranking#2çš„MAP值。
  所以å¯ä»¥ç®€å•地使用AP值æ¥è¡¡é‡æ¨¡åž‹æŽ’åºçš„好å。
  MAP的计算

  对于多个queryçš„æœç´¢ç»“果,MAP为这些æœç´¢ç»“æžœAPçš„å‡å€¼ã€‚
  实验结果表明MAPä½œä¸ºæŽ’åºæŒ‡æ ‡ï¼Œå¯¹æ¨¡åž‹å¥½å的评估起到很好的指导作用。
  在AUC的近似计算方法ä¸ï¼Œä¸»è¦è€ƒè™‘有多少对æ£è´Ÿæ ·æœ¬ç»„åˆä¸æ£æ ·æœ¬çš„å¾—åˆ†å¤§äºŽè´Ÿæ ·æœ¬çš„å¾—åˆ†ï¼Œä¸Žæ£æ ·æœ¬åœ¨æŽ’åºä¸çš„具体ä½ç½®æ²¡æœ‰ç»å¯¹çš„关系。当æ£è´Ÿ æ ·æœ¬çš„åˆ†å¸ƒå˜åŒ–,如æŸä¸€å°éƒ¨åˆ†æ£æ ·æœ¬å¾—分å˜å¤§ï¼Œå¤§éƒ¨åˆ†æ£æ ·æœ¬å¾—分å˜å°ï¼Œé‚£ä¹ˆæœ€ç»ˆè®¡ç®—çš„AUC值å¯èƒ½æ²¡æœ‰å‘生å˜åŒ–,但排åºçš„结果å´å‘生了很大å˜åŒ–(大部分用 户感兴趣的å•åæŽ’在了åŽè¾¹)。
ã€€ã€€å› æ¤AUCæŒ‡æ ‡æ²¡æ³•ç›´è§‚è¯„ä¼°äººå¯¹æŽ’åºå¥½å的感å—。

最后编辑: 郝聪 编辑于2016/07/08 10:40



