Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
TensorFlowRS¼Ü¹¹½âÎö
 
  2315  次浏览      32
 2018-5-8 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚÍøÂ磬±¾ÎÄÕë¶Ô³¡¾°ÏµļÆËãÌØµã¶ÔÉî¶Èѧϰ¿ò¼Ü½øÐÐÉè¼ÆºÍÓÅ»¯¡£

Ò»£® ×ÛÊö

Éî¶Èѧϰ±È´«Í³µÄÂß¼­»Ø¹éÓÐןüÇ¿µÄÄ£ÐͿ̻­ÄÜÁ¦£¬Í¬Ê±Ò²´øÀ´Á˼ÆËãÁ¦°Ù±¶ÌáÉýµÄÐèÇó¡£Ïà±ÈͼÏñ¡¢ÓïÒô¡¢ÊÓÆµµÈÁìÓò£¬ËÑË÷¡¢¹ã¸æ¡¢ÍƼöµÈ³¡¾°ÓÐ×ŶÀÌØµÄ³¡¾°Ìصã: Ñù±¾¹æÄ£ºÍÌØÕ÷¿Õ¼äͨ³£·Ç³£¾Þ´ó£¬Ç§ÒÚÑù±¾¡¢°ÙÒÚÌØÕ÷²¢²»º±¼û£¬Í¬Ê±´æÔÚ´óÁ¿µÄÏ¡ÊèÌØÕ÷×÷ΪEmbeddingÊäÈë¡£Õâ¾ÍÒªÇóÎÒÃÇÕë¶Ô´Ë³¡¾°ÏµļÆËãÌØµã¶ÔÉî¶Èѧϰ¿ò¼Ü½øÐÐÉè¼ÆºÍÓÅ»¯¡£

ÎÒÃÇ»ùÓÚTensorFlowÔÚËÑË÷¡¢¹ã¸æ¡¢ÍƼö³¡¾°Ï½øÐÐÁËÉî¶ÈµÄÓÅ»¯ÓëÔöÇ¿£¬ÄÚ²¿ÏîÄ¿Ãû³ÆÎªTensorFlowRS£¬Ö÷ÒªµÄ³É¹ûÈçÏ£º

(1) ½â¾öÁËÔ­ÉúTFˮƽÀ©Õ¹ÄÜÁ¦²»×ãµÄÎÊÌâ¡£ÔÚÎÒÃǵIJâÊÔÖУ¬¾ø´ó¶àÊýËÑË÷¹ã¸æÄ£Ð͵ÄѵÁ·ÐÔÄÜÌáÉýÔÚÊ®±¶ÒÔÉÏ£¬Ä³Ð©Ä£Ð͵ļ«ÏÞÐÔÄÜ×î¸ß¿ÉÌáÉý°Ù±¶¡£

(2) Ö§³ÖÍ걸µÄÔÚÏßѧϰÓïÒ壬ģÐͱä¸üʵʱд³ö£»Ï¡ÊèÌØÕ÷ÎÞÐè×öÁ¬ÐøID»¯£¬¿ÉÒÔÖ±½ÓʹÓÃÔ­Ê¼ÌØÕ÷±íÕ÷½øÐÐѵÁ·£¬´ó·ù¼ò»¯ÁËÌØÕ÷¹¤³ÌµÄ¸´ÔÓ¶È¡£

(3) Ò첽ѵÁ·µÄÌݶÈÐÞÕýÓÅ»¯Æ÷£¨grad-compensation optimizer£©£¬ÓÐЧ¼õÉÙÁËÒì²½´ó¹æÄ£²¢·¢ÒýÆðµÄѵÁ·Ð§¹ûËðʧ¡£

(4) ¼¯³ÉÁ˸ßЧµÄGraph Embedding¡¢Memory Network¡¢Cross MediaµÈ¶àÖָ߼¶ÑµÁ·Ä£Ê½¡£

(5) Ä£ÐÍ¿ÉÊÓ»¯ÏµÍ³DeepInSightÌṩÉî¶ÈÄ£ÐÍѵÁ·µÄ¶àά¶È¿ÉÊÓ»¯·ÖÎö¡£

¶þ£® TensorFlowRS·Ö²¼Ê½¼Ü¹¹

ÔÚʹÓÃTensorFlowµÄ¹ý³ÌÖÐÎÒÃÇ·¢ÏÖTF×÷Ϊһ¸ö·Ö²¼Ê½ÑµÁ·ÏµÍ³ÓÐÁ½¸öÖ÷ÒªµÄÎÊÌ⣺

1. ˮƽÀ©Õ¹ÄÜÁ¦²î£ºÔڴ󲿷ÖÄ£Ð͵ÄÐÔÄܲâÊÔÖÐ,ÎÒÃÇ·¢ÏÖËæ×ÅÊý¾Ý²¢ÐжȵÄÔö¼Ó£¬µ¥¸öworkerµÄÑù±¾´¦ÀíQPS¼±¾çϽµ¡£µ±workerÊýÁ¿Ôö´óµ½Ò»¶¨¹æÄ£µÄʱºò£¬ÏµÍ³ÕûÌåQPS²»ÔÙÓÐÔö³¤ÉõÖÁÓÐËùϽµ¡£

