论文阅读-AppDebloating


1. 2023 GPT4Graph

论文题目:GPT4Graph: Can Large Language Models Understand Graph Structured Data? An Empirical Evaluation and Benchmarking

进行实证研究,评估LLM在理解图数据方面的能力

  • 提出一个集成LLM和图结构数据的框架

    1733452387000

    • 手工提示 Manual Prompt:生成图的图描述语言GDL,将用户查询的query与GDL结合起来形成LLM的输入
    • 自提示 Self Prompt:LLM推理过程中的中间输出反馈回输入,如图的上下文解释、图格式描述
  • 建立评判基准

    • 结构理解任务
      • Graph Size Detection
      • Degree Detection
      • Edge Detection
      • Attribute Retrieval
      • Diameter Computing
      • Clustering Coefficient Computing 聚类系数计算
    • 语义理解任务
      • KG QA
      • GQL Generation
      • Node Classfication
      • Graph Classfication
  • 对各种提示进行实验

    • 结构理解任务-引文网络 obgn-arxiv、Aminer

      结构理解任务实验结果

      • 输入设计对结果有重大影响
      • 角色提示通常可以提高性能
      • 示例对图理解有影响,样本和零样本在不同小问题上各有优劣
      • 外部知识放在图输入之前性能更好
    • 语义理解任务-知识图谱问答 Wiki、MetaQA

      • KGQA和GQL生成

        1733451064493

        SOTA更好,但是LLM也不赖

        KGQA上zero-shot-cot+graph+change-order普遍更好

        GQL生成上one-shot比zero-shot好

      • 节点分类任务

        1733451371183

        2-hop上下文比1-hop更好

        COT对这项任务不那么奏效

      • 图分类任务

        1733451558144

        self-prompt的自格式解释和自总结很有效

  • 相关工作和结论

    理解图的两个路径:与图神经网络GNN、GCN结合,加入注意力机制GAT

    未来可以侧重改进图形结构信息编码

2. 2023 ASE AutoDebloater

论文题目:AutoDebloater: Automated Android App Debloating

背景:Android程序越做越大,对特定用户而言很多功能特征是不需要的,而这些不需要的功能既可能存在安全漏洞,也占用了大量系统资源

目标:Remove unnecessary features from Android applications

方法

  • 用StoryDistiller生成App的活动转换图ATG

    • StoryDistiller输入一个App,输出ATG和每个Activity的截图

      An activity is an application component that provides a screen with which users can interact to do something.

    • 结合静态活动转换和动态活动转换(抓取组件间通信ICC数据)

  • 识别要删除的活动方法

    • 识别用户想要删除活动类中的方法
    • 前向切片识别CG中仅受这些方法影响的其他相关方法
  • 采用Soot框架消除待删除方法

    • 不直接删除函数,而是将函数体清空,返回值设null或0
    • 保留了各种依赖和调用关系,确保编译通过

验证

  1. user study
    • benchmark:
      • 稳定性 stability,不崩溃
      • 总体满意度 overall satisfaction,Debloating效果
    • 结论:用户满意
  2. 性能分析
    • StoryDistiller比较慢,采用缓存方法
    • Debloating的时间少于 20 秒

3. 2024 ICSE MiniMon

论文题目:MiniMon: Minimizing Android Applications with Intelligent Monitoring-Based Debloating

与第2篇工作AutoDebloater是同一个作者,两篇文章针对的问题背景是一致的,但是这篇不再依赖用户自己选择所需功能,而是通过监控用户的使用记录,从而更自动化的挖掘用户意图并Debloate App。同时Debloating的粒度从Activity变成了method

方法

1733463210740

  1. 静态插桩监视执行情况

    使用Soot的BodyTransformer类对应用程序进行静态插桩,在method的第一个指令前插入 方法签名、时间戳、应用程序名称

  2. 静态分析获取调用图Call Graph,CG

    使用FlowDroid执行静态分析,生命周期方法和回调作为入口点

    • 遍历显式方法调用
    • 检测反射等隐式方法调用,识别所有传播的字符串常量
    • 使用ICCBot检测组件间通信ICC
    • 异步任务
  3. MethodGeneralizer:给定CG和监控期间记录的methods,使用无监督技术识别所需功能特征的未见method

    • 基于程序分析的技术

      • 前向切片 Forward Slicing
      • 反向切片 Backward Slicing
      • 双向切片 BiDirection
    • 基于图聚类的技术

      • LCD,Louvain community detection algorithm
      • LPA,Label propagation algorithm
    • 基于图嵌入的技术

      • 方法1

        1. 将图结构转换为序列,DFS生成静态执行路径

        2. 为每个序列的每种方法生成嵌入

          • LSTM

          • One-Hot

          • IDF,Inverse Document Frequency 逆文档频率

            The intuition is if a method is commonly executed in the
            static execution paths, then it should have a lower weight in the
            embedding.

            IDF计算公式

          • IDF-POS,添加位置权重

        3. 跨序列聚合(使用max-pooling)每种方法的嵌入,得到方法的最终嵌入

      • 方法2:Node2Vec

        得到向量表示后通过余弦相似度识别未见方法

  4. 删除无关方法

    • 同上一篇工作
    • 在删除的方法函数体中通知该方法已被删除

测试基准

  • 启发式方法:将同一活动中的小部件视为一组相似的用户行为
  • 使用SARA记录测试用例

评估指标

  • 召回率 Recall
  • Debloating Rate
  • 加权调和平均值,赋予召回率更大的权重

4. 2023 资源独立工作流可满足性的最小增量模式回溯

论文题目:资源独立工作流可满足性的最小增量模式回溯

这篇文章针对高资源配比(资源数n显著大于步骤数k)的工作流可满足性问题(Workflow Satisfiability Problem, WSP),在资源独立性约束下,改进原有的SOTA方法增量模式回溯法(Incremental Pattern Backtracking, IPB),提出最小增量模式回溯法MIPB,理论上降低了时间复杂度,并进行对比实验检验了算法运行时空性能

原理:子模式具有唯一增块,增块形成于父子模式的原子性差异,即二者只相差一个增元。论文利用这一最小差异,在计算模式完全指派图时,将增块的候选邻点验证代价降至O(1),而邻点搜索范围的实际规模可在O(n)量级内极大收缩。据此完全指派图的增量计算时间从O(kn)降至O(n)

MIPB算法

这篇文章全是各种定义和证明,感觉我好像缺少了不止一点前置知识,有种在看天书的感觉,除了整体脉络根本没看懂。。。。


文章作者: 浪迹天涯的小柴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 浪迹天涯的小柴 !
  目录