2. 中国舰船研究院,北京 100101
2. China Ship Research and Development Academy, Beijing 100101, China
随着互联网进入大数据时代[1],用户行为给企业的产品和服务带来了一系列的改变和重塑,为了更好地了解用户特征和使用习惯,用户画像[2]技术逐步走入实际应用。基于积累的大量业务数据,运用大数据技术[3],建立用户画像以便精确掌握用户特征、精准推荐产品和服务。近年来,随着海军信息化建设[4]的深入开展,海军信息化建设目前也存在海军信息系统结合业务工作需求建设[5]。海军信息化建设过程中收集了大量业务数据,并且针对典型领域开展了分析挖掘,但上述数据的分析挖掘大多是面向相关业务领域应用,缺乏对于用户特征和使用习惯的关注,难以及时掌握用户需求,存在用户使用底数不清、使用习惯不明的问题,容易造成系统研制和改进人员对于用户需求了解不够,系统研制和使用脱节。因此,结合海军业务特点,提出一种基于机器学习的军事信息系统用户画像技术。该技术能基于大量海军用户历史数据,运用机器学习技术[6]进行用户画像处理,清晰描述海军军事信息系统用户特征和使用习惯,能为海军军事信息系统需求迭代和改进完善提供有益支撑。
1 用户画像原理和主要流程 1.1 用户画像用户画像,即用户信息标签化,通过收集用户的社会属性、消费习惯、偏好特征等各个维度数据,进而对用户或产品特征属性进行刻画,并对这些特征进行分析、统计,挖掘潜在价值信息,从而抽象出用户的信息全貌[7]。用户画像能提供个性化推荐、精准营销、个性化服务等多样化服务,是大数据落地应用的一个重要方向。
海洋军事信息系统用户画像[8]主要是从海军用户自身属性信息、软件操作所表现出的行为特征等方面进行描述,由于军事信息系统用户在业务工作、安全保密等方面有更为严格的要求,其用户画像更多是从其业务工作角度对其特征进行描绘,主要目的是深入了解用户使用需求,以便改进完善软件功能。这与一般互联网商业用户画像侧重于了解用户喜好、提升营销业绩有一定区别。
1.2 用户画像系统架构用户画像主要是基于大数据平台提供的海量数据存储和计算能力,其系统架构与大数据平台基本相同,具体包括数据处理、数据平台和用户画像应用等,如图1所示。
1)用户画像应用
用户画像应用包括用户标签[9]生成、用户分析和产品推荐等。用户标签主要是基于相关数据、运用标签建模模型计算得出;用户分析是根据赋予用户的标签,对用户的使用习惯、兴趣特点等进行进一步的综合分析;产品推荐是基于用户分析的结果,关联相关产品并精准推荐给用户。
2)数据平台
数据平台中分布式文件系统为Hadoop的HDFS,计算框架选用Spark以及RHadoop,Spark的主要用途有2个:一个是对于数据处理与上层应用所指定的规则的数据筛选过滤;一个是服务于上层应用的SparkSQL[10]。RHadoop的应用主要在于对标签数据打分,其可利用协同过滤等各种推荐算法对数据进行各方面评分。MongoDB主要用于用户画像标签的存储和对于单个用户数据的实时查询。MySQL用于上层应用标签规则的存储,以及页面信息的展现。
3)数据处理
用户画像数据来源于各个数据源系统产生的日志记录,通过Sqoop导入HDFS;也可通过将数据写入本地文件,然后通过Spark SQL的load或Hive的export等方式导入HDFS[11]。对于用户数据、行为数据、媒体数据等,通过数据清洗、数据转换等处理,生成标准统一、格式规范的标准数据,便于后续的数据计算和查询。
1.3 海军信息系统用户画像的主要流程海军信息系统按照软件功能可分为业务应用软件和海军军事信息网站等。业务应用软件主要是定制界面的软件,海军军事信息网站内容主要是定期更新的网页,用户对于上述2种软件的操作不同,需使用不同的标签建模技术生成相应数据标签[12]。
海军信息系统用户画像主要流程包括建立海军用户画像框架树、海军用户相关数据收集处理、海军用户基本信息标签建模、业务应用软件操作标签建模、网页关注动态信息标签建模等,海军信息系统用户画像主要流程如图2所示。
海军信息系统用户在日常工作中主要使用定制化的业务软件、查询海军信息网站,因此从用户基本信息、业务应用软件操作、网页关注动态信息等方面建立用户画像框架树,如图3所示。图中的业务应用软件以指挥信息系统为例,把指挥信息系统的功能模块作为业务应用软件操作标签的下级节点。
1)海军用户基本信息数据收集。从海军人员档案信息系统以全量获取、增量更新的数据同步方式,抽取相关用户的个人信息,包括身份证号、姓名、籍贯、性别、年龄、民族、职务等。
2)海军用户软件操作行为数据收集。通过软件埋点等技术手段,对用户使用业务应用软件的操作行为进行收集,包括用户使用的软件功能模块、软件访问数据库数据记录等。
3)海军用户网页浏览行为数据收集。用户在工作中浏览访问军事信息网站时,通过嵌入网页页面的JavaScript脚本等工具手段,对相应的用户页面交互数据(如点击跳转页面、关闭页面、页面滚动、框选文字、点击放大图片,以及相应的操作时间等数据)、网页页面展现数据进行采集。
4)相关数据存储处理。建立具备结构化和非结构化存储能力的数据仓库[13],统一存储用户基本信息数据、用户软件操作行为数据和用户网页浏览行为数据等。以军事信息系统用户ID为核心,建立上述数据与相应的用户ID的映射关系,实现数据仓库内数据的用户ID统一标识。
2.3 用户基本信息标签建模根据收集到海军信息系统用户的个人信息,直接放置到用户基本信息标签下相应的位置,如性别、年龄、职务、军衔等。
2.4 业务应用软件操作标签建模根据所承担的业务工作要求,用户使用海军业务应用软件中的相关软件模块进行数据访问和计算操作。海军用户软件使用标签主要综合考虑用户使用的软件模块和所访问的数据对象实体进行建模。
1)软件功能分类树构建
按照海军军事业务应用软件的模块、功能进行分类,构建业务应用软件功能分类树。软件操作是一级节点,二级节点是软件的主要组成模块,以指挥信息系统为例,主要包括态势掌握、作战筹划、指挥控制等。对于各软件模块按照模块功能进行逐级划分和展开。软件功能分类树建立完成后作为用户画像的下级节点,纳入用户画像框架树中。
各节点以三元组(软件模块名称、软件模块标识码、软件模块层次码)进行标识。其中,软件模块标识码、软件模块层次码均为全局唯一值。
2)实体对象分类树构建
实体对象分类为一级节点,业务应用软件所使用的实体对象主要包括海军作战部队、武器装备、军事设施等,作为第二级节点,按照业务属性进行逐级划分和展开。最末端的叶子节点是具体的数据属性,表示“数据表名.属性名称”,如“部队情况表.编制数”。
假设实体对象分类树有
根据实体对象分类树,以业务应用软件主要使用的实体对象实例
3)用户访问数据记录筛选和分类
一般来说,海军用户使用业务应用软件在一段时间内对某些数据进行密集的访问,且不会访问数据表中的全部属性字段。把用户所访问的数据记为(时间戳、软件模块、数据表名、数据记录ID、属性名称集合),属性名称集合是被访问数据表中属性名称组成的集合。
在业务应用软件功能分类树中选取某个非叶子节点(软件模块
根据2.4节中(实体对象实例ID、数据表、数据记录ID)的映射关联关系,对于按照软件模块筛选后的用户访问数据记录(某时间段、软件模块A,数据表名、数据记录ID、属性名称集合)按照实体对象实例
4)实体对象实例相似度计算
对于2.4节中每个实体对象实例
步骤1 根据相应数据集合中的数据记录,针对不同的“数据表名.属性名称”分别计算其出现次数m,得到向量v= {m1, m2, ··· , mk},k为不同的“数据表名.属性名称”的数量;
步骤2 将步骤1处理后得到的向量v参照某实体对象向量
${\rm{cos}}\left( {{v_1},v_2^\prime } \right) = \frac{{V_1^\prime {\rm{ \times }}V_2^\prime }}{{|V_1^\prime |{\rm{ \times }}|V_2^\prime |}} = \frac{{\displaystyle \sum\nolimits_{j = j;j = 1, \ldots ,k;j = 1, \ldots ,k} {{\omega _j}{\rm{ \times }}n} _j^\prime }}{{\sqrt {\displaystyle \sum\nolimits_{i = 1}^k {\omega _i^2} {\rm{ \times }}\sum\nolimits_{j = 1}^k {n_j^{\prime 2}} } }}。$ | (1) |
当
1)网页正文内容抽取
网页中除包括网页标题、网页正文文字外,还包括导航信息、网页链接、版权信息等,导航信息、导航信息、网页链接、版权信息等信息对于用户画像没有帮助,需予以剔除,从网页中抽取出网页标题、网页正文文字内容。由于网页使用
2)用户平均浏览速度计算
根据经验统计,一般人的阅读速度约为每分钟300~500字,取平均值为400字/分钟。基于所存储的用户浏览记录数据,计算每个网页浏览参考时间
${s_c} =\frac{{{\displaystyle \sum}_{i=1}^{n}pw{n_i}}}{{{\displaystyle \sum}_{i=1}^{n}{t_i}}}。$ | (2) |
其中,
3)网页关注度计算
一般而言,用户对于所关注的网页能读完全部正文内容,并且对某些内容会放慢速度或反复阅读,使得用时较长。当实际浏览速度低于用户平均浏览速度,说明用户看的较为仔细,关注度高;反之,实际浏览速度高于用户平均浏览速度,说明用户关注度低。此外,用户在阅读所关注的网页内容时,可能会出现页面滚动、框选文字、点击放大图片等操作。综合考虑上述因素,用户对某网页pi的关注度ufi的计算公式如下:
$ \begin{array}{c}{c}r{s}_{i}=\dfrac{p{l}_{i}}{{t}_{i}}\end{array} ,$ | (3) |
$ \begin{array}{c}\begin{array}{c}u{f}_{i}=\dfrac{r{s}_{c}}{r{s}_{i}}+\dfrac{\alpha \times p{s}_{i}}{p{l}_{i}}+\dfrac{\beta \times s{w}_{i}}{p{l}_{i}}+\mu \times e{p}_{i}\end{array}\end{array} 。$ | (4) |
式中:
4)词语权重计算
网页和网页标题由众多的词语组成,要从中提取出用户关注的信息,需对相关网页的文字进行预处理。对于用户浏览某网页
军事网站网页的标题一般较为简洁、精炼,体现是高度概括性,网页正文是对内容的详细描述,体现是信息全面性。在
$ \omega \left(pw,p\right) = \left\{ \begin{array}{l}\dfrac{n}{\left|pwn\right|} \times \mathrm{log}\left(\dfrac{N}{{N}_{pw}+1}\right),pw\notin \left\{k{w}_{p}\right\},\\ \dfrac{n}{\left|pwn\right|} \times \mathrm{log}\left(\dfrac{N}{{N}_{pw}+1}\right)\times \theta ,pw\notin \left\{k{w}_{p}\right\}。\end{array}\right. $ | (5) |
词语
5)词语权重向量表示
对于用户浏览关注的所有网页逐一进行预处理后,将得到的所有
6)词语权重向量聚类处理
由于用户浏览的网页可能属于不同的领域,需要对词语权重向量进行聚类处理。在这里,采用无监督的
输入为用户所有浏览关注网页的词语权重向量集合
步骤1 在词语权重向量集合
步骤2 计算词语权重向量
$ \begin{array}{*{20}{c}} {dist\left( {{V_i},{U_j}} \right) = \sqrt {\displaystyle \sum\limits_{m = 1}^n {{{\left( {{V_{i,m}} - {U_{j,m}}} \right)}^2}} } }。\end{array}$ | (6) |
步骤3 计算上述距离中的最小距离,其对应的质心为
步骤4 对于
$ {C}_{j}^{{'}}=\frac{1}{\left|\begin{array}{c}{C}_{j}\end{array}\right|}\sum _{{V}_{i}\in {C}_{j}}{V}_{i} 。$ | (7) |
其中,
重复执行步骤2~步骤4,直到向量更新后的簇质心与原簇质心的距离值在预定范围内或达到预定的迭代次数,得到
7)用户关注信息标签生成
各聚类簇代表的是用户关注的多个领域,由于其包含的词语权重向量的数量多,且向量维度多,需对其分别进行整合降维处理,以得到用户关注的各领域关键词的标签。聚类簇Ci(i=1,2, ··· ,k)内的词语权重向量
$ \begin{array}{c}\left\{{V}_{1},{V}_{2},\dots ,{V}_{q}\right\} = \left[\begin{array}{cc}\begin{array}{cc}{\omega }_{\mathrm{1,1}} & {\omega }_{\mathrm{1,2}}\\ {\omega }_{\mathrm{2,1}} & {\omega }_{\mathrm{2,2}}\end{array} & \begin{array}{cc}\dots & {\omega }_{1,m}\\ \dots & {\omega }_{2,m}\end{array}\\ \begin{array}{cc}\dots & \dots \\ {\omega }_{q,1} & {\omega }_{q,2}\end{array} & \begin{array}{cc}\dots & \dots \\ \dots & {\omega }_{q,m}\end{array}\end{array}\right]。\end{array} $ | (8) |
式中:
依次对聚类簇
步骤1 词语权重向量整合处理。对于各词语权重向量中的元素进行整合计算,最终得到了一个词语权重向量。由于用户对于各网页的关注度
$ {{V_i} =\left\{ {\dfrac{{\displaystyle\sum _{i = 1}^q\left( {{\omega _{i,1}} \times u{f_i}} \right)}}{q},\dfrac{{\displaystyle\sum _{i = 1}^q\left( {{\omega _{i,2}} \times u{f_i}} \right)}}{q},} \ldots , { \dfrac{{\displaystyle\sum _{i = 1}^q\left( {{\omega _{i,m}} \times u{f_i}} \right)}}{q}} \right\} 。}$ | (9) |
式中:
步骤2 词语权重向量降维处理。将步骤1处理得到的词语权重向量
步骤3 将步骤2处理得到的前
本文基于上述算法和模型建立了基于机器学习的军事信息系统用户画像模拟系统。通过收集海军用户使用某军事业务系统和访问军事信息网站1个月的历史数据,进行相应的清洗和处理后作为训练样本数据集,对本文中相关算法模型进行训练和验证。
用户关注网页式(5)中的
网页
使用本文设计的用户画像算法,得到用户
基于海军军事信息系统用户软件操作行为数据和海军网页浏览行为数据,运用机器学习技术,建立软件功能分类树和实体对象分类树,进行相似度计算生成业务应用软件操作标签;通过网页关注度计算、词语权重计算和词语权重向量聚类处理,产生网页关注动态信息标签,进而构建海军军事信息系统用户画像。下一步,通过进一步收集更为广泛的数据,对相关模型和参数进一步调优和完善,并提升计算的时效性。
[1] |
涂子沛. 数据之巅: 大数据革命, 历史, 现实与未来[M]. 北京: 中信出版社, 2019.
|
[2] |
田秀娟. 互联网用户图像资源加密安全保护仿真[J]. 计算机仿真, 2017, 34(11): 439-442. DOI:10.3969/j.issn.1006-9348.2017.11.096 |
[3] |
陈昊, 赵斐. 一种基于用户画像的态势信息精准推荐技术[J]. 火力与指挥控制, 2021, 46(2): 143-149. DOI:10.3969/j.issn.1002-0640.2021.02.025 |
[4] |
刘文军. 基于大数据技术下信息系统指挥控制研究[J]. 电子质量, 2018(10): 8-10. DOI:10.3969/j.issn.1003-0107.2018.10.003 |
[5] |
肖金石, 刘方, 苗壮. 军队信息化建设中的能力生成模式研究[J]. 海军工程大学学报(综合版), 2018, 15(4): 69-73. |
[6] |
朱特浩. 边缘计算在军事信息系统智能化发展中的应用[J]. 火力与指挥控制, 2021, 46(8): 5-11. DOI:10.3969/j.issn.1002-0640.2021.08.002 |
[7] |
陈奡, 谢俊杰, 赵梅, 等. 基于机器学习的军事装备知识分类方法[J]. 指挥信息系统与技术, 2020, 11(4): 34-39. |
[8] |
赵宏田. 用户画像: 方法论与工程化解决方案[M]. 北京: 机械工业出版社, 2021.
|
[9] |
俞凯兰, 洪小娟. 基于 Spark框架的智慧实验室系统构建[J]. 软件, 2022, 43(11): 1−3.
|
[10] |
李鸿飞, 魏勇, 赵彦庆, 等. 语义模型支持的战场环境数据集成方法[J]. 测绘科学技术学报, 2019, 36(6): 632-636. |
[11] |
谢少辉, 段旭磊, 张仰森, 等. 基于用户画像的军事信息推荐方法[J]. 指挥信息系统与技术, 2022, 13(3): 72-77. |
[12] |
崔春生, 王辉, 李群. 基于用户标签和信任关系的协同过滤推荐算法研究[J]. 系统科学与数学, 2019, 39(3): 437-448. |
[13] |
张涛. 数据标签在共享数据溯源中的应用研究[J]. 通信技术, 2020, 53(1): 221-224. DOI:10.3969/j.issn.1002-0802.2020.01.037 |
[14] |
姚鹏飞. 数据仓库技术在装备试验信息集成中的应用研究[J]. 信息技术, 2019, 43(1): 146-150. |
[15] |
张莹. 基于DOM结构聚类的钓鱼网页检测方法研究[D]. 西安: 西安科技大学, 2019.
|