2. ȱ·¦Í걸µÄ·Ö²¼Ê½Failover»úÖÆ£ºTF»ùÓÚ¾²Ì¬ÍØÆËÅäÖÃÀ´¹¹½¨cluster£¬²»Ö§³Ö¶¯Ì¬×éÍø£¬Õâ¾ÍÒâζ×ŵ±Ä³¸öps»òÕßworker¹ÒµôÖØÆôÖ®ºó£¬Èç¹ûip»òÕ߶˿ڷ¢Éú±ä»¯£¨ÀýÈç»úÆ÷crash£©£¬ÑµÁ·½«ÎÞ·¨¼ÌÐø¡£ÁíÍâTFµÄcheckpointÖ»°üº¬server´æ´¢µÄ²ÎÊýÐÅÏ¢£¬²»°üº¬worker¶ËµÄ״̬£¬²»ÊÇÈ«¾ÖÒ»ÖÂÐÔµÄcheckpoint£¬ÎÞ·¨ÊµÏÖExactly-OnceµÈ»ù±¾µÄFailoverÓïÒå¡£

Õë¶ÔÉÏÊöÎÊÌ⣬TensorFlowRS²ÉÈ¡µÄ½â¾ö·½°¸°üÀ¨£º

ͨ¹ý¶Ô½Ó¶ÀÁ¢²ÎÊý·þÎñÆ÷ÌáÉýˮƽÀ©Õ¹ÄÜÁ¦

ÔÚ¶ÔTF×ö¹ýϸÖµÄprofilingÖ®ºó£¬ÎÒÃÇ·¢ÏÖTFÔ­ÉúµÄPSÓÉÓÚÉè¼ÆºÍʵÏÖ·½ÃæµÄ¶àÖÖÔ­Òò£¨grpc£¬lock£¬graph-engine£©£¬ºÜÄÑ´ïÁ¼ºÃµÄˮƽÀ©Õ¹ÄÜÁ¦¡£ÓÚÊÇÎÒÃǾö¶¨¶ªµôTF-PSµÄ°ü¸¤£¬ÖØÐÂʵÏÖÒ»¸ö¸ßÐÔÄܵIJÎÊý·þÎñÆ÷£ºPS-Plus¡£´ËÍâÎÒÃÇÌṩÁËÍêÕûµÄTF on PS-Plus·½°¸£¬¿ÉÒÔÖ§³ÖÓû§ÔÚNative-PSºÍPS-PlusÖ®¼ä×ÔÓÉÇл»£¬²¢ÇÒÍêÈ«¼æÈÝTensorFlowµÄGraphÓïÒåºÍËùÓÐAPI¡£Óû§¿ÉÒÔÔÚÉî¶ÈÍøÂç´úÂëÒ»Ðв»¸ÄµÄÇé¿öÏ£¬½«²ÎÊý·Ö²¼ºÍÔËÐÐÔÚPS-PlusÉÏ£¬ÏíÊܸßÐÔÄܵIJÎÊý½»»»ºÍÁ¼ºÃµÄˮƽÀ©Õ¹ÄÜÁ¦¡£

ÖØÐÂÉè¼ÆFailover»úÖÆ£¬Ö§³Ö¶¯Ì¬×éÍøºÍExactly-OnceµÄFailover

TensorFlowRSÒýÈëÁËworker state£¬ÔÚcheckpointÖд洢ÁËworkerµÄ״̬ÐÅÏ¢£¬workerÖØÆôºó£¬»á´Ó½Ó×ÅÉϴεĽø¶È¼ÌÐøÑµÁ·¡£´ËÍâTensorFlowRSͨ¹ýzkÉú³ÉclusterÅäÖã¬Ö§³ÖÁ˶¯Ì¬×éÍøµÄFailover¡£ÐµÄFailover»úÖÆ¿ÉÒÔ±£Ö¤ÈÎÒâ½ÇÉ«¹ÒµôµÄÇé¿öÏ£¬ÏµÍ³¶¼ÄÜÔÚ·ÖÖÓ¼¶Íê³ÉFailover£¬²¢ÇÒ²»¶àËãºÍ©ËãÊý¾Ý

TensorFlowRSµÄÕûÌå¼Ü¹¹ÈçͼËùʾ£º

Èý£® PS-Plus

PS-PlusÏà¶ÔÓÚ´«Í³µÄParameterServerÓÐÈçÏÂÌØµã£º

(1)¸ßÐÔÄÜ£ºPS-Plusͨ¹ýÖÇÄܲÎÊý·ÖÅ䣬Á㿽±´£¬seastarµÈ¶àÏî¼¼Êõ£¬½øÒ»²½ÌáÉýÁ˵¥Ì¨serverµÄ·þÎñÄÜÁ¦ºÍϵͳÕûÌåµÄˮƽÀ©Õ¹ÄÜÁ¦¡£ÔÚʵ²âÖУ¬ÔÚ64coreµÄ»úÆ÷Éϵ¥¸öserverÄÜÇáËÉÓÃÂú55+µÄºËÐÄ£¬ÔÚdense³¡¾°ÏÂioÄÜ´òÂúË«25GÍø¿¨£¬ÏµÍ³ÕûÌåÔÚ 1~4000 worker µÄ·¶Î§ÄÚ¶¼¾ßÓнüËÆÏßÐÔµÄˮƽÀ©Õ¹ÄÜÁ¦

