4.1. 早期工作¶
我做写匠,和之前做计算机视觉领域的产品还不太一样,写匠主要用的技术是自然语言处理(NLP)和机器学习(ML)。1 NLP 是一个交叉学科,难度很大,有些问题从语言学角度都没有解决,导致技术受限,产品本身要分解到底层又牵扯到语言学领域的问题,对 PM 初学者来说水很深,不太建议一转行就进来踩坑到底层,看多了资料真的会盲目,十分受挫。
而我在接触 NLP 产品的早期(入职0–6个月)会有这些工作:
(1)理解用户场景和需求背景:
理解产品本身的需求场景、做同类竞品分析和测试…
进行一些用户调研、访谈、…
思考写匠产品本身核心竞争力是什么,核心功能和辅助功能分配?
产品结构,整体规划…
(2)拆解需求,哪些和 AI 相关:
核心功能:要反馈给用户哪些写作建议,如:基于认知科学的xx原理、涉及到的某些文学属性和评价指标、语言风格、…
如何拆解这些需求?基于规则还是基于统计?比如:提取并抽象出各种语言规则…
算法研发过程中有哪些问题?评价指标有哪些?怎么算好指标?如:
好指标:
Actionable,可以指导具体行为。
Accessible,简单,容易理解。
Auditable,可以进行验证。
FPR&TNR、TPR
精确率Precision(全文找到错别字是不是有误报的情况)、召回率Recall(全文找到的错别字的数量是不是漏了)、F1值
综合评价指标F-measure
ROC曲线和AUC
容量和速度(一次可以容纳多少字数、速度如何,会不会卡)
损失函数(MAE:目标值和预测值之差的绝对值之和)
如何提升这些指标?比如:提高数据量…
如何扩大语料库规模和训练数据?
比如:从网上获取语料库,建立通用语料库,专用语料库、各行业的词表…然后处理数据集,数据整理,…
根据需求拆解,算法的输入和输出是什么?数据如何显示?哪些是用户需要,哪些是后台需要?…
新旧版本的算法评测如何对比?比如:
制定算法评测指标,进行评测集标注,做算法评测,分析结果…
(3)产品终于从 0 ~ 1 进入到工程开发阶段:
产品逻辑、原型设计、交互设计…
算法、前端、后端的业务逻辑拆分…
团队写作、项目管理、各种开会…
测试用例,功能测试、性能测试、…
版本管理,后续迭代哪些功能…
偶尔申请一些第三方服务…
偶尔组织聚餐和团建… … 这就需要我额外学习:
AI 在 自然语言处理中的应用有哪些,如问答系统、文本摘要、情感分析、…
自然语言处理本身的基础能力,如分词、词性标注、句法分析、…
读一些和 NLP、ML、PM 工作直接或间接相关的书,如:
AI+NLP:《NLP汉语自然语言处理原理与实践》、《机器学习》、《认知语言学》、《面向- 机器学习的自然语言处理标注》、…
PM:《认知与设计》、《破茧成蝶》、《设计心理学》、…
工作方法要高级批量化,提升认知水平,帮助自己理性思维的认知科学理论,应用到自己的学习中…(推荐老板的公众号:【开智学堂】、【心智工具箱】)
4.1.1. 困难¶
上述工作中,最开始对我来说最难的地方是:拆解需求,如何根据目标,提取出抽象规则,制定算法能力的评价标准,…比如:怎么把这些文学底层理论知识变成算法硬性的指标,如果底层的问题没想清楚或者是解决不了,即使把代码写好了,模型训练好了,最后用户也会觉得怎么那么硬邦邦的,很奇怪,就觉得这产品很不实用。而即使有了思路和方法, 在执行过程也发现很大阻力,比如数据各种问题。后来就给自己挖到坑里面了,浪费了很多时间,虽然在这个坑里自己也蛮大收获的。