欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    再看Attention之细节问题.docx

    • 资源ID:73266606       资源大小:19.73KB        全文页数:8页
    • 资源格式: DOCX        下载积分:14.8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要14.8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    再看Attention之细节问题.docx

    再看Attention之细节问题这次再来一遍温故而知新主要是其中的代码实现问题【不区分详细哪个版本啥的按最简单的来】ForRecommendationinDeeplearningQQSecondGroup102948747ForVisualindeeplearningQQGroup629530787Imherewaitingforyou不承受这个网页的私聊/私信本宝宝长期征集真实情感经历发在我公号美妙光阴与你同行长期承受付费咨询啥问题都可付费改代码。付费咨询专属效劳快人一步1-根据help再次理解Attention|1.Calculatescoreswithshapebatch_size,Tq,Tvasaquery-keydot|product:scorestf.matmul(query,key,transpose_bTrue).|2.Usescorestocalculateadistributionwithshape|batch_size,Tq,Tv:distributiontf.nn.softmax(scores).|3.Usedistributiontocreatealinearcombinationofvaluewith|shapebatch_size,Tq,dim:|returntf.matmul(distribution,value).三步走计算query以及key的点积这个就是个打分然后由点积得到分布由softmax计算得到由计算得到的分布与value得到最终的结果。关于上次讲解的SRGNN中attention用法我觉得还有点问题主要是query没有明确讲明是啥子可以再看下这个我查看了也没找到查看了原代码也没看懂而且一头雾水这个特别懵逼【或者许这就是屏蔽中下程度的】从shape上来讲这个query的shape必然与session的embeddingshape一样如下例如querytf.Variable(tf.keras.initializers.get(uniform)(shape1000,1,4)valuetf.Variable(tf.keras.initializers.get(uniform)(shape1000,16,4)restf.keras.layers.Attention()(query,value)tf.Tensor:shape(1000,1,4),dtypefloat32,numpyarray(-0.00338019,0.00189824,-0.0002874,-0.00784647,-0.00513936,0.00389516,0.00647767,-0.00183488,0.00516016,0.01167186,-0.01381158,-0.0025348,.,0.0104752,-0.00862713,0.00424046,-0.00106742,0.00435216,0.00232145,0.00339274,0.00424616,-0.0039812,0.00517946,0.00704541,0.00448983,dtypefloat32)释义16个点击的item聚合成一个sessionitem及session的emb_size4参考网络上attention自定义的函数可得同样的shapeattention3(tf.squeeze(query,1),value,1*1000)tf.Tensor:shape(1000,1,4),dtypefloat32,numpyarray(-0.02236429,0.02304715,-0.04459522,0.03128466,-0.03680242,-0.03430416,-0.0360697,-0.0039628,-0.00501503,-0.006629,-0.04473983,-0.011972,.,0.02507205,-0.01383727,-0.02684764,-0.00787603,-0.02620304,-0.02197758,-0.0469028,-0.04654911,-0.01396894,0.0357385,0.0449436,-0.03041291,dtypefloat32)其中最后一个变量为value的长度其真实理解参考意为每1000个user为一个batch其中每个user的点击序列最大为16那么序列中不够16的就要补零因此需要知道真实的item个数即value的长度其值应该最大为162-中的Attention怎样改我看了这局部并不是用的Attention至少不是attention上面的定义那种而是直接相加除以个数尽管这点与attention整个流程差异不大但我改成selfattention应该可以试试。将itemembeding的均值视为query进展attention用均值这个我觉得可以以从数学含义来理解吧毕竟也不是毫无意义的也比其他采用CNN等方式得到的有意义多了然后直接采用Attention函数进展尝试。最终结果似乎没啥子差异啊因为生成的训练集可能是不同的【下面答复了这个问题】#myresults(161848,24)(164988,24)all_cpufunctioncost:0.025261smiddegree800length161848answerlength,161848evaluate_scorefunctioncost:1.160040s0.04410670.228331520.025391490.080062490.00597751#oldversion(161848,24)(164988,24)all_cpufunctioncost:0.020204smiddegree800length161848answerlength,161848evaluate_scorefunctioncost:1.171112s0.047287710.228436560.019599370.08240170.00446279#略微增加点数据量#myresults#90min(178744,24)(166144,24)all_cpufunctioncost:0.020473smiddegree809length178744answerlength,178744evaluate_scorefunctioncost:1.374818s0.042938590.22939510.02510320.079094380.00599198#oldversion#84min(178744,24)(166144,24)all_cpufunctioncost:0.024985smiddegree809length178744answerlength,178744evaluate_scorefunctioncost:1.302567s0.045297810.228913980.023111950.080954840.00557914关于训练集是否一样这里做个测试验证由于是采用的random获取的随机样本那么这里测试下屡次执行的结果是一样的讲明训练集应该是一样的。【又加了一层循环结果仍旧是一样的】$pythonrandom_test_.py6,34,11,52,78,13,4,48,68,42,43,7920,17,43,71,42,31,79,0,55,11,48,80,40,57,13,5,11,18,16,2,37,55,6133,60,4,39,43,66,61,26,67,40,1,50$pythonrandom_test_.py6,34,11,52,78,13,4,48,68,42,43,7920,17,43,71,42,31,79,0,55,11,48,80,40,57,13,5,11,18,16,2,37,55,6133,60,4,39,43,66,61,26,67,40,1,50由于增加了attention多了计算量所以时间稍长了点。【补充0811】关于将均值视为query可能有一定的局限一般来讲应该将最后一个item的emb视为query再次尝试。效果似乎是差的因此均值还是有一定的效果。(178744,24)(166144,24)all_cpufunctioncost:0.010592smiddegree809length178744answerlength,178744evaluate_scorefunctioncost:1.271092s0.041285820.226077510.026501550.077525910.006392873-DIN中Attention怎样改最近的任务是加特征啊其实我的想法以及是一直的不加特征才是真正的高手因为ID本就表示隐藏的群众智慧用户喜欢看那就讲明这个id好加上特征反而有种多此一举的感觉当然也就会陷入特征的无限组合与改良穿插啥的这种才是没有任何解释性。然而原代码是用tf1写的将其中函数直接改为tf2的不行因为有reuse这个所以要改成tf.keras.Model这种形式才可以当然tf2可以只用一个GPU。其中有BN以及Dense层反复使用而且Dense中的参数也是一样的是否可以用一样的初始化放在init我觉得可以一试但是tf1到tf2要改动placeholder及loss这个烦死了。那么本文就不再细讲这局部了详见DIN分布式训练待续。回归正题增加特征啊whatthefuck!4-中的Attention怎么改【0801】参考din的做法将cate_emb拼接到item_emb只得到如下最优的效果【注意得到的emb不要进展normnorm后的结果反而差】。0.030174080.230743290.063570890.069465610.01762796位置权重改为glorot_uniform反而比全是正的效果好一点0.031578170.233358580.066077780.071148530.01890373位置权重不加效果有点差所以必需要。【0806】考虑到时间问题可能在不同时间用户的爱好的类别会发生变化因此有必要固定user侧的数据。回归正题下面需要读懂和充分发挥聪明才智才能将写的代码改成Attention函数的形式。【我使用的就是ComiRec-SA另外一个效果不怎么好SA即为self-attention】【0812】将mask与item点击序列的emb相乘得到的结果就是item序列的emb这个emb经过处理attention或者dense或者mean等就得到user的emb表示用户的爱好。有的将item点击序列的emb经过一些处理比方dense再与mask相乘后再与item序列emb相乘得到user的emb不用attention看下效果如下【采用的新的数据集】0.053289590.289998860.071969550.099578010.01879087比用attention的效果如下差点但可以承受0.054718,0.2933,0.074638,0.10140117,0.0194518但这局部是是attention的全部么我感觉不是因为后面还有softmax这局部才是attention的关键点由user及item的emb相乘得到分数然后经softmax得到归一化后的结果选出分数最大的为最终的emb按照attention的思想应该是各个emb与分数的加权以及也就是均值这个emb详细是什么要参考之前的因为放入了进展训练。经查看help结果与这个emb是inputs对应的是user的embedding多兴趣中最值最大的至此即复习了旧的知识也掌握新的知识融会贯穿只在一刹那。下面要做的是将attention的结果视为最终的user_embedding结果如下此时的query为itemembeddingkeyvalue为user多兴趣的embedding。4.1将最终上述user_emb最为sample_softmax_loss的输入inputs而eval时仍旧采用user多个embedding如下0.036155320.173273680.000769640.063066740.00017446效果有点差啊。4.2将最终user_emb作为eval时的user的emb结果如下0.006070470.032112360.02144670.01116720.00549694效果更差了。我天那么这其中就是ComiRec多兴趣的一个关键点了这也是这篇文章发表的idea当然可以能是我没有正确理解代码及其中的含义下周再见。愿我们终有重逢之时而你还记得我们曾经讨论的话题。

    注意事项

    本文(再看Attention之细节问题.docx)为本站会员(安***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开