(2)¸ß¶ÈÁé»î£ºPS-PlusÓµÓÐÍêÉÆµÄUDF½Ó¿Ú£¬Óû§¿ÉʹÓÃSDK¿ª·¢¶¨ÖÆ»¯µÄUDF²å¼þ£¬²¢ÇÒ¿ÉÒÔͨ¹ý¼òµ¥µÄC++ÒÔ¼°Python½Ó¿Ú½øÐе÷Óá£

(3)Í걸µÄÔÚÏßѧϰ֧³Ö£ºPS-PlusÖ§³Ö·ÇID»¯ÌØÕ÷ѵÁ·£¬ÌØÕ÷¶¯Ì¬Ôöɾ£¬ÒÔ¼°Ä£ÐÍÔöÁ¿ÊµÊ±µ¼³öµÈÖ§³ÅÔÚÏßѧϰµÄÖØÒªÌØÐÔ¡£

ÏÂÃæ´ÓÖÐѡȡ¼¸µã×ö±È½ÏÏêϸµÄ½éÉÜ£º

1. ÖÇÄܲÎÊý·ÖÅä

²ÎÊý·ÖÅä²ßÂÔ(variable placement)£¬¾ö¶¨ÁËÈçºÎ½«Ò»¸ö²ÎÊýÇзֲ¢·ÅÖõ½²»Í¬µÄserverÉÏ¡£placement²ßÂԵĺûµÔڸ߲¢·¢µÄÇé¿ö϶ÔPSµÄÕûÌåÐÔÄÜÓÐ×ÅÖØ´óµÄÓ°Ïì¡£´«Í³ParameterServerµÄplacement·½°¸ÊÇÓÉϵͳԤÏÈʵÏÖ¼¸ÖÖ³£¼ûµÄplacementËã·¨£¨±ÈÈçÆ½¾ùÇзÖ+roundrobin£©£¬»òÕßÓÉÓû§ÔÚ´´½¨²ÎÊýµÄʱºòÊÖ¹¤»®·Ö£¬ÍùÍùûÓÐ×ۺϿ¼ÂÇÈ«¾ÖµÄ²ÎÊý¹æÄ£¡¢ServerµÄ¸ºÔصȡ£

PS-PlusʵÏÖÁË»ùÓÚÄ£ÄâÍË»ðËã·¨µÄÆô·¢Ê½²ÎÊý·ÖÅä²ßÂÔ£¬ºóÐøÒ²ÔÚ¿¼ÂÇʵÏÖ»ùÓÚÔËÐÐʱ¸ºÔØ£¬¶¯Ì¬rebalanceµÄplacement²ßÂÔ¡£PS-PlusµÄplacementÉè¼ÆÓÐÈçÏÂÓŵ㣺

×ۺϿ¼ÂÇÁËÈ«¾Ö²ÎÊýµÄshapeÐÅÏ¢£¬ÔÚcpu£¬ÄÚ´æ£¬ÍøÂç´ø¿íµÈÏÞÖÆÌõ¼þϸø³öÁ˽üËÆ×îÓŵÄplacement·½°¸£¬±ÜÃâÁËÊÖ¹¤·ÖÅäÔì³ÉµÄ²»¾ùÔÈ¡¢ÈȵãµÈÎÊÌâ¡£

Õû¸ö²ÎÊý·ÖÅä¹ý³ÌÓÉϵͳÄÚ²¿×Ô¶¯Íê³É£¬Óû§ÎÞÐèÅäÖü´¿É»ñµÃ½Ó½ü×îÓŵÄÐÔÄÜ£¬Óû§ÎÞÐèÁ˽âPSµ×²ãʵÏֵľßÌåϸ½Ú¡£

PartitionÓÉ¿ò¼Ü×Ô¶¯Íê³É£¬ÔÚÉϲãËã·¨´úÂ룬ÈçTF´úÂëÖУ¬²»ÐèÒª¶îÍâʹÓÃPartitionedVariableµÈ»úÖÆ£¬Ê¹Óüòµ¥·½±ã¡£

2. È¥ID»¯ÌØÕ÷Ö§³Ö

