趣投稿破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配( 二 )
CodeCMR框架中 , 字符级源代码使用DPCNN模型 , 二进制控制流图使用端到端的GNN模型 。
在函数级别 , 字符级源代码的输入通常在4096以上 , DPCNN的效果远优于TextCNN和LSTM 。 另外 , 在语义特征识别中 , 端到端的GNN模型表现出更强的健壮性 , 可帮助破解传统算法高专家经验的痛点 。
本文插图
图3 - 源代码与二进制代码的语义模型
立即数、字符串模型
源代码和二进制代码的字符串和立即数不完全相同 , 需要设计模型进行匹配 。
本文插图
对于立即数 , 科恩实验室设计了Integer-LSTM , 其输入有integer token和integer number两个 。 integer number作用在LSTM的输入门和输出门 , 以控制信息流动 。
对于字符串 , 其采用分层模型 , 先通过LSTM模型得到每个字符串的向量 , 再使用sum pooling方法得到字符串集合的向量 。
Norm weighted sampling
在两大模块的向量采样阶段 , Norm weighted sampling 与随机采样和distance weighted采样方法相比 , 表现出更好的匹配效果 。
distance weighted sampling采样方法可解决hard样本在训练早期收敛到局部极小值的问题 , 在分布中选择各个概率的样本 。
本文插图
在此基础上 , 科恩实验室又提出改进 , 增加超参数s , 帮助调整概率的分布 , 从而适应不同的任务和数据集 。
本文插图
这种融合训练的方法可大幅提升二进制代码/源代码的匹配准确率 , 从而提升工业部署效率 。
本文插图
实验结果
与传统算法仅提取字符串、立即数特征进行匹配的做法不同 , CodeCMR模型能够实现对代码间隐藏语义特征的自动提取 , 从而达到提升二进制代码-源代码跨模态检索匹配效率的目的 。
从实验结果中可以看出 , 在语义模型中 , DPCNN+HBMP取得最优效果 , 表示在二进制侧采用端到端训练优于预训练的node embedding;此外 , 与随机采样、distance weighted采样相比 , norm weighted的采样效果更好 。
本文插图
表1 - 实验结果
train/valid loss曲线也证明了这一点 , 当s=5时 , norm weighted sampling的train loss更高 , valid loss更低 。
本文插图
图4 - 训练与验证的损失函数曲线
论文链接:
https://keenlab.tencent.com/zh/whitepapers/neurips-2020-cameraready.pdf
本文插图
本文插图
推荐阅读
- 导航|百度地图推沉浸式导航:重庆3D导航来了
- Steam|9块9学武功!《中国传统武术 八卦掌 六十四手》上架Steam:大师3D演示
- 荣耀|荣耀MagicV明天发布:刷新大家对传统折叠屏厚重的认知
- 空调|空调行业新增长点!新风空调成市场新宠:取代传统空调
- 智能手机|爱立信:2G/3G传统技术“退服退网”已势不可挡
- 空调|替代传统空调!新风空调成为香饽饽
- B站|增长达80%!B站公开2021年度创作者生态报告:月投稿数突破1000万
- 特斯拉|别把茅台当特斯拉炒!
- 建设银行泰州海陵支行|弘扬革命传统、传承红色基因,三方共建主题党日活动举行
- 大学生|超八成受访大学生认为自己轻微社恐:专家支招如何破局
