First, relax and treat the interview as a consultation where I aim to learn, understand, or delve deeper into a certain field. The interviewer is usually a department head or key person in charge, with broader and deeper expertise in the professional area than I (and of course, a higher salary). This is a great opportunity to recognize your shortcomings and fill in the gaps. Well, the word “interview” fits perfectly—it’s like saying, “瞅你咋啦” “瞅你咋地”.

So I record some Q&As to modify my story.

LSTM搭建情感分析模型

评估指标

二分类:准确率、F1-score、AUC-ROC

预处理

  1. 文本清洗(去除HTML、特殊字符)
  2. 分词
  3. 构建词汇表(限制大小,如20000词)
  4. 序列化(词→索引)
  5. 填充/截断至固定长度

架构

输入 → 嵌入层 → LSTM层 → Dropout → 全连接层 → 输出

  1. 输入层: 清洗数据, 固定序列长度, 多则截断, 少则填充
  2. 嵌入层: 使用预训练词嵌入(Word2Vec), 这里使用了知乎的一个预训练权重
  3. LSTM层:
  4. Dropout层: 提高泛化性能
  5. 全连接层: 对其输出
  6. 输出: sigmoid二分类

超参数

  1. 序列长度:50-200个词(覆盖大多数评论)
  2. 批次大小:32-64
  3. 学习率:0.001(Adam优化器)
  4. 训练轮次:10-20(早停防止过拟合)
  5. 正则化:L2正则化 + Dropout

Q&A

  1. 数据怎么清洗: HTML标签, 特殊字符, 停用词, 分词
  2. padding 怎么处理?pad到max_len, mask避免参与到loss
  3. 用随机初始化 embedding 还是预训练? 用了预训练的, 提高收敛速度与泛化性能
  4. 类别不平衡: 重采样
  5. learning rate? 1e-3开始, 通常可以根据epoch设置milestone, 逐渐降低

合同识别中的印章识别与手写识别

项目架构

  1. OCR 层(图像 → 文本 + 坐标)
  2. 结构化解析层(段落 / 表格 / 条款识别)
  3. LLM 风险识别层(语义分析)
  4. RAG 法规增强层(知识校验)

架构

pdf 输入 →


最成功的一件事

你推动事情落地、解决复杂问题、带来明确价值

我觉得我目前比较成功的一件事,不一定是某一个单点模型效果,而是我能把偏分散、偏经验化的数据分析或预测工作,逐步整理成更结构化、可复用的流程。

比如在之前的工作里,很多需求一开始都是临时分析、口径不统一、结果依赖个人经验。我做的一件比较有成就感的事,是把这类工作慢慢沉淀成相对标准化的处理流程,包括数据清洗、特征整理、结果校验,以及必要的可视化和复盘。

这样做之后,一方面提高了交付效率,另一方面也让结果更稳定、可解释,业务方沟通成本更低。

我觉得这件事对我来说比较有代表性,因为它体现的不是一次性的“做出来”,而是把事情做得更可持续、更容易协作。

最失败的一件事

失败不致命,但你确实学到了东西

我印象比较深的一次“失败”,其实是我早期做项目时,有一段时间会更关注技术方案本身,想把方案设计得更完整、更理想化一些。

但后来我发现,实际业务环境下,很多时候最重要的不是“理论上最优”,而是能不能在当前数据条件、时间要求和业务约束下,先交付一个稳定可用的版本。

有一次我就在方案上花了比较多时间,虽然最后结果不算差,但推进节奏偏慢,也让我意识到自己当时在优先级判断上还不够成熟。

后来我就比较注意先明确目标、时间边界和验收标准,再决定做到什么程度。这个调整对我后续工作帮助挺大。

避免:

  • 和领导闹翻
  • 把项目搞砸
  • 拖垮团队
  • 因为情绪影响工作
  • 技术太差导致重大事故

突出:

  • 失败点温和
  • 很像成长中的技术人
  • 不会显得人品有问题
  • 顺手体现成熟度提升

三个优点

  • 结构化分析能力比较强
  • 能兼顾技术和业务落地
  • 学习和迭代能力比较强

三个缺点

  • 有时会对细节投入过多
  • 对不合理的事情会想弄明白
  • 早期更偏独立完成,现在在加强协同

避免:

  • 我抗压差
  • 我不爱沟通
  • 我不稳定
  • 我容易和领导冲突
  • 我执行力差
  • 我经常拖延

什么情况下会离开公司

我还是希望在一个合适的平台长期稳定发展,不会因为短期情绪或者一时的不顺就轻易离开。

但如果出现一些比较根本性的问题,比如:

  • 方向: 公司的发展方向和我的职业方向长期不匹配,或者岗位内容和最初沟通差异很大,长期无法发挥价值
  • 团队: 团队协作方式、管理方式存在持续性问题,而且经过沟通也很难改善,那我可能会认真考虑是否还适合继续合作。

对我来说,离开通常不会是冲动决定,而是对双方是否还匹配的理性判断。

玻璃球强度测试

Question:

2 颗玻璃球,一栋 100 层楼
存在某一层 ,满足:

  • 高于 的楼层扔下,球会碎
  • 不高于 的楼层扔下,球不会碎

要求设计策略,在 最坏情况下,用尽量少的次数找出这个临界层

Solution:

因为只有两颗球,所以不能直接二分。
如果第一颗球碎了,第二颗球只能线性试,因此关键是平衡“第一颗球试探次数”和“碎了之后剩余线性搜索次数”。

设第一次扔在第 层,之后依次减少步长:
第一次加 ,第二次加 ,第三次加 ……
这样无论在哪一步碎,最坏总次数都相同。

需要满足

解得最小 .

所以最优策略是从 14 楼开始,然后 27、39、50……逐步测试,最坏情况下 14 次能确定临界楼层。


面试岗位: 机器学习算法

时间序列预测

已经经历2轮面试

在面试过程中, 我没写在简历中, 但是在交流中提到了 AI 落地的应用, 反而是面试官都比较感兴趣的内容.

比如 Copilot: 类似于chatbot, 和产品结合更深, 问题在于, 做这个东西有多大的价值, 能做的多深入 在技术实现上, 我采用了 web page java python adapter Dify/KB LLM return 的链路, 问题在于 Dify 内的workflow 比较不灵活, 优点是 监控/审计 都比较清晰

比如 Agent: 现在比较火, 怎么设计 agents, skills, 怎么给用户使用, 能力空间会更大一点, 更加灵活 对于内部工具, 有自动化/备份流程就ok. 对于外部应用的话, 几乎都会进行写权限的约束, 只读的能力不一定足够. 具体可以参看Building KnowledgeBase with Opencode


自我介绍的更新

除了常规的自我介绍, 还应该包含

Why match this job and this company Why me

如何解决特征的多重共线性

为什么时序预测不再强调多重共线性

PCA 对树模型未必是默认好选择:

  1. 降低解释性
  2. PCA 无监督 方差大 ≠ 有效
  3. 树模型擅长原始模型切分