ĿǰÖ÷Á÷µÄÉî¶Èѧϰ¿ò¼Ü¶¼ÊÇÒÔÁ¬ÐøµÄÄÚ´æÀ´´æ´¢ÑµÁ·²ÎÊý£¬Í¨¹ýÆ«ÒÆÁ¿£¨IDÖµ£©À´Ñ°Ö·µ½¾ßÌåµÄÈ¨ÖØ¡£ÎªÁ˱ÜÃâÄÚ´æµÄÀË·Ñ£¬ÐèÒª¶ÔÌØÕ÷×ö´Ó0¿ªÊ¼µÄÁ¬ÐøID»¯±àÂ룬ÕâÒ»¹ý³ÌÎÒÃdzÆÖ®ÎªÌØÕ÷ID»¯¡£ÌØÕ÷ID»¯ÊÇÒ»¸ö·Ç³£¸´ÔӵĹý³Ì£¬ÓÈÆäÊǵ±Ñù±¾ºÍÌØÕ÷ÊýÁ¿·Ç³£ÅÓ´óµÄʱºò£¬ÌØÕ÷ID»¯»áÕ¼ÓôóÁ¿µÄʱ¼äºÍ»úÆ÷×ÊÔ´£¬¸øÑù±¾¹¹½¨´øÀ´Á˺ܴóµÄ¸´ÔÓ¶È¡£

PS-PlusÄÚ²¿ÊµÏÖÁËÒ»¸ö¶¨ÖÆ»¯µÄhashmap£¬Õë¶Ô²ÎÊý½»»»³¡¾°×öÁËרÃŵÄÓÅ»¯£¬ÔÚÖ§³ÖÌØÕ÷¶¯Ì¬ÔöɾµÄͬʱÌṩÁ˳¬¸ßµÄÐÔÄÜ¡£Í¨¹ýhashmap£¬PS-PlusÖ±½ÓʵÏÖÁ˶ԷÇIDÌØÕ÷µÄÖ§³Ö£¬¼«´óµÄ¼ò»¯ÁËÑù±¾¹¹½¨µÄ¸´ÔÓ¶È¡£

3. ͨÐŲãÓÅ»¯

¶ÔÓÚParameter Server¼Ü¹¹£¬ÑÓ³ÙÊÇÓ°ÏìÕûÌåÐÔÄܵÄÖØÒªÔ­Òò¡£ÓÈÆäÊÇÔÚÄ£Ð͸´ÔӶȲ»¸ßµÄÇé¿öÏ£¬Ä£ÐͼÆË㲿·ÖÍùÍùÔÚ10~100msÁ¿¼¶£¬ÄÇô×ÜÌåͨÐŵÄÑӳپͳÉΪһ¸ö¹Ø¼üÒòËØ¡£

ÔÚ´«Í³µÄpipelineÏß³ÌÄ£ÐÍ£¬¸ß²¢·¢Çé¿öÏÂÖжϺÍÏß³ÌÉÏÏÂÎÄÇл»»áµ¼ÖºܴóµÄ¿ªÏú£¬Í¬Ê±»áÒýÆð´óÁ¿µÄcache-line miss¡£´ËÍ⣬¸ßƵµÄËø¾ºÕùÊÇ´øÀ´ÑÓ³ÙµÄ×îÖ÷ÒªÔ­ÒòÖ®Ò»£¬¼´±ãÊǸ÷ÀàSpinLock¡¢¶ÁÐ´ËøµÈÓÅ»¯Ò²²¢²»ÄÜÓÐЧÏû³ýÕâ¸öÎÊÌâ¡£ÎÒÃÇÈÏΪpolling + run to completionÊÇÒ»¸öÕýÈ·µÄÑ¡Ôñ£¬²¢ÇÒÉè¼ÆÁËÎÒÃǵÄÕûÌåͨÐŲã¼Ü¹¹¡£ÔÚеÄͨÐŲãÖУ¬ÎÒÃÇʹÓÃÁËSeastar×÷Ϊµ×²ãµÄ¿ò¼Ü¡£¶ÔÓÚServer¡¢WorkerÉϵÄconnection£¬¶¼Ñϸñ±£Ö¤connection°ó¶¨µ½¹Ì¶¨µÄỊ̈߳¬Í¬Ê±Ïß³ÌÓëCPUºËÐİ󶨡£Request¡¢responseÖ±½Ó²ÉÓÃrun to completionµÄ·½Ê½ÔÚµ±Ç°Ï̴߳¦Àí¡£ÕûÌå¼Ü¹¹ÈçÏÂͼËùʾ£º

ÔÚSeastarµÄ»ù´¡ÉÏ£¬ÎÒÃÇ×öÁ˺ܶ๦ÄÜ¡¢ÐÔÄܵĸĽøºÍÓÅ»¯£¬ÕâÀï×öһЩ¼òÒªµÄ½éÉÜ¡£

ÍⲿÏ߳̽»»¥¶ÓÁС£ÎÒÃÇ½è¼øSeastarºËÐÄÖ®¼äµÄ½»»¥»úÖÆ£¬ÌṩÁËÒ»¸ö M:N ÎÞËøÉú²úÕßÏû·ÑÕß¶ÓÁУ¬ÓÃÓÚÍⲿÏß³ÌÓëSeastarÄÚ²¿Ï߳̽øÐн»»¥¡£Ïà±È´«Í³¶ÓÁÐÐÔÄÜÓм«´óµÄÌáÉý¡£

дÇëÇó˳Ðòµ÷¶È¡£´ÓÍⲿÏß³Ìpollµ½µÄдÇëÇó£¬Èç¹ûÖ±½Óµ÷ÓÃSeastarµÄд½Ó¿Ú£¬»áµ¼ÖÂдbufferÎÞ·¨±£Ö¤ÓÐÐò¡£ÎÒÃÇͨ¹ý¶ÓÁлúÖÆµÄ¸ÄÔ죬×Ô¶¯±£Ö¤ÁËд˳Ðò£¬Í¬Ê±»ù±¾²»Ëðʧ¶àconnectionµÄ²¢·¢Ð´µÄÐÔÄÜ¡£

Áé»îµÄ±à½âÂë²ã¡£ÎÒÃÇÌṩÁËÒ»Ì×±à½âÂë²ãµÄ³éÏó½Ó¿Ú£¬·½±ãÓû§Ê¹Ó㬴Ӷø²»ÐèÒª½èÖúprotobufµÈ´«Í³µÄÐòÁл¯¡¢·´ÐòÁл¯µÄµÚÈý·½¿â£¬Í¬Ê±Ò²±ÜÃâÁËprotobufµÄһЩÐÔÄÜÎÊÌâ¡£

ËÄ£®ÐÔÄܲâÊÔ

ÎÒÃDzâÊÔÁËTensorFlowRSÔÚDenseÒÔ¼°WDE(Wide-Deep-Embedding)Á½ÖÖ¾­µäÄ£Ð͵ÄÐÔÄÜÖ¸±ê£º

1.Ä£ÐÍ˵Ã÷£º

2.²âÊÔ½á¹û£º

3.WDEÄ£ÐÍÏÂNative-TFÓëTFRSˮƽÀ©Õ¹ÄÜÁ¦±È½Ï

Îå. ÔÚÏßѧϰ

ÒÔFtrlΪ´ú±í£¬ÔÚÏßѧϰ½üÄêÀ´ÔÚ¹¤Òµ½ç¿ªÊ¼±»´ó¹æÄ£Ó¦Óã¬ËüÊǹ¤³ÌÓëËã·¨µÄÉîÈë½áºÏ£¬¸³ÓèÄ£ÐÍʵʱ²¶×½ÏßÉÏÁ÷Á¿±ä»¯µÄÄÜÁ¦£¬ÔÚһЩ¶ÔʱЧÐÔÒªÇóºÜ¸ßµÄ³¡¾°£¬ÓÐÊ®·Ö´óµÄ¼ÛÖµ¡£

Éî¶ÈÄ£ÐͺÍLRÄ£ÐÍÒ»Ñù£¬¶ÔÔÚÏßѧϰÓÐ×ÅͬÑùÇ¿ÁÒµÄÐèÇó£¬È»¶øÄ¿Ç°Ö÷Á÷µÄÉî¶Èѧϰ¿ò¼Ü¶¼È±·¦¶ÔÔÚÏßѧϰµÄÖ§³Ö¡£TensorFlowRSͨ¹ý¶Ô½ÓPS-Plus£¬¸ø³öÁËÒ»Ì×ÍêÕûµÄ¶Ëµ½¶ËµÄÔÚÏßѧϰ½â¾ö·½°¸£¬¸³ÓèÁËTFÖ§³ÖǧÒÚ¹æÄ£·ÇID»¯ÌØÕ÷ÔÚÏßѵÁ·µÄÄÜÁ¦¡£

TFRSÕë¶ÔÔÚÏßѧϰµÄ³¡¾°×öÁËרÃÅÉè¼ÆºÍÓÅ»¯£¬¾ßÌå°üÀ¨£º

1. ·ÇID»¯ÌØÕ÷Ö§³Ö

ÔÚÔÚÏßѧϰµÄ³¡¾°ÏÂ×öÌØÕ÷ʵʱID»¯ÊDZȽϸ´Ôӵģ¬ÐèÒªÒ»¸ö³¬¸ßÐÔÄܵÄÈ«¾ÖµÄIDÉú³ÉÆ÷£¬Õâ¸øÑù±¾Éú³É´øÀ´Á˺ܴóµÄ¸´ÔÓ¶È¡£TensorFlowRSÀûÓÃPS-PlusÖ±½ÓʵÏÖÁ˶ԷÇIDÌØÕ÷µÄÖ§³Ö£¬¼«´óµÄ¼ò»¯ÁËʵʱÑù±¾¹¹½¨µÄ¸´ÔÓ¶È¡£

2. ÌØÕ÷¶¯Ì¬Ôöɾ

ÔÚÔÚÏßѵÁ·µÄ³¡¾°Ï£¬ÑµÁ·ÈÎÎñ»áÒÔserviceµÄÐÎʽ³¤ÆÚÔËÐУ¬ÔÚѵÁ·¹ý³ÌÖУ¬²»¶Ï»áÓÐÐÂÌØÕ÷¼ÓÈ뵽ģÐÍÖУ¬ÎªÁ˱£Ö¤ÑµÁ·¿ÉÒÔ³¤ÆÚ½øÐжø²»»áÒòΪÐÂÌØÕ÷µÄ²»¶Ï¼ÓÈëµ¼ÖÂOOM£¬PS-PlusÔÚÖ§³ÖÌØÕ÷¶¯Ì¬Ìí¼ÓµÄͬʱ£¬»¹ÌṩÁËĬÈϵÄÌØÕ÷ɾ³ý²ßÂÔ£¬¿ÉÒÔ½«µÍƵ»òÕßµÍÈ¨ÖØµÄÌØÕ÷ɾ³ýµô£¬Óû§»¹¿ÉÒÔͨ¹ýUDF¶¨ÖÆ·ûºÏ×ÔÉíÒµÎñÐèÇóµÄɾ³ý²ßÂÔ

3. Ä£ÐÍÔöÁ¿ÊµÊ±µ¼³ö

ÔÚÏßѧϰģÐ͸üеij£¼û·½Ê½ÓÐÈ«Á¿ºÍÔöÁ¿Á½ÖÖ¡£ÔÚÄ£ÐͲÎÊý½Ï¶àµÄÇé¿öÏ£¬È«Á¿¸üеķ½Ê½»á¶ÔÔÚÏßϵͳµÄ´ø¿í´øÀ´¾Þ´óµÄѹÁ¦£¬¶ø½µµÍ¸üÐÂÆµÂÊÓÖ»áʹģÐ͵ÄʵЧÐÔ½µµÍ¡£PS-PlusÖ§³ÖÒÔÈÎÒâÆµÂʽ«Ä£ÐÍÔöÁ¿²¿·Öʵʱд³öµ½ÏûÏ¢¶ÓÁУ¬ÔÚ´ó·ù¼õÉÙÍøÂçIOµÄͬʱʵÏÖÁËÕæÕýÒâÒåÉϵÄÄ£ÐÍʵʱ¸üС£

4. AUC Decay

ÔÚÔÚÏßѧϰµÄ³¡¾°Ï£¬ÎÒÃÇÏ£ÍûÔÚѵÁ·µÄ¹ý³ÌÖоͿÉÒÔ¾¡¿ìµÄ·¢ÏÖÄ£Ðͱ¾ÉíµÄÒì³££¬¶ø²»ÊǵÈÄ£Ð͸üе½ÏßÉÏÖ®ºó¡£Òò´ËÎÒÃÇÐèÒªÓÐһЩ·½·¨À´ÆÀ¹ÀÄ£ÐÍÔÚѵÁ·¹ý³ÌÖÐµÄ AUCµÈÖ¸±ê¡£TFÀïĬÈϵÄstreaming aucµÄʵÏÖÔÚÀúÊ·Êý¾ÝÀÛ»ýÁËÒ»¶¨Á¿µÄʱºò£¬ÎÞ·¨¼°Ê±·´Ó¦µ±Ç°Ä£Ð͵Ä״̬£¬·´À¡ÓкܴóµÄÖͺóÐÔ¡£Òò´ËÎÒÃÇÒýÈëÁËеÄAUC¼ÆËã»úÖÆ£ºAUC Decay¡£AUC Decay±¾ÖÊÉÏÊÇÒ»ÖÖÌØÊâµÄMoving Average£¬Í¨¹ý»ùÓÚʱ¼äµÄ¼õÒæ·½Ê½£¬Èõ»¯ÀúÊ·Ñù±¾ºÍÄ£ÐÍÔÚµ±Ç°AUC¼ÆËãÖеıÈÖØ£¬ÒÔ´ïµ½¸ü¿ì·´Ó¦Ä£Ðͱ仯µÄÄ¿µÄ

Áù. ´ó¹æÄ£ÑµÁ·³¡¾°ÏµÄÊÕÁ²Ð§¹ûÓÅ»¯

1. ÎÊÌâ²ûÊö

´óÊý¾ÝÄ£ÐÍÒýÈëÁË·Ö²¼Ê½²¢ÐÐѵÁ·£¬Í¬²½²¢ÐÐѵÁ·Êܳ¤Î²workerµÄÖÆÔ¼£¬²¢·¢ÊýÈÝÒ×ÊÜÏÞ¡£Òì²½²¢ÐÐÊÇ¿ìËÙѵÁ·µÄÖ÷Á÷¡£Òì²½²¢ÐÐѵÁ·´òÆÆÁËÆÕͨSGDѵÁ·µÄ´®ÐÐÐÔ£¬¼ÆËãµÄÌݶÈÓë¸üеÄÄ£ÐͲ»ÊÇÑϸñÒ»Ö£¬ÒýÈëÁËÌݶÈdelayµÄÎÊÌâ¡£

2. ÌݶȲ¹³¥

ÒýÈëÏà¹ØÒò×ÓÊÇÒÀ¾ÝÈçÏ·ÖÎöǰÌáµÄ£º

(1)Ò첽ѵÁ·Ê±£¬´æÔÚÒþʽµÄÌݶȶ¯Á¿¼ÓËÙÇé¿ö²Î¼û¡¶Asynchrony begets Momentum, with an Application to Deep Learning¡·,²¢·¢Ô½´ó£¬Òþʽ¶¯Á¿Ô½´ó£¬Ôì³ÉÌݶÈÍùÒ»¸ö·½Ïò¹ý¶Èǰ½øµÄÇé¿ö¡£

(2)Èç¹û²»ÊǺÜÀϵÄw,Ïà¹ØÒò×ÓÊÇתÕÛÐźţ¬°µÊ¾Ä£ÐÍÔÚ¶à¸öworkerµÄ¶¯Á¿ÀÛ»ýÍÆ¶¯ÏÂǰ½øµÄÓÐЩ¹ý¶ÈÁË¡£

(3)´æÔÚ×Åtradeoff,Ì«ÀϵÄw£¬ÐźÅ׼ȷÂÊ»áϽµ£¬ÕâʱҪ¿ØÖÆ(µ÷С)ϵÊýlambda¡£

ÒòΪ

ÓëgµÄÏà¹ØÐԾ߱¸ÆÕÊÊÐÔ£¬ËùÒÔ¿ÉÒÔºÍÖ÷Á÷µÄsgd-based optimizer½áºÏ£¬ÊÊÓ¦²»Í¬³¡¾°µÄ²»Í¬ÓÅ»¯Æ÷²¢·¢ÑµÁ·ÐèÇó¡£

Æß. ʵÑé½á¹û

ÎÒÃÇÓÃÏà¹ØÐÔÒò×ÓboostÁËSGD¡¢Momentum¡¢AdaGradÈýÖÖËã·¨£¬²¢ÔÚÉú²ú»·¾³ºÍ¹«¿ªÊý¾Ý¼¯ÉÏ×öÁËʵÑ飬ʵÑé½á¹ûÈçÏÂ

°Ë£®¸ß¼¶ÑµÁ·Ä£Ê½

TFRSÖм¯³ÉÁ˶àÖָ߽×ѵÁ·Ä£Ê½£¬ÀýÈçGraph Embedding£¬Memory Network£¬Cross Media TrainingµÈ¡£ÔÚ±¾ÎÄÎÒÃÇ»á¼òÒªµÄ½éÉÜһϣ¬ÔÚÒÔºóµÄÎÄÕÂÖÐ×öÏêϸµÄ²ûÊö¡£

Graph EmbeddingͼÊÇÒ»ÖÖ±íÕ÷ÄÜÁ¦¼«Ç¿µÄÊý¾Ý½á¹¹£¬µ«ÊÇÎÞ·¨Ö±½Ó×÷ΪÉñ¾­ÍøÂçµÄÊäÈë¡£TFRSÖ§³ÖÑù±¾ÒÔͼµÄÐÎʽ½øÐÐÊäÈ룬²¢Ö§³Ö¶àÖÖËæ»úÓÎ×ßËã·¨¶¯Ì¬Éú³ÉÕý¸ºÑù±¾¡£Ä¿Ç°Graph EmbeddingÒѾ­Ó¦ÓÃÔÚÁËËÑË÷ֱͨ³µµÄÏòÁ¿»¯Õٻصȶà¸öÏîÄ¿Àͨ¹ýÔÚUser-Query-ItemÈýÖÖ½ÚµãµÄÒì¹¹ÓÐÏòͼÖÐËæ»úÓÎ×ߣ¬Éú³ÉÉî¶ÈÉñ¾­ÍøÂçÄܹ»´¦ÀíµÄÏ¡ÊèÌØÕ÷¡£×îÖÕѧϰ³öUser£¬QueryºÍItemÈýÕߵĸßάÏòÁ¿»¯µÄ±íʾ£¬ÓÃÓÚÏßÉÏ¹ã¸æµÄÏòÁ¿»¯Õٻء£ÖµµÃÒ»ÌáµÄÊÇ£¬³ýÁËGraph Embedding£¬ÎÒÃÇͬÑùÖ§³Ö¶ÔͼµÄ½á¹¹½øÐÐѧϰ£¬ÀýÈçÔÚѵÁ·¹ý³ÌÖз´À¡µ÷ÕûͼÖеıߵÄÈ¨ÖØµÈ¡£

Memory Network¼ÇÒäÍøÂç×îÔçÓÉFacebookÔÚ2015ÄêÌá³ö£¬ÓÃÓÚQAϵͳÖС£ÔÚ±¾Ä£ÐͳöÏÖ֮ǰ£¬»úÆ÷ѧϰµÄÄ£ÐͶ¼È±·¦¿ÉÒÔ¶ÁÈ¡ºÍдÈëÍⲿ֪ʶµÄ×é¼þ¡£¶ÔºÜ¶àÈÎÎñÀ´Ëµ£¬ÕâÊÇÒ»¸öºÜÇ¿µÄÏÞÖÆ¡£±ÈÈ磬¸ø¶¨Ò»ÏµÁÐÊÂʵ»ò¹ÊÊ£¬È»ºóÒªÇ󻨴ð¹ØÓÚ¸ÃÖ÷ÌâµÄÎÊÌ⣬ËäȻԭÔòÉÏÕâ¿ÉÒÔÓÃRNNµÈÄ£ÐͽøÐд¦Àí£¬È»¶øËüÃǵļÇÒ䣨Òþ²Ø×´Ì¬ºÍÈ¨ÖØ±àÂ룩ͨ³£Ì«Ð¡£¬²¢ÇÒ²»Äܾ«È·µØ¼Çס¹ýÈ¥µÄÊÂʵ¡£ÔÚ°¢ÀïÂèÂèËÑË÷¹ã¸æ³¡¾°Ï£¬ÎÒÃÇʹÓüÇÒäÍøÂç¶ÔÓû§ÐÐΪ½øÐн¨Ä£¡£

Ïà±ÈÒ»°ãµÄÔÚÑù±¾×éÖ¯½×¶Î½øÐмÇÒäÌåÉú³ÉµÄ·½Ê½£¬TFRSͨ¹ýÔÚѵÁ·¹ý³ÌÖÐÒýÈ붯̬¼ÇÒä´æ´¢Ä£¿é£¬Ö§³Ö³¤¶ÌÆÚ¼ÇÒ䣬´ó·ùÌá¸ßÁËÐòÁл¯ÀàÐÐΪÊý¾ÝµÄѵÁ·Ð§ÂÊ¡£

¾Å. ¿ÉÊÓ»¯Ä£ÐÍ·ÖÎöϵͳDeepInsight

DeepInsightÊÇÒ»¸öÉî¶Èѧϰ¿ÉÊÓ»¯ÖÊÁ¿ÆÀ¹Àϵͳ£¬Ö§³ÖѵÁ·½×¶ÎÄ£ÐÍÄÚ²¿Êý¾ÝµÄÈ«ÃæÍ¸³öÓë¿ÉÊÓ»¯·ÖÎö£¬ÓÃÒÔ½â¾öÄ£ÐÍÆÀ¹À¡¢·ÖÎö¡¢µ÷ÊÔµÈһϵÁÐÎÊÌ⣬Ìá¸ßÉî¶ÈÄ£Ð͵ĿɽâÊÍÐÔ¡£

ÏÂÃæÎÒÃÇͨ¹ýÒ»¸ö¹ýÄâºÏµÄÀý×ÓÀ´ËµÃ÷DeepInsightÔÚÄ£ÐÍÖÊÁ¿·ÖÎöºÍÎÊÌⶨλ·½Ãæ·¢»ÓµÄ×÷Óãº

ÉÏͼÊÇͨ¹ýDeepInsightÉú³ÉµÄÌØÕ÷È¨ÖØ·Ö²¼,´ÓͼÖÐÎÒÃÇ¿ÉÒÔ¿´µ½ÓÒ²à¹ýÄâºÏÄ£Ð͵ıßÈ¨ÖØ´óС·Ö²¼ºÜ²»¾ùÔÈ£¬³öÏÖÁË´óÁ¿È¨Öؼ«´óµÄ±ß£¬ÇÒ¼¯ÖÐÔÚÒ»Ìõ´ø×´ÇøÓòÄÚ£¬ÆäΪijһ×éÌØÕ÷ÊäÈëËùÁ¬½ÓµÄËùÓбߣ¬Õâ±íÃ÷Ä£Ð͹ý¶ÈÄâºÏÁ˸Ã×éÌØÕ÷µÄÐÅÏ¢¡£ÔÚʹÓÃÕýÔòÏîºÍdropoutÖ®ºó£¬¹ýÄâºÏµÄÎÊÌâÈÔȻû½â¾ö£¬Òò´ËÎÒÃÇ×îÖÕ¶¨Î»µ½ÎÊÌâ³öÏÖÔÚ¸Ã×éÌØÕ÷µÄÊäÈëÉÏ¡£·µ»ØËѺü£¬²é¿´¸ü¶à

   
2315 ´Îä¯ÀÀ       32
Ïà¹ØÎÄÕÂ

»ùÓÚͼ¾í»ýÍøÂçµÄͼÉî¶Èѧϰ
×Ô¶¯¼ÝÊ»ÖеÄ3DÄ¿±ê¼ì²â
¹¤Òµ»úÆ÷ÈË¿ØÖÆÏµÍ³¼Ü¹¹½éÉÜ
ÏîĿʵս£ºÈçºÎ¹¹½¨ÖªÊ¶Í¼Æ×
 
Ïà¹ØÎĵµ

5GÈ˹¤ÖÇÄÜÎïÁªÍøµÄµäÐÍÓ¦ÓÃ
Éî¶ÈѧϰÔÚ×Ô¶¯¼ÝÊ»ÖеÄÓ¦ÓÃ
ͼÉñ¾­ÍøÂçÔÚ½»²æÑ§¿ÆÁìÓòµÄÓ¦ÓÃÑо¿
ÎÞÈË»úϵͳԭÀí
Ïà¹Ø¿Î³Ì

È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰ&TensorFlow
»úÆ÷ÈËÈí¼þ¿ª·¢¼¼Êõ
È˹¤ÖÇÄÜ£¬»úÆ÷ѧϰºÍÉî¶Èѧϰ
ͼÏñ´¦ÀíËã·¨·½·¨Óëʵ¼ù